حافظه نهان L3 برای پردازنده های AMD چقدر مهم است؟

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

حداقل در تئوری. اخیرا AMD پردازنده Athlon II X4 را معرفی کرد، که یک مدل Phenom II X4 بدون کش L3 است و به این نکته اشاره می کند که چندان ضروری نیست. ما تصمیم گرفتیم به طور مستقیم دو پردازنده (با و بدون حافظه کش L3) را با هم مقایسه کنیم تا ببینیم که کش چگونه بر عملکرد تأثیر می گذارد.

برای بزرگنمایی روی عکس کلیک کنید.

کش چگونه کار می کند؟

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

ضربات و از دست دادن

اثربخشی معماری کش با درصد بازدید سنجیده می شود. درخواست‌هایی برای داده‌هایی که می‌توانند توسط حافظه پنهان برآورده شوند، بازدید در نظر گرفته می‌شوند. اگر این کش حاوی داده های مورد نیاز نباشد، درخواست در طول خط لوله حافظه ارسال می شود و خطا شمارش می شود. البته، از دست دادن منجر به زمان بیشتری برای دریافت اطلاعات می شود. در نتیجه، «حباب‌ها» (از کار افتادن) و تأخیرها در خط لوله محاسباتی ظاهر می‌شوند. از طرف دیگر، بازدیدها به شما امکان می دهد حداکثر عملکرد را حفظ کنید.

کش نوشتن، انحصارطلبی، انسجام

سیاست‌های جایگزینی نحوه در دسترس قرار گرفتن فضای کش برای ورودی‌های جدید را دیکته می‌کنند. از آنجایی که داده های نوشته شده در حافظه نهان باید دیر یا زود در حافظه اصلی ظاهر شوند، سیستم ها می توانند این کار را همزمان با نوشتن در حافظه پنهان (نوشتن از طریق) انجام دهند یا می توانند ناحیه داده را به عنوان "کثیف" (Write-back) علامت گذاری کنند. و زمانی که از حافظه پنهان خارج می شود، در حافظه بنویسید.

داده ها در چندین سطح کش می توانند به طور انحصاری ذخیره شوند، یعنی بدون افزونگی. سپس شما خطوط داده یکسان را در دو سلسله مراتب کش مختلف پیدا نخواهید کرد. یا کش ها می توانند به طور فراگیر کار کنند، یعنی سطوح پایین کش تضمین می شود که حاوی داده های موجود در سطوح بالای کش (نزدیک به هسته پردازنده) باشند. AMD Phenom از کش L3 انحصاری استفاده می کند، در حالی که اینتل از یک استراتژی کش فراگیر پیروی می کند. پروتکل‌های انسجام داده‌ها را در هسته‌ها، لایه‌های کش و حتی پردازنده‌ها ثابت و به‌روز نگه می‌دارند.

اندازه کش

یک کش بزرگتر می تواند داده های بیشتری را در خود نگه دارد، اما تمایل به افزایش تاخیر دارد. علاوه بر این، یک کش بزرگ تعداد قابل توجهی از ترانزیستورهای پردازنده را مصرف می کند، بنابراین یافتن تعادل بین "بودجه" ترانزیستورها، اندازه قالب، مصرف انرژی و عملکرد / تأخیر مهم است.

انجمنی

رکوردهای موجود در RAM را می توان مستقیماً به حافظه پنهان نگاشت، یعنی فقط یک موقعیت در حافظه پنهان برای یک کپی از داده های RAM وجود دارد، یا می توانند n-way associative باشند، یعنی n مکان ممکن در کش وجود دارد. جایی که این داده ها ممکن است ذخیره شوند. بیشتر درجه بالا associativity (تا حافظه نهان کاملاً انجمنی) بهترین انعطاف پذیری کش را فراهم می کند زیرا داده های موجود در کش نیازی به بازنویسی ندارند. به عبارت دیگر، n-درجه بالا تداعی نرخ ضربه بالاتر را تضمین می‌کند، اما تأخیر را افزایش می‌دهد زیرا آزمایش همه این ارتباط‌ها برای یک ضربه به زمان بیشتری نیاز دارد. به عنوان یک قاعده، بالاترین درجه ارتباط برای آخرین سطح ذخیره سازی معقول است، زیرا حداکثر ظرفیت در آنجا موجود است و جستجوی داده های خارج از این حافظه پنهان منجر به دسترسی پردازنده به RAM کند می شود.

