حافظه نهان یا کش (Cache)
حافظه نهان یا کَش (Cache) قسمتی است که دادهها را به صورت موقتی برای پردازش سریعتر نگه میدارد. این قسمت میتواند به سرعت به درخواستهای برپدازشی پاسخ دهد و دادهها را برای اجزای مختلف (نرم افزاری یا سخت افزاری) کامپیوتر آماده کند.
حافظه نهان (Cache) چیست؟
حافظه نهان یا کَش (Cache) قسمتی از حافظه است که دادههایی که ممکن است در آینده توسط سایر اجزا پردازش شوند را به صورت موقت در خود ذخیره میکند. این قسمت از حافظه میتواند به سرعت به درخواستهای پردازشی پاسخ داده و دادهها را به سرعت آماده کند. دادههای ذخیره شده در حافظه نهان (Cache) ممکن است دادههایی باشند که پس از پردازش (مثلاً پس از پردازش توسط واحد سخت افزاری CPU یا به صورت مجازی، پس از پردازش توسط سیستم عامل یا برنامهها) به صورت مستقیم در این قسمت ذخیره میشوند یا دادههایی باشند که فقط کپیای از دادههای اصلی (مثلاً دادههای موجود در حافظه جانبی یا به صورت مجازی، پرندهها و دادههای موجود در کامپیوتر) موجود باشند.
حافظه نهان یا کش میتواند به دو صورت سخت افزاری و مجازی باشد:
در نوع سخت افزاری، حافظه نهان قسمتی از واحد سخت افزاری مورد نظر (مثلاً CPUهای دارای این نوع حافظه یا هارد دیسکهای دارای این نوع حافظه) است که عمل Caching را برعهده دارد. مکانیزم،ساختار، سرعت و کارایی حافظه نهان سخت افزاری با حافظه اصلی (RAM) تفاوت زیادی دارد. از این رو با افزایش حجم حافظه نهان سخت افزاری در واحدهایی مانند CPU، قسمت تمام شده آن بیشتر میشود. دلیل این که در همه جا از حافظه نهان استفاده نمیکنند، قیمت و هزینه تهیه بسیار زیاد آن نسبت به سایر حافظهها است.
نحوه عملکرد حافظه نهان مجازی با سخت افزاری متفاوت است. این نوع حافظه نهان در واقع قسمتی از حافظه جانبی است که توسط برنامهها مشخص میشود و برای دسترسی سریعتر، از این قسمت استفاده میکنند. این نوع حافظه نهان به صورت محلی (Local) کارایی ندارد. برای مثال، برنامههایی مانند مرورگرهای وب، قسمتی از حافظه جانبی را تحت عنوان حافظه نهان وب (Web Cache) برای ذخیره سازی موقت دادههای وب مانند صفحات وب، تصاویر، استایلها و … استفاده میکنند و زمانی که کاربر قصد مشاهده صفحه یا تصویر درخواست شده را داشته باشد که در حافظه نهان وب مرورگر موجود باشد، مرورگر همان دادههای کَش شده را به کاربر نشان میدهد. دراین فرایند دیگر دادههای کش شده از طریق اینترنت یا شبکه بارگیری نمیشوند و باعث کاهش ترافیک شبکه، پنهای باند مصرفی، بار روی سرور شده و باعث بهبود فرایند میشوند. این قسمت از حافظه جانبی، تفاوتی با سایر قسمتهای عادی حافظه ندارد و تنها توسط برنامهها به عنوان حافظه نهان مجازی استفاده میشوند.
حافظه نهان (Cache) چه کاربردی دارد؟
زمانی که درخواست پردازشی شامل دادههایی باشد که در حافظه نهان ذخیره شده اند، دادههای درخواستی به سرعت به جزء درخواست دهنده تحویل داده میشود. اما اگر درخواستی پردازشی شامل دادههایی باشد که در حافظه نهان موجود نباشند، در این صورت دادههای درخواست شده از منبع اصلی خود (برای مثال حافظههای جانبی یا سرویس دهندهها) دریافت شده سپس به جزء یا برنامه درخواست دهنده تحویل داده میشود. در این صورت عمل پردازش به کندی پیش خواهد رفت. درواقع حافظه نهان در مقایسه با حافظههای اصلی و جانبی، بسیار سریعتر قابل دسترسی و خواندن است و عمل پردازش را سریعتر میکند.