صفر تا صد حافظه پرسرعت DDR (اصول، طراحی و شبیه سازی)_قسمت سوم

صفر تا صد حافظه های پرسرعت DDR (اصول، طراحی و شبیه سازی) و اتصال به FPGA
نوشته شده توسط

سلام به همه همراهان مایکروالکام. همون طور که در جریان هستید در این سری از مطالب سعی می‌کنم تمام مقدمات لازم برای طراحی و شبیه ساز حافظه های DDR (حافظه های DDR3 و DDR4) را با شما در میان بگذارم. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتویند سایر مطالب من رو از این لینک و یا آدرس Linkedin من مطالعه و مورد نقد و بررسی قرار بدید. خوشحال می شم هم از طریق Comment ذیل این پست و هم از طریق Email و Linkedin با من در ارتباط باشید.


مقدمه

مطالبی که در این قسمت به آن پرداخته خواهد شد شامل موراد زیر است.

  1. مفهوم دیگری در Timing سیگنال های DDR رو بیان می‌کنم که عملا بدون دونستن اون، تحلیل پاسخ ها و نمودار های زمان بندی در شبیه سای تراشه های DDR غیرممکن هست. لذا پیشنهاد می‌کنم این بحث رو با دقت مضاعف پیگیری کنید.
  2. در یک بحث تکمیلی، روش های محاسبات حجم حافظه و روش انتخاب تراشه مناسب DDR برای پردازنده Controller (مثل یک FPGA) رو بیان می‌کنم.
  3. در مورد حافظه SPD موجود در ماژول های SODIM و DIMM صحبت می‌کنیم و محتویات اون رو شرح خواهم داد.

یادآوری دسته بندی سیگنال های تراشه های DDR

برای مقدمه دسته های سیگنال مبتنی بر استاندارد JEDEC در حافظه های DDR در زیر بیان شده است.

  • Data Group: Data Strobe DQS[0:8], Data Strobe Complement DQS[0:8],Data Mask [0:8], Data DQ[0:63], Clock Bits[0:7]
  • Address and Command Group: Bank Address BA[0:2], Address A[0:15], Command Input RAS#,CAS# WE#
  • Control Group: Chip Select CS[0:3], Clock Enable CKE[0:3], On-Die Termination ODT[0:3]
  • Clock Group: Differential lock CK[0:5], CK#[0:5]

 

DATA MASK DATA STROBE COMPLEMENT DATA STROBE DATA
DM0 DQS#0 DQS0 DQ[0:7]
DM1 DQS#1 DQS1 DQ[8:15]
DM2 DQS#2 DQS2 DQ[16:23]
DM3 DQS#3 DQS3 DQ[24:31]
DM4 DQS#4 DQS4 DQ[33:39]
DM5 DQS#5 DQS5 DQ[40:47]
DM6 DQS#6 DQS6 DQ[48:55]
DM7 DQS#7 DQS7 DQ[63:56]
DM8 DQS#8 DQS8 CB[0:7]

مفاهیم نرخ داده، کلاک و پهنای باند در حافظه های DDR

در این حافظه ها همه چیز از فرکانس کلاک محاسبه می‌شود. برای مثال فرکانس Clock برای یک مجموعه حافظه DDR (با هر توپولوژی که دارد مثل Fly-By یا Clam-Shell)، اگر 200MHz باشد، نرخ داده دو برابر نرخ کلاک است و اگر بخواهیم پهنای باند آن را محاسبه کنیم، باید آن را در عرض باس داده (تعداد پین های داده مجموعه DDR) ضرب کرده و به 8 (عرض یک داده 8 بیتی یا به عبارتی عرض یک بایت) تقسیم کنیم تا عدد ما به Byte نرمالیزه شده و مشخص شود که مجموعه DDR ما، در هر ثانیه، چند بایت را در باس خود ارسال می‌کند.

:مثال

  • Clock Frequency = 200MHz
  • Data Rate = 400MT/s*
  • Band Width = 40MT/s * 64 bits)/8 =3200 MB/S**
  • *MT/s = Mega Transfer per Second
  • **MB/S = Mega Byte per Second

