Skip to content

حافظه کش(cache memory)


حافظه کش یک جزء کامپیوتری مبتنی بر تراشه است که بازیابی اطلاعات از حافظه رایانه را کارآمدتر می کند. این به عنوان یک فضای ذخیره سازی موقت عمل می کند که پردازنده کامپیوتر می تواند داده ها را به راحتی از آن بازیابی کند. این فضای ذخیره سازی موقت، که به عنوان حافظه پنهان شناخته می شود، نسبت به منبع حافظه اصلی رایانه، معمولاً نوعی DRAM، به راحتی در دسترس پردازنده است.
حافظه کش گاهی اوقات حافظه CPU (واحد پردازش مرکزی) نامیده می شود زیرا معمولاً مستقیماً در تراشه CPU ادغام می شود یا روی یک تراشه جداگانه قرار می گیرد که دارای یک گذرگاه جداگانه با CPU است. بنابراین، برای پردازنده در دسترس تر است و می تواند کارایی را افزایش دهد، زیرا از نظر فیزیکی به پردازنده نزدیک است.
برای نزدیک بودن به پردازنده، حافظه کش باید بسیار کوچکتر از حافظه اصلی باشد. در نتیجه فضای ذخیره سازی کمتری دارد. همچنین گرانتر از حافظه اصلی است، زیرا تراشه پیچیده تری است که عملکرد بالاتری دارد.
آنچه را که در اندازه و قیمت فدا می کند، سرعت آن را جبران می کند. حافظه کش بین 10 تا 100 برابر سریعتر از RAM عمل می کند و برای پاسخ به درخواست CPU تنها به چند نانوثانیه نیاز دارد.
حافظه کش را نباید با اصطلاح گسترده تر کش اشتباه گرفت. کش ها ذخیره های موقتی از داده ها هستند که می توانند هم در سخت افزار و هم در نرم افزار وجود داشته باشند. حافظه کش به جزء سخت افزاری خاصی اشاره دارد که به رایانه ها اجازه می دهد تا حافظه پنهان در سطوح مختلف شبکه ایجاد کنند.


حافظه کش چگونه کار میکند.
حافظه کش به طور موقت اطلاعات، داده ها و برنامه هایی را که معمولاً توسط CPU استفاده می شود ذخیره می کند. هنگامی که داده مورد نیاز است، CPU به طور خودکار به حافظه کش در جستجوی دسترسی سریعتر به داده تبدیل می شود. این به این دلیل است که RAM سرور کندتر است و از CPU دورتر است. هنگامی که داده ها در حافظه نهان یافت می شوند، به آن ضربه کش می گویند. ضربه کش به پردازنده امکان می دهد تا داده ها را به سرعت بازیابی کند و سیستم شما را کارآمدتر کند.
از آنجایی که حافظه نهان بسیار کوچکتر از RAM سرور است، داده هایی که ذخیره می کند موقتی است و بنابراین ممکن است اطلاعات مورد نیاز پردازنده را در خود نگهداری نکند. زمانی که حافظه نهان اطلاعات مورد نیاز پردازنده را نداشته باشد، به این حالت از دست دادن حافظه پنهان می گویند و در این حالت CPU روی هارد دیسک حرکت می کند و از RAM استفاده می کند.

سه سطح حافظه کش
سه سطح اصلی حافظه کش وجود دارد که همگی عملکردهای کمی متفاوت دارند. سطح 1 (L1) سریعترین نوع حافظه کش است زیرا کوچکترین اندازه و نزدیکترین به پردازنده است. سطح 2 (L2) ظرفیت بالاتر اما سرعت کمتری دارد و روی تراشه پردازنده قرار دارد. حافظه نهان سطح 3 (L3) دارای بیشترین ظرفیت است و در رایانه ای قرار دارد که از حافظه نهان L2 استفاده می کند.
در گذشته، کش های L1، L2 و L3 با استفاده از اجزای ترکیبی پردازنده و مادربرد ایجاد می شدند. اخیراً، روند به سمت تجمیع هر سه سطح حافظه نهان در خود CPU بوده است. به همین دلیل است که ابزار اصلی برای افزایش اندازه حافظه نهان از دستیابی به یک مادربرد خاص با چیپست‌ها و معماری‌های گذرگاهی مختلف به خرید یک CPU با مقدار مناسب کش L1، L2 و L3 یکپارچه تغییر کرده است.

