کامپیوتر و لپ تاپ

هر آنچه که باید در مورد کش سی پی یو بدانید

خرید کابل شبکه

پردازنده های کامپیوتری دائم در حال پیشرفتن و هر روز بهتر از دیروز عمل می‌کنن. تعداد ترانزیستورها در حجم کم در حال زیاد شدنه و این باعث میشه که آزادی عمل بیشتری برای طراحی‌های CPU ایجاد بشه و این قطعه بهتر عمل کنه. کش سی پی یو کنار تعداد ترانزیستور، هسته و فرکانس یکی از مشخصه‌های مهم CPU هست اما معمولا به اون توجه نمیشه. در تبلیغات AMD و Intel هم خیلی بهش پرداخته نمیشه. شاید دلیلش اینه که کش CPU به سمتی میره که همه‌ی CPU ها باید اون رو داشته باشن. در این مقاله اینکه حافظه کش سی پی یو چیست رو بررسی می‌کنیم.

ترانزیستور CPU

کش سی پی یو چیست ؟ تاثیر کش در سرعت سی پی یو

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

یکی از ویژگی‌های تاثیرگذار روی سرعت سیستم فرکانس، سی پی یو هستش، مقاله‌ی فرکانس پردازنده به چه معناست؟ می‌تونه اطلاعاتی راجع به این موضوع بهتون بده.

کش یک نوع حافظه شبیه حافظه‌های دیگه‌ی سیستم مثل RAM وهارده ولی سرعت خیلی بالاتری داره. یکی از خصوصیات مهم حافظه‌ی کش اینه که داخل خود CPU قرار گرفته. حافظه‌ها در کامپیوتر سلسله مراتبی دارن که در عکس پایین می‌بینید:

سلسله مراتب حافظه

از این عکس میشه فهمید هرچی به سمت بالای هرم بریم سرعت بیشتر میشه ولی ظرفیت حافظه پایین میاد. برعکس هرچی به سمت پایین بریم ظرفیت حافظه بیشتر و سرعت پردازش اطلاعات کمتر میشه. راجع به L2, L1 و L3 هم حرف می‌زنیم.

کش سی پی یو نزدیک‌ترین حافظه به سی پی یو هستش (داخل خود CPU) و دسترسی خیلی سریعی برای CPU داره. انواع مختلف رم کامپیوتر وجود داره. این حافظه از نوع رم استاتیکه (SRAM)، درست برخلاف RAM کامپیوتر که از نوع داینامیک رمه (DRAM). این نوع رم به رفرش مداوم نیاز نداره و برای کش سی پی یو ایدئاله.
سی پی یو

کش CPU چطور کار می‌کند؟

هر نرم‌افزاری که در سیستمتون اجراش می‌کنین به پردازش نیاز داره. داده‌های این نرم‌افزار طبق سلسله‌مراتب حافظه، روی هاردتون قرار داره و بعد از اجرا به رم فرستاده میشه و رم اون رو برای پردازش به سی پی یو منتقل می‌کنه. در آخر سی پی یو داده‌ی پردازش‌شده رو به حافظه‌ی اصلی شما بر می‌گردونه. هرکدوم ازین مسیر‌ها کمی تاخیر دارن، اما کش CPU این تاخیر رو از بین می‌بره. چطوری؟ کش دقیقا اطلاعاتی رو که سی پی یو به اون نیاز داره در همون لحظه در اختیارش قرار میده؛ اما چون کش داخل خود CPU قرار داره این مسیر خیلی کوتاه‌تر شده و سرعت پردازش مخصوصا برای CPU های چند هسته‌ای بیشتر میشه. کش سی پی یو خودش سلسله‌مراتبی داره. البته اوایل فقط یک یا دو سطح داشت (L1 و L2) اما CPU های امروزی تا L3 دارن.

بهترین سی پی یو های گیمینگ

اگه می‌خواین سی پی یو بخرین و بین AMD و Intel نمی‌تونین یکی رو انتخاب کنین مقاله‌ی مقایسه CPU های Intel و AMD غول های صنعت پردازش کمکتون می‌کنه.

تاخیر انتقال اطلاعات و داده‌ها به خیلی چیز‌ها بستگی داره، مثلا اتصالات بین سخت‌افزارها، سرعت باس بین سی پی یو و رم، تایمینگ رم، رسانایی و نیمه رسانایی مادربرد و خیلی چیزای دیگه.
سوکت سی پی یو

سطوح کش سی پی یو (L1, L2, L3)