پارامتر های چند DDR

در جدول زیر، پارامتر های چندین DDR از استاندارد های مختلف (DDR2 و DDR3 و DDR4) و عرض داده 64bit آورده شده است.

Band Width (MB/S) Data Rate (MT/S) Clock Speed (MHz) Standard
3200 400 200 DDR2-400
4266.67 533 266.67 DDR2-533
6400 800 400 DDR2-800
8533.33 1866.67 266.67 DDR2-1066
6400 800 400 DDR3-800
8533.33 16066 533.3 DDR3-1066
14933.33 1866.67 933.33 DDR3-1866
17066.67 2133.33 1067.67 DDR3-2133
12800 1600 800 DDR4-1600
14933.33 1866.67 933.33 DDR4-1866
17066.67 2133.33 1067.67 DDR4-2133
19200 2400 1200 DDR4-2400

لذا رابطه بین Data Rate و Frequency یک حافظه DDR، به این صورت است که نرخ داده همواره دو برابر فرکانس کلاک حافظه است و باید دقت کرد که DQS ها، DQ ها و Clock با همین فرکانس کار می‌کنند. مثل همه تجهیزات، دوره تناوب برابر با معکوس فرکانس است. Unit Interval (که با UI شناخته می‌شود)، نصف دوره تناوب سیگنال است.

مثال‌

  • اگر Data Rate = 800 MT/S باشد:
  • Frequencyof Clock (fCLK) = Data Rate/2 = 800/2 = 400 MHz
  • Clock Period (TCLK) = 1/fCLK – 1/400MHz = 2.5nS

Clock و سیگنال های DQS یک فرکانس کار می‌کنند. Bit Interval نصف Period کلاک است. فرکانس DQ ها اما برابر با همان فرکانس Clock است.

  • Bit Inteval (DQ) = TCLK/2 =2.5 ns/2 = 1.25 ns

زمان بندی 1T و 2T

زمان بندی 1T و 2T فقط کاربرد در باس Address و Command دارد. در زمانبندی 1T، با اولین لبه بالارونده کلاک، پین های Address و Command، زمانبندی می‌شوند. در زمانبندی 2T ،Address و Command با دومین لبه کلاک، زمانبندی می‌شوند. توجه شود که در 2T، سیگنال های Control، همچنان نسبت به اولین لبه بالارونده Clock، زمان بندی می‌شوند.

  1. 1T Timing
  2. 2T Timing
1T Timing در DDR
1T Timing در DDR

 

2T Timing در DDR
2T Timing در DDR

محاسن و معایب 2T Timing

  • بازدهی باس Address/Command را کاهش می‌دهد ولی در عوض، زمان Setup و Hold سیگنال را دو برابر کرده و دست طراح در آسودگی Routing را بازتر می‌کند.
  • بطور مشخص، Setup و Hold سیگنال های Control هیچ فرقی نمی‌کند و هیچ مزیتی برای این سیگنال ها فراهم نمی‌کند.

پس یک موضوع کاملا مشخص است و آن این که از هر مدل زمانبندی Address/Command ای استفاده کنیم، UI دسته سیگنال های Address/Command ممکن است متفاوت باشد. در T1 Timing، سیگنال های Address/Command/Control، دارای UI برابر با نصف Period هستند. در T2 Timing، سیگنال های Address/Command دارای UI برابر یک period کامل و سیگنال های Contrl ای دارای UI برابر با نصف Period هستند.

  • 1T Bit Interval (Add/Cmd/Ctrl) =TCLK = 2.5 nS
  • 2T Bit Interval (Add/Cmd) =2 * TCLK = 5 nS

خلاصه

برای شبیه سازی حافظه DDR، نیاز داریم بدانیم UI سیگنال های DQ ،DQS ،Clock ،Address ،Command و Control چند ns است. برای دانستن مقدار UI باید بدانیم منظور از Frequency ،Data Rate و Bandwidth یک مجموعه DDR چیست. تا اینجا، به بررسی این مفاهیم پرداختیم و گفتیم که UI سیگنال های DQ ،DQD و Clock و Control برابر با Period÷2 بوده ولی برای سیگنال های Address و Command، بستگی به نوع زمانبندی آن ها در پیکربندی نرم افزاری DDR، مقدار UI متفاوت است.

  • اگر زمانبندی 2T انتخاب شود، UI سیگنال های Address/Command برابر با Period خواهد بود و اگر 1T استفاده شود، UI سیگنال های Address/Command برابر با Period÷2 خواهد بود.
  • این که کدام زمانبندی برای سیگنالهای Address/Command استفاده شود، به انتخاب برنامه نویس و طراح سخت افزار بستگی دارد و باید توجه داشت که هر کدام مزایا و معایب خود را دارد که در مورد آن مفصل توضیح داده شد.

انتخاب حافظه DDR مناسب

اندازه‌ حافظه DDR به‌صورت استاندارد و توسط کمیته استاندارد JEDEC تعیین می‌‌گردد. حافظه‌‌های Industrial با حجم بالا به‌ سختی یافت می‌‌شوند. این بخش از استاندارد JESD79-4B استخراج شده است تا در انتخاب قطعه‌ حافظه با میزان حافظه‌ مشخص کمک‌‌رسان باشد.

جداول مشخص‌‌کننده اندازه حافظه DDR4 مبتنی بر استاندارد JESD79-4B
جداول مشخص‌‌کننده اندازه حافظه DDR4 مبتنی بر استاندارد JESD79-4B

همان‌‌طور که در جداول بالا مشخص است، یک پارامتر به نام Page Size در استاندارد JESD79-4B موجود است. در واقع این پارامتر، مشخص‌‌کننده‌ تعداد بیت‌‌ها در هر ردیف داده یا به‌عبارتی‌ دیگر برابر با تعداد بیتی است که در بخش Sense Amplifiers قرار می‌گیرد. لذا اگر آدرس ستون 10 بیتی باشد، هر ردیف 1024 بیت (1Kbit) است. برای یک قطعه‌‌ 4X تعداد بیت‌‌های آمده در بخش Sense Amplifiers یا به‌عبارتی اندازه‌‌ Page Size برابر با 4×1024=4Kbit است. به همین ترتیب برای 8X مقدار Page Size برابر با 8K bit است. لذا روش اندازه‌‌گیری میزان حافظه از روی جدول بالا برابر با فرمول زیر است:

میزان حافظه = تعداد گروه_بانک‌‌های موجود در حافظه × تعداد بانک‌‌های موجود در یک گروه × عرض ستون‌‌های بانک‌ها × تعداد ستون‌‌ها(که از روی خط آدرس ستون بدست می‌‌آید) × تعداد ردیف‌‌ها (که از روی تعداد خط آدرس ردیف‌‌ها بدست می‌‌آید)

برای مثال برای یک حافظه‌‌ 4Gb 4X داریم

  • Number of Row Address bits: A0-A15 = 16 bits       Total number of row = 2^16 = 64K
  • Number of Column Address bits: A0-A9 = 10 bits       Number of columns per row = 1K
  • Width of each column = 4 bits
  • Number of Bank Groups = 4
  • Number of Banks = 4
  • Total DRAM Capacity = 64K x 1K x 4 x 4 x 4 = 4Gb

به‌عنوان‌ مثال دوم به تراشه MT40A256M16 رجوع می‌کنیم. در برگه اطلاعات این تراشه جدول موجود در شکل زیر آورده شده است:

جدول پیکربندی‌های مختلف تراشه MT40A256M16
جدول پیکربندی‌های مختلف تراشه MT40A256M16

همان‌طور که می‌بینید در پیکربندی 256Meg X16 این تراشه دارای دو گروه_بانک بوده که در هرکدام چهار بانک موجود است. آدرس‌دهی سطرها 32کیلو و آدرس‌دهی ستون‌ها یک کیلو هست. از طرفی عرض ستون‌ها هم 16 است لذا حجم حافظه 2×4×32K×1K×16=8Mb یا معادل 1MB است. به زبان ساده، دو گروه داریم که هرکدام چهار بانک دارند و هر بانک 32K×1K عدد خانه با حجم 16 بیت دارد. لذا تعداد کل بیت‌های حافظه 8Mb است.

توجه شود که تعداد خط آدرس روی تراشه به معنی این نیست که همه آن‌ها در آدرس‌دهی سطرها شرکت می‌کنند یا همه آن‌ها در آدرس‌دهی ستون‌ها استفاده می‌شود. برای این‌که بفهمیم چه تعداد خط آدرس در آدرس‌دهی سطر و چه تعداد در آدرس‌دهی ستون استفاده می‌شود، باید به برگه اطلاعات تراشه حافظه و جداولی همانند شکل 15 در آن برگه اطلاعات مراجعه کرد.

معیار اول انتخاب حافظه: بر اساس عرض ستون (4X,8X,16X) و میزان حافظه انتخاب می‌‌گردد

معیار‌های مهم دیگر در انتخاب DDR4 آشنایی با عبارت Single-Rank، Dual-Rank، Quad-Rank و Dual-Die Package است. Rank بالاترین واحد منطقی است و برای افزایش ظرفیت حافظه مورد استفاده قرار می‌‌گیرد. اگر ما به حافظه DDR4 با ظرفیت 16Gb نیاز داشته باشیم به سه صورت می‌‌توان عمل کرد. استفاده از یک تراشه 16Gb و یا استفاده از دو تراشه 8Gb و یا استفاده از چهار تراشه 4Gb که در حالت اول فقط یک خط داده و آدرس داریم ولی تراشه گران‌‌تری را بر روی PCB قرار داده‌‌ایم.

در حالت دوم با استفاده از خطوط داده و آدرس مشترک و با استفاده از دو سیگنال انتخاب تراشه (Chip Select) CS-n کمی توسعه‌ بورد را سخت‌‌تر کرده ولی در عوض دو تراشه ارزان‌تر حافظه استفاده می‌‌کنیم. در حالت سوم هم با کاهش چشمگیر قیمت تراشه و استفاده از چهار CS-n می‌‌توان قیمت تمام‌‌شده را بسیار کاست ولی توسعه PCB بسیار دشوارتر است. حالت اول را Single-Rank، حالت دوم را Dual-Rank و حالت سوم را Quad-Rank می‌‌نامیم.

  • لازم به ذکر است که در افزایش Rank یک حافظه، چهار دسته سیگنال به حافظه اضافه می‌گردد. این چهار دسته سیگنال عبارت اند از CS-n ،CLKE-n ،CLK-P,N و ODT-n که این سیگنال‌ها بین Rank ها مشترک نبوده ولی داده‌ها و آدرس‌های Rank ها باهم مشترک می‌باشند. برای تفهیم بهتر موضوع به دو شکل زیر، که مقایسه دو ماژول SODIMM با Rank یک و دو هست توجه بفرمایید.

مقایسه دو ماژول SODIMM با Rank

اتصال حافظه‌های DDR با عرض 8X به‌صورت Dual Rank
اتصال حافظه‌های DDR با عرض 8X به‌صورت Dual Rank

 

اتصال حافظه‌های DDR با عرض 8X به‌صورت Single Rank
اتصال حافظه‌های DDR با عرض 8X به‌صورت Single Rank

