منظور از حافظه کش چیست؟

منظور از حافظه کش چیست؟

حافظه Cache یا حافظه نهان پردازنده چیست؟


یک نوع حافظه بسیار سریع از نوع SRAM است که برای جلوگیری از تاخیر زمانی بین پردازنده و رم به وجود می آید که حافظه پنهان یا حافظه کش و یا  Cache Memory نامیده میشود. از سال 1980 این حافظه کش در پردازنده ها وجود دارد. در واقع میتوان گفت حافظه کش، حافظه ای کوچک می باشد که گران تر و سریع تر از حافظه رم است که پیوسته برخی از اطلاعاتی که در رم وجود دارد را در خود نگه میدارد تا پردازنده بتواند دسترسی سریع تری به آن اطلاعات در سیستم های کامپیوتری و شبکه های کامپیوتری داشته باشد.

 

چه چیزی باعث استفاده از حافظه کش میشود؟


پردازنده ها سریع ترین قطعه در کامپیوتر ها هستند و طبق دستوراتی که از سیسیتم عامل میدهد نیز کار میکند. همچنین میدانیم که هارد یک قطعه الکترومکانیکی است که برای دستیابی به اطلاعات باید یک شئ سوزنی شکل بر روی یک دیسک گردان بچرخد تا اطلاعات ذخیره شده را استخراج نماید که این مساله بسیار زمان بر است به همین دلیل هارد سرعت بسیار کمتری نسبت به پردازنده دارد.

در نتیجه برای جلوگیری از این مشکل حافظه RAM  را طراحی کردند که در ابتدا اطلاعات از هارد بعد به رم و در نهایت به پردازنده منتقل میشود با این وجود می توانستیم مشکل تاخیر زمانی را مشاهده نماییم. برای برطرف نمودن این مشکل و افزایش سرعت پردازنده، حافظه ای دیگربه نام حافظه کش در میان حافظه رم و پردازنده قرار دادند که جنس این حافظه از SRAM است در صورتی که جنس حافظه رم ازDRAM  است.
جالب است بدانید که بعد از حافظه کش در پردازنده حافظه های بسیار کوچک تری دارند که ثبات ها نام دارند و برای دسترسی بسیار سریع به اطلاعات استفاده میشود.
در نتیجه قرارگیری حافظه در کامپیوترها به این ترتیب میباشد:

  • هارد
  • حافظه رم
  • حافظه کش
  • ثبات ها

 

کش هوشمند یا حافظه کش اشتراکی چیست؟


در گذشته برای هر هسته، یک حافظه کش مشخص با میزان مشخص در نظر میگرفتند اما با ساخت کش هوشمند(Smart cache) که توسط اینتل ساخته شد، این مشکل نیز برطرف شده به صورتی که در حالت اسمارت کش، یک حافظه کلی در نظر گرفته میشود. کارکرد آن به صورت داینامیک می باشد که در هر لحظه میتواند بسته به نیاز هسته ها، در اختیار آنها قرار بگیرد در نتیجه در بسیاری از مواقع لازم به چک کردن حافظه یا RAM نیست.
از دیگر مزایای کش هوشمند آن است که اگر یک دیتا به وسیله هسته یک به کش آمده باشد و هسته دو هم به همان دیتا نیاز داشته باشد میتواند از آن دیتا در کش استفاده کند و نیازی به آوردن دیتا از رم به کش نمیباشد که این عمل خود باعث افزایش سرعت میشود.

 

حافظه کش سطح 1 و 2 و 3 چیست؟


پردازنده ای را در نظر بگیرید که تنها یک حافظه کش داشته باشد، زمانی که نیاز به اطلاعاتی خاص پیدا کند و آن را پیدا نکند برای دریافت اطلاعات بلاجبار به رم مراجعه میکند.

اما اگر کشی دیگر وجود داشته باشد که به عنوان کمک کننده کش مراجعه کننده باشد باعث افزایش سرعت دسترسی به اطلاعات میشود. دلیل به وجود آمدن حافظه کش سطح 1 و 2 و 3 وحتی 4 هم همین است به گونه ای که نزدیک ترین حافظه کش به پردازنده کش سطح یک (L1 cache) نام دارد که L مخفف حرف level است.