برای ارائه چند مثال، Core i5 و i7 از 32 کیلوبایت حافظه نهان L1 با ارتباط 8 طرفه برای داده ها و 32 کیلوبایت از حافظه نهان L1 با ارتباط 4 طرفه برای دستورالعمل ها استفاده می کنند. قابل درک است که اینتل می خواهد دستورالعمل ها سریعتر در دسترس باشد و حافظه نهان L1 برای داده ها حداکثر درصد بازدید را دارد. حافظه نهان L2 پردازنده های اینتلدارای ارتباط 8 طرفه است و حافظه نهان L3 اینتل حتی هوشمندتر است زیرا انجمن 16 طرفه را برای به حداکثر رساندن بازدیدها پیاده سازی می کند.

با این حال، AMD استراتژی متفاوتی را با پردازنده‌های Phenom II X4 دنبال می‌کند که از کش L1 با ارتباط دو طرفه برای کاهش تأخیر استفاده می‌کند. برای جبران خطاهای احتمالی، ظرفیت کش دو برابر شد: 64 کیلوبایت برای داده و 64 کیلوبایت برای دستورالعمل. حافظه نهان L2 مانند طراحی اینتل دارای ارتباط 8 طرفه است، اما کش L3 AMD با ارتباط 48 طرفه کار می کند. اما تصمیم برای انتخاب یک معماری کش یا دیگری را نمی توان بدون در نظر گرفتن کل معماری CPU قضاوت کرد. کاملاً طبیعی است که نتایج آزمایش از اهمیت عملی برخوردار باشد و هدف ما فقط یک آزمایش عملی از کل ساختار پیچیده چند سطحی کش بود.

هر پردازنده مدرن یک کش اختصاصی دارد که دستورالعمل ها و داده های پردازنده را ذخیره می کند و تقریباً بلافاصله آماده استفاده است. این سطح معمولاً به عنوان اولین سطح کش یا L1 نامیده می شود و اولین بار با پردازنده های 486DX معرفی شد. اخیراً، پردازنده‌های AMD برای استفاده از حافظه نهان 64k L1 در هر هسته (برای داده‌ها و دستورالعمل‌ها) استاندارد شده‌اند، در حالی که پردازنده‌های اینتل از 32k حافظه نهان L1 در هر هسته (همچنین برای داده‌ها و دستورالعمل‌ها) استفاده می‌کنند.

حافظه نهان سطح اول برای اولین بار در پردازنده های 486DX ظاهر شد و پس از آن تبدیل شد تابع ترکیبیتمام پردازنده های مدرن

حافظه نهان سطح دوم (L2) پس از انتشار Pentium III روی همه پردازنده ها ظاهر شد، اگرچه اولین پیاده سازی آن در بسته در پردازنده Pentium Pro بود (اما نه بر روی یک تراشه). پردازنده های مدرن به حداکثر 6 مگابایت حافظه نهان L2 روی تراشه مجهز هستند. به عنوان یک قاعده، چنین حجمی بین دو هسته روی پردازنده تقسیم می شود اینتل Coreبرای مثال 2 دوتایی. پیکربندی های L2 معمولی 512 کیلوبایت یا 1 مگابایت حافظه نهان در هر هسته فراهم می کنند. پردازنده هایی با حافظه نهان L2 کوچکتر معمولاً در ردیف قیمت پایین تر قرار دارند. در زیر نموداری از پیاده سازی های اولیه کش L2 را مشاهده می کنید.

