0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SDRAM 的相關(guān)操作詳細(xì)時(shí)序解析

西西 ? 來(lái)源:蝸窩科技 ? 作者:codingbelief ? 2020-09-22 15:15 ? 次閱讀

DRAM Device章節(jié)中,我們簡(jiǎn)單介紹了 SDRAMActive、Read、Write 等的操作,在本中,我們將詳細(xì)的介紹各個(gè)操作的時(shí)序。

1. Overview

如上圖所示,SDRAM 的相關(guān)操作在內(nèi)部大概可以分為以下的幾個(gè)階段:

Command transport and decode

在這個(gè)階段,Host 端會(huì)通過(guò) Command Bus 和 Address Bus 將具體的 Command 以及相應(yīng)參數(shù)傳遞給 SDRAM。SDRAM 接收并解析 Command,接著驅(qū)動(dòng)內(nèi)部模塊進(jìn)行相應(yīng)的操作。

In bank data movement

在這個(gè)階段,SDRAM 主要是將 Memory Array 中的數(shù)據(jù)從 DRAM Cells 中讀出到 Sense Amplifiers,或者將數(shù)據(jù)從 Sense Amplifiers 寫入到 DRAM Cells。

In device data movement

這個(gè)階段中,數(shù)據(jù)將通過(guò) IO 電路緩存到 Read Latchs 或者通過(guò) IO 電路和 Write Drivers 更新到 Sense Amplifiers。

System data transport

在這個(gè)階段,進(jìn)行讀數(shù)據(jù)操作時(shí),SDRAM 會(huì)將數(shù)據(jù)輸出到數(shù)據(jù)總線上,進(jìn)行寫數(shù)據(jù)操作時(shí),則是 Host 端的 Controller 將數(shù)據(jù)輸出到總線上。

在上述的四個(gè)階段中,每個(gè)階段都會(huì)有一定的耗時(shí),例如數(shù)據(jù)從 DRAM Cells 搬運(yùn)到 Read Latchs 的操作需要一定的時(shí)間,因此在一個(gè)具體的操作需要按照一定時(shí)序進(jìn)行。

同時(shí),由于內(nèi)部的一些部件可能會(huì)被多個(gè)操作使用,例如讀數(shù)據(jù)和寫數(shù)據(jù)都需要用到部分 IO 電路,因此多個(gè)不同的操作通常不能同時(shí)進(jìn)行,也需要遵守一定的時(shí)序。

此外,某些操作會(huì)消耗很大的電流,為了滿足 SDRAM 設(shè)計(jì)上的功耗指標(biāo),可能會(huì)限制某一些操作的執(zhí)行頻率。

基于上面的幾點(diǎn)限制,SDRAM Controller 在發(fā)出 Command 時(shí),需要遵守一定的時(shí)序和規(guī)則,這些時(shí)序和規(guī)則由相應(yīng)的 SDRAM 標(biāo)準(zhǔn)定義。在后續(xù)的小節(jié)中,我們將對(duì)各個(gè) Command 的時(shí)序進(jìn)行詳細(xì)的介紹。

2. 時(shí)序圖例

后續(xù)的小節(jié)中,我們將通過(guò)下圖類似的時(shí)序圖,來(lái)描述各個(gè) Command 的詳細(xì)時(shí)序。

上圖中,Clock 信號(hào)是由 SDRAM Controller 發(fā)出的,用于和 DRAM 之間的同步。在 DDRx 中,Clock 信號(hào)是一組差分信號(hào),在本文中為了簡(jiǎn)化描述,將只畫出其中的 Positive Clock。

Controller 與 DRAM 之間的交互,都是以 Controller 發(fā)起一個(gè) Command 開(kāi)始的。從 Controller 發(fā)出一個(gè) Command 到 DRAM 接收并解析該 Command 所需要的時(shí)間定義為 tCMD,不同類型的 Command 的 tCMD 都是相同的。

