حافظه کش یا Cache Memory یک جز جدانشدنی از قطعات کامپیوتری است که مبتنی بر تراشه است و روند بازیابی اطلاعات از حافظه را بهبود میبخشد. کش یک فضای ذخیره سازی موقت است که پردازنده را قادر میسازد تا اطلاعات و دادهها را بهراحتی از آن بازیابی کند. این فضای ذخیره سازی موقت که به عنوان حافظه پنهان شناخته میشود در مقایسه با حافظه اصلی؛ به راحتی در دسترس پردازنده قرار میگیرد.
حافظه کش (Cache Memory) چیست؟
گاهی اوقات به حافظه کش، حافظه CPU گفته میشود زیرا معمولاً مستقیماً در تراشه CPU ادغام میشود یا روی یک تراشه جداگانه قرار میگیرد که دارای یک گذرگاه جداگانه با CPU است. همین نزدیک بودن کش و CPU از لحاظ فیزیکی، سبب میشود تا کارایی سیستم افزایش یابد. برای اینکه حافظه پنهان به پردازنده نزدیک باشد؛ باید بسیار کوچکتر از حافظه اصلی طراحی شود. در نتیجه فضای ذخیره سازی کمتری نسبت به حافظه اصلی دارد وقیمت آن نیز گرانتر است. فناوری حافظه کش پیچیدهتر است و همین امر سبب افزایش عملکرد میشود.
حافظه کش بین 10 تا 100 برابر سریعتر از RAM عمل میکند و تنها چند نانو ثانیه نیاز است تا به درخواست CPU سرور پاسخ دهد. نام سخت افزار واقعی که برای حافظه کش استفاده میشود، حافظه دسترسی تصادفی ایستا با سرعت بالا (SRAM) است. نام سخت افزاری که در حافظه اصلی کامپیوتر استفاده میشود، حافظه با دسترسی تصادفی پویا (DRAM) است.
حافظه کش را با اصطلاح گستردهتر کش اشتباه نگیرید. کش ها ذخیره های موقتی از دادهها هستند که میتوانند هم در سخت افزار و هم در نرم افزار وجود داشته باشند. حافظه کش به جزء سخت افزاری خاصی اشاره دارد که به رایانهها اجازه میدهد تا حافظه پنهان در سطوح مختلف شبکه ایجاد کنند.
مزایای حافظه کش
- حافظه نهان سریعتر از حافظه اصلی است.
- در مقایسه با حافظه اصلی زمان دسترسی کمتری مصرف میکند.
- داده ها، دستورالعملها و اطلاعات را برای استفاده موقت ذخیره میکند.
- یک کش اولیه زمان دسترسی کمتری نسبت به رجیستر پردازنده دارد و همیشه روی تراشه پردازنده قرار میگیرد.
- حافظه کش دستورالعملهایی را که ممکن است دفعه بعد مورد نیاز پردازنده باشد را ذخیره میکند. زیرا در مقایسه با حافظه با دسترسی تصادفی (RAM) به بازیابی سریعتر اطلاعات کمک میکند.
- حافظه کش یک حافظه نیمه هادی با سرعت بالا است که میتواند سرعت پردازنده را افزایش دهد.
معایب Cache Memory
- حافظه کش دارای ظرفیت محدودی است.
- دادهها را بهطور موقت ذخیره میکند نه دائمی.
- حافظه کش هزینه نهایی بیشتری نسبت به حافظه اصلی دارد که میتواند هزینه کل سیستم را افزایش دهد.
- هنگامی که کامپیوتر خاموش میشود، دادههای ذخیره شده در آن از بین میروند.
انواع مختلف حافظه Cache
همانطور که در قسمت قبل عنوان کردیم، حافظه کش یک حافظه موقت، سریع و گران قیمت است. این حافظه در سطوح مختلفی تعریف میشود که نزدیکی و دسترسی آن به ریز پردازنده را توصیف میکند. اگر به مشخصات فنی پردازندههای سرور hp دقت کرده باشید؛ در کنار مقدار حافظه کش، L1، L2 و یا L3 قرار داده شده است که تفسیر آن به شرح زیر است:
- حافظه کش L1: حافظه نهان اولیه یک حافظه با سرعت بسیار بالا اما ابعاد بسیار کوچک است که در تراشه پردازنده به عنوان کش CPU نعبیه میشود.
- حافظه کش L2: حافظه کش ثانویه ظرفیت بیشتری نسبت به کش اولیه دارد که ممکن است روی سی پی یو تعبیه شود یا روی یک تراشه جداگانه قرار گیرد. همچنین میتواند دارای یک گذرگاه سیستم جایگزین پرسرعت باشد که کش و CPU را به هم متصل میکند. به این ترتیب ترافیک در گذرگاه اصلی سیستم کند نمیشود.
- حافظه کش L3: کش سطح 3 (L3) یک حافظه تخصصی است که برای بهبود عملکرد L1 و L2 ایجاد شده است. L1 یا L2 می تواند به طور قابل توجهی سریعتر از L3 باشد، اگرچه L3 معمولاً دو برابر سرعت DRAM است. با پردازندههای چند هستهای، هر هسته میتواند حافظه نهان L1 و L2 اختصاصی داشته باشد، اما میتواند یک کش L3 را به اشتراک بگذارد. اگر حافظه نهان L3 به یک دستورالعمل ارجاع دهد، معمولاً به سطح بالاتری از کش ارتقا مییابد.
مقایسه حافظه کش و حافظه اصلی
DRAM به عنوان حافظه اصلی کامپیوتر عمل میکند و محاسبات را روی دادههای بازیابی شده از ذخیره سازی انجام میدهد. حافظه نهان و DRAM هر دو حافظههای فرار هستند که با قطع برق محتویات خود را از دست میدهند. توجه داشته باشید که DRAM روی مادربرد نصب میشود و CPU از طریق یک اتصال باس به آن دسترسی پیدا میکند.
معمولا DRAM تقریباً نصف حافظه نهان L1، L2 یا L3 سریع است و هزینه بسیار کمتری دارد. دسترسی سریعتری به دادهها نسبت به حافظه فلش، درایوهای دیسک سخت (HDD) و ذخیرهسازی نوار فراهم میکند. در چند دهه گذشته از DRAM استفاده شد تا مکانی برای ذخیره دادههای دیسکی که اغلب به آنها دسترسی داشت برای بهبود عملکرد ورودی/خروجی فراهم کند.
DRAM باید هر چند میلی ثانیه یکبار تجدید شود. حافظه کش که نوعی حافظه با دسترسی تصادفی نیز هست، نیازی به رفرش ندارد. این به طور مستقیم در CPU تعبیه شده است تا به پردازنده سریعترین دسترسی ممکن را به مکانهای حافظه بدهد و زمان دسترسی با سرعت نانوثانیه را به دستورالعملها و دادههای مکرر ارجاع میدهد. SRAM سریعتر از DRAM است، اما چون این تراشه فناوری پیچیدهتری دارد، ساخت آن نیز گرانتر است.
حافظه کش در مقابل حافظه مجازی (Virtual Memory)
یک رایانه دارای مقدار محدودی DRAM و حتی حافظه کش کمتری است. هنگامی که یک برنامه بزرگ یا چندین برنامه در حال اجرا هستند، امکان استفاده کامل از حافظه وجود دارد. برای جبران کمبود حافظه فیزیکی، سیستم عامل کامپیوتر (OS) میتواند حافظه مجازی ایجاد کند.
برای انجام این کار، سیستم عامل به طور موقت دادههای غیرفعال را از DRAM به فضای ذخیره سازی دیسک منتقل میکند. این رویکرد فضای آدرس مجازی را با استفاده از حافظه فعال در DRAM و حافظه غیرفعال در هارد دیسک افزایش میدهد تا آدرس های پیوستهای را ایجاد کند که هم یک برنامه و هم دادههای آن را نگه میدارد. حافظه مجازی به رایانه اجازه میدهد برنامههای بزرگتر یا چندین برنامه را به طور همزمان اجرا کند و هر برنامه به گونهای عمل میکند که گویی حافظه نامحدودی دارد.
به منظور کپی کردن حافظه مجازی در حافظه فیزیکی، سیستم عامل حافظه را به فایلهای صفحه یا فایلهای مبادلهای که حاوی تعداد معینی آدرس هستند، تقسیم میکند. این صفحات بر روی یک دیسک ذخیره میشوند و در صورت نیاز، سیستم عامل آنها را از دیسک به حافظه اصلی کپی میکند و آدرس حافظه مجازی را به یک آدرس فیزیکی ترجمه میکند. این ترجمه ها توسط یک واحد مدیریت حافظه (MMU) انجام میشود.
کارایی و عملکرد حافظه کش به چه صورت است؟
حافظه کش بسیار مهم است زیرا کارایی بازیابی اطلاعات را بهبود میبخشد. این نوع حافظه دستورالعملها و دادههایی را ذخیره میکند که بهطور مکرر در عملکرد برنامهها یا اطلاعاتی که CPU در آینده به آنها نیاز دارد، موثر است. بنابراین، هنگامی که یک پردازنده اطلاعاتی را درخواست میکند که قبلاً یک نمونه در حافظه نهان دارد، نیازی به رفتن به حافظه اصلی یا هارد دیسک برای واکشی دادهها ندارد. پردازنده در مقایسه با حافظه اصلی، دسترسی سریعتری به حافظه کش دارد که باعث افزایش سرعت کلی برنامه میشود. در واقع میتوان گفت حافظه نهان منبع ارزشمندی برای ارزیابی عملکرد کلی یک سیستم است.
حافظه کش سریعترین حافظه موجود است و به عنوان یک بافر بین RAM و CPU عمل میکند. پردازنده هر بار که نیاز به خواندن یا نوشتن یک مکان دارد، بررسی میکند که آیا ورودی مربوطه در حافظه پنهان موجود است یا خیر، بنابراین زمان مورد نیاز برای دسترسی به اطلاعات از حافظه اصلی را کاهش می دهد.
حافظه کش رید کنترلر چیست؟
کارتهای رید کنترلر میتوانند دادهها را بهطور موقت از سیستم میزبان ذخیره کنند تا زمانی که با موفقیت در رسانه ذخیره سازی شوند. اگر در حین ذخیره سازی برق قطع شود، به احتمال بسیار زیادی دادهها از بین میروند و یکپارچگی دائمی دادهها به خطر میافتد. حافظه کش RAID روشی مقرون به صرفه برای بهبود عملکرد ورودی/خروجی با نوشتن دادهها در حافظه پنهان کنترلر قبل از نوشتن روی دیسک است. با این حال، در صورت قطع برق یا خرابی سرور، نوشتههای موجود در حافظه پنهان ممکن است از بین بروند.
توجه داشته باشید که کش رید کنترلر با ظرفیتهای 256 مگابایت، 512 مگابایت، 1 گیگابایت و 2 گیگابایت در ماهان شبکه ایرانیان موجود است و شما میتوانید با توجه به نوع رید کنترلر خود، ماژول کش را نیز خریداری کنید. حافظه پنهان کنترلر RAID میتواند عملکرد را در هنگام نوشتن دادهها به میزان قابل توجهی افزایش دهد. اگر برق قطع شود، محتوای این کش از بین میرود، مگر اینکه محتوا توسط ماژول پشتیبان باتری محافظت شده باشد.