آموزشسخت افزار

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

پردازنده‌های کامپیوتری طی سال‌های اخیر پیشرفت زیادی داشته‌اند. ابعاد ترانزیستورهایی که روی پردازنده قرار می‌گیرند هر ساله کوچک‌تر می‌شوند و پیشرفت‌ها به جایی رسیده‌اند که قانون مور (قانونی که می‌گوید توانایی و سرعت کامپیوترها هر دو سال یکبار دوبرابر خواهد شد) دیگر سندیت نخواهد داشت. درمورد پردازنده فقط تعداد ترانزیستور و فرکانس آن محاسبه نمی‌‎شود بلکه کش پردازنده نیز عامل خیلی مهمی است.

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

کش پردازنده چیست؟

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

کش سی پی یو

پس از این حافظه با دسترسی تصادفی را داریم که عموما با اسم RAM(Random Access Memory) شناخته می‌شود. این نوع حافظه از حافظه اصلی سریع‌تر می‌باشد.

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

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

کش در مقایسه با رم سیستم که یک نوع رم داینامیک (DRAM) می‌باشد، یک رم استاتیک (SRAM) است. رم استاتیک به نوعی از حافظه اشاره دارد که می‌تواند داده ها را بدون نیاز به اینکه به صورت مداوم رفرش شود نگه دارد. به همین خاطر SRAM برای استفاده به عنوان کش کاملا ایده‌آل است.

کش پردازنده چطور کار می‌کند؟

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

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

کش سطح 1

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

سطوح مختلف کش سی پی یو (L1، L2، L3)

کش سی پی یو به سه سطح اصلی تقسیم می‌شود: کش L1، کش L2 و کش L3. سلسله مراتب در اینجا هم براساس سرعت و همچنین ابعاد کش می‌باشد.

L1 یا کش سطح 1 سریعترین حافظه موجود در یک سیستم کامپیوتری می‌باشد. از لحاظ اولویت دسترسی، کش L1 داده‌هایی را در اختیار دارد که پردازنده هنگام تکمیل یک Task خاص بیشترین نیاز را به آن‌‎ها دارد.

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

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

کش در سی پی یو

معماری کش در پردازنده‌های Skylake

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

کش سطح 3 بزرگترین واحد حافظه کش و همچنین کندترین آن‌ها است. میزان حافظه این کش می‌تواند بین 4 تا 50 مگابایت باشد. در پردازنده‌های مدرن یک فضای اختصاصی روی بدنه پردازنده برای کش سطح 3 در نظر گرفته شده است.

Hit or Miss کش سی پی یو و میزان تاخیر

داده‌ها ابتدا از رم به کش L3 سپس کش L2 و در نهایت L1 منتقل می‌شوند. هنگامی که پردازنده به داده‌هایی برای اجرای یک دستور نیاز داشته باشد، ابتدا تلاش می‌کند آن را در کش L1 پیدا کند. اگر موفق شود آن را در کش L1 پیدا کند وضعیت Cache Hit اعلام می‌شود. اما اگر نتواند آن را در L1 پیدا کند، به سراغ L2 و L3 می‌رود.

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

کش پردازنده چیست؟

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

هرچقدر که کامپیوترها سریعتر و بهتر می‌شوند، مدت زمان تاخیر نیز کاهش می‌یابد. ما امروزه رم‌های DDR4 را داریم که کمترین میزان تاخیر را دارند و SSD های فوق سریع که زمان دسترسی خیلی پائینی دارند. این دو میزان تاخیر نهایی را تا میزان زیادی کاهش می‌دهند.

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

آینده کش سی پی یو

با توجه به اینکه حافظه‌ها هر روزه سریع‌تر، ارزان‌تر و متراکم‌تر می‌شوند، طراحی کش نیز در حال تغییر است. اینتل و AMD به میزان کافی طراحی‌های مختلف کش را امتحان کرده‌اند و حتی اینتل کش L4 را هم امتحان کرده است. امروزه کش L4 بیش از هر زمان دیگری در حال حرکت به سمت سریعتر شدن است.

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

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

تفاوت کش سی پی یو و حافظه رم

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

امید اتحادمحکم

کارشناس واحد تولید محتوا و کارشناس ارشد فنی نت‌رانه. دانش‌آموخته‌ی مقطع کارشناسی ارشد برق از دانشگاه گیلانه. پیش از این‌که به خانواده‌ی نت‌ران بپیونده، به‌مدت 4 سال در زمینه‌ی اتوماسیون صنعتی و طراحی مدارهای الکترونیکی فعالیت حرفه‌ای داشته. امید در زمینه‌ی تولید و بازاریابی محتوا تخصص داره.
خبرنامه
Notify of
guest
13 نظرات
جدیدترین
قدیمی‌ترین Most Voted
Inline Feedbacks
View all comments
احسان پابرجا

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

مسعود

با سلام من میخوام لپتاپ بخرم ولی به یه مشکلی برخوردم حافظه ی کش ۴ مگ برای برنامه نویسی مناسبه یا کمه ؟

مهدی

سلام مادر برد من p43-es3g گیگابایت هست از کجا بفهمم کشش چقدره?

Ali

سلام
لپ تاپ هایی با مشخصات زیر:
Intel 10510U , Cache 8، ۱۶gb RAM
و
Intel 9750H, Cache 12 , 32gb RAM

کدوم برای رندر مناسب تره؟

متین

سلام ایا سی پی یو زئون با ۱۰ مگ کش برای بازی مناسب است؟

محمد

سلام مهندس جان به نظر شما حافظه کش بهتر است به سی پی یو نزدیک باشه یا رم

آتنا

بسیار عالی
ممنون از توضیحات کاملتون

محمد خزائی

خواهش می‌کنم
امیدوارم مقاله برای شما مفید واقع شده باشد.

نوشته های مشابه

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