حافظه کش L1، L2 و L3 چگونه بر عملکرد پردازنده تاثیر می گذارد؟
هنگام خرید یک پردازنده جدید، شما با مشخصات متعددی مانند تعداد هستهها، سرعت کلاک، TDP و فرآیند تولید روبرو خواهید شد. یکی از جنبههای کلیدی سختافزار پردازنده، حافظه کش است که با ذخیرهسازی دادههایی که به طور مکرر مورد دسترسی قرار میگیرند، به افزایش سرعت عملکرد پردازشی کمک میکند.
حافظه کش پردازنده برای رفع نیازهای پردازندهها در دهه 1980 توسعه یافت، زمانی که سرعت آنها از حافظه سیستم (RAM) پیشی گرفت. پردازندههای امروزی نسبت به کامپیوترهای اولیه دارای حجم بالایی از حافظه کش هستند، که این امر یکی از جنبههای حیاتی است که محاسبات مدرن را متمایز میکند. در ادامه، به بررسی سلسله مراتب حافظه کش پردازنده و تأثیر آن بر عملکرد پردازنده خواهیم پرداخت.
تفاوت کش L1، L2 و L3 چیست؟
پیش از دهه 1980، سرعت پردازنده (CPU) و حافظه دسترسی تصادفی (RAM) به قدری پایین بود که تفاوت سرعت آنها مسئلهای جدی به نظر نمیرسید. با این حال، با افزایش سرعت پردازنده ها، حافظه رم نتوانست با این تغییرات همگام شود و نیاز به نوع جدیدی از حافظهای سریعتر احساس شد.
این نیاز منجر به توسعه حافظه کش CPU گردید. این حافظه داخلی، که به مراتب سریعتر از حافظه سیستم است (تقریباً 10 تا 100 برابر سریعتر)، از این پس پردازندهها را از انتظار برای دریافت اطلاعات از رم نسبتاً کندتر بینیاز کرد. امروزه، حافظه کش پردازنده یکسان نیست و در سه (گاهی اوقات چهار) سطح مختلف، یعنی L1، L2، و L3 وجود دارد.
تفاوت اصلی بین این سطوح در سرعت، ظرفیت و هزینه آنهاست. حافظه کش L1 یا حافظه اولیه، نزدیکترین فاصله را به هسته CPU دارد، در حالی که حافظه کش L2 کمی دورتر و حافظه کش L3 دورترین فاصله را به هسته دارد. حافظه کش L1، سریعترین ولی کوچکترین بافر حافظه در هستهی CPU است که معمولاً به کیلوبایت اندازهگیری میشود.
این حافظه کش، دادههایی را که پردازنده به احتمال زیاد در هنگام انجام عملیات خاصی به آنها نیاز دارد، ذخیره میکند. با سرعتی که تقریباً 100 برابر سریعتر از حافظه سیستم است، این حافظه اولین مکانی است که CPU برای واکشی دادههای مورد نیاز خود به آن مراجعه میکند. این حافظه عمدتاً به دو بخش کش دستورالعمل و کش داده تقسیم میشود.
کش دستورالعمل، طبق نامش، اطلاعات مربوط به دستورالعملهایی که قرار است اجرا شوند را ذخیره میکند، در حالی که کش دادهها، دادههایی را که باید عملیات روی آنها انجام شود، نگهداری میکند. هر هستهی پردازنده دارای حافظهی کش L2 مخصوص به خود است (همانند حافظهی کش L1).
حافظهی کش L2 که در پردازنده های مدرن به مگابایت اندازهگیری میشود، از حافظهی کش L1 کندتر است، اما باز هم تقریباً 25 برابر سریعتر از حافظهی سیستم (RAM) عمل میکند. حافظهی کش L2 معمولاً بزرگتر از حافظهی کش L1 بوده و در بیشتر پردازنده های مدرن، حدود 6 تا 12 مگابایت است.
در نهایت، حافظهی کش L3 یا حافظهی کش سطح آخر، کندترین ولی بزرگترین بافر حافظهی موجود برای CPU است (که همچنان حدود 10 برابر سریعتر از رم است). بر خلاف حافظههای کش L1 و L2، حافظهی کش L3 بین تمام هستههای پردازنده مشترک میباشد.
معمولاً در بیشتر پردازنده های مدرن، شاهد حافظهی کش L3 با ظرفیتی بین 24 تا 36 مگابایت هستیم، در حالی که پردازندههای Ryzen X3D AMD ممکن است تا 128 مگابایت حافظهی نهان V-Cache سهبعدی (یک نوع حافظهی کش L3) داشته باشند.
چگونه پردازنده از کش های مختلف حافظه استفاده می کند؟
جریان دادهها در میان انواع مختلف حافظه در کامپیوتر به این ترتیب است: از ذخیرهسازی اولیه به حافظه سیستم (RAM)، سپس به کش L3، پس از آن به کش L2، و در نهایت به حافظه کش L1 میرسد. وقتی پردازنده نیاز به دسترسی به دادهها برای اجرای یک عملیات خاص دارد، ابتدا با سریعترین حافظه موجود، یعنی حافظه کش L1، شروع میکند. اگر دادهها در حافظه کش L1 نباشند، به کش L2 و در صورت نیاز به کش L3 مراجعه میکند.
اگر پردازنده دادههای مورد نیاز را در یکی از سه سطح کش پیدا کند، به آن هیت کش میگویند. اگر نتواند و به حافظه سیستم مراجعه کند، به آن میس کش گفته میشود. ایدهآل این است که پردازنده همواره دادههای مورد نظر را در حافظه کش L1 بیابد. با این حال، حافظههای کش L2 و L3 نیز به طور قابل ملاحظهای سریعتر از رم هستند و تاخیر قابل توجهی ایجاد نمیکنند.
حافظه کش پردازنده برای کاهش تأخیر در سیستم طراحی شده تا با فراهم کردن دسترسی سریعتر به کشهای حافظه، عملکرد بهتری داشته باشد. با افزایش سرعت حافظه رم به واسطه پیشرفتهای DDR5، تأخیر کلی سیستم کمتر میشود، اما حافظه کش در پردازندهها همچنان یک عنصر کلیدی در این معادله است.
حافظه کش در پردازنده های مدرن چقدر مهم است؟
تقریباً تمامی پردازندههای مدرن مجهز به حافظههای کش L1، L2 و L3 هستند که برای انجام عملیات روزمره کافی میباشند. با این حال، حافظه کش پردازنده تنها عامل تعیینکننده عملکرد پردازنده نیست. با این وجود، اگر در جستجوی بالاترین عملکرد در بازیها هستید و نمیخواهید هیچ ریسکی بپذیرید، اهمیت حافظه کش بیش از پیش مشخص میشود.