پردازندههای کامپیوتری طی چند سال اخیر بسیار پیشرفت کردهاند. هر سال اندازه ترانزیستورها کوچکتر میشوند و پیشرفتها به نقطهای میرسند که قانون مور به سرعت در حال زائد شدن است. وقتی صحبت از پردازنده میشود منظور فقط ترانزیستورها و فرکانسها نیستند، بلکه حافظه پنهان CPU هم مهم است.
ممکن است هنگام بحث در مورد پردازندههای مرکزی (CPU)، در مورد حافظه پنهان شنیده باشید. با این حال، خیلی به این اعداد توجه نمیشود و آنها هم واقعاً برجستهترین موارد تبلیغاتی این پردازندهها نیستند.
بنابراین این موضوع دقیقاً چقدر مهم است و چگونه کار میکند؟
حافظه پنهان CPU چیست؟
به زبان ساده، حافظه پنهان CPU یک نوع حافظه بسیار سریع است. همانطور که میدانید، یک کامپیوتر چند نوع حافظه در داخل خود دارد. یک حافظه اصلی مانند یک دیسک سخت یا SSD وجود دارد که بخش عمدهای از دادهها را ذخیره میکند مانند سیستم عامل و همه برنامهها.
در مرحله بعدی، حافظه دسترسی تصادفی داریم که معمولاً با نام RAM شناخته میشود. این حافظه خیلی سریعتر از فضای ذخیرهسازی اولیه است.
سرانجام پردازنده حتی دارای واحدهای حافظه سریعتری در درون خود است که ما آنها را به عنوان حافظه پنهان (Cache) میشناسیم.
حافظههای موجود در کامپیوتر بر اساس سرعت دارای یک سلسله مراتب هستند. حافظه پنهان در بالای این سلسله مراتب قرار دارد، یعنی سریعترین است. همچنین در نزدیکترین مکان به پردازش مرکزی قرار دارد و بخشی از CPU است.
حافظه نهان (Cache) یک حافظه استاتیک (Static RAM) است، در مقایسه با RAM سیستم، که یک حافظه پویا (Dynamic RAM) است. حافظه استاتیک بر خلاف حافظه پویا، حافظهای است که میتواند دادهها را بدون نیاز به تازهسازی مداوم در خود نگه دارد. به همین دلیل حافظه SRAM را برای استفاده در حافظه پنهان ایده آل میکند.
حافظه پنهان پردازنده چگونه کار میکند؟
همانطور که ممکن است از قبل مطلع باشید، یک برنامه به عنوان مجموعهای از دستورالعملها طراحی شده است که توسط CPU اجرا میشود. هنگام اجرای یک برنامه، این دستورالعملها باید از حافظه اصلی به CPU راه پیدا کنند. اینجاست که سلسله مراتب حافظه وارد عمل میشود.
دادهها ابتدا در حافظه (RAM) بارگیری میشوند و سپس به CPU ارسال میشوند. این روزها پردازندهها قادر به انجام دستورات عظیم در هر ثانیه هستند. برای استفاده کامل از توان خود، پردازنده نیاز به دسترسی به حافظه فوق سریع دارد. اینجاست که حافظه پنهان وارد عمل میشود.
کنترل کننده حافظه وظیفه دارد دادهها را از RAM بگیرد و به حافظه پنهان ارسال کند. بسته به اینکه کدام مدل از پردازنده در سیستم شما وجود دارد، این کنترل کننده میتواند روی چیپست North Bridge مادربرد یا داخل CPU باشد.
سپس حافظه پنهان دادهها را به درون و بیرون پردازنده منتقل میکند. سلسله مراتب حافظه نیز در حافظه پنهان وجود دارد.
انواع سطوح این نوع حافظه
حافظه پنهان پردازنده به سه سطح اصلی L1، L2 و L3 تقسیم میشود. سلسله مراتب در اینجا دوباره با توجه به سرعت و به اندازه حافظه پنهان است.
حافظه پنهان L1 (سطح 1) سریعترین حافظهای است که در سیستم کامپیوتر وجود دارد. از نظر اولویت دسترسی، حافظه پنهان L1 دارای دادههایی است که پردازنده به احتمال زیاد هنگام انجام یک کار خاص به آن نیاز دارد.
تا جایی که اندازه پردازنده اجازه میدهد، حافظه نهان L1 به طور معمول تا 256 کیلوبایت میرسد. با این حال، برخی پردازندههای مرکزی بسیار قدرتمند کنونی از حافظه پنهان با ظرفیت نزدیک به 1 مگابایت استفاده میکنند. برخی از چیپستهای سرور (مانند پردازندههای برتر Xeon اینتل) اکنون چیزی در حدود 1-2 مگابایت حافظه پنهان L1 دارند.
حافظه پنهان L1 نیز معمولاً به دو طریق حافظه پنهان دستورالعمل و حافظه پنهان داده تقسیم میشود. حافظه نهان دستورالعمل با اطلاعات مربوط به عملیاتی که پردازنده مجبور است انجام دهد سروکار دارد، در حالی که حافظه نهان داده، دادههایی را که قرار است عملیات بر روی آنها انجام شود در خود نگه میدارد.