سی پی یو های جدید برای حافظه سه سطح دارن: L2 ،L1 و L3 این سه سطح بر اساس سرعت و ظرفیت،‌ سلسله‌مراتبی دارن.

سلسله مراتب کش

کش L1

کش 1 یا L1 سریع‌ترین حافظه در سیستم شماست. این سطح، ظرفیت حافظه‌ی خیلی کمی داره و معمولا 256 کیلوبایت بیشتر نیست ولی در سی پی یو های قوی مثل Intel Xeon سرور این کش به 1 یا 2 مگابایت هم میرسه. سی پی یو برای پردازش، اول سراغ این سطح میره و اگه داده‌ی مورد نظر داخل اون باشه با سرعت خیلی بالایی به CPU منتقل میشه و پردازش انجام میشه.

معمولا کش L1 به دو بخش دستورالعمل‌ها و داده‌ها تقسیم میشه. کش اولی با دستورالعمل‌هایی سروکار داره که باید روی داده انجام بشه و کش دومی، داده‌هایی رو ذخیره می‌کنه که باید پردازش بشه.

skylake طراحی کش

کش L2

کش L2 نسبت به کش L1 سرعت کمتری داره ولی می‌تونه مقدار داده‌ی بیشتری رو در خودش جا بده. این کش CPU معمولا بین 256 کیلوبایت تا 8 مگابایت حافظه داره و به خاطر همین، سطح L2 به عملکرد کل کش کمک خیلی زیادی کرده. معمولا در سی پی یو های مدرن چند هسته‌ای هر هسته سطوح L1 و L2 جداگونه داره.

تفاوت عملکرد l1 با L2

کش L3

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

اندازه کش سی پی یو

Hit or Miss کش سی پی یو

طبق سلسله مراتبی که گفتیم داده‌ها اول از رم به سطح L3 سی پی یو منتقل میشه و از L3 به L2 و همین‌طور در آخر از L2 به L1 میرسه. CPU برای پردازش داده‌ی مورد نظرش اول از همه در کش L1 دنبال اون می‌گرده و اگه پیدا نکرد L2 و L3 رو هم چک می‌کنه. در صورتی که سی پی یو داده‌ی مورد نظرش رو داخل کش پیدا کنه Cache Hit (دستیابی به داده) اتفاق میفته.

بعضی وقت‌ها به‌خاطر حجم اطلاعات زیاد یا شلوغ بودن مسیر انتقال یا اینکه نرم‌افزار مورد استفاده با سیستم پردازش جدید ناسازگاره، داده‌ی مورد نظر در کش پیدا نمیشه و سی پی یو درخواست اون داده رو به رم میده. در این صورت Cache Miss (عدم دستیابی به داده) اتفاق میفته.

نرخ cache Hit
در پردازنده‌های خیلی قوی، نرخ Cache Hit در سطح L1 به 95 تا 97 درصد هم میرسه و سی پی یو تقریبا همیشه اطلاعات مورد نظرش رو داخل کش پیدا می‌کنه. البته این تفاوت دو درصدی بین 97 تا 95 تقریبا 10 درصد روی عملکرد کش CPU تاثیر میذاره. این تفاوت به خاطر اینه که اون داده‌ی مورد نظر اگه در سطح L1 پیدا نشه، سی پی یو باید همه‌ی سطح L2 رو بگرده تا داده رو پیدا کنه.

تاخیر یا تایمینگ

هر قطعه تاخیر یا تایمینگی داره. تاخیر در سی پی یو بسته اینکه داده در کدوم سطح باشه یا اینکه Cache Miss اتفاق بیفته، فرق می‌کنه. هر چی داده به سطح L1 نزدیک‌تر باشه تاخیر سی پی یو کمتره.

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

البته قبلا L1 و L2 بیرون CPU قرار داشت که تاخیر نسبتا زیادی در انتقال داده ایجاد می‌کرد، اما امروزه به خاطر کوچیک شدن ترانزیستور‌های سی پی یو و زیاد شدنشون، این کش داخل سی پی یو قرار گرفته و باعث شده داده‌ی مورد نظر در نزدیک‌ترین فاصله به هسته‌ی CPU قرار بگیره و این اتفاق تاخیر رو تا حد زیادی کاهش داده.

چرا رم رو مثل کش CPU نمی‌سازن؟

رم و کش سی پی یو

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

تاثیر کش در سرعت CPU ، آیا کش بیشتر سرعت سیستم رو بالا می‌بره؟

