Skip to Content

آرشیو

حافظه نهان یا کش (Cache)

حافظه نهان یا کش (Cache)

حافظه نهان یا کش (Cache)

حافظه نهان یا کش (Cache)

حافظه نهان یا کَش (Cache) قسمتی است که داده‌ها را به صورت موقتی برای پردازش سریع‌تر نگه می‌دارد. این قسمت می‌تواند به سرعت به درخواست‌های برپدازشی پاسخ دهد و داده‌ها را برای اجزای مختلف (نرم افزاری یا سخت افزاری) کامپیوتر آماده کند.

حافظه نهان (Cache) چیست؟

حافظه نهان یا کَش (Cache) قسمتی از حافظه است که داده‌هایی که ممکن است در آینده توسط سایر اجزا پردازش شوند را به صورت موقت در خود ذخیره می‌کند. این قسمت از حافظه می‌تواند به سرعت به درخواست‌های پردازشی پاسخ داده و داده‌ها را به سرعت آماده کند. داده‌های ذخیره شده در حافظه نهان (Cache) ممکن است داده‌هایی باشند که پس از پردازش (مثلاً پس از پردازش توسط واحد سخت افزاری CPU یا به صورت مجازی، پس از پردازش توسط سیستم عامل یا برنامه‌ها) به صورت مستقیم در این قسمت ذخیره می‌شوند یا داده‌هایی باشند که فقط کپی‌ای از داده‌های اصلی (مثلاً داده‌های موجود در حافظه جانبی یا به صورت مجازی، پرنده‌ها و داده‌های موجود در کامپیوتر) موجود باشند.

حافظه نهان یا کش می‌تواند به دو صورت سخت افزاری و مجازی باشد:

در نوع سخت افزاری، حافظه نهان قسمتی از واحد سخت افزاری مورد نظر (مثلاً CPUهای دارای این نوع حافظه یا هارد دیسک‌های دارای این نوع حافظه) است که عمل Caching را برعهده دارد. مکانیزم،ساختار، سرعت و کارایی حافظه نهان سخت افزاری با حافظه اصلی (RAM) تفاوت زیادی دارد. از این رو با افزایش حجم حافظه نهان سخت افزاری در واحدهایی مانند CPU، قسمت تمام شده آن بیشتر می‌شود. دلیل این که در همه جا از حافظه نهان استفاده نمی‌کنند، قیمت و هزینه تهیه بسیار زیاد آن نسبت به سایر حافظه‌ها است.

نحوه عملکرد حافظه نهان مجازی با سخت افزاری متفاوت است. این نوع حافظه نهان در واقع قسمتی از حافظه جانبی است که توسط برنامه‌ها مشخص می‌شود و برای دسترسی سریع‌تر، از این قسمت استفاده می‌کنند. این نوع حافظه نهان به صورت محلی (Local) کارایی ندارد. برای مثال، برنامه‌هایی مانند مرورگرهای وب، قسمتی از حافظه جانبی را تحت عنوان حافظه نهان وب (Web Cache) برای ذخیره سازی موقت داده‌های وب مانند صفحات وب، تصاویر، استایل‌ها و … استفاده می‌کنند و زمانی که کاربر قصد مشاهده صفحه یا تصویر درخواست شده را داشته باشد که در حافظه نهان وب مرورگر موجود باشد، مرورگر همان داده‌های کَش شده را به کاربر نشان می‌دهد. دراین فرایند دیگر داده‌های کش شده از طریق اینترنت یا شبکه بارگیری نمی‌شوند و باعث کاهش ترافیک شبکه، پنهای باند مصرفی، بار روی سرور شده و باعث بهبود فرایند می‌شوند. این قسمت از حافظه جانبی، تفاوتی با سایر قسمت‌های عادی حافظه ندارد و تنها توسط برنامه‌ها به عنوان حافظه نهان مجازی استفاده می‌شوند.

حافظه نهان (Cache) چه کاربردی دارد؟

