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

 

خوب اصلا حافظه Cache یا کش چی هست؟!

به طور خلاصه میشه گفت یک حافظه سریعتر از RAM و کند تر از Register های Cpu هست و برای این استفاده میشه که چون سرعت Ram پایین هست ،اگر cpu بخواد به طور مداوم اطلاعات رو از ram بخونه وقت و زمان زیادی صرف و بعضا کاربر باید منتظر باشه! و حافظه کش با الگوریتم های پیچیده میاد و پیش بینی میکنه که CPU به چه اطلاعات و آدرس هایی احتیاج داره و اون ها رو به داخل خود واکشی (Fetch) میکنه و CPU با سرعت بالاتر بهشون دسترسی داره!

در cpu چند نوع حافظه کش وجود داره که میشه به L1 , L2 , L3 اشاره کرد (البته الان متوجه شدم که L4 هم به وجود اومده و وجود داره که بیشتر کمکی برای GPU هست یا در CPU های جدید اینتل یک تراشه گرافیکی هم در CPU قرار داده شده که اگر یک وقتی دیدید لپ تاپتون دو تا گرافیک داره و اسم یکیش Intel هست بدونید که همونه و به صورت SOC قرار داره،استفاده از اون هم برای کار های کم مصرف هست و اگر بخواهید رندر یا بازی کنید اتوماتیک از گرافیک جدا که معمولا ساخت دو شرکت Nvidia , AMD ATI هست استفاده میکنه!)

 

اما تفاوت بین این حافظه ها چی هست؟!

اول از همه سرعتشون هست که به ترتیب L3<L2<L1 سرعت بیشتری داره! (=قیمتشون هم دقیقا همین روند رو داره

 

حافظه کش L1 :

 

L1 cache مخفف Level 1 cache است و درون CPU قرار داره و کم حجم ،سریع و گران تر از بقیه هست! (حدود 256 کیلو)

 

حافظه کش L2 :

مشابه L1 با این تفاوت که مدار های حافظه در اون قرار داره که باعث دسترسی به اطلاعات حافظه میشه و اون ها رو در اختیار L1 قرار میده!

نسبت به L1 کند تر و ارزان تر هست و نوعش هم از نوع SRAM است (نوع RAM ، داینامیک یا DRAM است)

و میشه همین جا به خاطر نوع رم ها به قیمت بالای کش نسبت به حافظه اصلی رم پی برد چون  برای ساخت یک بیت DRAM احتیاج به یک ترانزیستور و یک خازن هست در حالیکه برای ساخت یک بیت SRAM حداقل به شش ترانزیستور نیاز دارید. بنابراین ساخت 256 کیلو بایت از حافظه L2 cache نیاز به بیش از 12 میلیون ترانزیستور دارد.(البته این قضیه هم سنتی هست و جدیدا از قطعات جدید استفاده میکنن ولی احتمالا به دلیل ساخت و نوع معماری ساخت این نوع حافظه ها مثلا 32 نانومتری و قرار دادن این همه ترانزیستور و ... در یک ابعاد کوچک و در کنار هسته های cpu هزینه رو بالاتر میبره و در کل  تکنولوژی Cache، استفاده از حافظه های سریع ولی کوچک، بمنظور افزایش سرعت یک حافظه کند ولی با حجم بالا است در نتیجه حافظه L1 که از همه سریعتر است و حجم آن کم گرانتر است و اطلاعات مورد نظر CPU رو به احتمال خیلی بیشتری در خود داره و اگر پیدا نکرد از حافظه L2 که حجم اون بیشتر (2 مگ و +) و اطلاعات بیشتری رو در خودش قرار میده و کمی کند تر از L1 است و همینطور برای L3))

)

 

حافظه L2 رابط بین پروسسور ، پل شمالی و رم است (این پل از اون پل ها که توی شمال هست نیس فرض کنید گذرگاه بین cpu , ram هست و از اون طرف پل جنوبی داریم که برای اینکه یکم تحقیق کردن رو یاد بگیرید به خودتون واگذار میشه :D)

 

و در آخر L1 و L2 به صورت PRIVATE هستن یعنی بین دو هسته فرض کنید به اشتراک گذاشته میشن ولی L3 نه!

 

حافظه کش L3 :

حافظه L3 هم مشابه L2 هست با این تفاوت که حجم آن بیشتر(در اخرین نسل چیپ های اینتل من دیدم که تا 8 مگابایت افزایش یافتن البته نسخه های سرورش که XENON نامیده میشه فکر کنم بیشتر داره) و قیمت ارزان تری نسب به دوتای قبلی داره!

 

تفاوت اساسی L3 اشتراکی بودن بین تمام هسته های CPU هست!

به عکس زیر توجه کنید

 

و همین.

 

 

L4 :

این نوع در اخرین نسل HIGH END سی پی یو های اینتل وجود داره که بیشتر برای GPU که داخل خود چیپ قرار داره بصورت SOC یا مجتمع قرار داده شده! (HASWELL AND BROADWELL )

 

 

خواستیم در مورد کش بنویسیم خیلی چیزای دیگه هم گفته شد دیگه!!

 

حالا اگه سوالی داشتید بپرسید 

 

خواستید هم کپی کنید دوست داشتید اسم ما هم بزنید یک جاییش :D

 

اگر جایی هم اشتباه گفته بودم بگید اصلاح کنم!

 

و اطلاعات بیشتر در سایت های 

http://www.extremetech.com

www.tomshardware.com

https://software.intel.com/en-us/articles/software-techniques-for-shared-cache-multi-core-systems/?wapkw=smart+cache​

AMD

IBM

 

 

شرایط آموزش خصوصی در شیراز