در توضیح ماژول‌های DIMM مبتنی بر Quad Rank باید گفت که با توجه به این‌که جهت آگاهی از نحوه اتصالات پایه‌ها درون این ماژول‌ها مستندی در دسترس نبود، نمی‌توان گفت که چرا باوجود اینکه پایه‌های CS-2,3 در کانکتور آن‌ها وجود دارد، چرا بقیه پایه‌های لازم جهت افزایش Rank (مثل ODT-n و CLK_N,P و CLKE-n) برای Rank2,3 وجود ندارند. لذا این مورد و نحوه افزایش Rank به Quad Rank برای ما همچنان مجهول است. ولی از روی اسامی پایه‌های کانکتورهای استاندارد Quad Rank، حدس زده می‌شود که در حالت Quad Rank تنها نیاز به افزودن CS-2,3 بوده و بقیه پایه‌ها (مثل ODT-n و CLK_N,P و CLKE-n) با Rank0,1 ، مشترک هستند.

خلاصه

به‌طور خلاصه جهت افزودن Rank از حالت Single Rank به حالت Dual Rank، نیاز به افزودن چهار دسته سیگنال Cs-1 و ODT-1 و CLK1_N,P و CLKE-1 بوده ولی برای افزودن Rank از حالت Dual Rank به حالت Quad Rank، تنها کافی است دو سیگنال CS-2,3 به پایه‌ها اضافه گردد.

Dual-Die Package یا DDP زمانی رخ می‌دهد که در واقع از حالت دوم استفاده کنیم ولی دو تراشه در یک تراشه توسعه داده‌شده باشند. در این حالت برای هر Die موجود در تراشه یک CS مجزا، یک عدد CKE مجزا و یک عدد ODT مجزا خواهیم داشت. در شکل  زیر تفاوت دو Rank مرسوم Dual-Die Package و Dual-Rank را مشاهده می‌‌کنید. در ضمن باید گفت برخی تراشه‌ها نیز دارای چهار عدد Die در درون خود بوده که به آن‌ها Quad-Die Package یا QDP می‌گوییم. نکته قابل‌ تأمل این است که امکان استفاده از تراشه‌های DDP و QDP در درون ماژول‌های RDIMM و LRDIMM صرفاً وجود دارد و در بقیه انواع DIMM ها این امکان وجود ندارد، چراکه امکان Stack کردن تراشه‌ها وجود نداشته و در کانکتور بقیه انواع DIMM برای پایه‌های اضافه‌شده جهت DDP و QDP پایه‌ای تعبیه نشده است.

تفاوت دو Rank مرسوم Dual-Die Package و Dual-Rank
تفاوت دو Rank مرسوم Dual-Die Package و Dual-Rank

همان‌طور که در شکل زیر می‌بینید قطعه با شماره MT40A1G8 شرکت Micron که یک DDR4 از نوع DDP است، اعلام می‌کند که پایه‌های C0/CKE1,C1/CS1_n,C2/ODT1 جهت Stack کردن بکار برده می‌شوند و در برگه اطلاعات ماژول atf8c1gx64az شرکت Micron هم قید شده که C0/CKE1,C1/CS1_n,C2/ODT1 فقط در RDIMM و LRDIMM موجود می‌باشند.

همچنین در برگه اطلاعات قطعه MT40A1G8 و همان‌طور که در شکل 19 که یک Monolithic Package است قید شده که پایه‌های C0/CKE1,C1/CS1_n,C2/ODT1 صرفاً جهت Stack استفاده می‌شوند. علاوه بر این حرفی از DDP بودن آن نزده و در هیچ کجای برگه اطلاعات به وجه تمایز DDP و Monolithic اشاره نکرده است. لذا استنباط می‌شود که این قطعه Monolithic باشد، که در غیر این صورت به آن اشاره می‌شد.

پایه‌های آبی تیره که به‌عنوان پایه‌های اضافی DDP شناخته شده و در برگه اطلاعات به‌عنوان وجه تمایز Dual Die Package و Monolithic Package قید شده است
پایه‌های آبی تیره که به‌عنوان پایه‌های اضافی DDP شناخته شده و در برگه اطلاعات به‌عنوان وجه تمایز Dual Die Package و Monolithic Package قید شده است

 

شکل یک Monolithic Package که وجه تمایز آن با DDP مشخص است.
شکل یک Monolithic Package که وجه تمایز آن با DDP مشخص است.

 

معیار دوم انتخاب حافظه: بر اساس Rate حافظه است.

