پردازنده های کامپیوتری دائم در حال پیشرفتند و هر روز بهتر از دیروز عمل میکنند. تعداد ترانزیستورها در حجم کم در حال زیاد شدن است و این باعث میشود که آزادی عمل بیشتری برای طراحیهای CPU ایجاد شود و این قطعه بهتر عمل میکند. کش سی پی یو کنار تعداد ترانزیستور، هسته و فرکانس یکی از مشخصههای مهم CPU هست اما معمولا به آن توجه نمیشود. شاید دلیلش این است که کش CPU به سمتی میرود که همهی CPU ها باید آن را داشته باشند.
کش سی پی یو چیست ؟ تاثیر کش در سرعت سی پی یو
کش یک نوع حافظه شبیه حافظههای دیگر سیستم مثل RAM وهارد است ولی سرعت خیلی بالاتری دارد. یکی از خصوصیات مهم حافظهی cache این است که داخل خود CPU قرار گرفته است. حافظهها در کامپیوتر سلسله مراتبی دارند که در عکس پایین میبینید:
از این عکس میشود فهمید هرچی به سمت بالای هرم برویم سرعت بیشتر میشود ولی ظرفیت حافظه پایین می آید. برعکس هرچی به سمت پایین برویم ظرفیت حافظه بیشتر و سرعت پردازش اطلاعات کمتر میشود.
کش CPU چطور کار میکند؟
هر نرمافزاری که در سیستم اجرا میشود به پردازش نیاز دارد. دادههای این نرمافزار طبق سلسله مراتب حافظه، روی هارد قرار دارد و بعد از اجرا به رم فرستاده میشود و رم آن را برای پردازش به سی پی یو منتقل میکند. در آخر سی پی یو دادهی پردازششده را به حافظهی اصلی شما بر میگرداند. هرکدام ازاین مسیرها کمی تاخیر دارند، اما کش CPU این تاخیر را از بین میبرد. کش دقیقا اطلاعاتی را که سی پی یو به آن نیاز دارد درهمان لحظه در اختیارش قرار میدهد؛ اما چون کش داخل خود CPU قرار دارد این مسیر خیلی کوتاهتر شده و سرعت پردازش مخصوصا برای CPU های چند هستهای بیشتر میشود. کش سی پی یو خودش سلسلهمراتبی دارد. البته اوایل فقط یک یا دو سطح داشت (L1 و L2) اما CPU های امروزی تا L3 دارد.
سطوح کش سی پی یو (L1, L2, L3)
سی پی یو های جدید برای حافظه سه سطح دارن: L2 ،L1 و L3 این سه سطح بر اساس سرعت و ظرفیت، سلسلهمراتبی دارن.
cache L1
کش 1 یا L1 سریعترین حافظه در سیستم شماست. این سطح، ظرفیت حافظهی خیلی کمی داره و معمولا 256 کیلوبایت بیشتر نیست ولی در سی پی یو های قوی مثل Intel Xeon سرور این کش به 1 یا 2 مگابایت هم میرسد. سی پی یو برای پردازش، اول سراغ این سطح میرود و اگر دادهی مورد نظر داخل آن باشد با سرعت خیلی بالایی به CPU منتقل میشود و پردازش انجام میشود.
معمولا cache L1 به دو بخش دستورالعملها و دادهها تقسیم میشود. cache اولی با دستورالعملهایی سروکار دارد که باید روی داده انجام شود وcache دومی، دادههایی را ذخیره میکند که باید پردازش شود.
cache L2
کش L2 نسبت به کش L1 سرعت کمتری داره ولی میتونه مقدار دادهی بیشتری رو در خودش جا بده. این کش CPU معمولا بین 256 کیلوبایت تا 8 مگابایت حافظه داره و به خاطر همین، سطح L2 به عملکرد کل کش کمک خیلی زیادی کرده. معمولا در سی پی یو های مدرن چند هستهای هر هسته سطوح L1 و L2 جداگونه داره.
cache L3
این سطح بیشترین حافظه را دارد و در پایین این سلسلهمراتب قرار میگیرد پس سرعتش هم از دو تای قبلی کمتراست. ظرفیت حافظهی این سطح بین 8 تا 128 مگابایت برای سی پی یو های مختلف متغیراست. این حافظهی زیاد باعث میشود CPU پردازشهای سنگین مثل محاسبات پیچیده را با سرعت خیلی بالایی انجام بدهد بدون اینکه مشکلی برای آن پیش بیاید.
Hit or Miss کش سی پی یو
طبق سلسله مراتبی که گفتیم دادهها اول از رم به سطح L3 سی پی یو منتقل میشود و از L3 به L2 و همینطور در آخر از L2 به L1 میرسد. CPU برای پردازش دادهی مورد نظر اول از همه در کش L1 دنبال آن میگردد و اگر پیدا نکرد L2 و L3 را هم چک میکند.
در صورتی که سی پی یو دادهی مورد نظرش را داخل cache پیدا کند Cache Hit (دستیابی به داده) اتفاق می افتد.
گاهی اوقات بهخاطر حجم اطلاعات زیاد ، یا شلوغ بودن مسیر انتقال، یا اینکه نرمافزار مورد استفاده با سیستم پردازش جدید ناسازگارباشد ، دادهی مورد نظر در کش پیدا نمیشود وCPU درخواست آن داده را به RAM میدهد, در این صورت Cache Miss (عدم دستیابی به داده) اتفاق میافتد.
تاخیر یا تایمینگ
هر قطعه تاخیر یا تایمینگی دارد. تاخیر درCPU بسته به اینکه داده در کدام سطح باشد یا اینکه Cache Miss اتفاق بیافتد، فرق میکند . هر چی داده به سطح L1 نزدیکتر باشد تاخیر CPU کمتراست.
مثل حافظه کش در سی پی یو، این تاخیر در رم و حافظه اصلی وجود دارد. البته با پیشرفت چشمگیری که این روزها در ساخت قطعهها میبینیم، این تاخیر هر روز کمتر میشود مثل رمهای DDR4 یا حافظههای اصلی SSD که سرعت بالا و تاخیر خیلی کمی در انتقال دارند.
روش تشخیص مقدار حافظه کش پردازنده سیستم
فهمیدن مقدار کش پردازنده با کمک CMD
برای مطلع شدن از مقدار کش CPU فقط کافیست به ترتیب مراحل زیر را اجرا کنید :
1) دکمه های Win + R را همزمان فشار داده یا در قسمت search ویندوز عبارت RUN را تایپ کنید.
2) پس از اجرای پنجره RUN عبارت CMD را تایپ کنید.
3)در نهایت در پنجره باز شده عبارت ( wmic cpu get L2CacheSize, L3CacheSize ) را دقیق و با حفظ بزرگ و کوچیک بودن حروف آن را وارد کنید تا برایتان مقدار حافظه سطح 2 و 3 به نمایش در بیاید
فهمیدن مقدار کش پردازنده با کمک برنامه CPU-Z
پس از دانلود و نصب برنامه CPU-Z از سایت رسمی آن و پس از اجرای آن در همان صفحه اصلی یعنی تب CPU به قسمت پایینی برنامه قسمت کش توجه کنید میتوانید مقدار دقیق حافظه کش را مشاهده کنید.
فهمیدن مقدار کش با کمک Task Manager
یک راه حل بسیار ساده و کاربردی دیگر استفاده از تسک منیجر است برای دیدن مقدار کش پردازنده برای این کار کافی است تا مراحل زیر را به ترتیب انجام دهید و نتیجه رو مشاهده کنید :
- دکمه های ترکیبی Ctrl + Shift +Esc را بزنید یا در نوار جست و جو ویندوز سرچ کنید Task manager و آن را اجرا کنید.
- در تب Performance بر روی نمودار CPU کلیک کنید.
- در قسمت راستی پنجره موجود میتوانید مقدار حافظه کش را مشاهده کنید همانند عکس پایین :
آیا کش بالا برای گیمینگ مناسب است؟
اگر قصد خرید سیستم گیمینگ دارید، شاید بپرسید که آیا پردازنده با حافظه کش بالا نیاز است یا خیر؟ اگر به صورت کلی بخواهیم پاسخ این سوال را بدهیم باید بگویم که حافظه کش در گیمینگ از اهمیت بالایی برخوردار نیست و نباید هنگام خرید سیستم گیمینگ اولویت شما قرار بگیرد. حافظه کش برای پردازش سریع در نرم افزارهای رندرینگ بیشتر نمایان می شود. پس اگر به دنبال خرید سیستم رندرینگ هستید میتوانید روی پردازنده هایی با کش بالا حساب باز کنید و از سرعت کش آن برای رندر و عملکرد بالا استفاده کنید. به طور کلی حافظه کش 16 مگابایتی سطح سه (L3) کاملا میتواند برای یک سیستم گیمینگ کافی باشد.
سوالات متداول
آیا وجود Cache در سیستمها مفید است؟
بله قطعا وجود این حافظه تاثیر بسیار مفیدی بر عملکرد کلی سیستم دارد. زیرا اطلاعات (به خصوص مطالب تکراری که مکررا به آنها نیاز است) راحتتر پردازش میشوند و در اختیار کاربران قرار میگیرند.
Cache Hit چیست؟
زمانی Cache Hit رخ میدهد که پردازنده برای دسترسی به اطلاعات مورد نیاز، دادههای موجود درcache L1 را بررسی میکند.
مهمترین تفاوت L1، L2 و L3 چیست؟
مهمترین تفاوت آنها در محل قرارگیری، سرعت، ظرفیت و هزینه است.
Cache Miss چیست؟
اگر سیستم، دادههای مورد نیازش را از قسمت کش پیدا نکند، اطلاعات حافظه اصلی را بررسی میکند که به این اتفاق Cache Miss میگویند.
برای افزایش ظرفیت حافظه کش چه کنیم؟
باید سی پی یویی با ظرفیت کش بالاتر تهیه کنید.