RAM چیست و چگونه کار می‌کند

RAM (حافظه دسترسی تصادفی) یکی از انواع حافظه‌های اصلی است که وظیفه حفظ داده‌ها به صورت موقت را دارد. یکی از وظایف اصلی RAM واسطه گری بین Hard Drive Disk و CPU است. در ادامه با ما باشید تا به صورت خلاصه با RAM و نحوه کار آن آشنا شوید.
کلمه RAM به چه معناست؟
کلمه RAM (رم) مخفف عبارت Random Access Memory به معنای “حافظه دسترسی تصادفی” یا “حافظه با دسترسی تصادفی” است. این قطعه با نام‌های زیر نیز شناخته می‌شود:
• Memory (حافظه)
• Non-sequential Memory (حافظه غیر ترتیبی)
• Randomly Memory (حافظه تصادفی)
• Main Memory (حافظه اصلی)
• RWM (حافظه خواندنی و نوشتنی)
• Working Memory (حافظه خواندنی)

رم چیست؟
RAM یک حافظه قابل خواندن و نوشتن است که بر پایه طراحی فلش (Flash) ساخته شده و وظیفه اصلی آن حفظ داده‌ها به صورت موقت برای پردازش در CPU است. رم داده‌ها را در خازن‌های موجود در حافظه خود ذخیره می‌کند. از این رو به دلیل ماهیت خازن‌ها، درصورت قطع برق انرژی خود را به سرعت از دست می‌دهند. همچنین خازن‌ها به دلیل این که میل به دشارژ شدن دارند، کنترلر حافظه به صورت انرژی آن‌ها را ریشارژ می‌کند. شارژ بودن خازن به معنای بیت منطقی ۱ و شارژ نبودن آن به معنای بیت ۰ است.
هسته سیستم عامل و برنامه‌های موجود در سیستم‌عامل‌ها، ابتدا بر روی این حافظه موقتی قرار می‌گیرند سپس برای پردازش به نوبه به CPU ارسال می‌شوند. زمانی که اتصال رم با منبع تغذیه قطع می‌شود یا برق مورد نیاز را دریافت نکند (مانند زمانی که کامپیوتر خود را خاموش می‌کنید)، این ماژول تمامی اطلاعات خود را از دست می‌دهد و به اصطلاح ریست (Reset) می‌شود و کل فضای حافظه آن پاک می‌شود.

رم چه وظیفه‌ای بر عهده دارد؟
همانطور که گفته شد، وظیفه رم حفظ داده‌ها به صورت موقت است. سیستم‌عامل در هنگام بوت شدن (Boot) و همه برنامه‌ها و اجزای آن (مانند متغیرهای برنامه و…) که اجرا می‌شوند، ابتدا بر روی این حافظه موقتی ذخیره می‌شوند تا به سرعت برای پردازش در دسترسی CPU قرار بگیرند؛ چون سرعت RAM بسیار بیشتر از سرعت حافظه‌های جانبی مثلهارد دیسک‌ است و بنابراین CPU می‌تواند به سرعت دستورات را دریافت کرده و پردازش کند. تقریبا تمامی عملیات برنامه‌ها و دستوراتی که قرار است از طریق CPU پردازش شوند در RAM منتظر می‌مانند. با اتمام فرایند پردازش یک دستور، دستوری که در صف انتظار قرار دارد، به CPU داده می‌شود تا مورد پردازش قرار گیرد.

معمولاً پردازنده ها دارای سرعت پردازش بالایی هستند در صورتی که حافظه‌های جانبی بر خلاف آن سرعت ذخیره کمتری دارند و کند هستند. بنابراین RAM در بین این دو ماژول (حافظه جانبی و پردازنده) قرار می‌گیرد. فرض کنید زمانی که یک خروجی برای ذخیره شدن از طرف CPU به حافظه جانبی ارسال می‌شود، پس از مدت بسیار کوتاهی، خروجی دیگری نیز برای ذخیره شدن ارسال می‌شود. درحالی که حافظه جانبی هنوز پروسه ذخیره سازی ورودی اول را تمام نکرده، ورودی دیگری از طرف CPU دریافت می‌کند. حال اینجاست که RAM با قرار گرفتن بین این دو، میان پردازنده و هارد دیسک یک تعامل ایجاد می‌کند.
خروجی‌هایی که از طرف پردازنده به حافظه جانبی (در این مثال: هارد دیسک) ارسال می‌شوند، یکی یکی در RAM ذخیره می‌شوند سپس به ترتیب به هارد دیسک ارسال می‌شوند. زمانی که هارد دیسک مقدار ورودی اول را ذخیره کرد از حافظه موقتی مقادیر بعدی را درخواست می‌کند.

