DRAM基本組成
對于DRAM,其主要由行和列組成,每一個bit中都是由類似右下圖的類晶體管的結(jié)構(gòu)組成,對于sdram的數(shù)據(jù),可以通過控制column和row就可以訪問sdram的隨機(jī)地址的內(nèi)容。
·讀取某一個bit的狀態(tài),就是選中word line,那么圖示中的晶體管M1就會導(dǎo)通,通過bit line的sense就可以感知到這個時候電容Cs上的狀態(tài),例如,現(xiàn)在如果這個bit的狀態(tài)為1,那么導(dǎo)通之后就會從bit line上得到1,反之也是同樣的道理。
·向某一bit寫入1,首先通過row decoder選中word line,將會導(dǎo)致m1導(dǎo)通,那么bit line為1,會導(dǎo)致電容Cs充電,導(dǎo)致其電平為1,如果要寫入,那么bit line的電平 為0,將會導(dǎo)致電容Cs放電,致使此時的電平為0。
由上面可以看出一個位只能表示一個bit,那么我們想讀取多個位的時候,該怎么辦呢?那就出現(xiàn)了ddr中的bank的概念,由多個memory array就組成了一個bank,如下圖,一次可以讀取2bit/4bit/8bit的數(shù)據(jù):
由多個bank就可以組成一個memory device,如下圖,一個dram的芯片,由8個banks組成,而每個bank由4個memory array構(gòu)成,而此時每個bank輸出4個bit的I/O bus,那么為什么會出現(xiàn)bank的概念呢?動態(tài)內(nèi)存區(qū)別于靜態(tài)內(nèi)存要定時刷新,每讀取一個狀態(tài)的時候,都需要重新充電。如果沒有采用bank,假設(shè)我們現(xiàn)在要讀取01-08地址的數(shù)據(jù),當(dāng)讀取01的地址后,要等這個bank自刷新后才能讀取02地址的值,而采用8個bank之后,沒有這類問題,例如我們讀取完01地址之后,那么讀取02,因?yàn)?2與01的控制方式不同,所以對于這段時間01可以后臺的完成自刷新,依次類推,那么就可以很好的解決動態(tài)內(nèi)存需要刷新的問題。
上圖中,對于RANK、DIMM等在深入淺出DDR系列(1)——DDR原理篇中已經(jīng)詳細(xì)介紹了。
2
DDR工作原理
了解了DDR的基本組成后,我們來看看DDR如何來完成一次的讀寫過程。如下圖所示,DRAM 的相關(guān)操作在內(nèi)部大概可以分為以下的四個階段:
·command transport and decode: 在這個階段,Host 端會通過 Command Bus 和 Address Bus 將具體的 Command 以及相應(yīng)參數(shù)傳遞給 DRAM。DRAM 接收并解析 Command,接著驅(qū)動內(nèi)部模塊進(jìn)行相應(yīng)的操作。其中會根據(jù)將addr bus上的數(shù)據(jù)解碼成對應(yīng)的row address和通過bank control解碼后得到對應(yīng)的bank,其次對應(yīng)的column也會解碼得到對應(yīng)的地址
**·in bank data movement: **在這個階段,第一階段發(fā)送需要讀取的 Column 的地址給 DRAM。然后 DRAM 再將 Active Command 所選中的 Row 中,DRAM 就將 Memory Array 中的數(shù)據(jù)從 DRAM Cells 中讀出到 Sense Amplifiers,或者將數(shù)據(jù)從 Sense Amplifiers 寫入到 DRAM Cells。
·in device data movement: 這個階段中,數(shù)據(jù)將通過 IO 電路緩存到 Read Latchs 或者通過 IO 電路和 Write Drivers 更新到 Sense Amplifiers。
**·system data transport: **在這個階段,進(jìn)行讀數(shù)據(jù)操作時,SDRAM 會將數(shù)據(jù)輸出到數(shù)據(jù)總線上,進(jìn)行寫數(shù)據(jù)操作時,則是 Host 端的 Controller 將數(shù)據(jù)輸出到總線上。
在上述的四個階段中,每個階段都會有一定的耗時,例如數(shù)據(jù)從 DRAM Cells 搬運(yùn)到 Read Latchs 的操作需要一定的時間,因此在一個具體的操作需要按照一定時序進(jìn)行。同時,由于內(nèi)部的一些部件可能會被多個操作使用,例如讀數(shù)據(jù)和寫數(shù)據(jù)都需要用到部分 IO 電路,因此多個不同的操作通常不能同時進(jìn)行,也需要遵守一定的時序。此外,某些操作會消耗很大的電流,為了滿足 SDRAM 設(shè)計上的功耗指標(biāo),可能會限制某一些操作的執(zhí)行頻率。
3
DRAM基本命令
對于一款ddr,我們需要知道通過什么樣的方式來控制完成我們需要,我們來看看ddr的狀態(tài),ddr的工作就是在這幾個狀態(tài)之間切換:
在芯片上電后,完成初始化后,dram處于idle階段,上圖是需要進(jìn)入各個階段的時候,應(yīng)該需要進(jìn)行那些基本的操作,對于ddr使用比較頻繁的幾個基本命令訪問方式如下
·刷新模式: 儲體中電容的數(shù)據(jù)有效是有時間限制的,所以為了保證數(shù)據(jù)的不丟失,所以要對ddr進(jìn)行定時的刷新,SDRAM內(nèi)部有一個行地址生成器(也稱刷新計數(shù)器)用來自動的依次生成行地址。由于刷新是針對一行中的所有存儲體進(jìn)行。該模式是由Host主動控制DRAM完成刷新,存儲體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000秒),也就是說每一行刷新的循環(huán)周期是64ms。
·自我刷新模式: 當(dāng)系統(tǒng)進(jìn)入低功耗模式,只需要發(fā)送一條 SRF指令,主要用于休眠模式低功耗狀態(tài)下的數(shù)據(jù)保存,比較常見的應(yīng)用是STR(Suspend to RAM,休眠掛起于內(nèi)存)。就進(jìn)入了該模式,此時不再依靠系統(tǒng)時鐘工作,而是根據(jù)內(nèi)部的時鐘進(jìn)行刷新操作。期間除了CKE之外的所有外部信號都是無效的(無需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并進(jìn)入正常操作狀態(tài)。
·MRS模式(mode register set): 模式寄存器中的數(shù)據(jù)控制著 DDR2 SDRAM的操作模式.它控制著 CAS 延遲, 突發(fā)長度, 突發(fā)順序, 測試模式, DLL復(fù)位, WR等各種選項(xiàng),支持著 DDR2 SDRAM 的各種應(yīng)用. 模式寄存器的默認(rèn)值沒有被定義, 所以上電之后必須按規(guī)定的時序規(guī)范來設(shè)定模式寄存器的值。
·EMRS 擴(kuò)展模式寄存器: 存儲著激活或禁止DLL的控制信息, 輸出驅(qū)動強(qiáng)度, ODT 值的選擇 和附加延遲等信息。
·預(yù)充電: 對一行讀寫操作后,關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電。
·讀過程: 訪問操作開始ACT一個激活命令,主要是激活bank和rol,就等于選通了某一Bank的某一行,接著發(fā)送一個read指令,就可以通過數(shù)據(jù)總線將數(shù)據(jù)送出去了,然后就進(jìn)行預(yù)充電,恢復(fù)到讀寫的狀態(tài),預(yù)充電完成后,就恢復(fù)到idle狀態(tài)。
·寫過程: 與讀過程基本類似。
DRAM的基本命令是通過操作各種控制信號/地址信號的組合來完成,下表是DRAM的命令表:
-
DRAM
+關(guān)注
關(guān)注
40文章
2320瀏覽量
183680 -
晶體管
+關(guān)注
關(guān)注
77文章
9711瀏覽量
138579 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32028
發(fā)布評論請先 登錄
相關(guān)推薦
評論