بررسی حافظه CPU Cache و انواع آن
در این مجال میخواهیم به بررسی حافظه CPU Cache و انواع آن بپردازیم. با توسعه شبکه آداکهمراه شما هستیم.
- حافظه Cache چیست؟
- فرق حافظه بافر buffer و کش cache چیست؟
- Cache چگونه کار میکند؟
- انواع حافظه کش – Cache
- Latency در CPU Cache
- افزایش حافظه کش لپ تاپ
حافظه Cache چیست؟
نوعی RAM فوق العاده سریع است.
حافظه استفاده شده بین cpu و ram حافظه Cache است و CPU میتواند به سرعت به آن دسترسی پیدا کند، زیرا این قطعه برای ذخیره دادههایی که به صورت مکرر مورد نیاز است، طراحی شده است. تاثیر کش در سرعت cpu به این دلیل است که بسیار نزدیک به CPU قرار دارد و در مقایسه با RAM که دورتر از CPU قرار دارد،
میتواند اطلاعات را به پردازنده در هر زمان بدون نیاز به بارگیری انجام دهد و زمان بیشتری را صرف خواندن اطلاعات اصلی و بزرگتر خود از رم و یا سایر دستگاههای ذخیره سازی داده کند. کش CPU این امکان را به وجود میآورد که عملیات سریعتر انجام شود.
به طور ساده، حافظه Cache یا حافظه پنهان، نوع سریعی از حافظهها است.
رابطه cpu با ram چیست؟ اطلاعاتی که بیشترین مراجعه را به حافظه اصلی دارند درون Cache قرار میگیرند. در صورتی که اطلاعات لازم در Cache موجود باشد، عملیات به جای مراجعه به حافظه اصلی در Cache انجام میشود که بسیار سریعتر خواهد بود.
حافظه Cache حافظهای کوچک و بسیار سریع است که میانگین زمانی دسترسی به حافظه اصلی را کاهش میدهد.
حافظه پنهان یا Cache چیست؟
در سیستمهای کامپیوتری و پردازشی، انواع مختلفی از حافظه وجود دارد:
- استوریج اصلی مانند هارد دیسک و SSD که سیستم عامل و برنامهها را ذخیره میکند. البته هارد درایوها هم کش دارند. حافظه کش هارد چیست؟ وظیفه حافظه کش هارد پردازش اطلاعات از دیسک و بافر کردن انتقال فایلها است.
- حافظه RAM یا Random Access Memory که بسیار سریعتر از استوریج اصلی است.
- حافظه CPU که بسیار سریعتر از رم است و با عنوان Cache میشناسیم.
از لحاظ سرعت، Cache در بالاترین جایگاه قرار میگیرد. از نظر محل قرارگیری، باید در نزدیکترین مکان به سی پی یو باشد تا جزیی از CPU به حساب آید.
حافظه پنهان در مقایسه با حافظههای اصلی و جانبی، بسیار سریعتر قابل دسترس و خواندن است و عمل پردازش را سریعتر میکند.
تناسب با بودجه ارائه میشود.
برخی مطالب مرتبط:
بررسی کامل و معرفی پردازنده اینتل، نسل ها و انواع آن
معرفی انواع هارد سرور و بررسی بهترین هاردهای سرور hp
چک لیست نگهداری سرور؛ پادکست؛ ویدئو
Heatsink چیست؛ کاربرد انواع هیت سینک و نحوه تعویض هیت سینک پردازنده
آموزش کامل نصب و کار با نرم افزار anydesk ؛ پادکست
انواع مختلف حافظه در سیستمهای کامپیوتری و پردازشی
مقایسه RAM و Cache
حافظه کش از نوع Static RAM یا SRAM است ولی رم از نوع Dynamic RAM یا DRAM.
Static RAM برخلاف DRAM، میتواند داده را بدون این که نیاز باشد مرتبا رفرش انجام شود، نگه دارد بنابراین برای استفاده در Cache ایدهآل است.
حافظه نهان (Cache) چه کاربردی دارد؟
زمانی که درخواست پردازشی شامل دادههایی باشد که در حافظه نهان ذخیره شدهاند، دادههای درخواستی به سرعت به درخواستدهنده تحویل داده میشود. اما اگر درخواست پردازشی شامل دادههایی باشد که در حافظه نهان موجود نباشند، دادههای درخواستشده از منبع اصلی خود (برای مثال حافظههای جانبی یا سرویس دهندهها) دریافت شده سپس به درخواستدهنده تحویل داده میشود.
در این صورت عمل پردازش به کندی پیش خواهد رفت. در واقع حافظه نهان در مقایسه با حافظههای اصلی و جانبی، بسیار سریعتر قابل دسترسی و خواندن است و عمل پردازش را سریعتر میکند.
فرق حافظه بافر buffer و کش cache چیست؟
حافظه بافر و کش هر دو از نوع حافظه Non Volatile و فرار هستند یعنی با قطع برق اطلاعات آنها از بین میرود. تفاوت آنها این است که حافظه cache برای افزایش سرعت استفاده میشود اما بافر برای تنظیم و هماهنگ کردن سرعت. تنظیم سرعت، زمانی لازم است که دو دستگاه با سرعت متفاوت بخواهند با هم در ارتباط باشند مثلا پرینتر و کامپیوتر یا پخش ویدئو به صورت آنلاین.
وقتی با لپ تاپ و کامپیوتر به پرینتر پرینت میفرستید چون سرعت پرینتر از کامپیوتر کمتر است باید پرینت ها را در بافر نگه دارد تا طبق روال خودش چاپ کند و یا وقتی سرعت اینترنت کم شود، پخش ویدئو متوقف میشود تا مقداری از ویدئو بافر شود و پخش بیوقفه فراهم شود سپس دوباره ویدئو پخش میشود.
Cache coherence چیست؟
هر پردازنده، کش خودش را دارد و در سیستم های پردازشی که از چند پردازنده استفاده میکنند ممکن است دچار ناهماهنگی هنگام استفاده از کش شود. مثلا یک کش در حال پردازش یک دیتا باشد ولی کش دیگر نداند روی آن داده کاری در حال انجام است. بنابراین باید بین کشهای پردازندهها و هستهها هماهنگی و انسجام به وجود آید.
با استفاده از Cache Coherence – ارتباط داخلی منسجم کش، میتوان انسجام لازم بین کشها را فراهم کرد به طوری که انگار همه از یک کش استفاده میکنند.
Cache چگونه کار میکند؟
همان طور که میدانید، برنامه شامل مجموعهای دستورات است که باید توسط پردازنده اجرا شود. وقتی برنامه را اجرا میکنید این دستورات باید به نحوی از استوریج اصلی به CPU منتقل شود. در اینجا نقش انواع حافظه مشخص میشود.
پردازنده های امروزی، این قابلیت را دارند که حجم زیادی دیتا را در ثانیه پردازش کنند. برای اینکه کاملا از قدرت CPU استفاده شود، CPU باید بسیار سریع به حافظه، دسترسی داشته باشد. اینجاست که Cache وارد صحنه میشود! حافظه کش است که با پردازنده به تبادل دیتا میپردازد.
عملکرد حافظه Cache
پس سی پی یو دیتای مورد نیازش را ابتدا در Cache جستجو میکند و اگر در کش وجود داشته باشد (Cache Hit)، از آن میخواند. از آنجایی که این دادهها در کشی قرار دارد که در داخل یا نزدیک پردازنده قرار دارد، سرعت بالایی خواهیم داشت.
با توجه به قابل پیشبینی بودن برخی پروسهها و سرعت بالای چیپهای سیلیکونی نسبت به هارد درایوها، اگر دادهها در Cache باشند، سرعت دسترسی به آنها هم سریعتر خواهد بود. اگر اطلاعات مورد نیاز پردازنده در کش نباشد (Cache Miss)، پردازنده به حالت Idle و انتظار میرود تا اطلاعات مورد نیازش از حافظه رم به Cache آورده شود.
حافظه Cache در واقع نوعی رم بسیار پرسرعت است و سی پی یو با سرعت بالایی میتواند به آن دسترسی داشته باشد.
دستهبندی حافظه Cache
حافظه نهان یا کش میتواند به دو صورت سخت افزاری و مجازی باشد:
۱- حافظه نهان یا کش سخت افزاری
در نوع سخت افزاری، حافظه نهان قسمتی از واحد سخت افزاری مورد نظر (مثلاً CPU های دارای این نوع حافظه یا هارد دیسک های دارای این نوع حافظه) است که عمل Caching را برعهده دارد. مکانیزم،ساختار، سرعت و کارایی حافظه نهان سخت افزاری با حافظه اصلی (RAM) تفاوت زیادی دارد.
از این رو با افزایش حجم حافظه نهان سخت افزاری در واحدهایی مانند CPU، قسمت تمام شده آن بیشتر میشود. دلیل این که در همه جا از حافظه نهان استفاده نمیکنند، قیمت و هزینه تهیه بسیار زیاد آن نسبت به سایر حافظهها است.
۲- حافظه نهان یا کش مجازی
نحوه عملکرد حافظه نهان مجازی با سخت افزاری متفاوت است. این نوع حافظه نهان در واقع قسمتی از حافظه جانبی است که توسط برنامهها مشخص میشود و برای دسترسی سریعتر، از این قسمت استفاده میکنند. این نوع حافظه نهان به صورت محلی (Local) کارایی ندارد. برای مثال، برنامههایی مانند مرورگرهای وب، قسمتی از حافظه جانبی را تحت عنوان حافظه نهان وب (Web Cache) برای ذخیره سازی موقت دادههای وب مانند صفحات وب، تصاویر، استایلها و … استفاده میکنند
زمانی که کاربر قصد مشاهده صفحه یا تصویر درخواست شده را داشته باشد که در حافظه نهان وب مرورگر موجود باشد، مرورگر همان دادههای کَش شده را به کاربر نشان میدهد. دراین فرایند دیگر دادههای کش شده از طریق اینترنت یا شبکه بارگیری نمیشوند و باعث کاهش ترافیک شبکه، پنهای باند مصرفی، بار روی سرور شده و باعث بهبود فرایند میشوند. این قسمت از حافظه جانبی، تفاوتی با سایر قسمتهای عادی حافظه ندارد و تنها توسط برنامهها به عنوان حافظه نهان مجازی استفاده میشوند.
Caching بعد از سرعت کلاک، مهمترین تاثیر را روی افزایش سرعت CPU و کارایی برنامه دارد.
انواع حافظه کش – Cache
CPU Cache به سه سطح اصلی تقسیم میشود: L1، L2 و L3 که L مربوط به Level و لایه است و عدد جلوی L، بیانگر نوع کش. این طبقهبندی بر اساس سرعت و ظرفیت کش است. در ادامه با این سه سطح آشنا میشویم.
کدام نوع حافظه cache سریعتر است؟
کش لایه اول CPU یا L1 Cache
حافظه cache سطح یک در تراشه CPU ساخته شده و با اینکه ظرفیت کمی دارد، سریعترین نوع حافظه برای سی پی یو است در واقع سریعترین حافظهای است که در سیستمهای کامپیوتری وجود دارد. در بین سه سطح از حافظه های Cache که در سیستم وجود دارد،
کش سطح یک یا L1 بالاترین سطح در طبقهبندی کش های سی پی یو را دارد و بالاترین سرعت و کمترین ظرفیت را داراست اما کمترین زمان تاخیر و Delay که تقریبا صفر است را دارد که به دلیل نزدیکی زیاد به پردازنده و یا قرارگیری در خود تراشه CPU است.
L1 Cache حاوی دادههایی است که CPU به احتمال زیاد برای تکمیل کار خاصی به آنها نیاز دارد.
L1 Cache معمولا تا ۲۵۶ کیلوبایت ظرفیت دارد و گذشته به این کش ها سی پی یو فول کش میگفتند البته امروزه میزان کش سطح یک در CPU های قدرتمند به یک مگابایت هم میرسد. در برخی چیپستهای سروری مثل پردازنده های اینتل زئون، ظرفیت L1 Cache بین یک تا دو مگابایت است.
L1 Cache به دو بخش تقسیم میشود:
- Instruction Cache: حاوی اطلاعاتی درباره عملیاتی که پردازنده باید انجام دهد.
- Data Cache: حاوی اطلاعاتی که برای اجرای عملیات لازم است.
پردازندههای چند هستهای، برای هر هسته، کش جداگانه L1 دارند.
کش لایه دوم CPU یا L2 Cache
L2 cache چیست؟ کش لایه دو، کش ثانویه و کش سطح دو عناوینی است که برای L2 Cache استفاده میشود و حافظه میانی بین لایه اول و لایه سوم کش های CPU است. سرعت L2 Cache از L1 Cache کمتر است اما ظرفیت بیشتری دارد.
این ظرفیت بین ۲۵۶ کیلوبایت تا ۸ مگابایت است. هر چند که CPU های قدرتمند جدیدتر، ظرفیت بیشتری دارند.
L2 Cache دادههایی را نگه میدارد که سی پی یو در مرحله بعد احتمالا به آنها احتیاج دارد. در اغلب پردازنده های جدید، L1 Cache و L2 Cache در داخل Core های پردازنده قرار دارند و هر هسته هم، کش خودش را دارد.
در لایهبندی Cache ها اگر دادههای مورد نظر در L1 Cache نباشد، لایههای بعدی بررسی میشود یعنی لایه دوم و سپس سوم.
کش لایه سوم CPU یا L3 Cache
بیشترین ظرفیت و کمترین سرعت را در بین حافظه های کش را دارد. ظرفیت L3 Cache بین ۴ تا ۵۰ مگابایت است.
همانند آنچه که در طبقهبندی کش ها داریم، هر چه شماره لایه بیشتر باشد و در اصطلاح، لایه در سطح پایینتری باشد، سرعت پایینتر و ظرفیت بیشتری نسبت به لایه قبلی خود خواهد داشت. پس L3 Cache نسبت به L2 Cache دارای سرعت کمتر و ظرفیت بیشتر است و اگر دادهای در کش لایه دوم سی پی یو پیدا نشد، لایه سوم بررسی میشود.
کش لایه سوم معمولا بر روی مادربورد و بین حافظه اصلی سیستم یا همان RAM و کش لایه دوم قرار میگیرد. L3 Cache بهصورت لایه اشتراکی بین تمام هستهها استفاده میشود و وظیفه آن جلوگیری از به وجود آمدن گلوگاه هنگام دریافت اطلاعات از حافظه رم است. در واقع امروزه کش لایه سه همان کاری را انجام میدهد که کش لایه دو قبل از این که در خود پردازنده قرار داده شود، انجام میداد.
آنچه در Cache رایج است این است که کش های با ظرفیت بالاتر، سرعت کمتری دارند.
در اغلب پردازنده های امروزی، L1 Cache و L2 Cache در خود پردازنده و برای هر هسته تعبیه میشود و L3 Cache هم برای همه Core ها قرار میدهند.
حافظه ثبات چیست؟
حافظه ثبات یا Register بین حافظه Cache و CPU قرار دارد و برای انتقال دیتا و دستورالعملها آن هم با سرعت بسیار بالا حتی بالاتر از حافظه کش L1 در پردازنده استفاده میشود. در واقع محلی برای ذخیره دستورالعملها است تا سی پی یو روی آنها پردازش انجام دهد. رجیسترها برای انجام سه کار Fetch و Decode و Execute استفاده میشوند.
اندازه رجیستر به نوع CPU بستگی دارد. پردازنده ۶۴ بیتی عموما ۶۴ بیت رجیستر دارند. البته رجیسترهای کوچکتری هم هستند که برای اجرای دستورالعملهای کوتاهتر استفاده میشوند و half register نام دارند.
تعمیر لپ تاپ خود را به توسعه شبکه آداکبسپارید.
Cache Hit چیست؟
وقتی پردازنده به دنبال دیتایی برای انجام عملیات است ابتدا سعی میکند آن را در L1 بیاید اگر پیدا کرد، در واقع Cache Hit اتفاق افتاده است. اگر در L1 نبود، در L2 و سپس در L3 میگردد.
Cache Miss چیست؟
اگر داده را در Cache پیدا نکرد، آن را از حافظه اصلی به دست میآورد که به این اتفاق Cache Miss گفته میشود.
اگر بین انتخاب دو CPU مردد هستید، CPU ای که L3 Cache بیشتری دارد انتخاب کنید.
Latency در CPU Cache
همان طور که میدانیم وظیفه کش، تبادل اطلاعات بین حافظه اصلی و پردازنده است. زمان لازم برای دسترسی به دیتای موجود در رم را زمان تاخیر یا Latency میگوییم. بیشترین Latency مربوط به L3 است و کمترین Latency مربوط به L1 که سریعترین و نزدیکترین کش به هسته است.
هر چه کامپیوتر سریعتر و بهتر باشد، زمان تاخیر کاهش مییابد. هم اکنون رم های DDR4 با زمان تاخیر کم و SSD های بسیار سریع با زمان دسترسی کم به عنوان استوریج اصلی، موجود است که هر دو باعث کاهش زمان تاخیر میشوند.
با پیشرفتی که در ترانزیستورهای سی پی یو رخ داده امکان قرار دادن میلیاردها ترانزیستور در فضایی کوچکتر از قبل وجود دارد در نتیجه فضای بیشتری برای کش باقی میماند و در پی آن قرارگیری کش در نزدیکی هسته ممکن میشود و در نهایت، Latency کاهش مییابد.
هم چنین هر چه حافظه کش پردازنده بیشتر باشد، پردازنده، قویتر و کارایی، بیشتر است. در پردازندههای گرافیکی هم برای افزایش سرعت و کارایی از Cache استفاده میشود.
اگر درباره Intel Optane شنیده باشید میدانید که میتواند به عنوان Hybrid External Cache استفاده شود.
کلام آخر: بازارِ پردازنده ها به سرعت در حال پیشرفت است و اینتل بر روی L4 Cache هم کار میکند.
افزایش حافظه کش لپ تاپ
اندازه Cache در پیکربندی CPU مشخص میشود. بهترین راه برای افزایش حافظه کش، تعویض CPU کنونی با پردازندهای با میزان کش بیشتر است. با این کار هم اندازه حافظه کش لپ تاپ و کامپیوتر بیشتر میشود و هم سرعت و کارایی کل سیستم.
منبع: Makeuseof
Static RAM برخلاف DRAM، میتواند داده را بدون این که نیاز باشد مرتبا رفرش انجام شود، نگه دارد بنابراین برای استفاده در Cache ایدهآل است.”