4
DDR的時(shí)序參數(shù)
在進(jìn)行數(shù)據(jù)的讀寫(xiě)前,Controller 需要先發(fā)送 Row Active Command,打開(kāi) DRAM Memory Array 中的指定的 Row。Row Active Command 的時(shí)序如下圖所示:
tRCD:RAS-to-CAS Delay(tRCD),內(nèi)存行地址傳輸?shù)搅械刂返难舆t時(shí)間。
Row Active Command 通過(guò)地址總線指明需要打開(kāi)某一個(gè) Bank 的某一個(gè) Row。DRAM 在接收到該 Command 后,會(huì)打開(kāi)該 Row 的 Wordline,將其存儲(chǔ)的數(shù)據(jù)讀取到 Sense Amplifiers 中,這一時(shí)間定義為 tRCD(RCD for Row Address to Column Address Delay)。DRAM 在完成 Row Sense 階段后,Controller 就可以發(fā)送 Read 或 Write Command 進(jìn)行數(shù)據(jù)的讀寫(xiě)了。這也意味著,Controller 在發(fā)送 Row Active Command 后,需要等待 tRCD 時(shí)間才能接著發(fā)送 Read 或者 Write Command 進(jìn)行數(shù)據(jù)的讀寫(xiě)。
tRAS: Row Active Time,內(nèi)存行地址選通延遲
由于 DRAM 的特性,Row 中的數(shù)據(jù)在被讀取到 Sense Amplifiers 后,需要進(jìn)行 Restore 的操作。Restore 操作可以和數(shù)據(jù)的讀取同時(shí)進(jìn)行,即在這個(gè)階段,Controller 可能發(fā)送了 Read Command 進(jìn)行數(shù)據(jù)讀取。
DRAM 接收到 Row Active Command 到完成 Row Restore 操作所需要的時(shí)間定義為 tRAS(RAS for Row Address Strobe)。
Controller 在發(fā)出一個(gè) Row Active Command 后,必須要等待 tRAS 時(shí)間后,才可以發(fā)起另一次的 Precharge 和 Row Access。
4.2 Column Read Command
Controller 發(fā)送 Row Active Command 并等待 tRCD 時(shí)間后,再發(fā)送 Column Write Command 進(jìn)行數(shù)據(jù)寫(xiě)入。數(shù)據(jù) Burst Length 為 8 時(shí)的 Column Write Command 時(shí)序如下圖所示:
tCWD/tCL/tCWL:內(nèi)存CAS延遲時(shí)間
Column Write Command 通過(guò)地址總線 A[0:9] 指明需要寫(xiě)入數(shù)據(jù)的 Column 的起始地址。Controller 在發(fā)送完 Write Command 后,需要等待 tCWD (CWD for Column Write Delay) 時(shí)間后,才可以發(fā)送待寫(xiě)入的數(shù)據(jù)。tCWD 在一些描述中也稱為 tCWL(CWL for Column Write Latency)
tWR(WR for Write Recovery)
DRAM 接收完數(shù)據(jù)后,需要一定的時(shí)間將數(shù)據(jù)寫(xiě)入到 DRAM Cells 中,這個(gè)時(shí)間定義為 tWR(WR for Write Recovery)。該值說(shuō)明在一個(gè)激活的bank中完成有效的寫(xiě)操作及預(yù)充電前,必須等待多少個(gè)時(shí)鐘周期。這段必須的時(shí)鐘周期用來(lái)確保在預(yù)充電發(fā)生前,寫(xiě)緩沖中的數(shù)據(jù)可以被寫(xiě)進(jìn)內(nèi)存單元中。同樣的,過(guò)低的tWD雖然提高了系統(tǒng)性能,但可能導(dǎo)致數(shù)據(jù)還未被正確寫(xiě)入到內(nèi)存單元中,就發(fā)生了預(yù)充電操作,會(huì)導(dǎo)致數(shù)據(jù)的丟失及損壞。
4.3 Precharge Command
要訪問(wèn) DRAM Cell 中的數(shù)據(jù),需要先進(jìn)行 Precharge 操作。相應(yīng)地,在 Controller 發(fā)送 Row Active Command 訪問(wèn)一個(gè)具體的 Row 前, Controller 需要發(fā)送 Precharge Command 對(duì)該 Row 所在的 Bank 進(jìn)行 Precharge 操作。下面的時(shí)序圖描述了 Controller 訪問(wèn)一個(gè) Row 后,執(zhí)行 Precharge,然后再訪問(wèn)另一個(gè) Row 的流程。
DRAM 執(zhí)行 Precharge Command 所需要的時(shí)間定義為 tRP(RP for Row Precharge)。Controller 在發(fā)送一個(gè) Row Active Command 后,需要等待 tRC(RC for Row Cycle)時(shí)間后,才能發(fā)送第二個(gè) Row Active Command 進(jìn)行另一個(gè) Row 的訪問(wèn)。
從時(shí)序圖上我們可以看到,tRC = tRAS + tRP,tRC 時(shí)間決定了訪問(wèn) DRAM 不同 Row 的性能。在實(shí)際的產(chǎn)品中,通常會(huì)通過(guò)降低 tRC 耗時(shí)或者在一個(gè) Row Cycle 執(zhí)行盡可能多數(shù)據(jù)讀寫(xiě)等方式來(lái)優(yōu)化性能。
4.4 Row Refresh Command
一般情況下,為了保證 DRAM 數(shù)據(jù)的有效性,Controller 每隔 tREFI(REFI for Refresh Interval) 時(shí)間就需要發(fā)送一個(gè) Row Refresh Command 給 DRAM,進(jìn)行 Row 刷新操作。DRAM 在接收到 Row Refresh Command 后,會(huì)根據(jù)內(nèi)部 Refresh Counter 的值,對(duì)所有 Bank 的一個(gè)或者多個(gè) Row 進(jìn)行刷新操作。
DRAM 刷新的操作與 Active + Precharge Command 組合類(lèi)似,差別在于 Refresh Command 是對(duì) DRAM 所有 Bank 同時(shí)進(jìn)行操作的。下圖為 DRAM Row Refresh Command 的時(shí)序圖:
DRAM 完成刷新操作所需的時(shí)間定義為 tRFC(RFC for Refresh Cycle)。
tRFC 包含兩個(gè)部分的時(shí)間,一是完成刷新操作所需要的時(shí)間,由于 DRAM Refresh 是同時(shí)對(duì)所有 Bank 進(jìn)行的,刷新操作會(huì)比單個(gè) Row 的 Active + Precharge 操作需要更長(zhǎng)的時(shí)間;tRFC 的另一部分時(shí)間則是為了降低平均功耗而引入的延時(shí),DRAM Refresh 操作所消耗的電流會(huì)比單個(gè) Row 的 Active + Precharge 操作要大的多,tRFC 中引入額外的時(shí)延可以限制 Refresh 操作的頻率。
4.5 Read Cycle
一個(gè)完整的 Burst Length 的 Read Cycle 如下圖所示:
下面是DDR常見(jiàn)的一些參數(shù)及定義如下:
上述的 DRAM Timing 中的一部分參數(shù)可以編程設(shè)定,例如 tCAS、tAL、Burst Length 等。這些參數(shù)通常是在 Host 初始化時(shí),通過(guò) Controller 發(fā)起 Load Mode Register Command 寫(xiě)入到 DRAM 的 Mode Register 中。DRAM 完成初始化后,就會(huì)按照設(shè)定的參數(shù)運(yùn)行。
5
性能分析
在學(xué)習(xí)完DDR的基本操作和時(shí)序參數(shù)之后,我們就看看性能的影響。當(dāng)頻率和位寬固定后,帶寬也就不可更改,但是在內(nèi)存的工作周期內(nèi),不可能總處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因?yàn)橐忻睢ぶ返缺匾倪^(guò)程。那么這些操作占用的時(shí)間越短,內(nèi)存工作的效率就越高,性能也就越好。
對(duì)于我們來(lái)說(shuō),最好的方法是提高頻率,但是提高頻率會(huì)受多方面的影響,還有什么辦法提高內(nèi)存訪問(wèn)采取速度。
**·多通道: **現(xiàn)代內(nèi)存控制器從北橋移入CPU內(nèi)部,而內(nèi)存控制器都可以同時(shí)操作多個(gè)通道。比如現(xiàn)在的筆記本開(kāi)始支持雙通道、三通道,如果數(shù)據(jù)分布在不同通道的內(nèi)存條上,內(nèi)存控制器就可以不用管上面的這些延遲時(shí)序,同時(shí)可以讀取它們,速度可以增加兩倍,甚至三倍。
·交織方式(Interleaving): 同一塊內(nèi)存分布到不同的通道中去,這樣無(wú)論Cache命中與否都可以同時(shí)存取,多通道的技術(shù)才能發(fā)揮更大的用處。
·超頻內(nèi)存: 也就是提升DDR的頻率來(lái)增加速度
6
總結(jié)
對(duì)于DDR的讀寫(xiě)以及一些時(shí)序參數(shù)的原理性知識(shí)后,下一步就進(jìn)入到DDR的驅(qū)動(dòng)調(diào)式,主要是對(duì)于一款控制器,我們?cè)撊绾稳フ{(diào)試DDR。其實(shí)對(duì)于DDR的調(diào)試,主要的讀寫(xiě)的控制,都是由DDR的控制器完成了,我們主要是通過(guò)MRS模式/EMRS模式來(lái)完成對(duì)于DDR參數(shù)的配置,而對(duì)于MRS模式的使用,已經(jīng)集成到DDR控制器中完成了,我們只需要根據(jù)控制器手冊(cè)配置相應(yīng)的寄存器就可以完成對(duì)于DDR調(diào)試。
7
參考文檔
DRAM Memory-Access Protocol
DRAM Timing
本文轉(zhuǎn)自:https://blog.csdn.net/u012489236
-
DRAM
+關(guān)注
關(guān)注
40文章
2337瀏覽量
184893 -
晶體管
+關(guān)注
關(guān)注
77文章
9905瀏覽量
140109 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32276
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
什么是DDR?DDR內(nèi)存的演進(jìn)之路
DDR2內(nèi)存傳輸標(biāo)準(zhǔn)

評(píng)論