اگر پردازنده نتوانست اطلاعات را در کش سطح 1 بیابد به حافظه کش سطح شماره 2 میرود و این روند تا کش سطح شماره 4 پیش میرود و اگر موفق به یافتن اطلاعات مورد نظر خود نبود به رم نیز میرود و اخرین گزینه پردازنده برای دریافت اطلاعات خود هارد میباشد.
به طور معمول حافظه سطح یک به صورت جداگانه و اختصاصی برای هر هسته طراحی میشود. حافظه کش سطح 2 معمولا بین دو هسته تقسیم میشود اما در برخی از موارد حافظه کش سطح دو میتواند به هر هسته نیز اختصاص یابد و به طراحی و معماری هسته ها و کش ها بستگی دارد. حافظه کش سه بین تمام هسته ها نیز تقسیم میشود.

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

 

منظور از Cache miss و Cache hit چیست؟


همانطور که در قسمت کش سطح  1 و 2 و 3 بیان شد، حافظه های کش به ترتیب مورد بررسی قرار میگیرد و اگر اطلاعات پردازنده در حافظه کش نباشد( که این موضوع باعث تاخیر زمانی نیز میشوند) این اتفاق Cache miss نام دارد. در صورتی که اطلاعات پردازنده در حافظه کش قرار داشته باشد Cache hit نامیده میشود.
یکی از اصلی ترین دغدغه طراحان الکترونیک افزایش میزان Cache hit است. جالب است بدانید میزان Cache hit را با درصد نمایش داده میشود که در حال حاضر میزان Cache hit برای حافظه کش سطح 1 حدود 95 تا 97 درصد است. البته لازم به ذکر است در پردازنده هایی با رده بالا معمولا مقدار Cache hit به 99 و یا 100 هم میرسد که این مسئله کاملا به معماری پردازنده و الگوریتم کش و همچنین حجم کش سطح یک بستگی دارد.

 

چرا حافظه RAM همانند حافظه کش ساخته نمیشود؟


ساخت حافظه SRAM به میزان 4گیگ و یا 8 گیگ بسیار گران است به قدری که تا کنون موفق به تولید آن نشده اند.
دومین موضوع حافظه DRAM یک حافظه بسیار متراکم میباشد به طوری که در حجم کم میتوانیم مقدار حافظه بسیاری را تولید کنیم. اگر بخواهیم مقدار حافظه هایی که برای DRAM  ساخته شده را برای SRAM  در نظر بگیریم اندازه فیزیکی رم ها بسیار بزرگ خواهد شد و در سیستم ها و شبکه های کامپیوتری مشکل ساز می شود.

 

حافظه کش چه مزیت هایی دارد؟

 

  1. افزایش سرعت انجام کارها
  2. صرفه جویی در مصرف اینترنت
  3. ذهخیره اطلاعان برای استفاده های بعدی

 

معایب حافظه کش

 

  1. فضای ذخیره سازی زیادی را اشغال میکند.
  2. اگر فایل کش خراب باشد باعث عملکرد بد برنامه میشود.
  3. حافظه کش میتواند از بارگذاری آخرین آپدیت های صفحه های وب و یا سایر داده های یک برنامه جلوگیری به عمل آورد.

 

کش کردن چه معنایی دارد؟

 

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

 

آیا میتوان حافظه کش را پاک کرد؟ پاک کردن حافظه کش چه مزایا و چه معایبی دارد؟


همانطور که در بالا در مورد معایب حافظه کش صحبت کردیم گاهی منطقی است که بخواهیم حافظه کش سیستم را پاک کنیم. همانند کش های خراب!
یکی از عواملی که باعث تاثیر منفی در عملکرد سیستم ها است حجیم شدن یک کش میباشد یا اینکه حافظه دستگاه شما پر شود. برای برطرف کردن این مشکل راه حل همان پاک کردن حافظه کش است. در واقع حذف فایل های ذخیره شده در حافظه کش را پاک کردن حافظه کش میگویند.
با پاک کردن حافظه کش تمامی فایل ها حذف خواهد شد حتی فایل هایی که برای کارکرد بهتر دستگاه شما ایجاد شده اند نیز همراه با فایل های مخرب از بین خواهند رفت که از معایب پاک کردن حافظه کش میباشد. چرا که علاقمندی ها و یا سبد های خرید و حساب های کاربری که در سایت ها ایجاد نموده اید همه از بین خواهند رفت.

 

در آینده میخواهیم به موارد ذیل نیز بپردازیم:
1.    آیا حافظه کش در حوضه های مختلف متفاوت است؟
2.    اهمیت حافظه کش برای کسب و کار اینترنتی
3.    چگونگی حذف حذف حافظه کش در پلتفرم های مختلف