تفاوت حافظه کش L2 ، L1 و L3 در CPU چیست؟
رم های کامپیوتر در بازار انواع مختلفی دارد. از رم اصلی سیستم گرفته تا حتی مدل حافظه کش و سایر موارد دیگر. اکنون در جهان بهترین و پرسرعتترین رم کامپیوتر، حافظه Cache می باشد. این نوع حافظه یکی از مهمترین بخشهای یک سیستم است و تاثیر زیادی بر کیفیت کارایی آن دارد.
حافظه کش CPU به چه معنی است؟
حافظه کش (Cache) در واقع یک نوع حافظه پنهان در مجاورت سی پی یو است که دارای سرعت بسیار بالایی می باشد. این حافظه به سرعت بالا میتواند به اطلاعات رم و دادههای سیستم دسترسی پیدا کند. باید بدانید که این حافظه به طور اختصاصی برای دسترسی به دادههایی که همیشه به آنها نیاز شده، طراحی و ساخته شده است. در یک تعریف سادهتر باید بگوییم حافظه کش CPU به نوعی یک حافظه استثنائی است که علاوه بر سادهتر کردن عملیات انتقال و تبادل دادهها، از امنیت آنها محافظت می نماید.
سرعت کش از آنجایی بسیار بیشتر از سایر حافظههای موجود در سی پی یو است که کاملا نزدیک به سی پی بو قرار گرفته و برای پردازش دادهها نیازی به بارگیری آنها ندارد. همچنین به دلیل نزدیکی به سی پی یو، زمان بیشتری را صرف خواندن اطلاعات بزرگ می نماید. (کاری که انجام آن برای سایر حافظهها به هیچ وجه امکان ندارد)
هر وقت که CPU یک درخواست خواندن را به حافظه ارسال میکند، در ابتدا اطلاعات موجود در کش مورد بررسی قرار میگیرد. اگر دادهها در این حافظه حاضر باشند، دیگر نیازی به حافظه RAM نمی باشد. به این صورت دسترسی و پردازش به دادهها به سرعت صورت میگیرد.
مقایسه RAM و Cache
رم متشکل شده از DRAM و Dynamic RAM می باشد ولی حافظه Cache از SRAM و Static RAM ایجاد شده است. SRAM و Static RAM بدون نیاز داشتن به رفرش مرتب دادهها، از آنها محافظت میکنند. از این رو برای استفاده در کش مناسب می باشند.
ساختار حافظه کش
حافظه کشی که نقش نگهداری از دادهها را دارا می باشد، از ساختار Multilevel Cache بهره مند است. Multilevel Cache یک ساختار سلسه مراتبی یا ساختاری است، که دادهها را به صورت لایه ای در حافظه Cache حفظ میکند. در حال حاضر این ساختار سه لایه متغیر دارد که با Cache Level1، Cache Level2 و Cache Level3 شناسایی میشود. برای سهولت در خواندن هریک از این لایهها، آنها را L1، L2 و L3 نامیده اند.
لایه اول و نزدیک به به سی پی یو L1 می باشد. در زمان پردازش دادهها، اطلاعات این لایه اول مورد بررسی قرار میگیرد. لایه دوم که به آن میانه کش سیستم هم گفته میشود، همان L2 است. این لایه بعد از لایه اول قرار دارد. لایه سوم، دورترین لایه به CPU و نزدیکترین لایه به RAM است. L3 نسبت به دو لایه دیگر سرعت کمتری دارد اما ظرفیت آن بیشتر از آنها است. مهمترین تفاوت بین این لایهها نیز در میزان سرعت، ظرفیت، هزینه و محل قرارگیریشان است.
حافظه Cache چگونه کار میکند و کاربردش چیست؟
همانطوری که پیش از این گفتیم، حافظه کش به افزایش سرعت پردازش داده کمک زیادی میکند. البته این در صورتی است که اطلاعات موجود در آن توسط یک کاربر درخواست شود. برای مثال اگر سیستم به دنبال اطلاعات موجود در RAM باشد، سرعت حافظه کش تاثیری در پردازش دادههای RAM ندارد و شرایط مانند گذشته است.
این حافظه یک الگوریتم بسیار خاص و پیچیده دارد که با استفاده از آن، اطلاعات مورد نیاز سی پی یو را پیشبینی و آنها را در خود ذخیره کند. زمانی که هم CPU به اطلاعات خاصی نیاز داشته باشد، ابتدا حافظه کش (تمام لایهها) را بررسی میکند و در صورت نبود اطلاعات به سراغ دیتای حافظههای دیگر میرود. به این صورت کش در عرض چندثانیه دیتای مورد نیاز سی پی یو را در اختیارش قرار میدهد.
بررسی انواع حافظه کش
حافظه Cache دو نوع می باشد : کش مجازی – کش سخت افزاری
کش مجازی
به قسمتی از حافظه جانبی که توسط برنامههای مختلف مشخص میشود و برای دسترسی سریعتر به اطلاعات، از دیتای آن استفاده میکنند، کش مجازی می گویند. کارایی این حافظه به صورت محلی نیست! برای فهم بهتر این موضوع چند برنامه متفاوت مانند جستوجوگرهای وب را در نظر داشته باشید. مرورگرها قسمتی از حافظه جانبی را برای ذخیره یک سری از اطلاعات خاص مانند چند تا از صفحات وب بهره میبرند. حال اگر کاربر بخواهد همان اطلاعات ذخیره شده را بدست بیاورد، سیستم اطلاعات ذخیره شده در قسمت کش مجازی را به کاربر نشان میدهد و دوباره همان اطلاعات را از فضای اینترنت ذخیرره سازی نمیکند. این عمل به بهبود فرایند کلی سیستم کمک مهمی میکند.
کش سختافزاری
حافظه Cache سختافزاری، حافظه پنهان شده در قسمتی از یک سختافزار مانند سی پی یو است و عمل Caching را انجام میدهد. ساختار، کارایی، سرعت و به طور کلی مکانیزم این حافظخه با رم بسیار متفاوت است. به همین دلیل اگر قرار باشد حافظه نهان سختافزاری را در قسمتهای مانند CPU افزایش دهیم، هزینه نهایی بسیار زیاد میشود. این موضوع نیز باعث شده بسیاری از کاربران به فکر استفاده از حافظه کش سختافزاری نباشند.
بررسی مزایای لایههای متغیر حافظه Cache در CPU
لایه اول (L1)
در ساختار کش سی پی یو، لایه L1 بالاترین سطح را دارا می باشد و همچنین نزدیکترین محل به لایه سی پی یو است. دقیقا همین موضوع باعث بیشتر شدن سرعت آن نسبت به لایههای دیگرمی باشد. از مزیت های دیگر اینکه Cache Level یا کمترین زمان وقفه آن صفر می باشد. همچنین حافظه این لایه از نوع SRAM و Static Random Access Memory است.
لایه دوم (L2)
لایه دوم همان حافظه میانی است که مابین لایه اول و لایه سوم قرار گرفته است که در واقع یک رابط بین دو لایه دیگر است. قانون کار لایه های کش سی پی یو به اینگونه است که دادهها متناسب با سلسله بندی کش جستجو میکنند. برای توضیح بیشتر سیستم ابتدا به سراغ اطلاعات دادههای L1 میرود و در صورت نبودن در این قسمت، به سراغ دو لایه بعدی حرکت می کند.
حافظه لایه دوم نیز از نوع Dynamic Random Access Memory و DRAM است. به عنوان نکته آخر باید بدانید که این لایه بعد از لایه اول، نزدیکترین قسمت به سی پی یو محسوب میشود، البته مانند لایه اول روی چیپ سی پی یو قرار ندارد.
لایه سوم (L3)
لایه سوم که آخرین سطح سلسه مراتب حافظه Cache می باشد، وظیفه دارد از بروز (Bottleneck) در هنگام دسترسی به دادهها از طریق RAM ممانعت کند. البته همانطوری که گفتیم، سیستم در صورت پیدا نکردن اطلاعات از لایه اول و دوم به سراغ دیتای موجود در L3 هم اتوماتیک وار خواهد رفت.
از مهمترین تفاوتهای L3 با L2 و L1 این است که سرعت کمتری نسبت به آنها دارد، اما ظرفیتش بیشتر می باشد. این نکته حائز اهمیت است که این لایه به صورت کلی برای همه CORE های یک سیستم ساخته و پرداخته شده است.
جمع بندی
حافظه کش از مهمترین فناوریهایی ابداع شده برای سیستمهای کامپیوتر می باشد که با وجودآن، امکان دسترسی و پردازش اطلاعات بسیار راحت و سریع شده است. یک نکته جالب اینکه با تهیه کردن CPU جدیدی با ظرفیت حافظه Cache بالاتری برای سیستم خود، ظرفیت این نوع حافظه را میتوانید ارتقاء دهید.