پنتیوم پرو دارای حافظه نهان L2 در بسته پردازنده بود. نسل های بعدی Pentium III و Athlon حافظه نهان L2 را از طریق تراشه های SRAM جداگانه پیاده سازی کردند که در آن زمان بسیار رایج بود (1998، 1999).

اعلام بعدی فناوری فرآیند تا 180 نانومتر به سازندگان اجازه داد تا در نهایت حافظه نهان L2 را در قالب پردازنده یکپارچه کنند.


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


برای اولین بار، حافظه نهان L2 بین دو هسته محاسباتی به اشتراک گذاشته شد پردازنده های اصلی 2 دوتایی AMD پا را فراتر گذاشت و اولین Phenom چهار هسته ای خود را از ابتدا ساخت، در حالی که اینتل دوباره از چند دای برای اولین پردازنده چهار هسته ای خود استفاده کرد، این بار دو هسته دو هسته ای Core 2، تا هزینه ها را کاهش دهد.

حافظه نهان L3 از روزهای اولیه پردازنده آلفا 21165 (96 کیلوبایت، معرفی شده در سال 1995) یا IBM Power 4 (256 کیلوبایت، 2001) وجود داشته است. با این حال، در معماری های مبتنی بر x86، حافظه نهان L3 برای اولین بار با آن ظاهر شد مدل های اینتل Itanium 2، Pentium 4 Extreme (گالاتین، هر دو پردازنده در سال 2003) و Xeon MP (2006).

اولین پیاده سازی ها سطح دیگری را در سلسله مراتب کش ارائه کردند، اگرچه معماری های مدرن از کش L3 به عنوان یک بافر بزرگ و مشترک برای تبادل داده بین هسته ها استفاده می کنند. پردازنده های چند هسته ای. این نیز توسط n-درجه بالا از انجمن تاکید شده است. بهتر است کمی بیشتر در حافظه پنهان به دنبال داده بگردید تا موقعیتی که چندین هسته از دسترسی بسیار آهسته به رم اصلی استفاده می کنند. AMD ابتدا حافظه نهان L3 را بر روی یک پردازنده دسکتاپ به همراه خط Phenom که قبلا ذکر شد معرفی کرد. Phenom X4 65 نانومتری حاوی 2 مگابایت کش L3 مشترک است، در حالی که Phenom II X4 45 نانومتری فعلی دارای 6 مگابایت حافظه کش L3 مشترک است. پردازنده های Core i7 و i5 اینتل از 8 مگابایت حافظه نهان L3 استفاده می کنند.

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


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

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

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

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

در اصل، حافظه نهان به عنوان یک بافر حافظه با سرعت بالا عمل می کند که اطلاعاتی را که ممکن است پردازنده به آن نیاز داشته باشد، ذخیره می کند. بنابراین، پردازنده اطلاعات لازم را ده برابر سریعتر از زمانی که آنها را از RAM می خواند دریافت می کند.

تفاوت اصلی بین حافظه کش و بافر معمولی توابع منطقی داخلی است. بافر داده‌های تصادفی را ذخیره می‌کند، که معمولاً براساس طرح «اولین دریافت، اولین صادر» یا «اولین دریافت، آخرین صدور» پردازش می‌شوند. حافظه پنهان حاوی داده هایی است که احتمالاً در آینده نزدیک به آنها دسترسی پیدا می کند. بنابراین، به لطف "کش هوشمند"، پردازنده می تواند با سرعت کامل کار کند و منتظر بازیابی اطلاعات از رم کندتر نباشد.

انواع و سطوح اصلی کش L1 L2 L3

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

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

حافظه کش سطح اول L1 - کوچکترین حجم (فقط چند ده کیلوبایت)، اما سریعترین از نظر سرعت و مهمترین آنها. این شامل داده هایی است که اغلب توسط پردازنده استفاده می شود و بدون تاخیر اجرا می شود. به طور معمول، تعداد تراشه های حافظه L1 برابر با تعداد هسته های پردازنده است، به طوری که هر هسته فقط به تراشه L1 خود دسترسی دارد.

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