DRAM 在成功解析 Command 后,就會(huì)根據(jù) Command 在內(nèi)部進(jìn)行相應(yīng)的操作。從 Controller 發(fā)出 Command 到 DRAM 執(zhí)行完 Command 所對(duì)應(yīng)的操作所需要的時(shí)間定義為 tParam。不同類型的 Command 的 tParam 可能不一樣,相同 Command 的 tParam 由于 Command 參數(shù)的不同也可能會(huì)不一樣。

+

NOTE:
各種 Command 的定義和內(nèi)部操作細(xì)節(jié)可以參考前面的幾篇文章,本文將主要關(guān)注時(shí)序方面的細(xì)節(jié)。

3. Row Active Command

在進(jìn)行數(shù)據(jù)的讀寫前,Controller 需要先發(fā)送 Row Active Command,打開(kāi) DRAM Memory Array 中的指定的 Row。Row Active Command 的時(shí)序如下圖所示:

Row Active Command 可以分為兩個(gè)階段:

3.1 Row Sense

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ù)的讀寫了。這也意味著,Controller 在發(fā)送 Row Active Command 后,需要等待 tRCD 時(shí)間才能接著發(fā)送 Read 或者 Write Command 進(jìn)行數(shù)據(jù)的讀寫。

3.2 Row Restore

由于 DRAM 的特性,Row 中的數(shù)據(jù)在被讀取到 Sense Amplifiers 后,需要進(jìn)行 Restore 的操作(細(xì)節(jié)請(qǐng)參考DRAM Storage Cell文中的描述)。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. Column Read Command

Controller 發(fā)送 Row Active Command 并等待 tRCD 時(shí)間后,再發(fā)送 Column Read Command 進(jìn)行數(shù)據(jù)讀取。
數(shù)據(jù) Burst Length 為 8 時(shí)的Column Read Command 時(shí)序如下圖所示:

Column Read Command 通過(guò)地址總線 A[0:9] 指明需要讀取的 Column 的起始地址。DRAM 在接收到該 Command 后,會(huì)將數(shù)據(jù)從 Sense Amplifiers 中通過(guò) IO 電路搬運(yùn)到數(shù)據(jù)總線上。

DRAM 從接收到 Command 到第一組數(shù)據(jù)從數(shù)據(jù)總線上輸出的時(shí)間稱為 tCAS(CAS for Column Address Strobe),也稱為 tCL(CL for CAS Latency),這一時(shí)間可以通過(guò) mode register 進(jìn)行配置,通常為 3~5 個(gè)時(shí)鐘周期。

DRAM 在接收到 Column Read Command 的 tCAS 時(shí)間后,會(huì)通過(guò)數(shù)據(jù)總線,將 n 個(gè) Column 的數(shù)據(jù)逐個(gè)發(fā)送給 Controller,其中 n 由 mode register 中的 burst length 決定,通常可以將 burst length 設(shè)定為 2、4 或者 8。

開(kāi)始發(fā)送第一個(gè) Column 數(shù)據(jù),到最后一個(gè) Column 數(shù)據(jù)的時(shí)間定義為 tBurst。

5. Column Write Command

Controller 發(fā)送 Row Active Command 并等待 tRCD 時(shí)間后,再發(fā)送 Column Write Command 進(jìn)行數(shù)據(jù)寫入。數(shù)據(jù) Burst Length 為 8 時(shí)的 Column Write Command 時(shí)序如下圖所示:

Column Write Command 通過(guò)地址總線 A[0:9] 指明需要寫入數(shù)據(jù)的 Column 的起始地址。Controller 在發(fā)送完 Write Command 后,需要等待 tCWD (CWD for Column Write Delay) 時(shí)間后,才可以發(fā)送待寫入的數(shù)據(jù)。tCWD 在一些描述中也稱為 tCWL(CWL for Column Write Latency)

tCWD 在不同類型的 SDRAM 標(biāo)準(zhǔn)有所不同:

Memory Type tCWD
SDRAM 0 cycles
DDR SDRAM 1 cycle
DDR2 SDRAM tCAS - 1 cycle
DDR3 SDRAM programmable