تخصص 
علاوه بر کش های دستورالعمل و داده ها، سایر کش ها برای ارائه عملکردهای تخصصی سیستم طراحی شده اند. طبق برخی تعاریف، طراحی مشترک کش L3 آن را به یک کش تخصصی تبدیل می کند. تعاریف دیگر کش دستورالعمل و کش داده را از هم جدا نگه می دارند و به هر یک به عنوان کش تخصصی اشاره می کنند.
هنوز سایر کش ها، از نظر فنی، به هیچ وجه کش حافظه نیستند. به عنوان مثال، کش های دیسک می توانند از حافظه های DRAM یا فلش برای ارائه کش کردن داده ها مشابه آنچه کش های حافظه با دستورالعمل های CPU انجام می دهند، استفاده کنند. اگر داده ها به طور مکرر از دیسک دسترسی داشته باشند، برای زمان دسترسی و پاسخ سریعتر به DRAM یا فناوری ذخیره سازی سیلیکونی مبتنی بر فلش ذخیره می شوند.
کش های تخصصی نیز برای برنامه هایی مانند مرورگرهای وب، پایگاه های داده، اتصال آدرس شبکه و پشتیبانی از پروتکل Network File System در سمت سرویس گیرنده در دسترس هستند. این نوع کش ها ممکن است بین چندین میزبان شبکه توزیع شوند تا مقیاس پذیری یا عملکرد بیشتری را برای برنامه ای که از آنها استفاده می کند ارائه دهند.

کارایی
حافظه کش مهم است زیرا کارایی بازیابی اطلاعات را بهبود می بخشد. دستورالعمل‌ها و داده‌های برنامه را ذخیره می‌کند که به طور مکرر در عملکرد برنامه‌ها یا اطلاعاتی که CPU احتمالاً در آینده به آنها نیاز دارد استفاده می‌شود. پردازنده کامپیوتر می تواند سریعتر از حافظه پنهان به این اطلاعات دسترسی داشته باشد تا از حافظه اصلی. دسترسی سریع به این دستورالعمل ها باعث افزایش سرعت کلی برنامه می شود. گذشته از عملکرد اصلی آن در بهبود عملکرد، حافظه نهان منبع ارزشمندی برای ارزیابی عملکرد کلی یک کامپیوتر است. کاربران می توانند این کار را با مشاهده نسبت ضربه به از دست دادن حافظه پنهان انجام دهند. بازدیدهای Cache مواردی هستند که در آن سیستم با موفقیت داده ها را از حافظه پنهان بازیابی می کند. از دست دادن حافظه پنهان زمانی است که سیستم به دنبال داده‌های موجود در حافظه پنهان می‌گردد، نمی‌تواند آن را پیدا کند و به جای آن در جای دیگری جستجو می‌کند. در برخی موارد، کاربران می‌توانند با تنظیم اندازه بلوک حافظه پنهان - اندازه واحدهای داده ذخیره‌شده، نسبت ضربه به از دست دادن را بهبود بخشند.
بهبود عملکرد و توانایی نظارت بر عملکرد فقط در مورد بهبود راحتی عمومی برای کاربر نیست. همانطور که تکنولوژی پیشرفت می کند و به طور فزاینده ای به آن در سناریوهای حیاتی ماموریت اتکا می شود، داشتن سرعت و قابلیت اطمینان بسیار مهم می شود. حتی چند میلی‌ثانیه تأخیر می‌تواند بسته به شرایط به طور بالقوه منجر به هزینه‌های هنگفتی شود.