کش سطح سوم L3 - دارای بیشترین حجم از سه سطح (می تواند به ده ها مگابایت برسد)، اما همچنین دارای کمترین سرعت است که هنوز به طور قابل توجهی بالاتر از سرعت RAM است. حافظه نهان L3 در تمام هسته های پردازنده مشترک است. سطح حافظه L3 برای ذخیره موقت آن داده های مهم در نظر گرفته شده است که احتمال دسترسی به آنها کمی کمتر از اطلاعات ذخیره شده در دو سطح اول L1، L2 است. همچنین تعامل هسته های پردازنده با یکدیگر را تضمین می کند.

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

زمانی که مقدار زیادی کش مفید است.

هنگام استفاده از برنامه های بایگانی، در بازی های سه بعدی، در حین پردازش و رمزگذاری ویدیو، تأثیر قابل توجهی از مقدار زیادی حافظه پنهان خواهید داشت. در برنامه ها و برنامه های نسبتا "سبک"، تفاوت عملاً قابل توجه نیست ( برنامه های اداری، بازیکنان و غیره).

همه کاربران به خوبی از عناصر یک کامپیوتر به عنوان یک پردازنده مسئول پردازش داده ها و همچنین حافظه دسترسی تصادفی (RAM یا RAM) مسئول ذخیره آنها آگاه هستند. اما احتمالاً همه نمی دانند که حافظه نهان پردازنده (Cache CPU) یعنی رم خود پردازنده (به اصطلاح حافظه فوق رم) نیز وجود دارد.

دلیلی که توسعه دهندگان کامپیوتر را بر آن داشت تا از حافظه ویژه برای پردازنده استفاده کنند چیست؟ آیا رم برای کامپیوتر کافی نیست؟

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

به طور کلی، دو فناوری اصلی برای تراشه های حافظه وجود دارد - حافظه استاتیک و حافظه پویا. بدون پرداختن به جزئیات ساختار آنها، فقط خواهیم گفت که حافظه ایستا، برخلاف حافظه پویا، نیازی به بازسازی ندارد. علاوه بر این، 4-8 ترانزیستور برای یک بیت اطلاعات در حافظه استاتیک استفاده می شود، در حالی که 1-2 ترانزیستور در حافظه پویا استفاده می شود. بر این اساس، حافظه پویا بسیار ارزان تر از حافظه استاتیک است، اما در عین حال بسیار کندتر است. در حال حاضر تراشه های رم بر اساس حافظه پویا تولید می شوند.

تکامل تقریبی نسبت سرعت پردازنده و رم:

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

به همین دلیل است که یک مصالحه معقول ایجاد شد. بخش اصلی رم پویا باقی ماند، در حالی که پردازنده حافظه نهان سریع خود را بر اساس تراشه های حافظه استاتیک داشت. حجم آن نسبتا کم است - به عنوان مثال، حجم حافظه نهان L2 تنها چند مگابایت است. با این حال، در اینجا لازم به یادآوری است که تمام رم اولی است کامپیوترهای IBMکامپیوتر کمتر از 1 مگابایت بود.

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

تاریخچه کش

به بیان دقیق، قبل از انتقال حافظه کش به رایانه های شخصی، چندین دهه با موفقیت در ابر رایانه ها استفاده می شد.

برای اولین بار، حافظه نهان تنها 16 کیلوبایت در رایانه شخصی مبتنی بر پردازنده i80386 ظاهر شد. پردازنده های امروزی از سطوح مختلفی از کش استفاده می کنند، از اولین (سریع ترین کش با کوچکترین اندازه - معمولاً 128 کیلوبایت) تا سوم (کندترین کش با بزرگترین اندازه - تا ده ها مگابایت).

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

برای مدت طولانی، تنها دو سطح حافظه پنهان در پردازنده ها وجود داشت، اما برای اولین بار در CPU Intel Itanium، یک کش سطح سوم ظاهر شد که در همه هسته های پردازنده مشترک بود. همچنین توسعه پردازنده هایی با حافظه نهان چهار سطحی وجود دارد.

