پهنای باند انواع حافظهی DDR3 و DDR4 و GDDR5 و ساختار حافظه، کنترلر حافظه، باس داده، آدرس و دستور و پیکربندی رم دو کاناله و دیگر مشخصات حافظههای DRAM در تراشههای دستاپی، کارت گرافیک ها و سیستم روی چیپهای گوشی و تبلت، از موضوعاتی است که در این مقاله مرور میکنیم. با حوصله و دقت ما را همراهی کنید.
نوسازی داده در تراشههای DRAM امری است که توسط مدار منطق کنترل صورت میگیرد و کنترلر حافظه که در پردازنده ی اصلی یا گرافیکی قرار گرفته، امور کلی استفاده از حافظه را مدیریت میکند. در گذشته کنترلر حافظه در رهگیری و مشخص کردن صفحههای حافظه که به نوسازی نیاز دارند، دخیل بود اما در حال حاضر DRAMها خود شمارندهی داخلی دارند و صفحهی حافظه را مشخص میکنند.
SDRAM یا رم معمولی در کامپیوترهای امروزی
عبارت SDRAM مخفف Synchronous dynamic random access memory است. منظور از SDRAM حافظهی DRAMی است که با باس سیستم، همگامسازی یا سنکرون میشود. به عنوان مثال سرعت کلاک پردازنده و SDRAM که آن را با نام رم در کامپیوتر میشناسیم، یکسان و سنکرون است.
ساختار DRAM و تعریف بانک، صفحه، ستون و اتم
در DRAM سه بخش اصلی وجود دارد:
- هستهی حافظه که بیتها در آن ذخیره میشود.
- مدار منطق کنترل که برای اعمال مختلف نگهداری به کار میرود
- واسط منطقی که برای ارسال و دریافت داده به کار میرود.
و ساختار بخش هسته به صورت زیر است:
- هر تراشه شامل چندین بانک است.
- هر بانک چند ردیف یا صفحه (Page) دارد.
- در هر صفحه یا ردیف، چند ستون وجود دارد.
- هر ستون یک اتم داده را شامل میشود.
- هر اتم شامل چند بیت است.
در حافظههای ذخیرهسازی هر کیلوبایت و مگابایت معادل 1000 و 1000000 بایت است اما در DRAMها، منظور از کیلو، 2 به توان 10 یا همان 1024 است. مگا نیز 2 به توان 20 است.
هر 8 بیت معادل 1 بایت است. یک کیلوبایت معادل 8000 بیت است و یک مگابایت معادل 8 میلیون بیت و …
ذخیره کردن و خواندن داده با در نظر گرفتن اندازهی اتمها صورت میگیرد. تصویر زیر نمایی است از یک استیک 2 گیگابایتی دارای 8 تراشهی حافظه در هر سمت است. هر یک از تراشهها، دارای 8 بانک حافظه است و هر یک از بانکها، 16384 ردیف یا صفحه دارد، در هر صفحه 1024 ستون وجود دارد و هر ستون یک بایت یا 8 بیت را ذخیره میکند. به این ترتیب هر تراشه 8 در 16384 در 1024 بایت گنجایش دارد و 128 مگابایتی است.
دسترسی موفق به دادههای ذخیره شده در DRAM شامل 4 مرحلهی زیر است:
-
باز کردن صفحه: یکی از ردیفها یا همان صفحههای حافظهی موجود در یکی از بانکها، انتخاب میشود؛ به این فرآیند باز کردن صفحهی حافظه گفته میشود.
-
کپی کردن روی رجیستر استاتیک: کپی کردن تمام دادهها از یک صفحه به یک رجیستر استاتیک (ثبّات) کوچک و در نتیجه حذف دادهی اصلی. با توجه به کوچک بودن خازنها، فرآیند قرائت با اعمال جریان الکتریکی بسیار کم، شارژ خازنها را از بین میبرد و دادهی اصلی حذف میشود.
-
خواندن یا نوشتن اتمها با استفاده از رجیستر استاتیک. در این فرآیند اگر تکرار وجود داشته باشد،
-
بازنویسی حافظهی اولیه: بازنویسی دادهها روی حافظهی اولیه با استفاده از آنچه در رجیستر استاتیک موجود است. در این مرحله خازنهایی که در ابتدا قرائت شده، مجدداً با اعمال جریان الکتریکی شارژ میشوند. دقت کنید که خازنهای خالی نیازی به شارژ مجدد ندارند و در حقیقت عدد 0 اولیه، در نهایت همان 0 است.
رمهای DDR و نرخ انتقال دادهی یگانه، دو برابر و چهار برابر (SDR و DDR و QDR)
در رم هم مثل اغلب قطعات سختافزاری، سیگنال کلاک است که فرآیندها را شروع میکند. منظور از کلاک سیگنالی است که مرتباً از سطح صفر به یک تغییر میکند. معمولاً افزایش سیگنال برای تغییر مورد استفاده قرار میگیرد و در رمهای قدیمی هم تنها افزایش سیگنال برای تبادل داده به کار میرفت. به این حالت ابتدایی SDR یا Single Data Rate گفته میشود.
حالت دیگر این است که تغییرات و فرآیندها در زمان افزایش و همینطور کاهش سیگنال کلاک صورت بگیرد. به این حالت DDR یا Double Data Rate به معنی نرخ تبادل دادهی دو برابر گفته میشود. تصویر زیر نمایشی از این دو حالت به همراه حالت جدید QDR در GDDR5X است:

در QDR میتوان 4 فرآیند انتقال داده را در یک سیکل کلاک انجام داد. دقت کنید که WCK کلاکی برای تبادل داده است و CK یا Command Clock کلاک دیگری برای جابجایی آدرس و دستور است. در تصویر زیر سه نوع عمل باس حافظه نشان داده شده است. دقت کنید که در تصویر اول کنترلر حافظه بخش از پل شمالی است حال آنکه در پردازندههای امروزی، کنترلر مجتمع حافظه مرسوم است.
برای 4 بار تغییر به 4 بار افزایش کلاک نیاز است و در حقیقت سیگنال کلاک WCK خود 4 گونهی متفاوت است. هر یک از گونهها 90 درجه اختلاف فاز با دیگری دارد و همانطور که در تصویر زیر مشاهده میکنید، یک چهارم سیکل اختلاف زمانی بین نسخههای پیدرپی WCK دیده میشود:

مدار حلقهی بستهی تأخیر سیگنال اصلی WCK را دریافت و یا ارسال میکند و درون آن 4 فاز متفاوت تولید میشود. به این مدار به اختصار DLL گفته میشود و با توجه به اینکه تأخیر WCK به دما و ولتاژ بستگی دارد، این مدار مرتباً فعالیت میکند تا همواره اختلاف فاز یک چهارم سیکلی دقیقاً برقرار شود.