بنابراین RAM با این دو وظیفه مهم، به عنوان یک واسطه‌‌ی دو طرفه بین هارد دیسک و پردازنده قرار گرفته است.

نکته: وظیفه رم فقط به حفظ تعادل میان هارد دیسک و سی پی یو ختم نمی‌شود. این ماژول بین سایر سخت افزارها نظیر کارت‌های گرافیک نیز این تعادل را به وجود می‌آورد برای مثال، کارت‌های گرافیک می‌توانند از رم نیز به عنوان حافظه موقتی خود استفاده کنند. رم به صورت کلی یک حافظه موقتی برای کلیه سخت افزارهاست. برای مثال RAM به عنوان میزکار پردازنده در مقیاس بزرگتر نیز استفاده می‌شود.

چرا این قطعه “حافظه با دسترسی تصادفی” نام دارد؟
دلیل اینکه اسم RAM یا Random Access Memory به معنی “حافظه دسترسی تصادفی” را روی این قطعه گذاشته اند این است که در RAM برخلاف بسیاری از حافظه‌های دیگر، هر داده بدون در نظر گرفتن ترتیب فضاهای حافظه، می‌تواند بر روی فضاهای موجود در RAM قرار بگیرد. این بدان معنی است که در هر لحظه و در هر زمان میتوان بصورت مستقیم به فضاهای حافظه RAM بدون در نظر گرفتن ترتیب دسترسی داشت. شاید عبارت “دسترسی تصادفی” برای این قطعه کاربران را دچار مشکل و سردرگمی کند. اسم دیگری که می‌توان بر روی این قطعه گذاشت عبارت “دسترسی غیر ترتیبی” است.
• نحوه نوشتن در حافظه‌های ترتیبی
در اغلب انواع حافظه‌ها نحوه قرار گیری داده‌ها در فضاهای حافظه‌ی مربوط، به طور زیر است:

نحوه نوشتن در حافظه‌های ترتیبی
همان گونه که در تصویر بالا می‌بینید، داده شماره ۱ در فضای شماره ۵ ذخیره می‌شود (چون قبلاً فضاهای ۱ تا ۴ در حافظه پر شده اند؛ بنابراین داده‌های جدید در فضاهای ترتیبی دیگر ذخیره می‌شوند) و داده شماره ۲ در فضای شماره ۶ و داده شماره ۳ در فضای شماره ۷ و … ذخیره می‌شوند. همانطور که می‌بینید، داده‌ها به صورت ترتیبی ذخیره می‌شوند.
• خواندن در حافظه‌های ترتیبی
فرض کنید که حافظه قصد دارد تا مقدار موجود در فضای ششم را بدست بیاورد:

نحوه خواندن در حافظه‌های ترتیبی
همانطور که می‌بینید، برای اینکه واحد تنظیم کننده حافظه بتواند مقدار موجود در فضای شماره ششم را بدست بیاورد، یکی یکی فضاهای حافظه را پشت سر می‌گذارد تا در نهایت به فضای مورد نظر برسد.
این عملیات که به صورت خواندن و نوشتنِ ترتیبی است، سرعت این نوع حافظه‌ها را به شدت کم می‌کند چون واحد تنظیم کننده‌ی حافظه باید برای بدست آوردن مقدار موجود در یک فضا، تمامی فضاهای پشت سر آن را یکی یکی بپیماید تا به فضای مورد نظر برسد.
• نحوه نوشتن در حافظه‌های غیر ترتیبی (مثل RAM)
اما این فرایند در حافظه‌های غیر ترتیبی مانند RAM، اینگونه نیست. حافظه RAM می‌تواند داده‌ها را در هر فضایی که به آن دستور داده شده است، ذخیره کند:

نحوه نوشتن در حافظه‌های غیرترتیبی مانند RAM
همانطور که می‌بینید، داده‌ها بر خلاف دیگر حافظه‌ها به صورت ترتیبی در فضاهای حافظه قرار نگرفته اند بلکه طبق تصمیم واحد کنترل کننده‌ی RAM و دستوری که به آن داده می‌شود (توسط باس‌های داده و آدرس)، در فضاهایی که ممکن است غیر ترتیبی باشند، ذخیره می‌شوند.
• نحوه خواندن در حافظه‌های غیر ترتیبی (مثل RAM)
فرض کنید که حافظه قصد دارد مقدار موجود در فضای چهارم را بدست بیاورد

نحوه خواندن در حافظه‌های غیرترتیبی مانند RAM
همانطور که می‌بینید، RAM برخلاف سایر حافظه‌ها، به صورت مستقیم به فضای مورد نظر دسترسی دارد و این باعث افزایش سرعت فوق العاده در فرایند خواندن و نوشتن بر روی حافظه می‌گردد.