معماری و اصول عملیات کش

تا به امروز، دو نوع اصلی سازماندهی حافظه پنهان شناخته شده است که از اولین تحولات نظری در زمینه سایبرنتیک - معماری های پرینستون و هاروارد نشات می گیرد. معماری پرینستون شامل یک فضای حافظه واحد برای ذخیره داده ها و دستورات است، در حالی که معماری هاروارد فضای جداگانه ای دارد. اکثر پردازنده ها کامپیوترهای شخصیخط x86 از یک نوع کش جداگانه استفاده می کند. علاوه بر این، در پردازنده های مدرننوع سوم حافظه پنهان نیز ظاهر شد - به اصطلاح بافر ترجمه انجمنی که برای سرعت بخشیدن به ترجمه آدرس طراحی شده است. حافظه مجازیآدرس های سیستم عامل به حافظه فیزیکی

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

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

به این صورت است که پردازنده اطلاعات را جستجو می کند

برای کنترل عملکرد حافظه نهان و تعامل آن با واحدهای محاسباتی پردازنده و همچنین رم، یک کنترلر مخصوص وجود دارد.

طرح سازماندهی تعامل هسته پردازنده، حافظه پنهان و RAM:

کنترلر کش رابط کلیدی بین پردازنده، رم و کش است.

لازم به ذکر است که کش داده ها فرآیند پیچیده ای است که از فناوری ها و الگوریتم های ریاضی زیادی استفاده می کند. از میان مفاهیم اساسی مورد استفاده در کش، می توان روش های نوشتن کش و معماری تداعی حافظه کش را مشخص کرد.

روش‌های نوشتن در حافظه پنهان

دو روش اصلی برای نوشتن اطلاعات در حافظه پنهان وجود دارد:

  1. روش Write-back (نوشتن معکوس) - داده ها ابتدا در حافظه پنهان نوشته می شوند و سپس در چه زمانی شرایط خاصو در رم.
  2. روش نوشتن از طریق نوشتن (از طریق نوشتن) - داده ها به طور همزمان در RAM و حافظه پنهان نوشته می شوند.

Cache Associativity Architecture

معماری cache associativity روشی را تعریف می کند که در آن داده های RAM به حافظه نهان نگاشت می شوند. انواع اصلی زیر از معماری انجمن کش وجود دارد:

  1. حافظه پنهان مستقیم نقشه برداری - یک منطقه خاص از حافظه پنهان مسئول یک منطقه خاص از RAM است
  2. حافظه نهان کاملاً مرتبط - هر ناحیه کش را می توان با هر ناحیه رم مرتبط کرد
  3. حافظه پنهان مختلط (مجموعه ای وابسته)

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

نتیجه

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

همه پردازنده ها از اواخر دهه 90 دارای کش داخلی (یا فقط کش) هستند. حافظه نهان یک حافظه پرسرعت است که دستورالعمل ها و داده هایی را که مستقیماً توسط پردازنده پردازش می شوند، منتقل می کند.

پردازنده های مدرن دارای حافظه کش داخلی در دو سطح هستند - اولی (L1) و دومی (L2). با محتویات حافظه نهان L1، پردازنده تا حدودی سریعتر است و حافظه نهان L2 معمولاً کمی بزرگتر است. حافظه نهان بدون حالت انتظار قابل دسترسی است، یعنی. کش سطح اول (کش روی تراشه) با همان فرکانس پردازنده اجرا می شود.

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

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

شما هر روز سر ساعت معین برای ناهار به کافه می آیید و همیشه سر یک میز می نشینید. همیشه سفارش دهید مجموعه استاندارداز سه دوره

گارسون به سمت آشپزخانه می دود، سرآشپز آنها را روی سینی می گذارد و سپس سفارش شما را می آورند. و بنابراین، فرض کنید، در روز سوم، پیشخدمت برای اینکه یک بار دیگر به آشپزخانه ندود، در ساعت مقرر با یک ناهار گرم آماده روی سینی با شما ملاقات می کند.

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