GDDR5 و GDDR5X دارای DLL و PLL برای پشتیبانی از حالت QDR هستند
رمهای DDR همگی نرخ انتقال دوبرابر دارند و حافظههای جدید GDDR5X، علاوه بر DDR از حالت QDR پشتیبانی میکنند. حالت DDR در این حافظهها، کممصرفتر است و پهنای باند را نصف میکند. در صورت نیاز تغییر بین حالت DDR و QDR با تغییر یک بیت در رجیسترهای مربوطه صورت میگیرد. در GDDR5 وجود DLL و PLL یک گزینهی اضافی است و معمولاً در حافظههای بسیار سریع این دو بخش فعال میشوند و توان مصرفی افزایش پیدا میکند. در حالتی که به عنوان مثال تصویر نمایشگر ثابت است، برای کاهش توان مصرفی میتوان این دو بخش را غیرفعال کرد و در نتیجه پهنای باند و توان مصرفی، کمتر خواهد شد.
فرکانس موثر DDR و QDR، دو و چهار برابر فرکانس کاری است.
منظور از فرکانس موثر در رمها و حافظهی کارت گرافیک ها این است که نرخ انتقال دادهی 2 یا 4 برابری در نظر گرفته شود. بنابراین در DDRها و QDR، فرکانس موثر یا سرعت موثر حافظه، 2 و 4 برابر فرکانس معمول است. دقت کنید که GDDR3 حافظهای با نرخ انتقال دوبرابر است و GDDR5 در کلاس QDRها قرار میگیرد. بنابراین فرکانس موثر حافظههای GDDR5 و همینطور GDDR5X، چهار برابر فرکانس کاری است.
پیشدریافت یا Prefetch در انواع DRAM
Prefetch یا پیشدریافت به این معنی است که با هر درخواست داده، تنها همان داده دریافت نمیشود. به عنوان مثال اگر DRAM باسی با پهنای 32 بیت داشته باشد و پیشدریافت مرتبهی 2 در ساختار حافظه لحاظ شده باشد، در هر درخواست 64 بیت داده دریافت میشود. در همین مثال ساده اگر پیشدریافت 16n و 8n باشد، 512 و 256 بیت داده دریافت میشود. خواندن و نوشتن داده روی ستونهای حافظه به صورت موازی صورت میگیرد اما باس ارتباطی داده را به صورت سریال (پشت سرهم) ارسال و دریافت میکند.
با پیشدریافت، بخشهای داخلی DRAM عملکرد آرام و موازی دارند.
مزیت پیشدریافت این است که باس مربوط به دستور و آدرس با سرعت کلاک برابر با باس داده فعالیت نمیکند. در واقع سرعت کلاک CK به مراتب کمتر از WCK است و علاوه بر این مدارات داخلی همگی با سرعت بسیار بالا فعالیت نمیکنند. تنها باس داده است که با سرعت بالا فعالیت میکند تا چندین بستهی داده را به صورت سریال جابجا کند.
با توجه به توضیحات فوق، روشن است که چرا GDDR5X در حالت QDR به پیشدریافت 16n نیازمند است: در حالت DDR پیشدریافت 8n کفایت میکند و برای دو برابر شدن پهنای باند حافظه، پیشدریافت 16n نیاز است. نتیجه این است که در هر دو حالت سرعت بخشهای داخلی حافظه، یکسان است.
نکتهی جالب این است که اگر اندازهی خط کش کمتر از اندازهی پیشدریافت داده باشد، عملکرد بهینه نیست و پدیدهی منفی Overfetch یا دریافت بیش از حد نمایان میشود. به عنوان مثال اگر خط کش 32 بایتی باشد و پیشدریافت 64 بایتی باشد، دو خط کش بازنویسی میشوند. بنابراین انویدیا و AMD همواره برای طراحی معماری بهینهی کش و حافظه تلاش میکنند.
رم دو کاناله و سه کاناله و … و پهنای باس کنترلر رم دو کاناله و سه کاناله و …
قبل از محاسبهی پهنای باند رم، دقت کنید که پردازندههای معمولی اینتل و ایامدی معمولاً کنترلر حافظهی دو کاناله دارند. کنترلر حافظه میتواند مجتمع و یا خارجی باشد. هر کانال ارتباطی در پردازندههای معمولی دستاپی، پهنای باس 64 بیتی دارد و لذا اگر دو استیک رم را در اسلاتهای صحیح (معمولی یکی در میان طراحی میشود تا خنککاری بهتری صورت گیرد) قرار دهیم و حالت دو کاناله فعال شود، پهنای باند دو برابر است. در تراشههای گوشی و تبلت، کانالها میتوانند 32 بیتی یا 64 بیتی و یا عریضتر باشند. معمولاً اسلاتهای همرنگ روی مادربورد برای فعال کردن حالت Dual Channel کاربرد دارد.
- اسلات صحیح (دو کانال مختلف و اسلات مشابه، مثلاً اسلات 0 کانال A و اسلات 0 کانال B)
- ظرفیت یکسان
اگر سرعت رمها و ظرفیتشان یکسان نباشد، حالت دو کاناله فعال میشود؟
خوشبختانه پیکربندی رم دو کاناله، حالتی به اسم Flex Mode هم دارد که در برخی چیپستها و مادربوردها، پیادهسازی شده است. در حالت فلکس یا انعطافپذیر، سرعت و اندازهی استیکها متفاوت است. سرعت پایینتر به عنوان سرعت حافظهی رم سریعتر انتخاب میشود. مثلاً اگر رم 1333 مگاهرتزی با 1066 مگاهرتزی موازی شود، سرعت آن روی 1066 تنظیم خواهد شد و پیکربندی دو کاناله را میتوان فعال کرد.
معماری سیستمی با رم دو کاناله و یک کاناله به صورت زیر است، تنها باس تبادل داده از 64 بیت به 128 بیت تبدیل شده و باس آدرس، بدون تغییر خواهد بود. موقعیت واقعیت کنترلر حافظه یا Memory Controller در یک تراشهی خاص در تصویر نمایش داده شده است.
کنترلر حافظه در پلتفرم اکستریم اینتل، 4 کاناله است و در پردازنده هایی که اینتل با سوکت LGA1366 معرفی کرده بود هم حافظهی 3 کاناله پشتیبانی میشد. در این موارد پهنای باند میتواند 3 و 4 برابر باشد. طبعاً پهنای باس حافظه نیز 192 و 256 بیتی است.
با رم دو کاناله سیستم حداکثر 5 الی 15 درصد سریعتر میشود!
با دو یا چند برابر شدن پهنای باند، اگر مقدار حافظه کافی باشد و در واقع حافظه پر نشده باشد و همینطور تأخیر در دسترسی به داده افزایش پیدا نکرده باشد، سرعت پردازش بیشتر میشود، اما نه در حد دو برابر! در موارد خاص که سیستم کاملاً سریع است و تنها بخش کند، حافظهی رم است، ممکن است با دو برابر شدن پهنای باند، سرعت سیستم به شدت افزایش پیدا کند و حداکثر 2 برابر شود. اصطلاحاً اگر گلوگاه سیستم رم باشد، اثر سرعت و مقدار رم روی عملکرد کلی سیستم، زیاد است.
در زنجیرهی پردازش، پهنای باند کش اثر بیشتری نسبت به پهنای باند حافظهی رم و سرعت حافظهی ذخیرهسازی (مثل SSD و هارددیسک) دارد. با این وجود اگر پهنای باند کش دو برابر شود، سرعت پردازش دو برابر نمیشود! برای دو برابر شدن سرعت پردازش، هستههای پردازنده هم میبایست دو برابر سریع شوند و علاوه بر این رم و سایر منابع پردازشی، دو برابر شوند. در مقال رم، اگر پهنای باند دو برابر شود، میتوان به افزایش 5 تا حداکثر 15 درصدی سرعت پردازش امیدوار بود.
برای بررسی بیشتر دو سیستم اینتل و AMD که به ترتیب پردازندهی Xeon E3-1276 V3 (4 هسته، 3.6 گیگاهرتز) و A10-5800K دارند را در نظر بگیرید. سیستم اول اگر رم کافی داشته باشد، چندان به پهنای باند رم وابسته نیست اما سیستم دوم حین اجرای بازیها با پردازندهی گرافیکی مجتمع، پهنای باند زیادی نیاز دارد. نتایج بنچمارکها را مرور کنید:
همانطور که مشاهده میکنید اثر رم دو کاناله در سیستم اول معمولاً کمتر از 10 درصد است ولیکن در سیستم دوم، متوسط سرعت اجرای بازیها، 60 درصد بیشتر شده و مشخص است که در سیستم دوم، پهنای باند رم به عنوان گلوگاه سیستم، عملکرد را متحول میکند.
تراشههای ردهاول گوشی و تبلت، کنترلر دو کاناله با باس 128 بیتی دارند
در تراشههای ویژهی گوشی و تبلت، کنترلر حافظه معمولاً بخشی از سیستم روی چیپ است و پهنای باس و کانالهای کمتری دارد. به عنوان مثال تراشهی ردهاول A9X در آیپد پرو اپل با داشتن کنترلری که 128 بیت پهنای باس و حداکثر 51.2 گیگابایت بر ثانیه پهنای باند دارد، رکورددار است. در حقیقت حافظهی LPDDR4 در آیپد پرو، سرعت 3200 مگاهرتزی دارد که در میان تبلتها، عددی خیرهکننده است ولیکن با توجه به اینکه پردازندهی گرافیکی در سیستم روی چیپها، مجتمع است، چنین پهنای باند فوقالعادهای، چندان عالی به نظر نمیرسد. حافظهی کارت گرافیکهای دستاپی ضعیف، پهنای باند بالاتر از 60 گیگابایت بر ثانیه دارند، به عنوان مثال GTX 950 انویدیا و یا R7 250 ایامدی.
تراشهی رده اول S810 کوآلکام دو کانال 64 بیتی با پشتیبانی از رمهای DDR4 1600Mhz دارد، لذا پهنای باند کنترلر حافظهی این تراشه، 25.6 گیگابایت بر ثانیه است. Core Mهای اینتل و دیگر تراشههای ردهاول نیز پهنای باندی در همین حد دارند. در تراشههای سادهتر، کنترلر حافظه باس 32 بیتی دارد و تنها یک کانال ارتباطی وجود دارد. بنابراین پهنای باند کمتر از 10 گیگابایت بر ثانیه است. کنترلر رم در ادامه روش محاسبهی پهنای باند را مرور میکنیم.
محاسبهی پهنای باند انواع DRAM
در رمهای معمولی کامپیوتر که ممکن است DDR یا DDR2 و یا نسخههای جدیدتر مثل DDR4 باشد، محاسبهی پهنای باند بسیار ساده است. با توجه به اینکه پهنای باس 64 بیتی (8 بایت) است و هر بار 64 بیت داده منتقل میشود و با در نظر گرفتن 2 فرآیند تبادل داده در انواع DDR، پهنای باند به صورت زیر محاسبه میشود:
اما چرا عدد 2 برای در نظر گرفتن حالت DDR را لحاظ نکردیم؟
در بیان سرعت انواع حافظهی DDR آنچه روی بستهبندی و در جداول مشخصات درج شده، فرکانس موثر است و نه فرکانس واقعی. در انواع DDR فرکانس موثر دو برابر فرکانس عادی است و در GDDR5 فرکانس موثر 4 برابر فرکانس کاری است چرا که QDR فعال است.
و یک مثال ساده: رم DDR3 یا DDR4 معمولی با سرعت 2133 مگاهرتز، پهنای باند 17.64 گیگابایت بر ثانیهای دارد. اگر به صورت دو کاناله استفاده شود، پهنای باند دو برابر میشود.
گاهی روی رمها حداکثر سرعت با فعال کردن پروفایل اورکلاک خودکار (یا XMP) درج میشود. به عنوان مثال رم زیر که روی آن عبارت PC3-19200 درج شده، رم DDR3 2400MHz با پهنای باند 19200 مگابایت بر ثانیه است ولیکن همیشه عبارت PCx-xxxxx روی رم ها درج نمیشود و میبایست پهنای باند را از رابطهی سادهای که اشاره شد، محاسبه کنیم.
در کارت گرافیکهای مختلف که معمولاً رم DDR3 یا GDDR5 دارند، پهنای باند حافظه از ضرب کردن پهنای باس در فرکانس موثر محاسبه میشود.
کارت گرافیک GTX 780 Ti حافظهای با باس 384 بیت (تقسیم بر 8 کنید، معادل 48 بایت) و فرکانس 1750 مگاهرتز دارد. همانطور که پیشتر اشاره کردیم، فرکانس موثر 4 برابر این عدد است. بنابراین پهنای باند برابر است با 48 در 4 در 1750 مگابایت بر ثانیه. نتیجه همان 336 گیگابایت بر ثانیهای است که در تصویر زیر مشاهده میکنید:
حافظهی HBM هم از اقسام DDR محسوب میشود
حافظهی HBM در R9 Fury X باس 4096 بیتی (512 بایت) دارد و فرکانس آن 500 مگاهرتز است. با توجه به اینکه در HBM لایههایی از DRAM با باس DDR به کار رفته، فرکانس موثر 1000 مگاهرتز است و پهنای باند 512 در 500 در 2 مگابایت بر ثانیهای یا همان 512 گیگابایت بر ثانیه به دست میآید.