تفاوت میان DDR، DDR2 و DDR3


در این مطلب آموزشی قصد داریم شما را با تفاوت‌های اصلی انواع مموری شامل DDR، DDR2 و DDR3 آشنا نماییم.

پیش از شروع مبحث لازم است که نگاهی داشته باشیم به مشخصات کلی مموری‌ها. هر سه این حافظه‌ها از نوع خاصی از حافظه‌های SDRAM (یا حافظه دستیابی تصادفی پویای همگام) هستند بدان معنا که از نوعی سیگنال زمانبندی شده (Clock Signal) برای یکسان‌سازی اطلاعات استفاده می‌کند. کلمه DDR از عبارت Double Data Rate یا نرخ دوبرابری داده گرفته شده است. این نوع حافظه‌ها در هر چرخه کلاک دو واحد داده را منتقل می‌کنند؛ بدان معنا که از لحاظ عملکردی دوبرابر سریع‌تر از حافظه‌هایی هستند که دارای همین سرعت کلاک می‌باشند (و از آن جمله می‌توان به SDRAMها اشاره نمود که دیگر برای انواع PC قابل دسترسی نیستند).

به موجب همین قابلیت (یعنی انتقال دو برابری داده در یک بازه زمانی) معمولا حداکثر نرخ کلاک این داده‌ها دوبرابر میزان واقعی اعلام و روی محصول برچسب گذاری می‌شود. برای مثال حافظه‌های DDR2-800 دارای سرعت کلاک 400 مگاهرتز می‌باشد و سرعت کلاک DDR2-1066 و DDR3-1066 نیز برابر با 533 مگاهرتز می‌باشد و حافظه‌های DDR3-1333 نیز با سرعت کلاک 666.6 مگاهرتز کار می‌کنند.


لازم به یادآوری است که این سرعت‌ها، حداکثر میزانی است که حافظه می‌تواند از آن استفاده نماید. با این حال، این مسأله به هیچ وجه به معنای این نیست که حافظه به صورت خودکار در آن «سرعت‌ها» کار می‌کند. برای مثال اگر یک DDR2-1066 را روی سیستمی نصب کرده باشید که تنها می‌تواند با سرعت 400 مگاهرتز (800 MHz DDR) به زیرسیستمهای حافظه دسترسی داشته باشید، سرعت دسترسی پردازنده به حافظه کامپیوتر همان 400 مگاهرتز خواهد بود (یعنی برابر با 800 MHz DDR) و نه 533 مگاهرتز (1066 MHz DDR). علت این مسأله هم آن است که سیگنال کلاک از طریق کنترلر حافظه مشخص میشود که نوعی مدار در خارج از مموری است (این کنترلر هم یا در داخل CPU قرار دارد یا روی یکی از چیپ‌های مادربرد).

این سیستم نام گذاری یعنی DDRx-yyy (که در آن منظور از X نسل فناوری و Y سرعت کلاک DDR می‌باشد. برای مثال DDR2-1066 همان DDR نسل دوم است که سرعت کلاکی برابر با 1066 مگاهرتز دارد.) به صورت نظری تنها برای چیپ‌های حافظه مورد استفاده قرار می‌گیرد. در ماژول‌های حافظه یا همان بردهای مداری که چیپ‌های حافظه روی آنها لحیم می‌شود از سیستم نامگذاری دیگری استفاده می‌شود: در این سیستم مشخصات ماژول به صورت PCx-zzzz اعلام می‌شود که در آن X همان نسل فناوری است و zzzz نیز حداکثر سرعت نظری انتقال داده (حداکثر پهنای باند) است. این عدد به شما می‌گوید که در هر ثانیه چند بایت داده میان کنترلر و ماژول حافظه منتقل می‌شود و فرض هم بر آن است که در هر پالس کلاک، داده‌ها میان این دو قسمت جابجا می‌شود. برای به دست آوردن این رقم کافی است که سرعت کلاک DDR به مگاهرتز در رقم 8 ضرب شود؛ در واقع درست‌ترین روش آن است که سرعت کلاک را در رقم 64 ضرب و سپس باقی مانده را به 8 تقسیم نمایید که نتیجه هر دو تقریبا یکی است. با انجام این عملیات به حداکثر سرعت انتقال داده ماژول با واحد مگابایت بر ثانیه دست پیدا خواهید کرد.

بگذارید یک مثال برای شما بیاوریم. فرض کنید رم شما از نوع DDR2-800 است. برای به دست آوردن حداکثر سرعت انتقال داده آن کافی است عدد 800 را در 8 ضرب نمایید که حاصل برابر با 6400 خواهد شد، در نتیجه ماژول حافظه‌ای که برای این رم مناسب است از نوع PC2-6400 خواهد بود. لازم به یادآوری است که در برخی موارد رقم حاصل گرد می‌شود، برای مثال حداکثر سرعت نظری انتقال داده یک رم DDR3-1333 برابر با 10666 مگابایت بر ثانیه است. ماژول‌های حافظه‌ای که از این نوع مموری استفاده می‌کنند PC3-10666 یا PC3-10600 خوانده می‌شوند که این نام بسته به کارخانه تولید کننده متغیر خواهد بود.

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