رم یکی از قطعات بسیار بااهمیت کامپیوتر است و علاوه بر کامپیوتر در هر وسیله دیگری که فعالیت پردازشی انجام میدهد، نیز استفاده میشود. آیا میدانید ساختار رمها چگونه است، رمها چند نوع هستند، چگونه عمل میکند و چرا وجود آنها در کامپیوتر و وسایلی که فعالیت پردازشی انجام میدهند، مهم است؟ در این مطلب به این سؤالها پاسخ خواهیم داد و آناتومی انواع مختلف رم را بهصورت ساده و خلاصه بررسی میکنیم.
همانطور که میدانید تمام کامپیوترها مجهز به رم هستند. این قطعه در برخی از سیستمها در پردازنده ادغام شده و در برخی دیگر روی یک برد مدار اختصاصی که روی مادربرد نصب شده، قرار گرفته است.
کامپیوترها نمیتوانند بدون رم کار کنند و میتوان گفت رم شاهکار یک مهندسی دقیق است و هرساله تعداد بسیار زیادی از این حافظه ذخیرهسازی شگفتانگیز تولید میشود. یک ماژول رم میلیاردها ترانزیستور دارد، اما تنها چند وات برق مصرف میکند! رم یکی از قطعات بسیار بااهمیت در کامپیوتر است به همین دلیل در این مطلب قصد داریم آناتومی رم را بهصورت خلاصه و ساده بیان کنیم.
چرا وجود رم در سیستم ضروری است؟
پردازندهها باید به دادهها و دستورالعملها دسترسی راحت و سریعی داشته باشند تا بتوانند عملکرد روانی را برای سیستمعامل سیستم به ارمغان بیاورند. درضمن پردازندهها باید حتی زمانی که دادههای تصادفی یا غیرقابلانتظار از سیستم خواسته میشود، بهسرعت عمل کنند و با دسترسی سریع به دادهها، آنها را در اختیار بخش موردنظر قرار دهند. به همین دلیل وجود رم یا حافظه دسترسی تصادفی (random-access memory) در کامپیوتر اهمیت زیادی دارد.
تقسیمبندی اصلی رم
رمها به دو دسته اصلی استاتیک (Static) و دینامیک (Dynamic) یا SRAM و DRAM تقسیم میشوند. در این مقاله تنها روی DRAM تمرکز میکنیم؛ زیرا SRAM تنها در داخل پردازندههایی مثل سیپییوو کارت گرافیک استفاده میشود. آیا میدانید DRAM در کجای کامپیوتر قرار دارد و چگونه کار میکند؟
رم کامپیوتر درست در سمت راست سیپییوی کامپیوتر قرار دارد و بهراحتی میتوانید آن را ببینید. رم را معمولاً حافظه سیستم یا سیستم مموری (System Memory) نیز خطاب میکنند؛ اما بهتر است رم را حافظه CPU یا CPU مموری (CPU memory) بنامیم؛ زیرا تمام دادهها و دستورالعملهای موردنیاز CPUدر این حافظه ذخیره میشود.
آناتومی DRAM
همانطور که در تصویر بالا میبینید DRAM روی چند برد مدار کوچک که به مادربرد متصل شدهاند، قرار گرفته است. معمولاً هر یک از این بردها DIMM یا UDIMM نام دارند. کلمه DIMM مخفف عبارت dual inline memory module به معنی ماژول حافظه خطی دوگانه است (حرف U نخستین حرف کلمه unbuffered به معنی رجیستر نشده است). در ادامه در مورد این عبارت توضیح خواهیم داد.
کامپیوترهای مدرن لزوماً نباید بسیار سریع باشند؛ اما باید فضای ذخیرهسازی زیادی در اختیار داشته باشند تا بتوانند عملیات سنگین را بهراحتی انجام دهد و هزاران پردازش در حال اجرا در پسزمینه سیستمعامل را بهراحتی مدیریت کنند.
کارتهای گرافیک به حافظههای DRAM بسیار سریع اختصاصی، نیاز مبرم دارند؛ زیرا رندهای سهبعدی سنگین نیازمند خواندن و نوشتن حجم بالایی از دادهها است؛ البته طراحی و عملکرد DRAM مورداستفاده در کارتهای گرافیک کمی DRAM مورداستفاده بهعنوان حافظه سیستم تفاوت دارد.
در تصویر زیر میتوانید ۱۲ تراشه DRAM را ببینید. این ساختار مربوط به حافظهای به نام GDDR5X است که در ادامه آن را کالبدشکافی میکنیم.
کارتهای گرافیک بهاندازه سیپییوها نیازمند حافظه زیادی نیستند؛ اما حافظههای مورداستفاده در آنها هم باید هزاران مگابایت ظرفیت داشته باشد. تمام قطعات مورداستفاده در کامپیوتر نیازمند حافظه رم زیادی نیستند؛ بهعنوانمثال هارد سیستم بهطور متوسط تنها نیازمند ۲۵۶ مگابایت حافظه رم است تا بتواند دادهها را قبل از نوشتن روی حافظه، گردآوری کند.
در تصویر بالا برد یک حافظه HDD (سمت چپ) و یک حافظه SSD (سمت راست) را مشاهده میکنید و تراشه DRAM در هر نوع حافظه با کادر قرمزرنگ مشخص شده است. همانطور که میبینید در هر حافظه تنها یک تراشه وجود دارد؛ زیرا امروزه ۲۵۶ مگابایت ظرفیت بالایی محسوب نمیشود و تنها یک تراشه هم میتواند این میزان حافظه را ایجاد کند.
اکنون متوجه شدهاید که هر قطعه یا دستگاه جانبی که فعالیت پردازشی انجام میدهد، نیازمند حافظه رم است؛ بنابراین حافظههای PCI و SATA نیز دارای تراشههای کوچک DRAM هستند. جالب است بدانید که رابط شبکه و کارت صوت و همچنین پرینتر و اسکنر نیز این تراشه را در خود جای دادهاند.
اجازه دهید بررسی آناتومی تراشه DRAM را با بررسی سطح آن آغاز کنیم (تصویر زیر).
تصویر بالا مزارعی را در ذهن تداعی میکند که با چند مسیر به یکدیگر متصل شدهاند. در حقیقت میتوان گفت سطح تراشه نیز به همین صورت است با این تفاوت که قطعات الکترونیکی مانند محصولات کشاورزی مثل گندم یا جو تراشه DRAM را تشکیل دادهاند و این قطعات به شرح زیر هستند:
- یک سوئیچ با فرم MOSFET یا ماسفت (metal oxide semiconductor field-effect transistor) به معنی ترانزیستور اثرِ میدانیِ نیمهرسانای اکسید-فلز
- میزانی حافظه که با خازن گودال مدیریت میشود (منظور از خازن گودال مخازن عمودی سهبعدی است که با ایجاد یک گودال عمیق در بستری سیلیکونی به وجود آمده است)
این قطعات در کنار یکدیگر بخشی به نام سلول ذخیرهسازی را به وجود میآورند که هر یک از آنها میتوانند یک بیت داده را ذخیره کنند. در تصویر زیر میتوانید نقشهای حدودی یک سلول ذخیرهسازی را مشاهده کنید.
خطوط آبی و سبز نشاندهنده اتصالاتی هستند که ولتاژی را روی ماسفت و خازن اعمال میکند. این اتصالات برای خواندن و نوشتن دادهها استفاده میشوند و خط عمودی (خط بیت) همیشه نخستین بخشی است که دارای جریان میشود. کلمه MOSFET به ترانزیستور ماسفت و کلمه Capacitor هم به خازن اشاره میکند.
خازن گودال اساساً مانند یک سطل عمل میکند و با جریان الکتریکی پر میشود. پس از هر بار پر و خالی شدن خازن یک بیت داده ایجاد میشود. این بیت داده همان عدد باینری ۰۱ معروف است؛ زمانی که خازن خالی میشود عدد ۰ و زمانی که پر میشود، عدد ۱ ایجاد میشود.
علیرغم تلاشهای مهندسان الکترونیک خازنها نمیتوانند جریان را برای همیشه در خود حفظ کنند و جریان ایجادشده در آنها بهمرور زمان تخلیه میشود؛ بنابراین هر یک از سلولهای ذخیرهسازی باید مرتباً شارژ شوند (بین ۱۵ تا ۳۰ مرتبه در هر ثانیه)؛ البته فرآیند شارژ شدن سلولها با سرعت بسیار بالایی صورت میپذیرد و چند سلول تنها در عرض چند نانوثانیه دارای جریان میشوند.
متأسفانه با وجود اینکه تمام سلولهای تراشه DRAM و حافظه شارژ میشوند؛ اما خواندن دادههای بسیاری از آنها یا نوشتن دادهها روی آنها امکانپذیر نیست. همانطور که در تصویر زیر مشاهده میکنید به هر خط چندین سلول متصل شده است.
متأسفانه نقشه بالا بینقص نیست؛ زیرا برای هر ستون سلولها دو خط بیت استفاده شده است و به تصویر کشیدن تمام بخشها باعث پیچیده شدن نقشه میشود؛ بنابراین به نقشه بالا باید به چشم یک نقشه کلی نگاه کنید.
یک ردیف کامل از سلولهای حافظه یک «صفحه» (page) نام دارند و طول آن بسته به نوع DRAM و پیکربندی سیستم متغیر است. طبیعتاً صفحه بلندتر بیتهای بیشتری دارد؛ اما برای راهاندازی آن جریان بیشتری هم موردنیاز است؛ در مقابل صفحه کوتاهتر حافظه کمتری دارد و نیازمند جریان کمتری هم است.
البته موضوع مهم دیگری را نیز باید در نظر بگیریم. وقتی دادههای یک تراشه DRAM خوانده یا اطلاعاتی روی آن نوشته میشود، در نخستین مرحله فرایند باید یک صفحه کامل فعال شود. ردیفی از بیتها (که شامل رشتههایی از صفرها و یکها میشود) در یک مدار چابی با چند تراشه DRAM در پشت و روی خود ذخیره میشود (این مدار چاپی در اصطلاح بافر ردیف یا row buffer نامیده میشود). بافر ردیف در حقیقت مجموعهای از تقویتکنندههای الکترونیکی (آمپلیفایرها) و چفتها است. درصورتیکه صفحه بسیار کوچک باشد، ردیفها باید برای پاسخ دادن به تقاضای دادهها، به دفعات بیشتری فعال شوند.
از سوی دیگر صفحههای بزرگتر فضای پایه بیشتری را میپوشانند؛ بنابراین نیازی نیست بهاندازه صفحههای کوچکتر فعال شوند. اگرچه ردیف طولانیتر نیازمند نیروی بیشتری است و بهصورت بالقوه پایداری کمتری دارد، اما بهتر است بزرگترین صفحهها انتخاب شوند.
با قرار دادن تعدادی از صفحهها در کنار یکدیگر یک «بانک» (Bank) از حافظههای DRAM تشکیل میشود. علاوه بر تعداد صفحهها، اندازه و چیدمان ردیفها و ستونهای سلولها نیز در میزان ذخیرهسازی دادهها، سرعت حافظه، میزان مصرف و سایر موارد نقش بسیار مهمی ایفا میکنند.
به نظر میرسد چنین چیدمانی دارای ۴۰۹۶ ردیف و ۴۰۹۶ ستون است که بانکی با ظرفیت ذخیرهسازی ۱۶, ۷۷۷, ۲۱۶ بیت یا دو مگابایت داده را دارد؛ اما بانک تمام حافظههای DRAM ساختار مربعی ندارند و بهتر است بهجای برخورداری از صفحههای کوتاهتر دارای صحنههای بلندتر باشند؛ بهعنوانمثال یک چیدمان دارای ۱۶۳۸۴ ردیف و ۱۰۲۴ ستون باز هم دارای ظرفیت ذخیرهسازی ۲ مگابایتی است؛ اما دادههای هر یک صفحههای موجود در این ساختار، چهار برابر ساختار مربعی است.
تمام صفحههای موجود در یک بانک به یک آدرس سیستم ردیفی و همچنین یک آدرس سیستم ستونی متصل هستند. این صفحهها توسط سیگنالهای دستوردهنده و آدرسهای اختصاصی هر یک از ردیفها و ستونها کنترل میشوند. هرچقدر تعداد ردیفها و ستونها در یک بانک بیشتر باشد، بیتهای بیشتری باید در آدرس مورداستفاده قرار گیرند.
در یک بانک ۴۰۹۶ در ۴۰۹۶ هر یک از سیستمهای آدرسدهی نیازمند ۱۲ بیت هستند. درحالیکه در یک بانک ۱۶۳۸۴ در ۱۰۲۴ آدرس ردیف نیازمند ۱۴ بیت و آدرس ستون نیازمند ۱۰ بیت است. لازم به توضیح است که اندازه هر دو سیستم در کل ۲۴ بیت است.
چنانچه یک تراشه DRAM در هر زمان تنها یک صفحه ارائه دهد، عملکرد چندان خوبی نخواهد داشت؛ بنابراین چند بانک حافظه در آن جای داده میشود. تراشههای DRAM بسته بهاندازه خود دارای ۴ یا ۸ یا ۱۶ بانک هستند. متداولترین تعداد بانکها در یک DRAM هشت بانک است.
تمام بانکها فرمان، آدرس و گذرگاه داده یکسانی را با یکدیگر به اشتراک میگذارند و چنین رویکردی باعث ساده شدن ساختار کلی حافظه سیستم میشود. این ساختار باعث میشود زمانی که یک بانک در حال بررسی و فهم یک دستورالعمل است، بانکهای دیگر در حال انجام عملیاتهای دیگری باشند.
کل تراشه که دربردارنده بانکها و گذرگاهها است، با یک لایه محافظتی پوشانده و روی یک برد مدار لحیم شده است. بردی که تراشه روی آن قرار گرفته است، تعدادی ردیاب سیگنال دارد که نیروی لازم برای انجام فعالیت DRAM فراهم و سیگنالهای لازم برای فرمان، آدرس و داده را نیز ایجاد میکند.
در تصویر بالا یک تراشه DRAM (که گاهی اوقات ماژول هم نامیده میشود) تولیدشده توسط سامسونگ را مشاهده میکنید. از دیگر تولیدکنندگان مطرح تراشه DRAM میتوان به توشیبا، میکرون (Micron)، اسکی هاینیکس (SK Hynix) و نانیا (Nanya) اشاره کرد. سامسونگ یکی از بزرگترین تولیدکنندگان تراشه DRAM محسوب میشود و در حدود ۴۰ درصد از بازار جهانی این حوزه را در اختیار دارد.
هر یک از سازندگان DRAM از سیستم کدگذاری اختصاصی خود برای مشخص کردن ویژگیهای حافظه استفاده میکند. حافظه DRAM نمایش داده شده در تصویر زیر یک گیگابایت حافظه دارد که به لطف ۸ بانک ۱۲۸ مگابیتی با چیدمان ۱۶۳۸۴ ردیف و ۸۱۹۲ ستون ایجاد شده است.
سازندگان رم چند تراشه DRAM را در کنار هم روی یک برد قرار میدهند که DIMM نام دارد. حرف D در ابتدای این کلمه حرف نخست کلمه dual به معنی دوگانه است؛ البته این کلمه به این معنی نیست که در بردهای DIMM دو مجموعه تراشه قرار دارد، بلکه به این موضوع اشاره میکند که اتصالات الکتریکی (کانتکتها) در قسمت پایین برد با هر دو سمت برای مدیریت ماژولها استفاده میشود. بردهای DIMM در اندازههای متفاوت با تعداد متفاوتی از تراشهها تولید میشوند.
در قسمت بالای تصویر بالا یک برد DIMM استاندارد برای کامپیوتر دسکتاپ را مشاهده میکنید و در قسمت پایین تصویر هم بردی را مشاهده میکنید که SO-DIMM یا small outline DIMM (طرح کوچک DIMM) نام دارند.
ماژولهای کوچک برای استفاده در دستگاههای نسبتاً کوچک مثل لپتاپها یا کامپیوترهای دسکتاپ چندمنظوره (All in One) طراحی شدهاند؛ البته طبیعتاً در صورت استفاده از ماژولهای کوچک محدودیتهایی در زمینه تعداد تراشه، میزان سرعت و سایر موارد ایجاد میشود.
سه دلیل اصلی برای استفاده از چند تراشه حافظه در DRAM وجود دارد که به شرح زیر هستند:
- افزایش میزان حافظه در دسترس
- در دسترس بودن تنها یک بانک در یک زمان؛ بنابراین وجود بانکهای بیشتر در حال فعالیت در پسزمینه باعث بهبود عملکرد رم میشوند.
- گذرگاه آدرس مورداستفاده در پردازنده که مدیریت حافظه را بر عهده دارد، دارای پهناباند بیشتری نسبت به گذرگاه DRAM است.
دلیل دوم نسبت به دو دلیل دیگر اهمیت بیشتری دارد؛ زیرا اکثر تراشههای DRAM تنها دارای گذرگاه ۸ بیتی هستند؛ البته سیپییوها و پردازندههای گرافیکی کمی با یکدیگر تفاوت دارند. سیپییوی AMD رایزن 7 3800X دو کنترلر ۶۴ بیتی دارد که داخل آن قرار گرفتهاند؛ اما کارت گرافیک رادئون RX 5700 XT مجهز به ۸ کنترلر ۳۲ بیتی است؛ بنابراین هر یک از بردهای DIMM نصبشده در کامپیوترهای رایزن باید ۸ ماژول DRAM داشته باشد (۸ تراشه ضربدر ۸ بیت= ۶۴ بیت) ممکن است تصور کنید که کارت گرافیک 5700 XT دارای ۳۲ تراشه حافظه است؛ اما اشتباه میکنید و این کارت گرافیک تنها دارای ۸ تراشه حافظه است.
ممکن است از خود بپرسید دلیل ایجاد چنین ساختاری چیست؟ تراشههای حافظه طراحیشده برای کارتهای گرافیک، دارای بانکهای بیشتری نسبت به تعداد بانکهای تراشههای طراحیشده برای سیپییوها هستند و معمولاً دارای ۱۶ یا ۳۲ بانک هستند؛ زیرا رندرینگهای سهبعدی سنگین نیازمند دسترسی به حجم زیادی از دادهها بهصورت همزمان هستند.
مجموعه ماژولهای حافظه که گذرگاه داده کنترلر حافظه را پر میکنند، رنک (Rank) نام دارند. رنک در حقیقت یک بلوک داده است که بخشی از تراشه حافظه در یک ماژول را اشغال میکند. اگرچه ممکن است بیش از یک رنک از طریق به کنترل متصل شود، اما در هر مرتبه، استخراج داده تنها از یک رنک امکانپذیر است (تمام رنکها از یک گذرگاه داده استفاده میکنند). زمانی که یک رنک در حال پاسخگویی به دستورالعمل داده باشد، مجموعه جدیدی از فرمانها میتوانند به سمت رنک دیگری هدایت شوند.
بردهای DIMM میتوانند بیش از یک رنک را در خود جای دهند و چنانچه نیازمند حجم بالایی از حافظه باشید، اما تعداد نسبتاً کمی اسلات رم روی مادربرد خود داشته باشید، چنین ساختاری ویژگی بسیار مفید محسوب میشود.
طبیعتاً بردهای دارای ۲ یا ۴ رنک عملکرد بهتری نسبت به بردهای مجهز به یک رنک دارند؛ اما قرار دادن رنکهای بیشتر روی برد، زمان ساخت سیستم الکترونیکی برد را طولانیتر میکند. اکثر کامپیوترهای دسکتاپ تنها میتوانند یک یا دو رنک را برای هر کنترلر مدیریت کنند.
چنانچه سیستمی به بیش از این تعداد رنک نیاز داشته باشد، بهتر است در آن از بردهای DIMM بافر شده استفاده شود. این بردها دارای یک تراشه اضافی روی DIMM هستند که با ذخیرهسازی دستورالعملها و داده موردنیاز برای چند سیکل معدود، قبل از انتقال آن داده، بار روی سیستم را کمتر میکند.
تمام رنکها ۶۴ بیتی نیستند و بردهای DIMM مورداستفاده در سرورها و ورکاستیشنها ۷۲ بیتی هستند؛ بهعبارتدیگر ر این بردها یک ماژول DRAM بیشتر روی خود دارند؛ البته این ماژول نه میزان حافظه را افزایش میدهد و نه تأثیری در عملکرد دارد، بلکه تنها برای بررسی خطا و تصحیح آن یا error checking and correcting (ECC) استفاده میشود. در حقیقت این تراشه دادههای در حال خوانده شدن یا منتقل شدن را برای یافتن خطاهای احتمالی بررسی و در صورت یافتن خطاها آنها را تصحیح میکند.
اگر به خاطر داشته باشید در ابتدای مقاله گفتیم تمام پردازندهها نیازمند حافظه هستند؛ اما رمهای دارای قابلیت بررسی خطا و تصحیح آن که با عنوان رمهای ECC شناخته میشوند، با اتکا روی ماژول خود فعالیت میکنند. گذرگاه داده در چنین حافظهای تنها ۶۴ بیت پهنای باند دارد؛ اما قابلاعتماد بودن داده به میزان قابلتوجهی ثابت شده است. استفاده از بافرها و ECC کمی عملکرد گذرگاه داده را تحت تأثیر منفی قرار میدهد؛ اما در مقابل یک بیت به حافظه میافزاید.
تمام حافظههای DRAM دارای کلاک ورودی و خروجی هستند که درواقع ولتاژی است که پیوسته بین دو سطح تغییر میکند. این ولتاژ برای سازماندهی قطعات مورداستفاده در تراشه حافظه و گذرگاهها استفاده میشود در سال ۱۹۹۳ امکان خرید رم از نوع SDRAM (synchronous DRAM) به معنی حافظه با دستیابی مستقیم پویای همزمان وجود داشت.
پیدایش رمهای DDR
در این نوع رم تمام پردازشها در طول مدتزمانی که کلاک از وضعیت کم تا وضعیت زیاد شارژ میشود، بهصورت متوالی و پشت سر هم انجام میشوند. به دلیل این که این فرایند بهسرعت رخ میدهد، روشی بسیار دقیق برای تشخیص زمان مناسب برای انجام پردازشها را فراهم میکند. حافظههای SDRAM در آن زمان دارای کلاک ورودی و خروجی بودند که با فرکانسی بین ۶۶ تا ۱۳۳ مگاهرتز اجرا میشدند و برای هر تیک کلاک (شبیه تیکتیک ساعت) باید یک دستورالعمل برای DRAM صادر میشد، اما در مقابل تراشه میتوانست ۸ بیت داده را در همان مدتزمآنتقال دهد.
توسعه سریع SDRAM توسط سازندگان مختلف که سامسونگ در رأس آنها بود، منجر به ایجاد شکل جدیدی از آن در سال ۱۹۹۸ شد. این رم جدید انتقال دادهها را بر اساس افزایش و کاهش ولتاژ کلاک، زمانبندی میکرد؛ بنابراین امکان ارسال داده به DRAM و بازگشت از آن برای هر تیک کلاک وجود داشت، این فناوری جدید Double data rate synchronous dynamic random access memory به معنی حافظه دسترسی تصادفی پویا همزمان با سرعت داده دوگانه نام داشت، به همین دلیل این رمها را DDR-SDRAM یا تنها DDR مینامیدند.
حافظههای DDR بهتدریج به حافظه متداولی تبدیل شد و باعث حافظه SDRAM تغییر نام دهد و از آن زمان با نام SDRAM تک نرخ داده (single data rate SDRAM) یا SDR-DRAM معرفی شدند و تا بیست سال در تمام سیستمهای کامپیوتری استفاده میشدند.
با ایجاد پیشرفت در فناوریهای مرتبط با کامپیوتر، فناوریهای مرتبط با ساخت رم هم بهبود یافت و باعث ساخت رم DDR2 در سال ۲۰۲۳، رم DDR3 در سال ۲۰۰۷ و رم DDR4 در سال ۲۰۱۲ شد. هر یک از نسلهای جدید رمهای DDR به لطف برخورداری از کلاک ورودی و خروجی سریعتر، سیستمهای سیگنال رسانیبهتر و مصرف کمتر، عملکرد بهتری نسبت به نسل قبلی پیدا کردند.
در زمان ساخت رم DDR2 تغییری در ساختار آن اینجا شد که هنوز هم استفاده میشود. در این رم کلاک ورودی و خروجی به سیستم مجزایی تبدیل شد که خود را بر اساس مجموعهای دیگر از کلاک زمانبندی میکند و این زمانبندی را با همان روشی که اکنون استفاده میشود و دو برابر سریعتر شده است، انجام میشود.
نحوه انجام این فرایند شبیه به روشی است که سیپییوها با بهرهمندی از آن از یک کلاک ۱۰۰ مگاهرتزی برای متوالی کردن تمام پردازشها استفاده میکنند؛ اما در حقیقت کلاک داخلی پردازنده ۳۰ تا ۴۰ برابر سریعتر است.
در رمهای DDR3 و DDR4 سرعت کلاک ورودی و خروجی چهار برابر شد؛ اما باز هم در تمام موارد گذرگاه داده تنها از افزایش و کاهش سرعت کلاک ورودی و خروجی برای ارسال اطلاعات و دریافت آنها استفاده میکرد (بهعبارتدیگر نرخ داده دو برابر).
تراشههای حافظه خودشان سرعت فوقالعاده بالایی ندارند و درواقع آنها بهکندی عمل میکنند. میزان آنتقال داده که با واحد میلیون انتقال در ثانیه یا MT/S (مخفف عبارت millions of transfers per second) سنجیده میشود، در حافظههای DRAM به دلیل برخورداری از چند بانک بسیار بالا است. چنانچه به ازای هر ماژول تنها یک بانک وجود داشت، عملکرد رم واقعاً ناامیدکننده بود.
نوع DRAM | کلاک متداول تراشه | کلاک ورودی/ خروجی | نرخ انتقال داده |
SDR | ۱۰۰ مگاهرتز | ۱۰۰ مگاهرتز | ۱۰۰ MT/S |
DDR | ۱۰۰ مگاهرتز | ۱۰۰ مگاهرتز | ۲۰۰ MT/S |
DDR2 | ۲۰۰ مگاهرتز | ۴۰۰ مگاهرتز | ۸۰۰ MT/S |
DDR3 | ۲۰۰ مگاهرتز | ۸۰۰ مگاهرتز | ۱۶۰۰ MT/S |
DDR4 | ۴۰۰ مگاهرتز | ۱۶۰۰ مگاهرتز | ۳۲۰۰ MT/S |
هریک از نسلهای جدید DRAM یعنی همان DDR2 یا DDR3 یا DDR4 قابلیت سازگاری عقبرو با نسلهای قبلی را ندارد؛ بنابراین تعداد کنتاکتها، اسلاتها و بریدگیهای (ناچها) ایجادشده در بردهای DIMM مورداستفاده در هر نوع متفاوت است. این شیوه طراحی برای جلوگیری از قرار دادن رم DDR4 در اسلات DDR-SDRAM به کار گرفته شده است.
آناتومی رمهای مورداستفاده در کارتهای گرافیک
حافظه DRAM طراحیشده برای استفاده در کارتهای گرافیک SGRAM یا synchronous graphics RAM (رم گرافیکی همزمان) نام دارد. فرایند توسعه این نوع رم با رمهای DDR مشابه است و رمهای طراحیشده برای کارتهای گرافیک با برچسب GDDR معرفی میشوند.
در حال حاضر نسل ششم رمهای طراحیشده برای کارت گرافیک نیز معرفی شدهاند و در آنها برای انتقال دادهها از سیستم نرخ داده چهارگانه استفاده میشود؛ بهعبارتدیگر در این رمها در هر سیکل کلاک چهار انتقال انجام میشود.
نوع DRAM | ;کلاک متداول تراشه | کلاک ورودی/ خروجی | نرخ انتقال داده |
GDDR | ۲۵۰ مگاهرتز | ۲۵۰ مگاهرتز | ۵۰۰ MT/S |
GDDR2 | ۵۰۰ مگاهرتز | ۵۰۰ مگاهرتز | ۱۰۰۰ MT/S |
GDDR3 | ۸۰۰ مگاهرتز | ۱۶۰۰ مگاهرتز | ۳۲۰۰ MT/S |
GDDR4 | ۱۰۰۰ مگاهرتز | ۲۰۰۰ مگاهرتز | ۴۰۰۰ MT/S |
GDDR5 | ۱۵۰۰ مگاهرتز | ۳۰۰۰ مگاهرتز | ۶۰۰۰ MT/S |
GDDR5X | ۱۲۵۰ مگاهرتز | ۲۵۰۰ مگاهرتز | ۱۰۰۰۰ MT/S |
GDDR6 | ۱۷۵۰ مگاهرتز | ۳۵۰۰ مگاهرتز | ۱۴۰۰۰ MT/S |
این نوع ساختار علاوه بر اینکه افزایش سرعت رم را به دنبال دارد، باعث میشود DRAM گرافیک ویژگیهای خاصی ارائه دهند که کمک میکند مواردی مثل باز کردن دو صفحه بهصورت همزمان در یک بانک، باز کردن فرمان یا گذرگاههای آدرس در حال اجرا در DDR یا تراشههای حافظه با سرعتهای کلاک بسیار بالاتری انجام شود.
البته افزایش دمای تراشههای ساختهشده مبتنی بر این فناوری در حیت فعالیت و هزینه بالای تولید این تراشهها، سازندگان را درمورد استفاده از آن مردد کرده است.. قیمت یک ماژول GDDR6 تقریباً دو برابر ماژول مشابه DDR4 است؛ البته نباید فراموش کنیم که دمای رم GDDR6 زمانی که با حداکثر سرعت خود فعالیت میکند، بهشدت افزایش مییابد و به همین دلیل کارت گرافیکهای مجهز به رمهای فوقسریع با ظرفیت بسیار بالا، نیازمند یک سیستم خنککننده کاملاً فعال هستند تا از افزایش دمای تراشهها جلوگیری شود.
عملکرد حافظههای DRAM بر اساس تعداد بیت دادههایی که در هر ثانیه میتوانند انتقال دهند، سنجیده و ردهبندی میشود. در ابتدای مقاله با یک رم DDR4 آشنا شدیم که بهعنوان حافظه سیستم به کار گرفتهشده بود و دارای تراشههایی با پهنای باند ۸ بیتی بود. چنین ماژولی میتواند در هر ثانیه داده ۸ بیت داده را منتقل کند؛ بنابراین اگر انتقال داده ماژولی ۳۲۰۰ MTS باشد، حداکثر توانایی آن در انتقال داده، معادل ۲۵۶۰۰ مگابیت در ثانیه (۳۲۰۰ ضربدر ۸) یا کمی بیشتر از ۳ گیگابایت در ثانیه است. به دلیل اینکه اکثر بردهای DIMMs دارای هشت تراشه هستند، توانایی بالقوه توانایی بالقوه آنها برای انتقال دادهها ۲۵ گیگابایت در ثانیه است.
در رمهای GDDR6 نیز ۸ ماژول وجود دارد که باعث میشود سرعت انتقال دادهها به ۴۴۰ گیگابایت در ثانیه برسد! بسیاری از افراد چنین مقداری را پهنای باند حافظه مینامند و پهنای باند یکی از مهمترین شاخصههای تأثیرگذار در عملکرد رم محسوب میشود؛ البته پهنای باند یک آمار نظری محسوب میشود زیرا تمام عملیات در حال انجام در تراشه DRAM بهصورت همزمان رخ نمیدهند.
برای فهم بهتر این موضوع به تصویر زیر نگاه کنید. در این تصویر هر آنچه که در هنگام تقاضای داده از رم در آن رخ میدهد، بهصورت کاملاً ساده (و البته غیرواقعی!) به تصویر کشیده شده است.
در نخستین مرحله صفحه حاوی دادههای درخواست شده فعال میشود. برای انجام کار ابتدا رنک موردنیاز و پس از آن ماژول مرتبطی که بانک خاصی آن را دنبال کرده است، مشخص میشود.
موقعیت مکانی صفحه در تمام قسمتهای آن (منظور آدرس ردیف است) برای تراشه صادر میشود و تراشه با فعال کردن کل صفحه به آن پاسخ میدهد.
انجام کل این فرآیند زمان زیادی طول میکشد، در ضمن برای فعال شدن کامل ردیف باید زمان کافی وجود داشته باشد، زیرا کل ردیف بیتها قبل از اینکه در دسترس قرار گیرد، باید کاملاً قفل شود.
در مرحله بعدی ستون مرتبط شناسایی میشود و یک بیت از اطلاعات را ارسال میکند. تمام حافظههای DRAM قبل از ارسال دادهها آنها را به چند قسمت تقسیم میکنند.
در تمام رمهای امروزی اندازه یک قسمت از دادهها تقریباً همیشه ۸ بیت است؛ بنابراین حتی اگر یک بیت داده از یک ستون در یک سیکل کلاک بازیابی شود، آن داده تا زمانی که ۷ بیت داده دیگر از بانکهای دیگر استخراج نشوند، ارسال نمیشود. در ضمن درصورتیکه بیت بعدی درخواستشده روی صفحه دیگری قرار داشته باشد، صفحهای که در حال حاضر باز است، باید قبل از اینکه صفحه بعدی فعال شود، بسته شود (این فرایند پیش شارژ یا pre-charging نام دارد)؛ البته این فرآیند زمان میبرد. تمام این دورههای زمانی در فواصل زمانی بین ارسال یک دستورالعمل و انجام عملیات درخواست شده، زمانبندی یا تأخیر حافظه نامیده میشوند. هرچقدر مقدار زمانبندی یا تأخیر حافظه کمتر شود، عملکرد رم بهتر میشود؛ زیرا عملیات مختلف سریعتر انجام میشوند.
برخی از این تأخیرها نامهای آشنایی برای مشتاقان کامپیوتر دارند.
نام زمانبندی | توضیحات | تعداد متداول در DDR4 |
tRCD | تاخیر ردیف به ستون Row-to-Column Delay: تعداد سیکلهای بین زمان فعال شدن یک ردیف و پس از آنتخاب شدن یک ستون | ۱۷ سیکل |
CL | تأخیر CAS یا CAS Latency: تعداد سیکلهای بین یک ستون مشخصشده و آغاز تقسیم دادهها | ۱۵ سیکل |
tRAS | زمان سیکل ردیف یا Row Cycle Time: کوتاهترین مدتزمانی که یک ردیف قبل از خاموش شدن باید فعال باقی بماند | ۳۵ سیکل |
tRP | مدتزمان پیششارژ ردیف یا Row Precharge time: حداقل سیستمهای موردنیاز بین دفعات فعال شدن ردیف | ۱۷ سیکل |
زمانبندیهای بسیار زیاد دیگری نیز وجود دارد و تمام آنها باید بهدقت تنظیم و اعمال شوند تا اطمینان لازم برای پایدار بودن عملکرد DRAM و دستیابی آن به بهترین عملکرد ممکن بدون آسیب دیدن دادهها حاصل شود. همانطور که در جدول میبینید، نمودار نشاندهنده سیکلهای فعال باید بسیار عریضتر باشد.
اگرچه عملیات زیادی در حالت انتظار در سیستم رم قرار دارند، اما دستورالعملهای مرتبط باید در صف قرار گیرند و بهنوبت صادر شوند. به همین دلیل یک سیستم کامپیوتر به حافظه رم زیادی نیاز دارد که بخشی از آن باید در اختیار سیپییوو بخشی دیگر در اختیار کارت گرافیک قرار گیرد و مقدار کمی از این حافظه هم باید در دسترس هارد باشد.
زمانبندیهای حافظه قابل تنظیم هستند البته DRAM از طریق فیزیکی و با استفاده از سیم، به این زمانبندیها دسترسی ندارد؛ زیرا تمام دستورالعملها که از سمت کنترلر حافظه در پردازنده ارسال میشوند، از رم استفاده میکنند سازندگان تمام تراشههایی را که تولید میکنند، مورد آزمایش قرار میدهند و تراشههایی را که برای مجموعهای از زمانبندیها دارای حداقل سرعت لازم هستند، در کنار یکدیگر جمع میکنند و روی بردهای DIMM نصب میکنند. سپس زمانبندیها در تراشه کوچکی که روی برد مدار نصب شده است، ذخیره میشوند.
فرایند دسترسی به این اطلاعات و استفاده از آن serial presence detect (تشخیص حضور سریال) یا SPD نام دارد. این فرآیند یک استاندارد صنعتی برای مشخص کردن زمانبندی فعالیتهای مختلف برای مادربرد بایوس است. در بسیاری از مادربردها امکان تغییر زمانبندی فعالیتهای مختلف چه برای بهبود عملکرد و چه برای افزایش ثبات پلتفرم وجود دارد؛ اما بسیاری از ماژولهای DRAM از استاندارد extreme memory profile (xmp) نیز پشتیبانی میکنند. در حقیقت این استاندارد چیزی نیست بهجز اطلاعات اضافی ذخیرهشده در حافظه SPD که در اختیار بایوس قرار میگیرد ؛ بنابراین مادربرد بایوس با تکیه بر این اطلاعات میتوانند بهراحتی وظایف مختلف را بهموقع انجام دهد.
در یک رم ۸ گیگابایتی DDR4-SDRAM نزدیک به ۷۰ میلیارد خازن و همین تعداد ترانزیستور وجود دارد در هر یک از این خازنها جریان الکتریکی اندکی ذخیره میشود که رم تنها در چند نانوثانیه میتواند به آنها دسترسی پیدا کند.
حتی اگر کارهای ساده و روزمرهای را با کامپیوتر انجام دهیم، هر روز تعداد بیشماری دستورالعمل در رم انجام میشود و این قطه میتواند سالها بدون هیچگونه مشکلی کار خود را انجام دهد . جالب است بدانید چنین قطعه شگفتانگیزی معمولاً تنها ۳۰ دلار قیمت دارد.