پردازنده کامپیوترها در سالهای اخیر پیشرفت چشمگیری داشتند و ترانزیستورها روز به روز در حال کوچک شدن هستند. وقتی درباره پردازنده صحبت میکنیم، موضوع فقط ترانزیستور و فرکانس آن نیست، بلکه فاکتوری به نام “کش” هم مهم است. ممکن است تا بهحال زیاد درباره کش حافظه شنیده باشید، اما معمولا عدد کش پردازندهها زیاد مورد بحث قرار نمیگیرد. کش پردازنده همچنین جزء مهمترین فاکتورهای انتخاب یک پردازنده نیست که دنبالشاش هستید.
پس سوالی که باقی میماند این است که کش پردازنده چیست و چگونه کار میکند؟ و آیا اهمیت دارد؟
کش پردازنده چیست؟
به زبان ساده، کش پردازنده یک حافظه خیلی سریع است. در اوایل دوران کامپیوترها، سرعت حافظه و پردازنده پایین بود. اما از اواخر قرن 20 میلادی، سرعت پردازندهها با سرعت زیادی رشد کرد. در کنار این رشد بالا، سرعت RAM ها نتوانست با همین سرعت پیشرفت کند؛ برای همین بود که نوع جدیدی از حافظه (مموری)ها پدید آمد به نام “کش مموری یا حافظه کش”.
البته امروزه کامپیوتر مورد استفاده شما انواع مختلفی از حافظه را دارد؛ مانند HDD یا SSD. نوع دیگر حافظهها، RAM ها هستند که سرعت بسیار بیشتری نسبت به حافظه داخلی دارد، اما اطلاعات داخل آن موقتی است و با خاموش شدن کامپیوتر پاک میشود. سیستمعامل و نرمافزارها برای ذخیره اطلاعاتی که زیاد با آن کار میکنند، از RAM استفاده میکنند تا سرعت کامپیوتر بالا رود. الان نیز پردازندهها، حافظه مخصوص خودشان به نام کش پردازنده را دارند که فوقالعاده سریع است.
اگر حافظهها را براساس سرعتشان مرتب کنیم، کش پردازنده در بالای لیست قرار میگیرد، به عنوان سریعترین حافظه. طبق گزارشها، کش پردازنده میتواند بین 10 تا 100 برابر سریعتر از رم کار کند. بدین ترتیب، هرچه پردازنده شما کش بیشتری داشته باشد، بهتر است. هرچه پردازنده شما از نسل جدیدتر هم باشد، سرعت و حجم آن بیشتر است.
بیشتر بخوانید: مقایسه Intel Iris با Intel UHD؛ کدوم بهتره؟
کش پردازنده چگونه کار میکند؟
برنامهها و نرمافزارهای کامپیوتر شما به شکل مجموعهای از دستورالعملها طراحی شدهاند تا پردازنده آن را تفسیر و اجرا کند. وقتی برنامه را اجرا میکنید، این دستورالعملها ابتدا از حافظه داخلی به رم، و سپس از آنجا به پردازنده منتقل میشوند. پردازندهها قادر به اجرای دستورات زیادی در ثانیه هستند. برای اینکه بتوانیم از حداکثر توان پردازنده بهره ببریم، به یک حافظه فوق سریع نیاز داریم؛ جاییکه حافظه کش وارد ماجرا میشود.
کنترلرِ حافظه اطلاعات را از رم میگیرد و به کش پردازنده میفرستد. براساس نوع پردازندهای که در اختیار دارید، این کنترلر روی خود پردازنده و یا روی چیپست Northbridge در مادربرد وجود دارد. این کش نیز اطلاعات را داخل پردازنده براساس نیاز منتقل میکند.
دستهبندیهای کش حافظه
کش پردازنده براساس سرعت و سایز، در 3 سطح مختلف دستهبندی میشود: L2 ،L1 و L3. سوال این است که آیا تفاوت اندازه کش، روی عملکرد آن تاثیر دارد؟
کش سطح L1:
سطح یک (L1) سریعترین نوع حافظه است که در کامپیوتر وجود دارد. اطلاعات در این حافظه همان چیزهایی هستند که انتظار میرود پردازنده وقتی در حال انجام یک کار خاص است، نیاز داشته باشد. اندازه کش L1 بسته به پردازنده شما متفاوت است. یکسری از بهترین پردازندههای مورد استفاده مانند Intel i9-9980XE، به شما 1 مگابایت کش پردازنده میدهد. البته اینکار هزینه پردازنده را به شدت بالا میبرد که برای پردازندههای کامپیوتر و لپتاپ اصلا منطقی نیست. این مقدار برای پردازندههای سرور بین 1 تا 2 مگابایت میتواند باشد.
کش L1 معمولا به 2 بخش تقسیم میشود: کش دستورالعمل و کش اطلاعات. همانطور که از نامشان پیداست، کش دستورالعمل، دستوراتی را در خودش نگه میدارد که پردازنده برای کار به آن نیاز دارد. به همین ترتیب کش اطلاعات نیز دادههایی را ذخیره میکند که پردازنده برای پردازش به آن نیاز دارد.
کش سطح L2:
کش L2 از نظر سرعت کمتر از L1 است، اما اندازه آن بیشتر است. کشهای L1 را معمولا با کیلوبایت اندازه میگیریم، ولی این معیار برای L2 مگابایت است. به عنوان مثال، پردازنده ردهبالای Ryzen 5 5600X مقدار 384KB کش L1 دارد، و این عدد برای L2 برابر 3 مگابایت است.
از نظر سرعت، همانطور که گفتیم L2 کندتر از L1 است، ولی همچنان به شکل قابل توجهی سریعتر از رم است. به طول معمول، کش L1 حدود 100 برابر سریعتر از رم است، و این عدد برای L2 برابر 25 است.
کش سطح L3:
در گذشته وقتی پردازندهها تک هستهای بودند، کش پردازنده سطح 3 معمولا روی مادربرد پیدا میشد. اما الان کش L3 را میتوانید روی خود پردازنده با حجمهای خیلی بالا ببینید. پردازندههای ردهبالای امروزی 32 مگابایت کش L3 به شما میدهند، و حتی پردازندهای مانند Ryzen 7 5800X3D، این عدد را به 96 مگابایت رسانده است که بینظیر است.
کش L3 بزرگترین، و در عین حال کند ترین کش است. CPU های مدرن شامل کش L3 در خود CPU هستند. اما وقتی نمونههای L1 و L2 برای هر هسته روی خود تراشه وجود دارد، کش L3 بیشتر شبیه یک حافظه عمومی است که کل چیپ می تواند از آن استفاده کند.
در زیر میتوانید سطحبندیهای مختلف کش پردازنده را برای Intel Core i5-3570K (معرفی در سال 2012) و AMD Ryzen 5800X (معرفی در 2020) ببینید.
کش چقدر برای گیم مهم است؟
کش پردازنده نقش مهمی در حوزه گیمینگ ایفا میکند. بعد از فاکتورهای مهمی مانند سرعت کلاک یا نرخ دستورالعمل بر کلاک (Instruction Per Seconds)، این مقدار کش است که تفاوتها را ایجاد میکند. مقدار کش مهم است، چراکه خود بازیها بر همین اساس طراحی شدهاند. در مقایسه زیر، میتوانیم تفاوت نقش کش را مشاهده کنیم.
بازیهای امروزه اتفاقات رندوم زیادی را تولید میکنند، این یعنی پردازنده نیاز دارد یک دستور را به طور مداوم تکرار کند. اگر مقدار کش به اندازه کافی نباشد، کارت گرافیک شما باید منتظر پردازنده بماند تا دستورات را اجرا کند. در سالهای اخیر تمایل زیادی به کشهای بالاتر در پردازندهها را میتوانیم ببینیم. پردازندههای Intel و AMD نیز در این زمینه رقابت نزدیکی با یکدیگر دارند.
بیشتر بخوانید: هسته پردازندهها چگونه کار میکنند؟