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

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

حافظه کش یکی از مواردی است  که تو مشخصات فنی پردازنده ها دیده می شود . تا کنون این سوال که حافظه کش  و کش سطح ۱ و ۲ و … چیست  برای برخی از دوستان پیش آمده است . پس تا انتهای پست همراه ما باشید تا به بررسی این مورد بپردازیم.

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

دلایل استفاده  از حافظه کش (حافظه Cache) چیست؟

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

برای اینکه سرعت پردازش را بیشتر کنند ، بین حافظه رم و پردازنده دوباره یک حافظه دیگر به نام حافظه کش یا Cache Mmeory قرار داده اند. تکنولوژی ساخت حافظه کش با حافظه رم متفاوت است برای همین سرعت بیشتری دارد . حافظه رم از جنس DRAM هست اما کش از جنس SRAM

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

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

موقعیت حافظه کش در ترتیب حافظه های کامپیوتر

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

قبلا برای هر هسته ، یک حافظه کش مشخص با مقدار ثابت در نظر می گرفتند . مثلا اگر پردازنده ای ۴ تا هسته داشت ، ۴ تا حافظه کش با مقدار ثابت ( مثلا ۶۴ کیلو بایت ) در نظر میگرفتند . تو این حالت اگر یکی از هسته ها به کش بیشتر از ۶۴ کیلوبایت نیاز داشت باید سراغ حافظه اصلی یا همون حافظه RAM می رفت.
حافظه کش یا حافظه پنهان پردازنده چیست ؟

حافظه کش اشتراکی سطح ۳ در CPU

اما با طراحی کش هوشمند یا Smart Cache که توسط اینتل انجام شد ، این مشکل برطرف شد . تو حالت اسمارت کش ، یک حافظه کش کلی در نظر گرفته، مثلا ۱ مگابایت . هر هسته بسته به نیازش ، از کش استفاده میکند مثلا اگر هسته ۴ نیاز به کش بیشتر داشته باشد و هسته ۲ بیکار باشد ، هسته ۴ می تواند از کش بیشتری استفاده کند . در واقع حافظه کش به صورت داینامیک در هر لحظه می تواند بسته به نیاز هسته ها ، در اختیار هسته ها قرار بگیره . اینطوری دیگر در اکثر مواقع ، نیازی به سرک کشیدن به حافظه RAM نیست .
حافظه کش یا حافظه پنهان پردازنده چیست ؟

حافظه کش ثابت برای هر هسته پردازنده

مثلا در شکل زیر هسته ۲ مامور پردازش فتوشاپ می شود و هسته ۳ مامور پردازش برنامه میدیا پلیر . خب مسلما هسته ۲ به کش بیشتری نیاز دارد چون برنامه سنگین تری رو دارد پردازش می کند . پس حجم کش بیشتری درخواست می کند . تو این حالت ۷۰ درصد از کش اشتراکی به هسته ۲ میرسه و ۳۰ درصد هم در اختیار بقیک هسته هاست . بعد از گذشت زمان ، شاید قضیک کلا برعکس شود و هسته ۲ دیگر فتوشاپ رو پردازش نکند و کش درخواست نکند .
حافظه کش یا حافظه پنهان پردازنده چیست ؟

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

یکی دیگر از مزایای کش هوشمند یا کش اشتراکی این است که اگر یک دیتایی توسط هسته ۱ به کش آمده باشد و هسته ۲ هم به همان دیتا نیاز داشته باشد ، دیگر نیازی نیست که هسته ۲ آن دیتا را از رم به کش بکشد چون همان جا حضور دارد و می تواند استفاده کند که این مسئله باعث افزایش سرعت می شود .

حافظه کش سطح ۱ و ۲ و ۳ چیست ؟

فرض کنید یک پردازنده فقط یک حافظه کش داشته باشد مثلا ۱۲۸ کیلوبایت ، وقتی اطلاعاتی که می خواهد رو پیدا نکند مجبور می شود به رم مراجعه کند . اما اگر یک کش دیگر باشد که نقش زاپاس رو داشته باشد ، سرعت دسترسی به اطلاعات بیشتر می شود . فلسفه وجودی حافظه کش سطح ۱ و ۲ و ۳ و حتی ۴ هم همین است . نزدیک ترین حافظه کش به پردازنده می شود کش سطح ۱ یا به انگلیسی L1 Cache که حرف L مخفف Level هست . اگر اطلاعات مورد نظر پردازنده در کش سطح ۱ نبود ، سراغ حافظه کش سطح ۲  می رودو اگر نبود سراغ حافظه کش سطح ۳ و اگر نبود سراغ کش ۴ و اگر نبود به سراغ حافظه رم رفته و اگر آنجا هم نبود سراغ هارد می رود

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

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

هر چقدر سطح حافظه کش بیشتر می شود ، سرعتش کمتر می شود ولی در عوض حجمش بیشتر می شود . نکته مهم این که بدانید هر ۳ سطح از کش ، سرعت بیشتری نسبت به حافظه رم دارند .

منظور از Cache Miss و Cache Hit چیست ؟

تمام دغدغه طراحان الکترونیک این است که میزان Cache Hit رو بالا ببرند . میزان Cache Hit را با درصد بیان می کنند . در حال حاضر میزان Cache Hit برای کش سطح ۱ حدود ۹۵ تا ۹۷ درصد است . یعنی احتمال اینکه اطلاعات مورد نیاز پردازنده در کش نباشد حدود ۵ تا ۳ درصد هست . البته در پردازنده های سریع و رده بالا معمولا مقدار Cache Hit 99 تا ۱۰۰ درصد هست . این مسئله بستگی به معماری پردازنده ، الگوریتم کش و حجم کش سطح ۱ دارد .

چرا حافظه RAM رو مثل حافظه کش نمی سازند ؟

شاید برایتان این سوال پیش بیاید که خب چرا یک دفعه حافظه رم DRAM رو مثل حافظه کش SRAM نمی سازند که دیگر خلاص شویم ؟ اول از همه اینکه ساخت حافظه SRAM به مقدار ۴ گیگ یا ۸ گیگ خیلی گران تمام می شود ، آنقدر که تا الان نتواستنه اند این کار را بکنند . دوم اینکه حافظه DRAM خیلی متراکم است یعنی در حجم کم می توانیم مقدار حافظه زیادی درست کنیم . مثلا حافظه ۱۶ یا حتی ۳۲ گیگ از نوع DRAM در اندازه ماژول های فعلی قابل ساخته اما همین مقدار را اگر بخواهیم با حافظه SRAM در بیاوریم اندازه فیزیکی رم خیلی بزرگ می شود . اینطوری هم باید ظاهر اسلات رم ها روی مادربورد رو تغییر بدهند که خرج دارد و هم اینکه هزینه ساخت رم SRAM خیلی زیاد می شود.




One thought on “حافظه کش یا حافظه پنهان پردازنده چیست ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *