چند نوع Cache در CPU وجود دارد؟ قبلا در خصوص تفاوت فرآیند Buffering و Caching در توسینسو صحبت کردیم و متوجه شدیم که Cache چقدر می تواند باعث افزایش سرعت پردازشی ما در کامپیوتر شود. اما حتما اگر به فروشگاه های سخت افزار و تجهیزات کامپیوتری مراجعه کرده باشید و قیمت سخت افزارهای مختلف از جمله CPU را گرفته باشید حتما در کنار آنها دیده اید که علامت هایی به شکل L1 یا L2 یا L3 وجود دارد که نمایانگر اندازه Cache و نوع Cache مورد استفاده در CPU است. امروز می خواهیم در انجمن تخصصی فناوری اطلاعات ایران در خصوص تفاوت های موجود در میان این نوع Cache ها بپردازیم تا در صورت نیاز بدانیم که چه چیزی را به چه بهایی می خریم.
حافظه Cache یک حافظه خاص است که توسط CPU یا Central Processing Unit کامپیوتر شما برای کاهش زمان دستیابی به داده ها و همچنین کاهش سرعت دسترسی به حافظه RAM سیستم ایجاد شده است. حافظه Cache معمولا ظرفیت کمتر و سرعت بیشتری نسبت به سایر حافظه های مورد استفاده در کامپیوتر دارد و داده هایی که بیشترین میزان و تعداد دسترسی به آنها نیاز است در این حافظه قرار می گیرند.
زمانیکه یک درخواست خواندن از حافظه توسط پردازنده صادر می شود ، ابتدا محتویات حافظه Cache سیستم بررسی می شود که آیا داده مورد نظر در این حافظه قرار دارد یا خیر ؟ اگر داده مورد نظر در Cache سیستم وجود داشته باشد دیگر نیازی به دسترسی به حافظه RAM سیستم وجود ندارد که در این حالت سرعت انجام فرآیند ما نیز بیشتر خواهد شد.
معمولا دو نوع حافظه Cache مستقل در سیستم برای نگهداری داده ها و دستورات وجود دارد. حافظه Cache ای که برای نگهداری داده ها استفاده می شود از یک ساختار سلسله مراتبی یا موروثی تبعیت می کند که در واقع بصورت لایه بندی شده داده ها را در حافظه های Cache نگهداری می کند ، بعضا به این ساختار Multilevel Cache نیز گفته می شود. L1 یا Cache Level 1 ، L2 یا Cache Level 2 و در نهایت L3 یا Cache Level 3 در حال حاضر Cache هایی هستند که در این سلسله مراتب وجود دارند.
L1 بالاترین سطح در این سلسله مراتب را دارد و نزدیکترین Cache به CPU محسوب می شود و در واقع اولین حافظه Cache ای است که بررسی می شود. L2 در خط بعدی قرار دارد و دومین حافظه نزدیک به CPU محسوب می شود و در واقع حافظه میانه کش سیستم است ، L3 نزدیکترین Cache به RAM سیستم است و از دو حافظه Cache ای که وجود دارد ظرفیت بیشتر و سرعت کمتری دارد. همه حافظه های کش L1 و L2 و L3 دارای سرعت ، محل ، ظرفیت و هزینه های متفاوتی هستند.
L1 Cache یا کش لایه یک را به عنوان حافظه اصلی کش سیستم یا کش سطح اول می شناسند ، این حافظه دارای بالاترین سطح در سلسله مراتب کش هایی است که در CPU وجود دارند. در سه سطح از حافظه های Cache ای که در سیستم وجود دارد ، کش سطح یک یا L1 دارای بالاترین سرعت است ، این کش دارای کمترین ظرفیت و از طرفی کمترین زمان وقفه یا Delay ( تقریبا صفر ) است و این به دلیل نزدیکی زیاد به CPU و قرار گرفتن آن در خود چیپ CPU است. برای پیاده سازی L1 Cache از SRAM یا Static Random Access Memory استفاده می شود.
L2 Cache یا کش لایه دو را به عنوان کش ثانویه سیستم یا کش سطح دوم هم می شناسند ، این حافظه در واقع یک حافظه میانی بین لایه اول و لایه سوم از کش های CPU قرار می گیرد. قانون کش ها و لایه بندی آنها به این شکل است که در صورتیکه داده ها در سطح اول پیدا نشدند در لایه دوم و به ترتیب در لایه بعدی سیستم به دنبال داده ها می گردد و بدین ترتیب اگر داده ای در لایه اول L1 Cache پیدا نشد بلافاصله سیستم شروع به بررسی محتویات L2 Cache می کند تا داده را پیدا کند.
کش لایه دوم به دلیل اینکه مابین L3 Cache و L1 Cache قرار دارد یک نوع رابط بین کارایی این دو Cache نیز به حساب می آید . کش لایه دو با استفاده از DRAM یا Dynamic Random Access Memory پیاده سازی می شود. بیشتر اوقات L2 Cache بر روی مادربورد لحیم می شود و بسیار به چیپ CPU نزدیک است ( ولی روی چیپ قرار نمی گیرد ) اما برخی از پردازنده ها مانند Pentium Pro از این استاندارد تبعیت نکرده اند. البته امروزه تقریبا هیچ سازنده ای از این قانون تبعیت نمی کند و شما می توانید کش لایه دو را در خود CPU مشاهده کنید.
L3 Cache معمولا بر روی مادربورد قرار می گیرد و بین حافظه اصلی سیستم یا همان RAM و کش لایه دوم قرار می گیرد . هدف از طراحی و پیاده سازی این نوع لایه کش طبق معمول این است که اگر داده ای در کش لایه دوم پیدا نشد در لایه سوم سیستم به دنبال آن بگردد اما ذاتا کش لایه سوم سرعت پایینتر و ظرفیت بیشتری نسبت به کش لایه دوم دارد و هدف اصلی از طراحی آن جلوگیری از به وجود آمدن Bottleneck در زمان دریافت داده ها از حافظه RAM می باشد.
در واقع کاری که امروزه کش لایه سه انجام می دهد همان کاری است که قبلا کش لایه دو انجام می داد و قبل از قرار گرفتن در خود پردازنده ابتدا بر روی مادربورد قرار داشت . قانون کش ها در این است که حافظه کش با بیشترین ظرفیت دارای کمترین سرعت است ، بیشتر CPU های امروزی کش CPU لایه یک و لایه دو را درون خود برای هر هسته تعبیه کرده اند و یک کش لایه سه نیز بصورت کلی برای همه Core ها قرار داده اند که می توانید در تصویر بالا این فرآیند را مشاهده کنید ، فقط فراموش نکنید اگر این مطلب را کپی کردید حتما ذکر کنید که از انجمن تخصصی فناوری اطلاعات ایران کپی برداری شده است.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود