存儲(chǔ)器一般來(lái)說(shuō)可以分為內(nèi)部存儲(chǔ)器(內(nèi)存),外部存儲(chǔ)器(外存),緩沖存儲(chǔ)器(緩存)以及閃存這幾個(gè)大類(lèi)。內(nèi)存也稱(chēng)為主存儲(chǔ)器,位于系統(tǒng)主機(jī)板上,可以同CPU直接進(jìn)行信息交換。其主要特點(diǎn)是:運(yùn)行速度快,容量小。外存也稱(chēng)為輔助存儲(chǔ)器,不能與CPU之間直接進(jìn)行信息交換。
其主要特點(diǎn)是:存取速度相對(duì)內(nèi)存要慢得多,存儲(chǔ)容量大。內(nèi)存與外存本質(zhì)區(qū)別是,一個(gè)是內(nèi)部運(yùn)行提供緩存和處理的功能,也可以理解為協(xié)同處理的通道;而外存主要是針對(duì)儲(chǔ)存文件、圖片、視頻、文字等信息的載體,也可以理解為儲(chǔ)存空間。
緩存就是數(shù)據(jù)交換的緩沖區(qū)(稱(chēng)作Cache),當(dāng)某一硬件要讀取數(shù)據(jù)時(shí),會(huì)首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從內(nèi)存中找。由于緩存的運(yùn)行速度比內(nèi)存快得多,故緩存的作用就是幫助硬件更快地運(yùn)行。閃存(Flash Memory)是一種長(zhǎng)壽命的非易失性(在斷電情況下仍能保持所存儲(chǔ)的數(shù)據(jù)信息)的存儲(chǔ)器,數(shù)據(jù)刪除不是以單個(gè)的字節(jié)為單位而是以固定的區(qū)塊為單位(注意:NOR Flash 為字節(jié)存儲(chǔ)。),區(qū)塊大小一般為256KB到20MB。
閃存是電子可擦除只讀存儲(chǔ)器(EEPROM)的變種,閃存與EEPROM不同的是,EEPROM能在字節(jié)水平上進(jìn)行刪除和重寫(xiě)而不是整個(gè)芯片擦寫(xiě),而閃存的大部分芯片需要塊擦除。由于其斷電時(shí)仍能保存數(shù)據(jù),閃存通常被用來(lái)保存設(shè)置信息,如在電腦的BIOS(基本程序)、PDA(個(gè)人數(shù)字助理)、數(shù)碼相機(jī)中保存資料等。
存儲(chǔ)器的詳細(xì)分類(lèi)如下圖所示:
DDR3 SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)是應(yīng)用在計(jì)算機(jī)及電子產(chǎn)品領(lǐng)域的一種高帶寬并行數(shù)據(jù)總線,它屬于上文提到的SDRAM類(lèi)。DDR3 在 DDR2的基礎(chǔ)上繼承發(fā)展而來(lái),其數(shù)據(jù)傳輸速度為 DDR2 的兩倍。同時(shí),DDR3 標(biāo)準(zhǔn)可以使單顆內(nèi)存芯片的容量更為擴(kuò)大,達(dá)到 512Mb 至 8Gb,從而使采用 DDR3 芯片的內(nèi)存條容量擴(kuò)大到最高 16GB。
此外,DDR3 的工作電壓降低為 1.5V,比采用 1.8V 的 DDR2省電 30%左右。說(shuō)到底,這些指標(biāo)上的提升在技術(shù)上最大的支撐來(lái)自于芯片制造工藝的提升,90nm 甚至更先進(jìn)的 45nm 制造工藝使得同樣功能的 MOS 管可以制造的更小,從而帶來(lái)更快、更密、更省電的技術(shù)提升。
DDR3 現(xiàn)今是并行 SDRAM 家族中速度最快的成熟標(biāo)準(zhǔn),JEDEC 標(biāo)準(zhǔn)規(guī)定的 DDR3 最高速度可達(dá) 1600MT/s(注,1MT/s 即為每秒鐘一百萬(wàn)次傳輸)。不僅如此, 內(nèi)存廠商還可以生產(chǎn)速度高于 JEDEC 標(biāo)準(zhǔn)的 DDR3 產(chǎn)品,如速度為2000MT/s 的 DDR3 產(chǎn)品,甚至有報(bào)道稱(chēng)其最高速度可高達(dá) 2500MT/s。
DDR3相較于DDR2而言主要有如下幾個(gè)特點(diǎn):
1.突發(fā)長(zhǎng)度(Burst Length,BL):由于DDR3的預(yù)取為8bit,所以突發(fā)傳輸周期(Burst Length,BL)也固定為8,而對(duì)于DDR2和早期的DDR架構(gòu)系統(tǒng),BL=4也是常用的,DDR3為此增加了一個(gè)4bit Burst Chop(突發(fā)突變)模式,即由一個(gè)BL=4的讀取操作加上一個(gè)BL=4的寫(xiě)入操作來(lái)合成一個(gè)BL=8的數(shù)據(jù)突發(fā)傳輸,屆時(shí)可通過(guò)A12地址線來(lái)控制這一突發(fā)模式。而且需要指出的是,任何突發(fā)中斷操作都將在DDR3內(nèi)存中予以禁止,且不予支持,取而代之的是更靈活的突發(fā)傳輸控制(如4bit順序突發(fā))。
2.尋址時(shí)序(Timing):就像DDR2從DDR轉(zhuǎn)變而來(lái)后延遲周期數(shù)增加一樣,DDR3的CL周期也將比DDR2有所提高。DDR2的CL范圍一般在2~5之間,而DDR3則在5~11之間,且附加延遲(AL)的設(shè)計(jì)也有所變化。DDR2時(shí)AL的范圍是0~4,而DDR3時(shí)AL有三種選項(xiàng),分別是0、CL-1和CL-2。另外,DDR3還新增加了一個(gè)時(shí)序參數(shù)-寫(xiě)入延遲(CWD),這一參數(shù)將根據(jù)具體的工作頻率而定。
3.DDR3新增的重置(Reset)功能:重置是DDR3新增的一項(xiàng)重要功能,并為此專(zhuān)門(mén)準(zhǔn)備了一個(gè)引腳。DRAM業(yè)界很早以前就要求增加這一功能,如今終于在DDR3上實(shí)現(xiàn)了。這一引腳將使DDR3的初始化處理變得簡(jiǎn)單。當(dāng)Reset命令有效時(shí),DDR3內(nèi)存將停止所有操作,并切換至最少量活動(dòng)狀態(tài),以節(jié)約電力。在Reset期間,DDR3內(nèi)存將關(guān)閉內(nèi)在的大部分功能,所有數(shù)據(jù)接收與發(fā)送器都將關(guān)閉,所有內(nèi)部的程序裝置將復(fù)位,DLL(延遲鎖相環(huán)路)與時(shí)鐘電路將停止工作,而且不理睬數(shù)據(jù)總線上的任何動(dòng)靜。這樣一來(lái),將使DDR3達(dá)到最節(jié)省電力的目的。
4.DDR3新增ZQ校準(zhǔn)功能:ZQ也是一個(gè)新增的腳,在這個(gè)引腳上接有一個(gè)240歐姆的低公差參考電阻。這個(gè)引腳通過(guò)一個(gè)命令集,通過(guò)片上校準(zhǔn)引擎(On-Die Calibration Engine,ODCE)來(lái)自動(dòng)校驗(yàn)數(shù)據(jù)輸出驅(qū)動(dòng)器導(dǎo)通電阻與ODT的終結(jié)電阻值。當(dāng)系統(tǒng)發(fā)出這一指令后,將用相應(yīng)的時(shí)鐘周期(在加電與初始化之后用512個(gè)時(shí)鐘周期,在退出自刷新操作后用256個(gè)時(shí)鐘周期、在其他情況下用64個(gè)時(shí)鐘周期)對(duì)導(dǎo)通電阻和ODT電阻進(jìn)行重新校準(zhǔn)。
5.參考電壓分成兩個(gè):在DDR3系統(tǒng)中,對(duì)于內(nèi)存系統(tǒng)工作非常重要的參考電壓信號(hào)VREF將分為兩個(gè)信號(hào),即為命令與地址信號(hào)服務(wù)的VREFCA和為數(shù)據(jù)總線服務(wù)的VREFDQ,這將有效地提高系統(tǒng)數(shù)據(jù)總線的信噪等級(jí)。
6.點(diǎn)對(duì)點(diǎn)連接(Point-to-Point,P2P):這是為了提高系統(tǒng)性能而進(jìn)行的重要改動(dòng),也是DDR3與DDR2的一個(gè)關(guān)鍵區(qū)別。在DDR3系統(tǒng)中,一個(gè)內(nèi)存控制器只與一個(gè)內(nèi)存通道打交道,而且這個(gè)內(nèi)存通道只能有一個(gè)插槽,因此,內(nèi)存控制器與DDR3內(nèi)存模組之間是點(diǎn)對(duì)點(diǎn)(P2P)的關(guān)系(單物理Bank的模組),或者是點(diǎn)對(duì)雙點(diǎn)(Point-to-two-Point,P22P)的關(guān)系(雙物理Bank的模組),從而大大地減輕了地址/命令/控制與數(shù)據(jù)總線的負(fù)載。而在內(nèi)存模組方面,與DDR2的類(lèi)別相類(lèi)似,也有標(biāo)準(zhǔn)DIMM(臺(tái)式PC)、SO-DIMM/Micro-DIMM(筆記本電腦)、FB-DIMM2(服務(wù)器)之分,其中第二代FB-DIMM將采用規(guī)格更高的AMB2(高級(jí)內(nèi)存緩沖器)。面向64位構(gòu)架的DDR3顯然在頻率和速度上擁有更多的優(yōu)勢(shì),此外,由于DDR3所采用的根據(jù)溫度自動(dòng)自刷新、局部自刷新等其它一些功能,在功耗方面DDR3也要出色得多,因此,它可能首先受到移動(dòng)設(shè)備的歡迎,就像最先迎接DDR2內(nèi)存的不是臺(tái)式機(jī)而是服務(wù)器一樣。在CPU外頻提升最迅速的PC臺(tái)式機(jī)領(lǐng)域,DDR3未來(lái)也是一片光明。Intel所推出的新芯片-熊湖(Bear Lake),其將支持DDR3規(guī)格,而AMD也預(yù)計(jì)同時(shí)在K9平臺(tái)上支持DDR2及DDR3兩種規(guī)格。
7.邏輯Bank數(shù)量:DDR2 SDRAM中有4Bank和8Bank的設(shè)計(jì),目的就是為了應(yīng)對(duì)未來(lái)大容量芯片的需求。而DDR3很可能將從2Gb容量起步,因此起始的邏輯Bank就是8個(gè),另外還為未來(lái)的16個(gè)邏輯Bank做好了準(zhǔn)備。
8.封裝(Packages):DDR3由于新增了一些功能,所以在引腳方面會(huì)有所增加,8bit芯片采用78球FBGA封裝,16bit芯片采用96球FBGA封裝,而DDR2則有60/68/84球FBGA封裝三種規(guī)格。并且DDR3必須是綠色封裝,不能含有任何有害物質(zhì)。
9.降低功耗:DDR3內(nèi)存在達(dá)到高帶寬的同時(shí),其功耗反而可以降低,其核心工作電壓從DDR2的1.8V降至1.5V,相關(guān)數(shù)據(jù)預(yù)測(cè)DDR3將比現(xiàn)時(shí)DDR2節(jié)省30%的功耗,當(dāng)然發(fā)熱量我們也不需要擔(dān)心。就帶寬和功耗之間作個(gè)平衡,對(duì)比現(xiàn)有的DDR2-800產(chǎn)品,DDR3-800、1066及1333的功耗比分別為0.72X、0.83X及0.95X,不但內(nèi)存帶寬大幅提升,功耗表現(xiàn)也比上代更好
內(nèi)存技術(shù)從SDR,DDR,DDR2,DDR3一路發(fā)展而來(lái),傳輸速度以指數(shù)遞增,除了晶圓制造工藝的提升因素之外,還因?yàn)椴捎昧薉ouble?Data?Rate以及Prefetch兩項(xiàng)技術(shù)。實(shí)際上,無(wú)論是SDR還是DDR或DDR2、DDR3,內(nèi)存芯片內(nèi)部的核心時(shí)鐘頻率基本上是保持一致的,都是100MHz到200MHz(某些廠商生產(chǎn)的超頻內(nèi)存除外)。DDR即Double?Data?Rate技術(shù)使數(shù)據(jù)傳輸速度較SDR提升了一倍。如下圖所示, SDR僅在時(shí)鐘的上升沿傳輸數(shù)據(jù),而DDR在時(shí)鐘信號(hào)上、下沿同時(shí)傳輸數(shù)據(jù)。例如同為133MHz時(shí)鐘,DDR卻可以達(dá)到266Mb/s的速度
Double?Data?Rate技術(shù)使數(shù)據(jù)外傳速度提升了一倍,而芯片內(nèi)部數(shù)據(jù)數(shù)據(jù)傳輸速度的提升則是通過(guò)Prefetch技術(shù)實(shí)現(xiàn)的。所謂Prefetch簡(jiǎn)單的說(shuō)就是在一個(gè)內(nèi)核時(shí)鐘周期同時(shí)尋址多個(gè)存儲(chǔ)單元并將這些數(shù)據(jù)以并行的方式統(tǒng)一傳輸?shù)絀O?Buffer中,之后以更高的外傳速度將IO?Buffer中的數(shù)據(jù)傳輸出去。這個(gè)更高的速度在DDR中就是通過(guò)Double?Data?Rate實(shí)現(xiàn)的,也正因?yàn)槿绱耍珼DR芯片時(shí)鐘管腳的時(shí)鐘頻率與芯片內(nèi)部的核心頻率是一致的。如下圖所示為DDR的Prefetch過(guò)程中,在16位的內(nèi)存芯片中一次將2個(gè)16bit數(shù)據(jù)從內(nèi)核傳輸?shù)酵獠縈UX單元,之后分別在Clock信號(hào)的上、下沿分兩次將這2?x?16bit數(shù)據(jù)傳輸給北橋或其他內(nèi)存控制器,整個(gè)過(guò)程經(jīng)歷的時(shí)間恰好為一個(gè)內(nèi)核時(shí)鐘周期。
發(fā)展到DDR2,芯片內(nèi)核每次Prefetch 4倍的數(shù)據(jù)至IO Buffer中,為了進(jìn)一步提高外傳速度,芯片的內(nèi)核時(shí)鐘與外部接口時(shí)鐘(即DDR芯片的Clock管腳時(shí)鐘)不再是同一時(shí)鐘,外部Clock時(shí)鐘頻率變?yōu)閮?nèi)核時(shí)鐘的2倍。同理,DDR3每次Prefetch?8倍的數(shù)據(jù),其芯片Clock頻率為內(nèi)核頻率的4倍,即JEDEC標(biāo)準(zhǔn)(JESD79-3)規(guī)定的400MHz至800MHz,再加上在Clock信號(hào)上、下跳變沿同時(shí)傳輸數(shù)據(jù),DDR3的數(shù)據(jù)傳輸速率便達(dá)到了800MT/s到1600MT/s。具體到內(nèi)存條速度,我們以PC3-12800為例,其采用的DDR3-1600(上一小節(jié)已經(jīng)提到過(guò),PC3-12800和DDR3-1600其實(shí)是同一意思,只不過(guò)PC3-12800指的是DDR的傳輸帶寬為12800MB/s,而DDR3-1600指的是傳輸頻率為1600MHz)芯片核心頻率為200MHz,經(jīng)過(guò)Prefetch后在800MHz Clock信號(hào)工作頻率的雙邊沿(Double?Data?Rate)作用下,使芯片的數(shù)據(jù)傳輸速率為1600?MT/s,內(nèi)存條每次傳輸64比特或者說(shuō)8字節(jié)數(shù)據(jù),1600x8便得到12800MB/s的峰值比特率。
下表列出了JEDEC標(biāo)準(zhǔn)(JESD79-3)規(guī)定的DDR3芯片以及內(nèi)存條相關(guān)參數(shù)。需要說(shuō)明的是,如前所述,并不是所有的內(nèi)存產(chǎn)品都完全遵從JEDEC標(biāo)準(zhǔn),有些廠家會(huì)生產(chǎn)速度更高速的DDR3芯片,一般情況下這些芯片是從芯片檢測(cè)流程中篩選出來(lái)的頻率動(dòng)態(tài)范圍更大的芯片,或者是可加壓超頻工作的芯片。
注意:Clock管腳時(shí)鐘頻率就是上一小節(jié)提到的DDR的工作頻率
最后,在了解了DDR的上面基礎(chǔ)知識(shí)的前提下,下表列出了不同DDR芯片的相關(guān)特性:
DDR3的工作原理
DDR3的內(nèi)部是一個(gè)存儲(chǔ)陣列,將數(shù)據(jù)“填”進(jìn)去,你可以它想象成一張表格,如下圖所示。和表格的檢索原理一樣,先指定一個(gè)行(Row),再指定一個(gè)列(Column),我們就可以準(zhǔn)確地找到所需要的單元格,這就是內(nèi)存芯片尋址的基本原理。對(duì)于內(nèi)存,這個(gè)單元格可稱(chēng)為存儲(chǔ)單元,那么這個(gè)表格(存儲(chǔ)陣列)就是邏輯 Bank(Logical Bank,下面簡(jiǎn)稱(chēng)Bank,與之對(duì)應(yīng)的還有一種叫做物理BANK)。
DDR3內(nèi)部的BANK可以看做是一個(gè)NxN的一個(gè)陣列,B代表Bank編號(hào),C代表列地址編號(hào),R代表行地址編號(hào)。如果尋址命令是B1、R2、C6,就能確定地址是圖中紅格的位置。
目前DDR3內(nèi)存芯片基本上都是8個(gè)Bank設(shè)計(jì),也就是說(shuō)一共有8個(gè)這樣的“表格”。尋址的流程也就是先指定Bank地址,再指定行地址,然后指定列地址最終的確尋址單元。
對(duì)DDR3系統(tǒng)而言,還存在物理Bank的概念,這是對(duì)內(nèi)存子系統(tǒng)的一個(gè)相關(guān)術(shù)語(yǔ),并不針對(duì)內(nèi)存芯片。內(nèi)存為了保證CPU正常工作,必須一次傳輸完CPU 在一個(gè)傳輸周期內(nèi)所需要的數(shù)據(jù)。而CPU在一個(gè)傳輸周期能接受的數(shù)據(jù)容量就是CPU數(shù)據(jù)總線的位寬,單位是bit(位)??刂苾?nèi)存與CPU之間數(shù)據(jù)交換的北橋芯片也因此將內(nèi)存總線的數(shù)據(jù)位寬等同于CPU數(shù)據(jù)總線的位寬,這個(gè)位寬就稱(chēng)為物理Bank(Physical Bank,有的資料稱(chēng)之為Rank)的位寬。目前這個(gè)位寬基本為64bit。
在實(shí)際工作中,邏輯Bank地址與相應(yīng)的行地址是同時(shí)發(fā)出的,此時(shí)這個(gè)命令稱(chēng)之為“行激活”(Row Active)。在此之后,將發(fā)送列地址尋址命令與具體的操作命令(是讀還是寫(xiě)),這兩個(gè)命令也是同時(shí)發(fā)出的,所以一般都會(huì)以“讀/寫(xiě)命令”來(lái)表示列尋址。根據(jù)相關(guān)的標(biāo)準(zhǔn),從行有效到讀/寫(xiě)命令發(fā)出之間的間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),我們可以理解為行選通周期。tRCD是DDR的一個(gè)重要時(shí)序參數(shù),廣義的tRCD以核心時(shí)鐘周期(tCK,Clock Time)數(shù)為單位,比如tRCD=3,就代表延遲周期為兩個(gè)時(shí)鐘周期,具體到確切的時(shí)間,則要根據(jù)時(shí)鐘頻率而定。以DDR3-800為例,通過(guò)上一節(jié)的學(xué)習(xí)可知,DDR3-800的數(shù)據(jù)傳輸頻率(等效頻率)為800MHz,由于DDR3的預(yù)取(Prefetch)位寬為8位,所以核心頻率為100MHz(800MHz/8),核心時(shí)鐘的周期為10ns,如果tRCD=3,則表示延時(shí)為30ns。
上圖是tRCD=3的時(shí)序圖,NOP=Not Operation,表示無(wú)操作,灰色區(qū)域表示Don’t Care。
接下來(lái),相關(guān)的列地址被選中以后,將會(huì)觸發(fā)數(shù)據(jù)傳輸,但從存儲(chǔ)單元中輸出到真正出現(xiàn)在內(nèi)存芯片的I/O接口之間還需要一定的時(shí)間(數(shù)據(jù)觸發(fā)本身就有延時(shí),而且還需要進(jìn)行信號(hào)放大),這段時(shí)間就是列地址脈沖選通潛伏期(CAS Latency,CL),CL的數(shù)值與tRCD一樣,以時(shí)鐘周期數(shù)表示。比如DDR3-800的有效頻率(傳輸數(shù)據(jù)頻率)為800MHz,由于DDR3的預(yù)取數(shù)為8,所以核心頻率為100MHz,核心周期為10ns,如果CL=2,那么就意味著列地址脈沖選通潛伏期為20ns。CL只針對(duì)讀取操作有效。
由于芯片體積的原因,存儲(chǔ)單元中的電容容量很小,所以信號(hào)要經(jīng)過(guò)放大來(lái)保證其有效的識(shí)別性,這個(gè)放大/驅(qū)動(dòng)工作由Sense Amplifier負(fù)責(zé),一個(gè)存儲(chǔ)體對(duì)應(yīng)一個(gè)Sense Amplifier通道。但它要有一個(gè)準(zhǔn)備時(shí)間才能保證信號(hào)的發(fā)送強(qiáng)度(事前還要進(jìn)行電壓比較以進(jìn)行邏輯電平的判斷),因此從數(shù)據(jù)I/O總線上有數(shù)據(jù)到數(shù)據(jù)輸出之前的一個(gè)時(shí)鐘上升沿開(kāi)始,數(shù)據(jù)即已傳向Sense Amplifier,也就是說(shuō)此時(shí)數(shù)據(jù)已經(jīng)被觸發(fā),經(jīng)過(guò)一定的驅(qū)動(dòng)時(shí)間最終傳向數(shù)據(jù)I/O總線進(jìn)行輸出,這段時(shí)間我們稱(chēng)之為tAC(Access Time from CLK,時(shí)鐘觸發(fā)后的訪問(wèn)時(shí)間)。
Sense Amplifier在DDR結(jié)構(gòu)中扮演的角色如下所示
tAC和CAS的示意圖如下圖所示
目前內(nèi)存的讀寫(xiě)基本都是連續(xù)的,因?yàn)榕cCPU交換的數(shù)據(jù)量以一個(gè)Cache Line(即CPU內(nèi)Cache的存儲(chǔ)單位)的容量為準(zhǔn),一般為64字節(jié)。而現(xiàn)有的Rank位寬為8字節(jié)(64bit),那么就要一次連續(xù)傳輸8次,這就涉及到我們也經(jīng)常能遇到的突發(fā)傳輸?shù)母拍睢M话l(fā)(Burst)是指在同一行中相鄰的存儲(chǔ)單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長(zhǎng)度(Burst Lengths,簡(jiǎn)稱(chēng)BL)。
在進(jìn)行突發(fā)傳輸時(shí),只要指定起始列地址與突發(fā)長(zhǎng)度,內(nèi)存就會(huì)依次地自動(dòng)對(duì)后面相應(yīng)數(shù)量的存儲(chǔ)單元進(jìn)行讀/寫(xiě)操作而不再需要控制器連續(xù)地提供列地址。這樣,除了第一組數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。下圖是CAS=2,BL=4時(shí)的時(shí)序圖
突發(fā)連續(xù)讀取模式:只要指定起始列地址與突發(fā)長(zhǎng)度,后續(xù)的尋址與數(shù)據(jù)的讀取自動(dòng)進(jìn)行,而只要控制好兩段突發(fā)讀取命令的間隔周期(與BL相同)即可做到連續(xù)的突發(fā)傳輸。
談到了突發(fā)長(zhǎng)度時(shí)。如果BL=4,那么也就是說(shuō)一次就傳送4×64bit的數(shù)據(jù)。但是,如果其中的第二組數(shù)據(jù)是不需要的,怎么辦?還都傳輸嗎?為了屏蔽不需要的數(shù)據(jù),人們采用了數(shù)據(jù)掩碼(Data I/O Mask,簡(jiǎn)稱(chēng)DQM)技術(shù)。通過(guò)DQM,內(nèi)存可以控制I/O端口取消哪些輸出或輸入的數(shù)據(jù)。這里需要強(qiáng)調(diào)的是,在讀取時(shí),被屏蔽的數(shù)據(jù)仍然會(huì)從存儲(chǔ)體傳出,只是在“掩碼邏輯單元”處被屏蔽。DQM由北橋控制,為了精確屏蔽一個(gè)P-Bank位寬中的每個(gè)字節(jié),每個(gè)DIMM有8個(gè)DQM 信號(hào)線,每個(gè)信號(hào)針對(duì)一個(gè)字節(jié)。這樣,對(duì)于4bit位寬芯片,兩個(gè)芯片共用一個(gè)DQM信號(hào)線,對(duì)于8bit位寬芯片,一個(gè)芯片占用一個(gè)DQM信號(hào),而對(duì)于 16bit位寬芯片,則需要兩個(gè)DQM引腳。
在數(shù)據(jù)讀取完之后,為了騰出讀出放大器以供同一Bank內(nèi)其他行的尋址并傳輸數(shù)據(jù),內(nèi)存芯片將進(jìn)行預(yù)充電的操作來(lái)關(guān)閉當(dāng)前工作行。還是以上面那個(gè)Bank示意圖為例。當(dāng)前尋址的存儲(chǔ)單元是B1、R2、C6。如果接下來(lái)的尋址命令是B1、R2、C4,則不用預(yù)充電,因?yàn)樽x出放大器正在為這一行服務(wù)。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必須要先把R2關(guān)閉,才能對(duì)R4尋址。從開(kāi)始關(guān)閉現(xiàn)有的工作行,到可以打開(kāi)新的工作行之間的間隔就是tRP(Row Precharge command Period,行預(yù)充電有效周期),單位也是時(shí)鐘周期數(shù)。
整個(gè)充電的步驟如下圖所示
在不同Bank間讀寫(xiě)也是這樣,先把原來(lái)數(shù)據(jù)寫(xiě)回,再激活新的Bank/Row。
數(shù)據(jù)選取脈沖(DQS)
DQS 是DDR中的重要功能,它的功能主要用來(lái)在一個(gè)時(shí)鐘周期內(nèi)準(zhǔn)確的區(qū)分出每個(gè)傳輸周期,并便于接收方準(zhǔn)確接收數(shù)據(jù)。每一顆芯片都有一個(gè)DQS信號(hào)線,它是雙向的,在寫(xiě)入時(shí)它用來(lái)傳送由北橋發(fā)來(lái)的DQS信號(hào),讀取時(shí),則由芯片生成DQS向北橋發(fā)送。完全可以說(shuō),它就是數(shù)據(jù)的同步信號(hào)。
在讀取時(shí),DQS與數(shù)據(jù)信號(hào)同時(shí)生成(也是在CK與CK#的交叉點(diǎn))。而DDR內(nèi)存中的CL也就是從CAS發(fā)出到DQS生成的間隔,DQS生成時(shí),芯片內(nèi)部的預(yù)取已經(jīng)完畢了,由于預(yù)取的原因,實(shí)際的數(shù)據(jù)傳出可能會(huì)提前于DQS發(fā)生(數(shù)據(jù)提前于DQS傳出)。由于是并行傳輸,DDR內(nèi)存對(duì)tAC也有一定的要求,對(duì)于DDR266,tAC的允許范圍是±0.75ns,對(duì)于DDR333,則是±0.7ns,有關(guān)它們的時(shí)序圖示見(jiàn)前文,其中CL里包含了一段DQS 的導(dǎo)入期。
DQS 在讀取時(shí)與數(shù)據(jù)同步傳輸,那么接收時(shí)也是以DQS的上下沿為準(zhǔn)嗎?不,如果以DQS的上下沿區(qū)分?jǐn)?shù)據(jù)周期的危險(xiǎn)很大。由于芯片有預(yù)取的操作,所以輸出時(shí)的同步很難控制,只能限制在一定的時(shí)間范圍內(nèi),數(shù)據(jù)在各I/O端口的出現(xiàn)時(shí)間可能有快有慢,會(huì)與DQS有一定的間隔,這也就是為什么要有一個(gè)tAC規(guī)定的原因。而在接收方,一切必須保證同步接收,不能有tAC之類(lèi)的偏差。這樣在寫(xiě)入時(shí),芯片不再自己生成DQS,而以發(fā)送方傳來(lái)的DQS為基準(zhǔn),并相應(yīng)延后一定的時(shí)間,在DQS的中部為數(shù)據(jù)周期的選取分割點(diǎn)(在讀取時(shí)分割點(diǎn)就是上下沿),從這里分隔開(kāi)兩個(gè)傳輸周期。這樣做的好處是,由于各數(shù)據(jù)信號(hào)都會(huì)有一個(gè)邏輯電平保持周期,即使發(fā)送時(shí)不同步,在DQS上下沿時(shí)都處于保持周期中,此時(shí)數(shù)據(jù)接收觸發(fā)的準(zhǔn)確性無(wú)疑是最高的。
DDR的寫(xiě)時(shí)序的時(shí)序圖如下圖所示
DDR的讀時(shí)序的時(shí)序圖如下圖所示
由上面的時(shí)序圖可知,在寫(xiě)時(shí)序中,有效數(shù)據(jù)DQ的正中間正好對(duì)應(yīng)DQS的跳邊沿,而在讀時(shí)序中,有效數(shù)據(jù)的正中間對(duì)應(yīng)著DQS信號(hào)的正中間。
最后在簡(jiǎn)單說(shuō)一說(shuō)DDR中采用的ODT(On-Die Termination)技術(shù)。
ODT(On-Die Termination),是從DDR2 SDRAM時(shí)代開(kāi)始新增的功能。其允許用戶(hù)通過(guò)讀寫(xiě)DDR2/3內(nèi)部的MR1寄存器,來(lái)控制DDR3 SDRAM中各個(gè)信號(hào)內(nèi)部終端電阻的連接或者斷開(kāi)。在DDR3 SDRAM中,ODT功能主要應(yīng)用于:
1、DQ, DQS, DQS# and DM for X4 configuration
2、DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration
3、DQU, DQL, DQSU, DQSU#, DQSL, DQSL#, DMU and DML for X16 configuration
ODT(On-Die Termination)技術(shù)的目的是通過(guò)使DDR SDRAM控制器能夠獨(dú)立的打開(kāi)或者關(guān)斷DDR內(nèi)部的終端電阻來(lái)提高存儲(chǔ)器通道的信號(hào)完整性,在DLL關(guān)閉模式,ODT功能被禁用。
一個(gè)DDR通道,通常會(huì)掛接多個(gè)Rank,這些Rank的數(shù)據(jù)線、地址線等等都是共用;數(shù)據(jù)信號(hào)也就依次傳遞到每個(gè)Rank,到達(dá)線路末端的時(shí)候,波形會(huì)有反射,從而影響到原始信號(hào);因此需要加上終端電阻,吸收余波。之前的DDR,終端電阻做在板子上,但是因?yàn)榉N種原因,效果不是太好,到了DDR2,把終端電阻做到了DDR顆粒內(nèi)部,也就稱(chēng)為On Die Termination,Die上的終端電阻,Die是硅片的意思,這里也就是DDR顆粒。
ODT技術(shù)具體的內(nèi)部結(jié)構(gòu)圖如下:
等效結(jié)構(gòu)如下圖所示
ODT終端電阻的電阻值RTT可通過(guò)模式寄存器MR1的A9,A6,A2來(lái)進(jìn)行設(shè)置,設(shè)置的真值表為:
總的來(lái)說(shuō),ODT技術(shù)有以下三個(gè)優(yōu)點(diǎn):
1、去掉了主板上的終結(jié)電阻器等電器元件,這樣會(huì)大大降低主板的制造成本,并且也使主板的設(shè)計(jì)更加簡(jiǎn)潔。
2、由于ODT技術(shù)可以迅速的開(kāi)啟和關(guān)閉空閑的內(nèi)存芯片,在很大程度上減少了內(nèi)存閑置時(shí)的功率消耗。
3、芯片內(nèi)部終結(jié)電阻也要比主板的終端電阻具有更好的信號(hào)完整性。這也使得進(jìn)一步提高DDR2內(nèi)存的工作頻率成為可能。
五、 總結(jié)
本文大致介紹了DDR3的一些基本信息,總結(jié)下來(lái)主要有以下幾個(gè)關(guān)鍵信息是值得關(guān)注的。
1、DDR核心頻率,工作頻率以及有效頻率的關(guān)系
2、DDR采用的預(yù)取(Prefetch)技術(shù)
3、DDR的Burst Length(BL)的概念
4、DDR對(duì)一行操作完畢以后如果下一次的操作在不同的行,那么需要有一個(gè)預(yù)充電(Precharge)的過(guò)程
5、數(shù)據(jù)掩碼(DQM)技術(shù)的作用是用來(lái)屏蔽不想接收的數(shù)據(jù)
6、數(shù)據(jù)選通信號(hào)(DQS)與有效數(shù)據(jù)的關(guān)系
7、ODT(On-Die Termination)技術(shù)可以提高DDR信號(hào)完整性
在FPGA中可以實(shí)現(xiàn)DDR3,在FPGA的一些電路設(shè)計(jì)中也需要DDR3,下面就是一些關(guān)于DDR3與FPGA設(shè)計(jì)時(shí)的20個(gè)設(shè)計(jì)規(guī)范
DQ0-7 八根線必須連到同一T塊(也稱(chēng)為字節(jié)組)上,一旦分在一起,這個(gè)字節(jié)組就不能放地址線和控制線了,只能放數(shù)據(jù)線。
每組數(shù)據(jù)線對(duì)應(yīng)的DQS必須連到N6,N7上,也就是QBC或者是DBC上
字節(jié)組的N1和N12不能使用作為數(shù)據(jù)線,并且如果這個(gè)字節(jié)組放了其他數(shù)據(jù)線,則N1,N12相當(dāng)于廢掉,地址線和控制線也不能放。
DM信號(hào)必須位于與其相對(duì)應(yīng)的DQ所在的字節(jié)組的N0引腳上
當(dāng)然如果禁用DM,N0可以用于其他DQ,但是不能給地址線和控制線,
如果禁用DM,必須將其在PCB上拉低,
x4作為半個(gè)字節(jié),必須成對(duì)使用,比如半個(gè)字節(jié),一個(gè)字節(jié),兩個(gè)字節(jié),四個(gè)字節(jié) 分別對(duì)應(yīng)DQ0-3 DQ0-7 DQ0-15 DQ0-31
如果是用四片DDR,必然會(huì)用到3個(gè)bank,三個(gè)bank必須連續(xù),地址線控制線bank必須位于中間bank,
地址線和控制線必須位于同一bank中,并且,可以位于那一個(gè)字節(jié)通道的13個(gè)引腳的任何一個(gè)。
對(duì)于RDIMM和UDIMM的雙插槽配置,cs,odt,cke和ck端口寬度加倍。
ck對(duì)必須位于地址/控制字節(jié)通道中的任何PN對(duì)上
RESET_N可以位于任何引腳,且IO標(biāo)準(zhǔn)為SSTL15 復(fù)位的時(shí)候應(yīng)該是拉低,加電期間保持高電平。加個(gè)4.7K下拉電阻,
DDR使用的IObank必須在同一列中,64 65 66這樣
支持接口最大是80位寬,五個(gè)DDR同時(shí)存在 對(duì)DIMM無(wú)效
不允許跳著bank使用DDR,比如使用64 66bank
并且有一個(gè)晶振輸出放在地址線控制線bank的GCIO引腳上,而且必須是差分時(shí)鐘。
在UG571中指出,如果某一bank用于連接存儲(chǔ)芯片,要將其VREF引腳連接1k電阻再到GND
如果字節(jié)組被設(shè)置用于存儲(chǔ)IO那么不能將系統(tǒng)復(fù)位分配給字節(jié)N0和N6
給DDR ip核的時(shí)鐘輸入必須是差分時(shí)鐘。
審核編輯:劉清
-
DDR3
+關(guān)注
關(guān)注
2文章
276瀏覽量
42424 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7530瀏覽量
164413 -
MOS管
+關(guān)注
關(guān)注
108文章
2445瀏覽量
67673 -
EEPROM
+關(guān)注
關(guān)注
9文章
1033瀏覽量
82014 -
Cache
+關(guān)注
關(guān)注
0文章
129瀏覽量
28452
原文標(biāo)題:DDR3基礎(chǔ)介紹以及設(shè)計(jì)規(guī)范
文章出處:【微信號(hào):電子匯,微信公眾號(hào):電子匯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論