روش افزایش Rank نیز به‌عنوان یکی از مهم‌‌ترین روش‌های افزایش حجم حافظه شناخته می‌‌شود. درشکل زیر یک ماژول Single-Rank حافظه 4GB با هشت عدد تراشه DDR4 با حجم هرکدام 4Gb(512MB) با ساختار X8 را مشاهده می‌‌کنید.

ماژول Single-Rank حافظه 4GB با هشت عدد تراشه DDR4 با حجم هرکدام 4Gb(512MB) با ساختار X8
ماژول Single-Rank حافظه 4GB با هشت عدد تراشه DDR4 با حجم هرکدام 4Gb(512MB) با ساختار X8

 

همان‌طور که می‌دانید در برخی FPGA ها، می‌توان دو عدد کنترل‌کننده DDR پیاده کرد. با این اوصاف اگر از دو کانکتور DIMM استفاده کنیم (که به آن Double Slot می‌گویند)، می‌توان با در نظر گرفتن Rank هرکدام، اتصال را به‌صورت شکل زیر انجام داد. برای بررسی انواع دیگر اتصال یک یا دو Slot به FPGA، به برگه اطلاعات هر FPGA رجوع گردد. در بخش اول شکل زیر، یک Slot به‌صورت Single Rank به FPGA متصل شده است. در بخش دوم شکل زیر، یک Slot به‌صورت Dual Rank به FPGA متصل شده است. در بخش سوم تصویر، دو Slot هرکدام به‌صورت Dual Rank به FPGA متصل شده‌اند. در بخش چهارم، دو Slot به‌صورت Single Rank به FPGA متصل شده‌اند.

روش اتصال دو کانکتور UDIMM و با در نظر گرفتن Rank یک و دو برای هرکدام برای DDR4 و DDR3
روش اتصال دو کانکتور UDIMM و با در نظر گرفتن Rank یک و دو برای هرکدام برای DDR4 و DDR3

قطعه SPD در ماژول های DDR

در ماژول‌های DIMM، یک عدد E2PROM دارای حسگر دما وجود دارد که به آن ابزار سریال پیش_شناسایی (Serial  Redetect) یا SPD می‌گویند. این واحد وظیفه فراهم کردن داده‌های مورد نیاز جهت شناسایی ماژول DDR به کنترل‌کننده و سیستم‌عامل را بر عهده دارد. داده‌های موجود بر روی این حافظه شامل حجم، فرکانس، ساختار (8X و …) و همچنین CAS Latency و مواردی از این‌دست هست. محتویات SPD برای ماژول‌های DIMM مبتنی بر DDR3 در جدول زیر آورده شده است.