اگرچه یک سینی با سفارش قبلاً در زمان مقرر منتظر شما بود، اما گارسون باید برای گرفتن دسر به آشپزخانه می دوید.

و در پنجم - دوباره منوی سه مورد. در ششم - دوباره یک دسر، اما متفاوت از قبلی. و پیشخدمت که نمی‌داند چه نوع دسری را می‌خواهید سفارش دهید (و اصلاً نمی‌داند چیزی سفارش خواهید داد) تصمیم می‌گیرد قدم بعدی را بردارد: کنار میز شما یک کابینت با چندین نوع دسر قرار می‌دهد.

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

اندازه حافظه نهان L1 (از 16 تا 128 کیلوبایت) و L2 (از 64 کیلوبایت تا 512 کیلوبایت، تا 4 مگابایت در پنتیوم III Cheop و AMD Opteron) به طور قابل توجهی بر عملکرد پردازنده تأثیر می گذارد.

پردازنده های Intel Pentium III و پردازنده های Celeron مبتنی بر آن دارای حافظه کش L1 32 کیلوبایت هستند. Intel Pentium 4 و همچنین نسخه های Celeron و Cheop مبتنی بر آن تنها 20 کیلوبایت دارند. پردازنده های AMD Duron، Athlon (از جمله XP/MP) و Opteron و همچنین VIA S3 حاوی 128 کیلوبایت حافظه نهان L1 هستند.

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

اندازه حافظه نهان L1 برای دستیابی به عملکرد بالا در اکثر وظایف رایج مهم است ( برنامه های اداری، بازی ها، اکثر برنامه های کاربردی سرور و غیره). اثربخشی آن به ویژه برای محاسبات جریان (به عنوان مثال، پردازش تصویر ویدیویی) مشخص است.

این یکی از دلایلی است که Pentium 4 برای اکثر برنامه های رایج نسبتاً ناکارآمد است (اگرچه این با سرعت کلاک بالا جبران می شود). کش L1 همیشه در فرکانس داخلی پردازنده کار می کند (اطلاعات را با هسته پردازنده مبادله می کند).

در مقابل، L2 cache در مدل های مختلفپردازنده ها در فرکانس های مختلف (و بر این اساس، عملکرد) کار می کنند. با شروع Intel Pentium II، بسیاری از پردازنده‌ها از حافظه نهان L2 استفاده می‌کردند که با نصف فرکانس داخلی پردازنده اجرا می‌شد.

این راه حل در پردازنده های قدیمی Intel Pentium III (تا 550 مگاهرتز) و پردازنده های قدیمی AMD Athlon (در برخی از آنها، حافظه نهان داخلی L2 در یک سوم فرکانس هسته پردازنده کار می کرد) استفاده می شود. مقدار کش L2 نیز برای پردازنده های مختلف متفاوت است.

پردازنده های قدیمی و جدیدتر اینتل پنتیوم III دارای حافظه کش L2 512 کیلوبایتی هستند، در حالی که سایر پردازنده های پنتیوم III دارای 256 کیلوبایت هستند. پردازنده Intel Celeron مبتنی بر Pentium III با 128 و 256 کیلوبایت حافظه نهان L2 عرضه شد، در حالی که پردازنده مبتنی بر Pentium 4 تنها با 128 کیلوبایت عرضه شد. انواع مختلف نسخه Xeon اینتل پنتیوم 4 دارای حداکثر 4 مگابایت حافظه نهان L2 هستند.

پردازنده های جدید پنتیوم 4 (برخی از سری ها با فرکانس 2000 مگاهرتز و همه برای فرکانس های بالاتر) دارای 512 کیلوبایت حافظه کش L2 و بقیه پنتیوم 4 دارای 256 کیلوبایت هستند. پردازنده های Cheop (بر اساس پنتیوم 4) دارای 256 یا 512 کیلوبایت حافظه نهان L2 هستند.