DRAM 接收完數(shù)據(jù)后,需要一定的時(shí)間將數(shù)據(jù)寫入到 DRAM Cells 中,這個(gè)時(shí)間定義為 tWR(WR for Write Recovery)。

6. Precharge Command

在DRAM Storage Cell章節(jié)中,我們了解到,要訪問(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ù)讀寫等方式來(lái)優(yōu)化性能。

NOTE:
在一個(gè) Row Cycle 中,發(fā)送 Row Active Command 打開(kāi)一個(gè) Row 后,Controller 可以發(fā)起多個(gè) Read 或者 Write Command 進(jìn)行一個(gè) Row 內(nèi)的數(shù)據(jù)訪問(wèn)。這種情況下,由于不用進(jìn)行 Row 切換,數(shù)據(jù)訪問(wèn)的性能會(huì)比需要切換 Row 的情況好。
在一些產(chǎn)品上,DRAM Controller 會(huì)利用這一特性,對(duì) CPU 發(fā)起的內(nèi)存訪問(wèn)進(jìn)行調(diào)度,在不影響數(shù)據(jù)有效性的情況下,將同一個(gè) Row 上的數(shù)據(jù)訪問(wèn)匯聚到一直起執(zhí)行,以提供整體訪問(wèn)性能。

7. 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 組合類似,差別在于 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 操作的頻率。

NOTE:
在 DDR3 SDRAM 上,tRFC 最小的值大概為 110ns,tRC 則為 52.5ns。

8. Read Cycle

一個(gè)完整的Burst Length 為 4 的 ReadCycle 如下圖所示:

9. Read Command With Auto Precharge

DRAM 還可以支持 Auto Precharge 機(jī)制。在 Read Command 中的地址線 A10 設(shè)為 1 時(shí),就可以觸發(fā) Auto Precharge。此時(shí) DRAM 會(huì)在完成 Read Command 后的合適的時(shí)機(jī),在內(nèi)部自動(dòng)執(zhí)行 Precharge 操作。

Read Command With Auto Precharge 的時(shí)序如下圖所示:

Auto Precharge 機(jī)制的引入,可以降低 Controller 實(shí)現(xiàn)的復(fù)雜度,進(jìn)而在功耗和性能上帶來(lái)改善。

NOTE:
Write Command 也支持 Auto Precharge 機(jī)制,參考下一小節(jié)的時(shí)序圖。

10. Additive Latency

在 DDR2 中,又引入了 Additive Latency 機(jī)制,即 AL。通過(guò) AL 機(jī)制,Controller 可以在發(fā)送完 Active Command 后緊接著就發(fā)送 Read 或者 Write Command,而后 DRAM 會(huì)在合適的時(shí)機(jī)(延時(shí) tAL 時(shí)間)執(zhí)行 Read 或者 Write Command。時(shí)序如下圖所示:

Additive Latency 機(jī)制同樣是降低了 Controller 實(shí)現(xiàn)的復(fù)雜度,在功耗和性能上帶來(lái)改善。

11.DRAM Timing 設(shè)定

上述的 DRAM Timing 中的一部分參數(shù)可以編程設(shè)定,例如 tCAS、tAL、Burst Length 等。這些參數(shù)通常是在 Host 初始化時(shí),通過(guò) Controller 發(fā)起 Load Mode Register Command 寫入到 DRAM 的 Mode Register 中。DRAM 完成初始化后,就會(huì)按照設(shè)定的參數(shù)運(yùn)行。

NOTE:
初始化和參數(shù)設(shè)定過(guò)程不在本文中詳細(xì)描述,感興趣的同學(xué)可以參考具體 CPU 和 DRAM 芯片的 Datasheet。

12. 參考資料

Memory Systems - Cache Dram and Disk