زمانی که درخواست پردازشی شامل داده‌هایی باشد که در حافظه نهان ذخیره شده اند، داده‌های درخواستی به سرعت به جزء درخواست دهنده تحویل داده می‌شود. اما اگر درخواستی پردازشی شامل داده‌هایی باشد که در حافظه نهان موجود نباشند، در این صورت داده‌های درخواست شده از منبع اصلی خود (برای مثال حافظه‌های جانبی یا سرویس دهنده‌ها) دریافت شده سپس به جزء یا برنامه درخواست دهنده تحویل داده می‌شود. در این صورت عمل پردازش به کندی پیش خواهد رفت. درواقع حافظه نهان در مقایسه با حافظه‌های اصلی و جانبی، بسیار سریع‌تر قابل دسترسی و خواندن است و عمل پردازش را سریع‌تر می‌کند.

ادامه مطلب

انواع کش پردازنده L1 و L2 و L3

انواع کش پردازنده L1 و L2 و L3

انواع کش پردازنده L1 و L2 و L3

انواع کش پردازنده L1 و L2 و L3

کشِ پردازنده ، حافظه‌ی کوچکی است که اطلاعات مورد نیاز پردازنده در آن ذخیره می‌شود تا پردازنده‌ در نیازِ بعدی خود به این اطلاعات، به سرعت به آن‌ها دسترسی داشته باشد. اینکه چه اطلاعاتی باید در حافظه ذخیره شود، به الگوریتم‌های پیچیده و فرضیات مشخصی از کدهای نرم‌افزار مربوط است. هدف اصلی در استفاده از کش آن است که مطمئن شویم بیت بعدی از اطلاعات که پردازنده به آن‌ها نیاز دارد، در کش ذخیره شده باشند تا با حداکثر سرعت و حداقل تاخیر در اختیار پردازنده قرار گیرند. به این فرایند Cache Hit نیز گفته می‌شود یعنی بیت بعدی که پردازنده به آن‌ها نیاز دارد، در کش آماده باشد.
از سوی دیگر، موضوعی با عنوان Cache Miss وجود دارد و به معنی آن است که اطلاعاتی که پردازنده به آن‌ها نیاز دارد در کش وجود ندارد و برای یافتن آن‌ها باید به حافظه‌های دیگر مراجعه کند. این همان جایی است که L2 Cache یا سطح دوم حافظه‌ی کش وارد بازی می‌شود. هرچند حافظه‌‌ی L2 به اندازه‌ی L1 سریع نیست، اما ظرفیت آن بیشتر است. برخی از پردازنده‌ها از طراحی پوششی بهره می‌برند و این بدین معنی است که اطلاعاتی که در L1 ذخیره می‌شود همزمان در L2 نیز کپی می‌شود. اما طراحی دیگری نیز وجود دارد که در آن هیچ وقت اطلاعات موجود در L1 و L2 یکسان نخواهند بود. اگر پردازنده اطلاعات مورد نیاز خود را در L2 پیدا نکند آن‌وقت به سطح سوم کش یا L3 مراجعه می‌کند به همین ترتیب در صورت پیدا نشدن اطلاعات در L3 پردازنده به L4 سر می‌زند و اگر اطلاعات مورد نیاز پردازنده در این سطح از حافظه نبود آن‌وقت ناگزیر به مراجعه به رم (DRAM) می‌شود. توجه داشته باشید که تمام پردازنده‌های از هر چهار سطح حافظه‌ی کش پشتیبانی نمی‌کنند و برخی از پردازنده‌های قدیمی تنها سه یا دو سطح از حافظه‌‌ی کش را در اختیار دارند. سطح دوم از حافظه‌ی کش، ارزان‌ترو بزرگ‌تر از L1 است و علاوه بر آن مصرف انرژی کمتری نیز دارد. اما با این حال بسیاری از پردازنده‌های مدرن امروزی ۹۵ درصد از درخواست‌های خود را از همان L1 پاسخ می‌گیرند و کمتر نیاز به مراجعه به حافظه‌ی سطح دوم پیدا می‌کنند.

 

ادامه مطلب