رم و کش هر دو حافظه اولیه سریع هستند. اما چه تفاوتی بین آنها وجود دارد؟
اگر از علاقه مندان به فناوری هستید، ممکن است در مورد حافظه پنهان و نحوه کار آنها با RAM سیستم شما برای سریعتر کردن آن شنیده باشید. اما آیا تا به حال به این فکر کرده اید که کش چیست و چه تفاوتی با رم دارد؟
خوب، اگر دارید، در جای درستی هستید زیرا ما به هر چیزی که حافظه کش را از RAM متمایز می کند، نگاه خواهیم کرد.
با سیستم های حافظه در رایانه خود آشنا شوید
قبل از شروع مقایسه RAM با حافظه نهان، مهم است که بدانیم سیستم حافظه در رایانه چگونه طراحی شده است.
ببینید، رم و کش هر دو سیستم های ذخیره سازی حافظه فرار هستند. این بدان معناست که هر دو این سیستم های ذخیره سازی می توانند به طور موقت داده ها را ذخیره کنند و تنها زمانی کار می کنند که برق به آنها تامین شود. بنابراین، هنگامی که کامپیوتر خود را خاموش می کنید، تمام داده های ذخیره شده در حافظه رم و کش حذف می شوند.
به همین دلیل، هر دستگاه محاسباتی دارای دو نوع مختلف سیستم ذخیره سازی است – یعنی حافظه اولیه و ثانویه. درایوها حافظه ثانویه در یک سیستم کامپیوتری هستند که در آن فایلهای خود را ذخیره میکنید و میتوانند در صورت قطع برق، دادهها را ذخیره کنند. از سوی دیگر، سیستمهای حافظه اولیه هنگام روشن شدن، دادهها را به CPU میرسانند.
اما چرا یک سیستم حافظه روی کامپیوتر وجود دارد که نمی تواند داده ها را در صورت خاموش بودن ذخیره کند؟ خوب، دلیل بزرگی وجود دارد که چرا سیستم های ذخیره سازی اولیه برای یک کامپیوتر ضروری هستند.
می بینید، اگرچه حافظه اولیه روی سیستم شما قادر به ذخیره داده ها در صورت عدم وجود برق نیست، اما در مقایسه با سیستم های ذخیره سازی ثانویه بسیار سریعتر هستند. در مورد اعداد، سیستم های ذخیره سازی ثانویه مانند SSD ها زمان دسترسی 50 میکروثانیه دارند.
در مقابل، سیستم های حافظه اولیه، مانند حافظه با دسترسی تصادفی، می توانند هر 17 نانوثانیه داده ها را به CPU ارائه دهند. بنابراین، سیستمهای حافظه اولیه تقریباً 3000 برابر سریعتر از سیستمهای ذخیرهسازی ثانویه هستند.
با توجه به این تفاوت در سرعت، سیستم های کامپیوتری با یک سلسله مراتب حافظه ارائه می شوند که این امکان را فراهم می کند تا داده ها با سرعت های شگفت انگیزی به CPU تحویل داده شوند.
در اینجا نحوه حرکت داده ها از طریق سیستم های حافظه در یک کامپیوتر مدرن است.
- درایوهای ذخیره سازی (حافظه ثانویه): این دستگاه می تواند داده ها را به طور دائم ذخیره کند اما به سرعت CPU نیست. به همین دلیل، CPU نمی تواند مستقیماً از سیستم ذخیره سازی ثانویه به داده ها دسترسی داشته باشد.
- RAM (حافظه اولیه): این سیستم ذخیره سازی سریعتر از سیستم ذخیره سازی ثانویه است اما نمی تواند داده ها را به طور دائم ذخیره کند. بنابراین، زمانی که فایلی را روی سیستم خود باز می کنید، از هارد دیسک به رم منتقل می شود. با این حال، حتی RAM به اندازه کافی برای CPU سریع نیست.
- کش (حافظه اولیه): برای حل این مشکل، نوع خاصی از حافظه اصلی که به حافظه کش معروف است در CPU تعبیه شده است و سریعترین سیستم حافظه روی یک کامپیوتر است. این سیستم حافظه به سه قسمت کش L1، L2 و L3 تقسیم می شود. بنابراین، هر داده ای که باید توسط CPU پردازش شود، از هارد دیسک به RAM و سپس به حافظه کش منتقل می شود. گفته می شود، CPU نمی تواند مستقیماً از حافظه پنهان به داده ها دسترسی داشته باشد.
- رجیسترهای CPU (حافظه اولیه): رجیستر CPU در یک دستگاه محاسباتی کوچک است و بر اساس معماری پردازنده است. این ثبات ها می توانند 32 یا 64 بیت داده را در خود نگه دارند. هنگامی که داده ها به این رجیسترها منتقل می شوند، CPU می تواند به آن دسترسی پیدا کند و کار را انجام دهد.
آشنایی با رم و نحوه عملکرد آن
همانطور که قبلاً توضیح داده شد، حافظه دسترسی تصادفی در یک دستگاه مسئول ذخیره و تامین داده ها به CPU برای برنامه های روی رایانه است. برای ذخیره این داده ها، حافظه با دسترسی تصادفی از یک سلول حافظه پویا (DRAM) استفاده می کند.
این سلول با استفاده از خازن و ترانزیستور ایجاد می شود. خازن در این آرایش برای ذخیره شارژ و بر اساس وضعیت شارژ خازن استفاده می شود. سلول حافظه می تواند 1 یا 0 را نگه دارد.
اگر خازن به طور کامل شارژ شود، گفته می شود که یک عدد 1 را ذخیره می کند. از طرف دیگر، زمانی که تخلیه می شود، می گویند 0 را ذخیره می کند. اگرچه سلول DRAM قادر به ذخیره بارها است، اما این طراحی حافظه با اشکالاتی همراه است.
ببینید، همانطور که RAM از خازن برای ذخیره شارژ استفاده می کند، تمایل دارد شارژی را که در خود ذخیره کرده است از دست بدهد. به همین دلیل، داده های ذخیره شده در RAM ممکن است از بین بروند. برای حل این مشکل، شارژ ذخیرهشده در خازنها با استفاده از تقویتکنندههای حسی تازهسازی میشود و از از دست دادن اطلاعات ذخیرهشده RAM جلوگیری میکند.
اگرچه این به روز رسانی شارژ، رم را قادر می سازد تا هنگام روشن شدن رایانه، داده ها را ذخیره کند، اما تأخیر را در سیستم ایجاد می کند زیرا رم نمی تواند داده ها را در هنگام به روز رسانی به CPU منتقل کند و سرعت سیستم را کند می کند.
علاوه بر این، رم به مادربرد متصل می شود که به نوبه خود با استفاده از سوکت به CPU متصل می شود. از این رو، فاصله قابل توجهی بین RAM و CPU وجود دارد که زمان تحویل داده ها به CPU را افزایش می دهد.
با توجه به دلایل ذکر شده در بالا، RAM فقط هر 17 نانوثانیه داده را به CPU می دهد. با این سرعت، CPU نمی تواند به اوج عملکرد خود برسد. این به این دلیل است که CPU باید هر ربع نانوثانیه با دادههایی عرضه شود تا بهترین عملکرد را هنگام کار بر روی فرکانس بوست توربو 4 گیگاهرتز ارائه دهد.
برای حل این مشکل، ما حافظه کش داریم، سیستم ذخیره سازی موقت دیگری که بسیار سریعتر از RAM است.
حافظه کش توضیح داده شده است
اکنون که در مورد اخطارهایی که با RAM ارائه میشود، میدانیم، میتوانیم به حافظه کش و نحوه حل مشکل رم نگاه کنیم.
اول از همه، حافظه نهان روی مادربرد وجود ندارد. در عوض روی خود CPU قرار می گیرد. به همین دلیل، دادهها نزدیکتر به CPU ذخیره میشوند و آن را قادر میسازد تا به دادهها سریعتر دسترسی پیدا کند.
علاوه بر این، حافظه نهان اطلاعات همه برنامه های در حال اجرا بر روی سیستم شما را ذخیره نمی کند. در عوض، فقط داده هایی را که اغلب توسط CPU درخواست می شود، نگه می دارد. با توجه به این تفاوت ها، حافظه نهان می تواند داده ها را با سرعت شگفت انگیزی به CPU ارسال کند.
علاوه بر این، در مقایسه با RAM، حافظه نهان از سلول های استاتیک (SRAM) برای ذخیره داده ها استفاده می کند. در مقایسه با سلولهای پویا، حافظه استاتیک نیازی به تجدید ندارد زیرا از خازن برای ذخیره شارژ استفاده نمیکند.
در عوض، از مجموعه ای از 6 ترانزیستور برای ذخیره اطلاعات استفاده می کند. به دلیل استفاده از ترانزیستور، سلول استاتیک با گذشت زمان شارژ خود را از دست نمی دهد و حافظه نهان را قادر می سازد تا داده ها را با سرعت بسیار بالاتری به CPU برساند.
همانطور که گفته شد، حافظه نهان نیز دارای اشکالاتی است. برای مثال، در مقایسه با RAM بسیار پرهزینه تر است. علاوه بر این، یک سلول رم استاتیک در مقایسه با یک DRAM بسیار بزرگتر است، زیرا مجموعه ای از 6 ترانزیستور برای ذخیره یک بیت اطلاعات استفاده می شود. این به طور قابل توجهی بزرگتر از طراحی تک خازن سلول DRAM است.
به همین دلیل، تراکم حافظه SRAM بسیار کمتر است و قرار دادن یک SRAM منفرد با حجم ذخیره سازی بزرگ بر روی دای CPU امکان پذیر نیست. بنابراین برای حل این مشکل حافظه کش به سه دسته L1, L2, L3 cache تقسیم می شود و در داخل و خارج CPU قرار می گیرد.
رم در مقابل حافظه کش
اکنون که درک اولیه ای از RAM و کش داریم، می توانیم به نحوه مقایسه آنها با یکدیگر نگاه کنیم.
متریک مقایسه
رم
حافظه پنهان
تابع
داده های برنامه را برای همه برنامه های در حال اجرا در سیستم ذخیره می کند.
داده ها و دستورالعمل های مورد نیاز CPU را که اغلب استفاده می شود ذخیره می کند.
اندازه
با توجه به تراکم حافظه بالا، RAM میتواند در بستههایی عرضه شود که میتواند از ۲ گیگابایت تا ۶۴ گیگابایت داده ذخیره کند.
به دلیل چگالی حافظه کم، حافظه های کش داده ها را در محدوده کیلوبایت یا مگابایت ذخیره می کنند.
هزینه
ساخت رم به دلیل طراحی تک ترانزیستور/خازن آن ارزان تر است.
ساخت کش به دلیل طراحی 6 ترانزیستوری آن هزینه بر است.
محل
رم به مادربرد متصل است و از CPU فاصله زیادی دارد.
کش یا در داخل هسته CPU وجود دارد یا بین هسته ها مشترک است.
سرعت
رم کندتر است.
کش سریعتر است.
حافظه کش بسیار سریعتر از RAM است
رم و کش هر دو سیستم های حافظه فرار هستند، اما هر دو وظایف متمایز را انجام می دهند. از یک طرف، RAM برنامه های در حال اجرا در سیستم شما را ذخیره می کند، در حالی که کش با ذخیره داده های پرکاربرد نزدیک به CPU از RAM پشتیبانی می کند – عملکرد را بهبود می بخشد.
بنابراین، اگر به دنبال سیستمی هستید که عملکرد عالی ارائه دهد، ضروری است که به رم و کش آن نگاه کنید. تعادل فوقالعاده بین هر دو سیستم حافظه برای استفاده حداکثری از رایانه شما ضروری است.