حافظه نهان L2 (سطح 2) کندتر از حافظه نهان L1 است، اما اندازه آن بزرگتر است. اندازه آن معمولاً بین 256 کیلوبایت تا 8 مگابایت متغیر است، اگرچه پردازندههای قدرتمند جدیدتر تمایل به بیشتر کردن ظرفیت آن را دارند. حافظه نهان L2 دادههایی را نگهداری میکند که احتمالاً توسط پردازنده بعدی قابل دسترسی است. در بیشتر پردازندههای مدرن، حافظه نهان L1 و L2 در هستههای پردازنده وجود دارد و هر هسته حافظه پنهان خود را دارد.
حافظه نهان L3 (سطح 3) بزرگترین واحد حافظه نهان و همچنین کندترین واحد حافظه نهان است. ظرفیت آن میتواند بین 4 تا 50 مگابایت باشد. پردازندههای مدرن فضای مخصوصی در پردازنده برای حافظه نهان L3 اختصاص دادهاند که در عین حال قسمت بزرگی از فضا را اشغال میکند.
تاخیر و موفق شدن یا نشدن حافظه نهان
دادهها از حافظه (RAM) به حافظه نهان L3 و سپس به L2 و در آخر به L1 منتقل میشوند. وقتی پردازنده به دنبال داده برای انجام عملیاتی است، ابتدا سعی میکند آن را در حافظه پنهان L1 پیدا کند. اگر پردازنده بتواند آن را پیدا کند، به این حالت موفق شدن حافظه نهان (cache hit) گفته میشود. سپس پیدا کردن آن در L2 و سپس L3 ادامه مییابد.
اگر داده را پیدا نکند، سعی میکند از حافظه اصلی به آن دسترسی پیدا کند. به این حالت موفق نشدن حافظه نهان (cache miss) گفته میشود.
اکنون، همانطور که میدانیم، حافظه پنهان برای سرعت بخشیدن به تبادل اطلاعات بین حافظه اصلی و پردازنده مرکزی طراحی شده است. زمان مورد نیاز برای دسترسی به دادهها از حافظه تاخیر (Latency) نامیده میشود. حافظه نهان L1 کمترین تأخیر، سریعترین و نزدیکترین به هسته است و L3 بالاترین میزان تاخیر را دارد. میزان تأخیر در هنگام از بین رفتن حافظه پنهان بسیار افزایش مییابد. این تاخیر به این دلیل است که پردازنده مجبور است دادهها را از حافظه اصلی دریافت کند.
با افزایش سرعت و بهتر شدن کامپیوترها، شاهد کاهش میزان تأخیر هستیم. اکنون حافظه (RAM) با تاخیر کم DDR4 و هارد دیسک بسیار سریع از نوعSSD با زمان دسترسی کم به عنوان ذخیرهساز اولیه وجود دارد که هر دو این حافظهها میزان تاخیر کلی را کاهش میدهند.
قبلاً در طراحی حافظه نهان، حافظه نهان L2 و L3 خارج از پردازنده قرار میگرفت که تأثیر منفی بر میزان تأخیر داشت.
با این حال، پیشرفتهای به وجود آمده در فرآیندهای ساخت مربوط به ترانزیستورهای پردازنده مرکزی باعث شده تا جای دادن میلیاردها ترانزیستور در فضای کوچکتر از گذشته امکان پذیر باشد. در نتیجه، فضای بیشتری برای حافظه نهان باقیمانده است، که اجازه میدهد تا حافظه نهان تا حد ممکن به هسته نزدیک شود و میزان تاخیر را تا حد قابل توجهی کاهش دهد.
آینده حافظه پنهان
طراحی حافظه پنهان همیشه در حال پیشرفت است، به خصوص که حافظه ارزانتر، سریعتر و کوچکتر میشود. اینتل و AMD تجربه خوبی در طراحی حافظه نهان داشتهاند، حتی اینتل تجربه طراحی یک حافظه نهان L4 را نیز داشته است. بازار CPU سریعتر از همیشه در حال حرکت به جلو است.
در این شرایط قطعاً خواهیم دید که طراحی این قسمت از پردازندهها با قدرت رو به رشد پردازندهها همگام است.
علاوه بر این، کارهای زیادی برای کاهش تنگناهای کامپیوترهای مدرن انجام شده است. کاهش تأخیر حافظه شاید تنها یکی از بزرگترین قسمتهای آن باشد. این صنعت در حال تلاش برای دستیابی به راه حلهایی برای همین موضوع است و آینده واقعاً امیدوار کننده به نظر میرسد.
مطالبی که شاید برای شما مفید باشد
انواع آداپتورها و انواع کارتهای PCI Express