High Performance Dram System Design Constraints and Considerations

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    422

    瀏覽量

    55133
  • Controller
    +關(guān)注

    關(guān)注

    0

    文章

    397

    瀏覽量

    57066
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    384

    瀏覽量

    37247
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SDRAM同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器的操作說(shuō)明

    SDRAM是做嵌入式系統(tǒng)中,常用是的緩存數(shù)據(jù)的器件?;靖拍钊缦拢ㄗ⒁鈪^(qū)分幾個(gè)主要常見(jiàn)存儲(chǔ)器之間的差異)。
    的頭像 發(fā)表于 11-05 17:35 ?125次閱讀
    <b class='flag-5'>SDRAM</b>同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器的<b class='flag-5'>操作</b>說(shuō)明

    電源時(shí)序器的作用是什么

    ,避免因電源沖擊或電壓不穩(wěn)定而導(dǎo)致的設(shè)備損壞。以下是對(duì)電源時(shí)序器的詳細(xì)解析,包括其定義、作用以及具體應(yīng)用等方面。
    的頭像 發(fā)表于 09-29 16:28 ?754次閱讀

    DDR4時(shí)序參數(shù)介紹

    DDR4(Double Data Rate 4)時(shí)序參數(shù)是描述DDR4內(nèi)存模塊在執(zhí)行讀寫操作時(shí)所需時(shí)間的一組關(guān)鍵參數(shù),它們直接影響到內(nèi)存的性能和穩(wěn)定性。以下是對(duì)DDR4時(shí)序參數(shù)的詳細(xì)
    的頭像 發(fā)表于 09-04 14:18 ?1360次閱讀

    鎖存器的基本輸出時(shí)序

    在深入探討鎖存器的輸出時(shí)序時(shí),我們需要詳細(xì)分析鎖存器在不同控制信號(hào)下的行為表現(xiàn),特別是控制信號(hào)(如使能信號(hào)E)的電平變化如何影響數(shù)據(jù)輸入(D)到輸出(Q)的傳輸過(guò)程。以下是對(duì)鎖存器輸出時(shí)序
    的頭像 發(fā)表于 08-30 10:43 ?371次閱讀

    DDR SDRAM的工作模式和特點(diǎn)

    DDR SDRAM,全稱為Double Data Rate Synchronous Dynamic Random Access Memory,即雙數(shù)據(jù)率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,是現(xiàn)代計(jì)算機(jī)系統(tǒng)中廣泛采用的一種內(nèi)存技術(shù)。以下將從DDR SDRAM的定義、工作模式及特點(diǎn)三個(gè)方
    的頭像 發(fā)表于 08-20 09:44 ?590次閱讀

    深度解析FPGA中的時(shí)序約束

    建立時(shí)間和保持時(shí)間是FPGA時(shí)序約束中兩個(gè)最基本的概念,同樣在芯片電路時(shí)序分析中也存在。
    的頭像 發(fā)表于 08-06 11:40 ?520次閱讀
    深度<b class='flag-5'>解析</b>FPGA中的<b class='flag-5'>時(shí)序</b>約束

    DRAM內(nèi)存操作時(shí)序解析

    在數(shù)字時(shí)代,DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)扮演著至關(guān)重要的角色。它們存儲(chǔ)著我們的數(shù)據(jù),也承載著我們的記憶。然而,要正確地操作DRAM并確保其高效運(yùn)行,了解其背后的時(shí)序操作機(jī)制是必不可少的。
    的頭像 發(fā)表于 07-26 11:39 ?587次閱讀
    DRAM內(nèi)存<b class='flag-5'>操作</b>與<b class='flag-5'>時(shí)序</b><b class='flag-5'>解析</b>

    FPGA工程的時(shí)序約束實(shí)踐案例

    詳細(xì)的原時(shí)鐘時(shí)序、數(shù)據(jù)路徑時(shí)序、目標(biāo)時(shí)鐘時(shí)序的各延遲數(shù)據(jù)如下圖所示。值得注意的是數(shù)據(jù)路徑信息,其中包括Tco延遲和布線延遲,各級(jí)累加之后得到總的延遲時(shí)間。
    發(fā)表于 04-29 10:39 ?631次閱讀
    FPGA工程的<b class='flag-5'>時(shí)序</b>約束實(shí)踐案例

    DDR SDRAMSDRAM功能及結(jié)構(gòu)差異

    在計(jì)算機(jī)運(yùn)算速度發(fā)展的過(guò)程中,需要提高內(nèi)存的讀寫速率,只能通過(guò)提高時(shí)鐘頻率來(lái)提高SDRAM的讀寫速率。由于溫度等因素的影響,SDRAM的內(nèi)核時(shí)鐘頻率受限,無(wú)法進(jìn)一步提升。
    發(fā)表于 04-06 09:26 ?1586次閱讀
    DDR <b class='flag-5'>SDRAM</b>和<b class='flag-5'>SDRAM</b>功能及結(jié)構(gòu)差異

    STM32H7 FMC操作SDRAM讀比寫慢很多是為什么?

    使用STM32H723ZG通過(guò)FMC操作外部SDRAM W9825G6KH時(shí), 數(shù)據(jù)寬度16bit, 總線頻率108M, FMC操作時(shí)序如圖 SD
    發(fā)表于 03-11 06:40

    時(shí)序電路的分類 時(shí)序電路的基本單元電路有哪些

    時(shí)序電路是一種能夠按照特定的順序進(jìn)行操作的電路。它以時(shí)鐘信號(hào)為基準(zhǔn),根據(jù)輸入信號(hào)的狀態(tài)和過(guò)去的狀態(tài)來(lái)確定輸出信號(hào)的狀態(tài)。時(shí)序電路廣泛應(yīng)用于計(jì)算機(jī)、通信系統(tǒng)、數(shù)字信號(hào)處理等領(lǐng)域。根據(jù)不同的分類標(biāo)準(zhǔn)
    的頭像 發(fā)表于 02-06 11:25 ?2276次閱讀

    時(shí)序電路包括兩種類型 時(shí)序電路必然存在狀態(tài)循環(huán)對(duì)不對(duì)

    時(shí)序電路是由觸發(fā)器等時(shí)序元件組成的數(shù)字電路,用于處理時(shí)序信號(hào),實(shí)現(xiàn)時(shí)序邏輯功能。根據(jù)時(shí)序元件的類型和組合方式的不同,
    的頭像 發(fā)表于 02-06 11:22 ?1179次閱讀

    smt32h750擴(kuò)展sdram

    STM32H750是STMicroelectronics推出的一款高性能微控制器,其特點(diǎn)之一是可擴(kuò)展的SDRAM(同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)接口。本文將詳細(xì)介紹STM32H750擴(kuò)展SDRAM相關(guān)
    的頭像 發(fā)表于 01-04 14:09 ?1270次閱讀

    嵌入式軟件時(shí)序設(shè)計(jì)相關(guān)的問(wèn)題

    軟件時(shí)序設(shè)計(jì)相關(guān)的問(wèn)題時(shí)序問(wèn)題是最容易出問(wèn)題的地方,“時(shí)”代表時(shí)間順序和時(shí)效性,一旦執(zhí)行順序錯(cuò)亂,或執(zhí)行過(guò)慢失去時(shí)效,就會(huì)導(dǎo)致錯(cuò)誤。 消息的串行化處理 每個(gè)任務(wù)、線程,只能按順序的處理串行
    的頭像 發(fā)表于 12-07 16:31 ?496次閱讀

    淺談DDR SDRAM的Timing具體時(shí)序參數(shù)

    通過(guò) SDRAM 的 7 個(gè)模式寄存器,可以對(duì) SDRAM 的特性,功能以及設(shè)置進(jìn)行編程。這些寄存器本身通過(guò) MRS 命令編輯。模式寄存器一般在初始化期間進(jìn)行設(shè)定,但也可以在后續(xù)正常工作期間進(jìn)行修改。
    發(fā)表于 12-02 13:44 ?4103次閱讀
    淺談DDR <b class='flag-5'>SDRAM</b>的Timing具體<b class='flag-5'>時(shí)序</b>參數(shù)