Byte Number Function Described SPD Hex Values
0 DDR3-CRC RANGE, EEPROM BYTES, BYTES USED 92
1 DDR3-SPD REVISON 5
2 DDR3-DRAM DEVICE TYPE 0B
3 DDR3-MODULE TYPE (FORM FACTOR) 1
4 DDR3-SDRAM DEVICE DENSITY & BANKS 2
5 DDR3-SDRAM DEVICE ROW & COLUMN COUNT 12
6 DDR3-BYTE 6 RESERVED 0
7 DDR3-MODULE RANKS & DEVICE DQ COUNT 0
8 DDR3-ECC TAG & MODULE MEMORY BUS WIDTH 0B
9 DDR3-FINE TIMEBASE DIVIDEND/DIVISOR 52
10 DDR3-MEDIUM TIMEBASE DIVIDEND 1
11 DDR3-MEDIUM TIMEBASE DIVISOR 8
12 DDR3-MIN SDRAM CYCLE TIME (TCKMIN) 0C
13 DDR3-BYTE 13 RESERVED 0
14 DDR3-CAS LATENCIES SUPPORTED (CL4 => CL11) (LSB) 7C
15 DDR3-CAS LATENCIES SUPPORTED (CL12 => CL18) (MSB) 0
16 DDR3-MIN CAS LATENCY TIME (TAAMIN) 6C
17 DDR3-MIN WRITE RECOVERY TIME (TWRMIN) 78
18 DDR3-MIN RAS# TO CAS# DELAY (TRCDMIN) 6C
19 DDR3-MIN ROW ACTIVE TO ROW ACTIVE DELAY (TRRDMIN) 30
20 DDR3-MIN ROW PRECHARGE DELAY (TRPMIN) 6C
21 DDR3-UPPER NIBBLE FOR TRAS & TRC 11
22 DDR3-MIN ACTIVE TO PRECHARGE DELAY (TRASMIN) 20
23 DDR3-MIN ACTIVE TO ACTIVE/REFRESH DELAY (TRCMIN) 8C
24 DDR3-MIN REFRESH RECOVERY DELAY (TRFCMIN) LSB 70
25 DDR3-MIN REFRESH RECOVERY DELAY (TRFCMIN) MSB 3
26 DDR3-MIN INTERNAL WRITE TO READ CMD DELAY (TWTRMIN) 3C
27 DDR3-MIN INTERNAL READ TO PRECHARGE CMD DELAY (TRTPMIN) 3C
28 DDR3-MIN FOUR ACTIVE WINDOW DELAY (TFAWMIN) MSB 0
29 DDR3-MIN FOUR ACTIVE WINDOW DELAY (TFAWMIN) LSB F0
30 DDR3-SDRAM DEVICE OUTPUT DRIVERS SUPPORTED 82
31 DDR3-SDRAM DEVICE THERMAL & REFRESH OPTIONS 5
32 DDR3-MODULE THERMAL SENSOR 80
33 DDR3-SDRAM DEVICE TYPE 0
34–59 DDR3-RESERVED BYTES 34–59 0
60 DDR3-MODULE HEIGHT (NOMINAL) 3
61 DDR3-MODULE THICKNESS (MAX) 11
62 DDR3-REFERENCE RAW CARD ID 0B
63 DDR3-ADDRESS MAPPING EDGE CONNECTOR TO DRAM 0
64 DDR3-HEAT SPREADER SOLUTION 0
65 DDR3-REGISTER VENDOR ID (LSB) 4
66 DDR3-REGISTER VENDOR ID (MSB) B3
67 DDR3-REGISTER REVISON NUMBER 3
68 DDR3-REGISTER TYPE 0
69 DDR3-REG CTRL WORDS 1 AND ZERO 0
70 DDR3-REG CTRL WORDS 3 AND 2 50
71 DDR3-REG CTRL WORDS 5 AND 4 55
72 DDR3-REG CTRL WORDS 7 AND 6 0
73 DDR3-REG CTRL WORDS 9 AND 8 0
74 DDR3-REG CTRL WORDS 11 AND 10 0
75 DDR3-REG CTRL WORDS 13 AND 12 0
76 DDR3-REG CTRL WORDS 15 AND 14 0
77–116 DDR3-RESERVED BYTES 77–116 0
117 DDR3-MODULE MFR ID (LSB) 80
118 DDR3-MODULE MFR ID (MSB) 2C
119 DDR3-MODULE MFR LOCATION ID Variable
120 DDR3-MODULE MFR YEAR Variable
121 DDR3-MODULE MFR WEEK Variable
122–125 DDR3-MODULE SERIAL NUMBER Variable
126–127 DDR3-CRC Variable
128–145 DDR3-MODULE PART NUMBER 18JBF25672PY-1G4DZ
146 DDR3-MODULE DIE REV 44
147 DDR3-MODULE PCB REV 5A
148 DDR3-DRAM DEVICE MFR ID (LSB) 80
149 DDR3-DRAM DEVICE MFR (MSB) 2C
150–175 DDR3-MFR RESERVED BYTES 150–175 0
176–255 DDR3-CUSTOMER RESERVED BYTES 176–255 FF
  • نکته: دقت شود که ولتاژ تغذیه E2PROM بانام VDDSPD شناخته‌ شده و در مستند xr-dimm_spec_v20 برای DDR3، بین 3 تا 3.3 ولت و با توجه به مستند M4XS-AGS1QC0J-B برای DDR4 بین 2.2 تا 3.6 ولت هست. البته طبیعی است که این مقدار بسته به نوع تراشه E2PROM مورداستفاده در ماژول تغییر می‌کند.