علاوه بر این، آنها همچنین دارای حافظه کش سطح سوم L3 هستند. کش L3 یکپارچه، همراه با یک گذرگاه سیستم سریع، یک پیوند داده با سرعت بالا را به حافظه سیستم تشکیل می دهد.

به عنوان یک قاعده، فقط پردازنده های راه حل های سرور یا مدل های ویژه پردازنده های "رومیزی" مجهز به حافظه کش L3 هستند. حافظه نهان L3، به عنوان مثال، توسط خطوط پردازنده مانند Xeon DP، Itanium 2، Xeon MP در اختیار دارد.

پردازنده AMD Duron دارای 128 کیلوبایت کش L1 و 64 کیلوبایت کش L2 است. پردازنده‌های Athlon (به جز نمونه‌های قدیمی‌تر)، Athlon MP و اکثر انواع Athlon XP دارای 128 کیلوبایت حافظه نهان L1 و 256 کیلوبایت حافظه نهان L2 هستند و آخرین Athlon XP (2500+، 2800+، 3000+ و بالاتر) دارای 512 KB حافظه نهان L2 هستند. . AMD Opteron حاوی 1 مگابایت حافظه نهان L2 است.

جدیدترین مدل های پردازنده های Intel Pentium D، Intel Pentium M، Intel Core 2 Duo با 6 مگابایت کش L2 و Core 2 Quad با 12 مگابایت کش L2 عرضه می شوند.

آخرین پردازنده Core i7 اینتل تا این لحظه دارای 64 کیلوبایت حافظه نهان L1 برای هر 4 هسته و 256 کیلوبایت حافظه L2 برای هر هسته است. پردازنده علاوه بر حافظه نهان سطح اول و دوم، یک کش مشترک برای تمامی هسته های سطح سوم برابر با 8 مگابایت نیز دارد.

برای پردازنده هایی که می توانند اندازه های کش L2 متفاوتی داشته باشند (یا در مورد اینتل زئون MP - L3) برای همین مدل باید در هنگام فروش این اندازه مشخص شود (البته قیمت پردازنده بستگی به آن دارد). اگر پردازنده در بسته بندی "جعبه ای" فروخته شود (تحویل در جعبه)، معمولاً اندازه حافظه پنهان را نشان می دهد.

برای کارهای عادی کاربر (از جمله بازی ها)، سرعت حافظه نهان L2 مهمتر از اندازه آن است. برای وظایف سرور، برعکس، حجم مهمتر است. پربازده ترین سرورها، به ویژه آنهایی که مقدار رم زیادی (چند گیگابایت) دارند، به حداکثر مقدار و حداکثر سرعتحافظه نهان L2.

