چرا یک نوع حافظه هرگز کافی نیست
یک حافظه ایدهآل باید بسیار سریع باشد، مقدار عظیمی داده نگه دارد، و هزینه بسیار کمی داشته باشد. در عمل، هیچ فناوری واحدی به هر سه بهطور همزمان دست نمییابد: حافظه سریعتر همیشه بهازای هر بایت گرانتر است و معمولاً کوچکتر، در حالی که حافظه ارزانتر و بزرگتر همیشه کندتر است. این مبادله مسئله مرکزی است که Memory Hierarchy برای حل آن طراحی شده است.
ایده اصلی: ترکیب چند سطح
بهجای انتخاب یک فناوری حافظه، یک کامپیوتر چند سطح مختلف حافظه را ترکیب میکند، هرکدام با تعادل متفاوتی از سرعت، اندازه، و هزینه. دادهای که پرکاربرد است در کوچکترین، سریعترین، گرانترین سطح نگه داشته میشود، در حالی که دادهای که کمتر استفاده میشود در سطوح بهتدریج بزرگتر، کندتر، و ارزانتر که از پردازنده دورترند قرار دارد.
سریعترین، کوچکترین، گرانترین:
رجیسترها → کش → حافظه اصلی → دیسک/SSD
کندترین، بزرگترین، ارزانترینSRAM: پایهای برای حافظه سریع و کوچک
SRAM (Static Random Access Memory) هر بیت را با استفاده از یک مدار کوچک از ترانزیستورها ذخیره میکند که مقدارش را بهطور پیوسته تا زمانی که توان تأمین شود نگه میدارد، بدون نیاز به رفرش دورهای. این باعث میشود SRAM برای دسترسی بسیار سریع باشد، اما هر سلول ذخیرهسازی به چند ترانزیستور نیاز دارد، که آن را از نظر فیزیکی بزرگتر و بهازای هر بیت گرانتر از جایگزینی که برای حافظه اصلی استفاده میشود میکند.
DRAM: پایهای برای حافظه بزرگ و ارزان
DRAM (Dynamic Random Access Memory) هر بیت را با استفاده از یک ترانزیستور واحد و یک خازن ذخیره میکند، که بسیار فشردهتر و ارزانتر برای تولید بهازای هر بیت نسبت به SRAM است. مبادله این است که شارژ خازن با گذشت زمان نشت میکند، پس DRAM باید بهطور دورهای Refreshed شود — مقادیر ذخیرهشدهاش در فواصل منظم دوباره نوشته شوند — تا از دست دادن داده جلوگیری شود، و خواندن از آن بهطور محسوسی بیشتر از خواندن از SRAM طول میکشد.
چرا این دو فناوری متفاوت استفاده میشوند
بهدلیل این مبادلات، SRAM تقریباً منحصراً برای حافظه Cache کوچک و بسیار سریع که مستقیماً درون یا بسیار نزدیک به پردازنده ساخته شده استفاده میشود، در حالی که DRAM برای Main Memory بزرگتری استفاده میشود که داده بسیار بیشتری را با کسری از هزینه بهازای هر بیت نگه میدارد، به قیمت زمان دسترسی کندتر.
فراتر از SRAM و DRAM: ذخیرهسازی پایدار
زیر حافظه اصلی در سلسلهمراتب، ذخیرهسازی پایدار قرار دارد، مانند Solid-State Drives (SSDs) یا Hard Disk Drives (HDDs) مغناطیسی سنتی، که داده را حتی وقتی توان قطع میشود حفظ میکنند، داده بسیار بیشتری نسبت به DRAM نگه میدارند، اما دسترسی به آنها بهطور قابلتوجهی کندتر است، بهویژه هارد دیسکها، که شامل حرکت مکانیکی برای مکانیابی فیزیکی داده هستند.
چرا درک این پایه اهمیت دارد
هر تکنیکی که در باقی این فصل بحث میشود — استراتژیهای کش، حافظه مجازی، و بهینهسازی کارایی — بهطور خاص بهدلیل مبادلات بنیادین توصیفشده در اینجا بین سرعت، اندازه، و هزینه وجود دارد. بدون درک اینکه چرا هیچ فناوری حافظه واحدی نمیتواند هر نیازی را برآورده کند، تصمیمات طراحی پشت سلسلهمراتب کش خودسرانه بهنظر میرسند نه ضروری.