در ماژول‌های DIMM از نوع DDR تا DDR3 حجم این حافظه 256 Byte و در حافظه‌های DDR4 برابر با 512 Byte هست. این حافظه با پروتکل I2C (نوع خاصی از I2C به نام PMBus) به بیرون ماژول و کنترل‌کننده متصل بوده و آدرس‌دهی این تراشه‌های E2PROM به‌وسیله سه پایه SA0~2 و در دو شکل زیر صورت می‌گیرد. در شکل اول، ارتباط کنترل‌کننده و E2PROM درون ماژول، با کلاک و داده مشترک در شکل دوم با کلاک و داده غیر مشترک صورت می‌گیرد. همان‌طور که دیده می‌شود، با این روش آدرس‌دهی، کنترل‌کننده می‌تواند با 8 عدد Slot از نوع DIMM ارتباط برقرار کند.

  • باید تأکید کرد که SDA و SCL مذکور، در بیرون از ماژول و بر روی برد مادر باید به روش‌های نشان داده‌شده در دو شکل زیر، Pullup شوند و ولتاژ Pullup آن‌ها نیز همان VDDSPD است.
نحوه آدرس‌دهی به E2PROM موجود در ماژول‌های DIMM حافظه‌های DDR برای حالت دیتا و کلاک مشترک E2PROM
نحوه آدرس‌دهی به E2PROM موجود در ماژول‌های DIMM حافظه‌های DDR برای حالت دیتا و کلاک مشترک E2PROM

 

نحوه آدرس‌دهی به E2PROM موجود در ماژول‌های DIMM حافظه‌های DDR برای حالت کلاک مشترک و داده غیرمشترک E2PROM
نحوه آدرس‌دهی به E2PROM موجود در ماژول‌های DIMM حافظه‌های DDR برای حالت کلاک مشترک و داده غیرمشترک E2PROM
  • پایه Event-n در ماژول‌های DIMM توسط حسگر دمایی درون تراشه E2PROM مذکور مورداستفاده قرار گرفته و از طریق آن، رخداد های دمایی به کنترل‌کننده اطلاع داده می‌شود. در صورت عدم استفاده از این پایه مبتنی بر مستند e8-MT16JSF25664HY-1G4D1 از شرکت Micron باید بدون اتصال رها گردد.

جمع بندی

در این مطلب بیان شد که برای شبیه سازی DDR باید UI سیگنال های DQ ،DQS ،Clock ،Address ،Command و Control چقدر است. روش انتخاب DDR مناسب برای تراشه کنترلر خود نیاز بیان شد. همچنین این نکته ذکر گردید که دانستن مفهوم Rank، در انتخاب روش های شبیه سازی از اهمیت زیادی برخوردار می‌باشد. در قسمت بعد از سلسه مباحث صفر تا صد حافظه های DDR به بررسی انواع پیکربندی سخت افزار و پیاده سازی تراشه DDR روی بورد پرداخته خواهد شد.

امیدوارم از این آموزش کمال بهره را برده باشید. در صورت داشتن هرگونه نظر یا سوال درباره این مطلب یا تجربه مشابه اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو به اشتراک بگذارید تا سایر دوستان هم بتوانند استفاده کنند. شما میتویند سایر مطالب من رو از این لینک و یا آدرس Linkedin من مطالعه و مورد نقد و بررسی قرار بدید. خوشحال می شم هم از طریق Comment ذیل این پست و هم از طریق Email و Linkedin با من در ارتباط باشید. همینطور میتونید این مطلب را توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.

یک دیدگاه برای “صفر تا صد حافظه پرسرعت DDR (اصول، طراحی و شبیه سازی)_قسمت سوم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.