نسخه‌های Cheop پردازنده‌های Pentium III در این پارامترها بی‌نظیر هستند. ( پردازنده زئون MP به دلیل فرکانس ساعت بالاتر خود پردازنده و گذرگاه حافظه نسبت به Pentium III Xeon در وظایف سرور هنوز کارآمدتر است و همچنین به شما امکان می دهد دوره های انتظاری را که در طول پردازش داده رخ می دهد به حداقل برسانید. نقش تعیین کننده در این مورد توسط حافظه نهان سطح دوم واقع در تراشه پردازنده ایفا می شود.

کثیف ترین جای کامپیوتر کجاست؟ فکر می کنم سبد؟ پوشه های کاربر؟ سیستم خنک کننده؟ حدس نزد! کثیف ترین مکان، کش است! از این گذشته ، دائماً باید تمیز شود!

در واقع، کش های زیادی بر روی کامپیوتر وجود دارد، و آنها نه به عنوان زباله، بلکه به عنوان شتاب دهنده برای تجهیزات و برنامه ها عمل می کنند. شهرت آن‌ها به‌عنوان یک «چاله زباله سیستمی» از کجا می‌آید؟ بیایید ببینیم که کش چیست، چگونه اتفاق می افتد، چگونه کار می کند و چرا هر از گاهی.

مفهوم و انواع حافظه کش

Esh یا حافظه نهان ذخیره‌سازی ویژه‌ای از داده‌های پرکاربرد است که ده‌ها، صدها و هزاران بار سریع‌تر از RAM یا سایر رسانه‌های ذخیره‌سازی قابل دسترسی است.

برنامه های کاربردی (مرورگرهای وب، پخش کننده های صوتی و تصویری، ویرایشگرهای پایگاه داده و غیره)، اجزای سیستم عامل (کش کوچک تصاویر، کش DNS) و سخت افزار (کش CPU L1-L3، فریم بافر GPU و غیره) دارای حافظه کش مخصوص به خود هستند. بافرهای درایو). این به روش های مختلف - نرم افزاری و سخت افزاری اجرا می شود.

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

  • به ویژه در هارد دیسک ها، کش یک تراشه رم جداگانه با ظرفیت 1-256 مگابایت است که روی برد الکترونیکی قرار دارد. اطلاعات خوانده شده از لایه مغناطیسی را دریافت می کند و هنوز در RAM بارگذاری نشده است و همچنین داده هایی را که اغلب درخواست می شود دریافت می کند. سیستم عامل.

  • نوین CPUشامل 2-3 سطح پایه حافظه کش (به آن حافظه فوق سریع نیز می گویند) که به شکل ماژول های سخت افزاری روی همان تراشه قرار می گیرد. سریعترین و کوچکترین حجم (32-64 کیلوبایت) حافظه نهان سطح 1 (L1) است - با همان فرکانس پردازنده اجرا می شود. L2 از نظر سرعت و ظرفیت در موقعیت متوسط ​​قرار دارد (از 128 کیلوبایت تا 12 مگابایت). و L3 کندترین و پرحجم ترین است (تا 40 مگابایت)، در برخی مدل ها وجود ندارد. سرعت L3 فقط نسبت به همتایان سریعتر خود پایین است، اما همچنین صدها برابر سریعتر از پربازده ترین رم است.

حافظه اسکرچ‌پد پردازنده برای ذخیره داده‌هایی که دائماً استفاده می‌شوند، پمپاژ شده از رم و دستورالعمل‌های کد ماشین استفاده می‌شود. هرچه بزرگتر باشد، پردازنده سریعتر است.

امروزه، سه سطح ذخیره سازی دیگر محدودیت نیست. با ظهور معماری Sandy Bridge، اینتل یک کش اضافی L0 (برای ذخیره ریز دستورالعمل های رمزگشایی شده) در محصولات خود پیاده سازی کرده است. و با کارایی بالا ترین CPU ها نیز یک کش سطح چهارم دارند که به شکل یک ریزمدار مجزا ساخته شده است.

از نظر شماتیک، تعامل سطوح حافظه نهان L0-L3 به این صورت است (به عنوان مثال، Intel Xeon):

زبان انسان درباره نحوه کارکرد آن

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

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

هرچه میز گسترده تر باشد، اسناد بیشتری روی آن قرار می گیرد، به این معنی که کارمند قادر به دریافت خواهد بود دسترسی سریعبه اطلاعات بیشتر هرچه ظرفیت حافظه پنهان بیشتر باشد، برنامه یا دستگاه در تئوری سریعتر کار می کند).

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

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

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

اسناد موجود باید با وظایف فعلی مرتبط باشند. این مسئولیت بر عهده خود کارمند است. شما باید کاغذها را مرتباً تمیز کنید (خروج داده‌های نامربوط از حافظه نهان بر روی شانه‌های برنامه‌هایی که از آن استفاده می‌کنند می‌افتد؛ برخی از برنامه‌ها عملکرد پاکسازی کش خودکار دارند).

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

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

بیشتر در سایت:

کش چیست، چرا به آن نیاز است و چگونه کار می کندبه روز رسانی: 25 فوریه 2017 توسط: جانی یادگاری