اگه می‌خواین سیستم خودتون رو ارتقا بدین و دنبال یک رم گیمینگ خوبین، پیشنهاد می‌کنم مقاله‌ی راهنمای خرید بهترین رم گیمینگ رو مطالعه کنین.

یک کش CPU با حافظه‌ی بالاتر روی سرعت سیستم موثره ولی لزوما اون رو بالا نمی‌بره، چون سرعت به مجموعه قطعات و اتصالات ربط داره و یک مشخصه به‌تنهایی نمی‌تونه تاثیر زیادی داشته باشه. از طرف دیگه اگه مادربرد و رم یا به‌طور کلی سیستم قدرت کافی نداشته باشه، کش سی پی یو نرخ Cache Hit رو زیادتر نمی‌کنه و در نتیجه سرعت بالاتر نمیره.

حرف آخر

در این مقاله کش سی پی یو رو بررسی کردیم و به این نتیجه رسیدیم که طراحی کش CPU یکی از بهترین راه کار‌های افزایش کلی سرعت کامپیوتره. این مشخصه هر روز در حال پیشرفته و ممکنه به‌طور کلی رم رو از سیستم‌های کامپیوتر حذف کنه. هر حافظه کش 3 سطح داره: L2، L1 و L3. کش L1 سریع‌ترین حافظه‌ی کامپیوتر محسوب میشه. اگه سوالی راجع به حافظه کش سی پی یو دارین در قسمت نظرات برامون کامنت بذارین.

دانلود فایل PDF این مقاله

فایل PDF این مقاله

سوالات متداول

کش سی پی یو چیست؟

کش سی پی یو یک حافظه با سرعت خیلی بالاست که در نزدیک‌ترین نقطه به CPU قرار داره. این حافظه در کوتاه‌ترین زمان داده‌ی مورد نظر رو در اختیار سی پی یو قرار میده.

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

در واقع این کار رو می‌کنن ولی مشکل اصلی نوع حافظه نیست بلکه فاصله‌ی رم تا سی پی یو روی سرعت پردازش تاثیر زیادی میذاره.

ظرفیت حافظه کش بیشتر سرعت کامپیوتر رو بیشتر می‌کنه؟

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

خرید تجهیزات پسیو شبکه

‫۱۵ دیدگاه ها

  1. سلام خسته نباشید .من با لب تاپ کاره اهنگسازی و …انجام میدم و گاهی اوقات cpu کشش نداره . رم دستگاه رو افزایش دادم به ۲۰ G و سی پی یو هم intel core i7 هست.حتی یه ssd 256 هم روی درایو c نصب کردم.اما باز مشکل دارم. نمیدونم باید چیکار کنم؟ حافظه کش رو باید هربار پاکسازی کنم یا اینکه تعدل و هماهنگی بین قطعات دستگاهم نیست؟ ممنون میشم راهنمایی کنید

  2. یک پردازنده با فرکانس بالاتر (مثلا ۳.۲GH) و کش پایین تر (مثلا۶M) بهتره یا یه پردازنده با فرکانس پایینتر (مثلا ۳GH) و کش بالاتر (مثلا۱۲M) ؟
    *با فرض بر اینکه تمامی قطعات دیگه از سرعت و مشخصات یکسانی برخوردارن*

  3. سلام
    اومدم بابت معرفی https://technical.city ازت تشکر کنم
    من در خرید دو لپ تاپ با cpu های متفاوت( A10 Pro-7350B و Core i7-4600U) شک داشتم و از هر کسی راهنمایی میگرفتم نمیتونست راهنمایی دقیقی کنه.
    با کمک سایتی که معرفی کردی خیلی دقیق و عالی تونستم انتخاب کنم.
    واقعا ممنونم ازت

    1. سلام، مسعود جان این که کش سی پی یو چند باشه تأثیری نداره برای برنامه نویسی، شما بهتره بنچمارک پردازنده مورد نظرتون رو ببینید تا به قدرت سی پی یو پی ببرید. یک سی پی یو قدیمی با کش ۴ مگ به هیچ وجه با یه سی پی یو نسل جدید قابل مقایسه نیست. برای این کار سایت technical.city رو بهتون پیشنهاد می کنم، چون همه بنچمارک رو یجا بهتون میده و میتونید پردازنده ها رو مقایسه کنید.

    1. سلام مدل سی پی یو شما چیه؟ برای این که بدونید چه بازی هایی رو میتونید با این سی پی یو بازی کنید باید بنچمارکش رو بررسی کنید، میتونید از سایت technical.city استفده کنید

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

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

دکمه بازگشت به بالا