RAM چیست؟ آشنایی کامل با حافظه RAM در کامپیوتر
وقتی یک برنامه را روی کامپیوتر اجرا میکنیم، CPU نمیتواند تمام اطلاعات مورد نیاز خود را مستقیماً از SSD یا HDD دریافت کند و همانجا پردازش کند.
در این میان یک حافظه بسیار مهم وجود دارد که نقش فضای کاری سریع سیستم را بر عهده میگیرد: RAM.
در این مقاله از مفهوم RAM شروع میکنیم و قدمبهقدم به نحوه کار آن، ارتباط RAM با CPU، تفاوت RAM و ROM، مفهوم ظرفیت، سرعت، Address و حتی نگاه سختافزاری به RAM میرسیم.
RAM مخفف چیست؟
RAM مخفف Random Access Memory است؛ یعنی حافظه دسترسی تصادفی.
اما «تصادفی» در اینجا به معنی بینظم یا اتفاقی نیست.
منظور این است که سیستم میتواند تقریباً به هر محل حافظه، با استفاده از Address آن، دسترسی پیدا کند و لازم نیست از ابتدای حافظه تا آن محل را یکییکی طی کند.
ایده اصلی RAM: CPU بتواند اطلاعاتی را که در حال استفاده هستند، در یک حافظه نسبتاً سریع قرار دهد و به محلهای مختلف آن دسترسی داشته باشد.
یک مثال ساده برای درک RAM
فرض کنید در یک کارگاه نجاری، انبار بزرگی دارید که ابزارها و مواد اولیه داخل آن قرار گرفتهاند. اما وقتی مشغول ساخت یک وسیله هستید، ابزارهایی که دائماً استفاده میکنید را روی میز کار میگذارید.
میز کار مثل RAM است.
انبار بزرگ را میتوان شبیه Storage در نظر گرفت.
Storage
↓
انتقال اطلاعات مورد نیاز
↓
RAM
↓
CPU به اطلاعات مورد نیاز دسترسی پیدا میکند
البته این فقط یک مدل ذهنی است و معماری واقعی کامپیوتر بسیار پیچیدهتر از این مثال است.
چرا CPU مستقیماً از SSD کار نمیکند؟
CPU برای اجرای برنامه به Instruction و Data نیاز دارد.
SSD و HDD برای ذخیرهسازی حجم زیادی از اطلاعات مناسب هستند، اما ساختار و ویژگیهای آنها با حافظه کاری CPU متفاوت است.
بنابراین هنگام اجرای برنامه، سیستمعامل و برنامههای مورد نیاز را در حافظه اصلی قرار میدهد تا CPU بتواند از آنها استفاده کند.
SSD / HDD
↓
RAM
↓
CPU
RAM یک حافظه Volatile است
یکی از مهمترین ویژگیهای RAM این است که معمولاً یک Volatile Memory محسوب میشود.
یعنی برای حفظ اطلاعات به انرژی نیاز دارد.
اگر کامپیوتر را خاموش کنیم، اطلاعات موجود در RAM معمولاً از بین میروند.
RAM: با خاموش شدن سیستم، محتوای آن معمولاً از بین میرود.
ROM / Flash: اطلاعات را بدون برق نیز حفظ میکنند.
به همین دلیل RAM برای نگهداری فایلهای دائمی کاربر مناسب نیست. اگر یک فایل را در RAM داشته باشیم و برق سیستم قطع شود، آن نسخه از اطلاعات دیگر باقی نمیماند.
چرا اسم RAM شده Random Access؟
فرض کنید RAM شامل 8 محل باشد:
| Address | Data |
|---|---|
| 000 | 10101010 |
| 001 | 01010101 |
| 010 | 11001100 |
| 011 | 00110011 |
| 100 | 11110000 |
| 101 | 00001111 |
| 110 | 10011001 |
| 111 | 01100110 |
اگر CPU بخواهد اطلاعات Address شماره 110 را بخواند، لازم نیست اول Addressهای 000، 001، 010 و … را بخواند.
Address مورد نظر مستقیماً برای دسترسی به همان محل استفاده میشود.
RAM از چه قسمتهایی تشکیل شده است؟
اگر RAM را از دید مفهومی نگاه کنیم، چند بخش مهم دارد:
- Address Lines: مشخص میکنند کدام محل حافظه مورد نظر است.
- Data Lines: دادهای را که خوانده یا نوشته میشود منتقل میکنند.
- Control Signals: مشخص میکنند عملیات Read یا Write چگونه انجام شود.
- Memory Cells: محلهایی هستند که اطلاعات در آنها نگهداری میشوند.
CPU
↓
Address Data Control
↓
RAM
Read و Write در RAM
RAM برخلاف ROM کلاسیک هم برای خواندن و هم برای نوشتن استفاده میشود.
عملیات Read
در Read، سیستم یک Address را مشخص میکند و داده موجود در آن محل را دریافت میکند.
عملیات Write
در Write، سیستم یک Address و Data مشخص میکند و مقدار جدید را در آن محل ذخیره میکند.
برای مثال:
یعنی مقدار 11001100 در محل Address شماره 0101 نوشته شود.
ظرفیت RAM یعنی چه؟
وقتی روی یک سیستم نوشته شده مثلاً:
منظور ظرفیت حافظه است؛ یعنی چه مقدار داده را میتوان در آن نگهداری کرد.
واحدهای رایج ظرفیت عبارتاند از:
- Byte
- KB
- MB
- GB
- TB
برای مثال:
و در تعریف رایج دودویی حافظه:
در مشخصات تجاری حافظهها معمولاً از GB به شکل دهدهی استفاده میشود، بنابراین باید بین GB و GiB تفاوت قائل شد.
مثلاً 16GB RAM یعنی چه؟
اگر یک کامپیوتر 16GB RAM داشته باشد، یعنی مقدار قابل توجهی فضای حافظه اصلی برای سیستمعامل، برنامهها، دادههای موقت و پردازشهای در حال اجرا در اختیار سیستم است.
اما این به معنی آن نیست که CPU میتواند در هر لحظه تمام 16GB را با یک عملیات بخواند. CPU از Addressها برای دسترسی به محلهای مشخص حافظه استفاده میکند.
RAM و CPU چگونه با هم کار میکنند؟
یک مدل ساده از ارتباط آنها به شکل زیر است:
CPU
↓ Address
RAM
↑ Data
CPU
البته در یک سیستم واقعی، ارتباط CPU و Memory بسیار پیچیدهتر است و Memory Controller، Cache و Busها نیز در این مسیر نقش دارند.
Memory Controller چیست؟
Memory Controller بخشی از سیستم است که مدیریت ارتباط با حافظه اصلی را انجام میدهد.
در کامپیوترهای مدرن، Memory Controller معمولاً داخل خود CPU قرار دارد.
این بخش مسئولیتهایی مانند مدیریت دسترسی به DRAM و زمانبندی سیگنالهای مربوط به حافظه را بر عهده دارد.
نکته معماری: در سیستمهای قدیمیتر ممکن بود Memory Controller در چیپست مادربرد قرار داشته باشد، اما در بسیاری از CPUهای مدرن این کنترلر به داخل پردازنده منتقل شده است.
انواع مهم RAM
وقتی در کامپیوترهای شخصی درباره RAM صحبت میکنیم، معمولاً با خانوادهای از حافظهها به نام DRAM سروکار داریم.
SRAM
SRAM مخفف Static RAM است.
SRAM از سلولهای حافظهای استفاده میکند که برای نگهداری یک بیت به مدارهای بیشتری نسبت به DRAM نیاز دارند.
به همین دلیل SRAM معمولاً گرانتر و از نظر تراکم حافظه پایینتر است، اما میتواند بسیار سریع باشد.
یکی از کاربردهای مهم SRAM در Cache پردازندههاست.
DRAM
DRAM مخفف Dynamic RAM است.
DRAM برای ذخیره هر بیت از ساختاری متراکمتر استفاده میکند و به همین دلیل برای ساخت حافظه اصلی با ظرفیت بالا مناسب است.
DRAM نیاز به Refresh دارد؛ یعنی اطلاعات ذخیرهشده باید به صورت دورهای بازسازی شوند.
پس DDR4 و DDR5 چه هستند؟
وقتی روی مشخصات یک کامپیوتر میبینیم:
DDR4 نام نسل فناوری حافظهای است که در سیستم استفاده شده است.
DDR مخفف Double Data Rate است.
نسلهای مختلف DDR مانند DDR3، DDR4 و DDR5 ویژگیها و استانداردهای متفاوتی دارند.
بنابراین:
RAM → مفهوم کلی حافظه کاری
DRAM → نوعی فناوری RAM
DDR4 / DDR5 → نسلها و استانداردهای مشخصی از DRAM
RAM با VRAM فرق دارد؟
بله.
RAM اصلی سیستم معمولاً توسط CPU و سیستمعامل استفاده میشود، در حالی که VRAM یا حافظه اختصاصی GPU برای نگهداری دادههای مورد نیاز پردازنده گرافیکی استفاده میشود.
برای مثال در یک کارت گرافیک ممکن است نوشته شده باشد:
این 8GB مربوط به حافظه کارت گرافیک است، نه RAM اصلی کامپیوتر.
چرا RAM بیشتر همیشه به معنی کامپیوتر سریعتر نیست؟
این نکته بسیار مهم است.
فرض کنید یک سیستم 32GB RAM دارد ولی برنامهای که اجرا میکنید فقط به مقدار کمی حافظه نیاز دارد. در این شرایط صرفاً افزایش ظرفیت RAM لزوماً باعث افزایش محسوس سرعت نمیشود.
سرعت سیستم به عوامل مختلفی بستگی دارد؛ از جمله CPU، Cache، سرعت و تأخیر حافظه، Storage، GPU و نوع کاری که سیستم انجام میدهد.
ظرفیت RAM و سرعت RAM دو مفهوم متفاوت هستند.
ظرفیت میگوید «چقدر اطلاعات میتوانیم نگه داریم»، اما سرعت و Latency روی نحوه دسترسی به آن اطلاعات اثر میگذارند.
RAM، Cache و Storage را چطور از هم تشخیص دهیم؟
CPU
↓
Cache
↓
RAM
↓
SSD / HDD
این تصویر یک مدل ساده از سلسلهمراتب حافظه است.
هرچه به CPU نزدیکتر میشویم، معمولاً حافظه کوچکتر، سریعتر و گرانتر میشود. هرچه از CPU دورتر میشویم، معمولاً ظرفیت بیشتر و هزینه به ازای هر بیت کمتر میشود، اما دسترسی نیز متفاوت است.
RAM در معماری کامپیوتر
حالا میتوانیم RAM را به مفاهیمی که در پست CPU یاد گرفتیم متصل کنیم.
CPU
↓
Register
↓
Cache
↓
RAM
↓
Storage
البته این دیاگرام سادهسازی شده است و در معماری واقعی، مسیرها و سطوح بیشتری وجود دارند.
اما برای ساختن یک مدل ذهنی اولیه بسیار مفید است:
CPU سریع است، اما حافظههای بزرگتر معمولاً دورتر و کندتر هستند؛ بنابراین سیستم از سلسلهمراتب حافظه استفاده میکند.
RAM از نگاه طراحی دیجیتال
اگر بخواهیم RAM را با مفاهیمی که بعداً در Digital Logic یاد میگیریم توضیح دهیم، میتوانیم آن را به صورت مجموعهای از سلولهای حافظه در نظر بگیریم.
هر سلول میتواند یک یا چند بیت اطلاعات را نگهداری کند و مدارهای انتخاب و کنترل مشخص میکنند کدام سلول خوانده یا نوشته شود.
Address
↓
Address Decoder
↓
انتخاب Memory Cell
↓
Read / Write
↓
Data
این قسمت دقیقاً جایی است که بعداً مباحثی مانند Decoder، Register، Flip-Flop، Memory Array و مدارهای ترتیبی به RAM وصل میشوند.
یک مثال ساده برای ارتباط RAM و CPU
فرض کنید CPU میخواهد یک عدد را از RAM بخواند.
به صورت ساده میتوانیم این اتفاق را چنین تصور کنیم:
CPU ابتدا محل مورد نظر را مشخص میکند، RAM مقدار ذخیرهشده در آن محل را ارائه میدهد و CPU میتواند از آن داده در ادامه عملیات خود استفاده کند.
جمعبندی
- RAM مخفف Random Access Memory است.
- RAM حافظه اصلی و فضای کاری سیستم محسوب میشود.
- RAM معمولاً Volatile است و با قطع برق اطلاعات آن از بین میرود.
- CPU برای اجرای برنامهها به داده و Instruction نیاز دارد و RAM یکی از منابع اصلی این اطلاعات است.
- RAM امکان Read و Write دارد.
- Address مشخص میکند به کدام محل حافظه دسترسی داریم.
- Data مقدار اطلاعاتی است که خوانده یا نوشته میشود.
- SRAM و DRAM دو فناوری مهم RAM هستند.
- Cacheهای CPU معمولاً بر پایه SRAM ساخته میشوند.
- حافظه اصلی سیستم معمولاً از DRAM استفاده میکند.
- DDR4 و DDR5 نسلها و استانداردهای مشخصی از DRAM هستند.
- ظرفیت RAM با سرعت RAM یکسان نیست.
- VRAM حافظهای است که برای پردازنده گرافیکی استفاده میشود و با RAM اصلی سیستم تفاوت دارد.
مهمترین چیزی که باید از این پست به خاطر بسپاریم: RAM را به عنوان «فضای کاری کامپیوتر» تصور کن؛ جایی که اطلاعات و برنامههایی که سیستم در حال استفاده از آنهاست قرار میگیرند تا CPU بتواند از آنها استفاده کند.
پست بعدی در سطح ۰
حالا که CPU، ROM و RAM را شناختیم، قدم بعدی در این مسیر میتواند Storage چیست؟ باشد؛ یعنی HDD، SSD و اینکه چرا Storage با RAM فرق دارد.