衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SDRAM 的相關操作詳細時序解析

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

DRAM Device章節中,我們簡單介紹了 SDRAMActive、Read、Write 等的操作,在本中,我們將詳細的介紹各個操作的時序。

1. Overview

如上圖所示,SDRAM 的相關操作在內部大概可以分為以下的幾個階段:

Command transport and decode

在這個階段,Host 端會通過 Command Bus 和 Address Bus 將具體的 Command 以及相應參數傳遞給 SDRAM。SDRAM 接收并解析 Command,接著驅動內部模塊進行相應的操作。

In bank data movement

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

In device data movement

這個階段中,數據將通過 IO 電路緩存到 Read Latchs 或者通過 IO 電路和 Write Drivers 更新到 Sense Amplifiers。

System data transport

在這個階段,進行讀數據操作時,SDRAM 會將數據輸出到數據總線上,進行寫數據操作時,則是 Host 端的 Controller 將數據輸出到總線上。

在上述的四個階段中,每個階段都會有一定的耗時,例如數據從 DRAM Cells 搬運到 Read Latchs 的操作需要一定的時間,因此在一個具體的操作需要按照一定時序進行。

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

此外,某些操作會消耗很大的電流,為了滿足 SDRAM 設計上的功耗指標,可能會限制某一些操作的執行頻率。

基于上面的幾點限制,SDRAM Controller 在發出 Command 時,需要遵守一定的時序和規則,這些時序和規則由相應的 SDRAM 標準定義。在后續的小節中,我們將對各個 Command 的時序進行詳細的介紹。

2. 時序圖例

后續的小節中,我們將通過下圖類似的時序圖,來描述各個 Command 的詳細時序。

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

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

DRAM 在成功解析 Command 后,就會根據 Command 在內部進行相應的操作。從 Controller 發出 Command 到 DRAM 執行完 Command 所對應的操作所需要的時間定義為 tParam。不同類型的 Command 的 tParam 可能不一樣,相同 Command 的 tParam 由于 Command 參數的不同也可能會不一樣。

+

NOTE:
各種 Command 的定義和內部操作細節可以參考前面的幾篇文章,本文將主要關注時序方面的細節。

3. Row Active Command

在進行數據的讀寫前,Controller 需要先發送 Row Active Command,打開 DRAM Memory Array 中的指定的 Row。Row Active Command 的時序如下圖所示:

Row Active Command 可以分為兩個階段:

3.1 Row Sense

Row Active Command 通過地址總線指明需要打開某一個 Bank 的某一個 Row。

DRAM 在接收到該 Command 后,會打開該 Row 的 Wordline,將其存儲的數據讀取到 Sense Amplifiers 中,這一時間定義為 tRCD(RCD for Row Address to Column Address Delay)。

DRAM 在完成 Row Sense 階段后,Controller 就可以發送 Read 或 Write Command 進行數據的讀寫了。這也意味著,Controller 在發送 Row Active Command 后,需要等待 tRCD 時間才能接著發送 Read 或者 Write Command 進行數據的讀寫。

3.2 Row Restore

由于 DRAM 的特性,Row 中的數據在被讀取到 Sense Amplifiers 后,需要進行 Restore 的操作(細節請參考DRAM Storage Cell文中的描述)。Restore 操作可以和數據的讀取同時進行,即在這個階段,Controller 可能發送了 Read Command 進行數據讀取。

DRAM 接收到 Row Active Command 到完成 Row Restore 操作所需要的時間定義為 tRAS(RAS for Row Address Strobe)。
Controller 在發出一個 Row Active Command 后,必須要等待 tRAS 時間后,才可以發起另一次的 Precharge 和 Row Access。

4. Column Read Command

Controller 發送 Row Active Command 并等待 tRCD 時間后,再發送 Column Read Command 進行數據讀取。
數據 Burst Length 為 8 時的Column Read Command 時序如下圖所示:

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

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

DRAM 在接收到 Column Read Command 的 tCAS 時間后,會通過數據總線,將 n 個 Column 的數據逐個發送給 Controller,其中 n 由 mode register 中的 burst length 決定,通常可以將 burst length 設定為 2、4 或者 8。

開始發送第一個 Column 數據,到最后一個 Column 數據的時間定義為 tBurst。

5. Column Write Command

Controller 發送 Row Active Command 并等待 tRCD 時間后,再發送 Column Write Command 進行數據寫入。數據 Burst Length 為 8 時的 Column Write Command 時序如下圖所示:

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

tCWD 在不同類型的 SDRAM 標準有所不同:

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

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

6. Precharge Command

在DRAM Storage Cell章節中,我們了解到,要訪問 DRAM Cell 中的數據,需要先進行 Precharge 操作。相應地,在 Controller 發送 Row Active Command 訪問一個具體的 Row 前, Controller 需要發送 Precharge Command 對該 Row 所在的 Bank 進行 Precharge 操作。

下面的時序圖描述了 Controller 訪問一個 Row 后,執行 Precharge,然后再訪問另一個 Row 的流程。

DRAM 執行 Precharge Command 所需要的時間定義為 tRP(RP for Row Precharge)。Controller 在發送一個 Row Active Command 后,需要等待 tRC(RC for Row Cycle)時間后,才能發送第二個 Row Active Command 進行另一個 Row 的訪問。

從時序圖上我們可以看到,tRC = tRAS + tRP,tRC 時間決定了訪問 DRAM 不同 Row 的性能。在實際的產品中,通常會通過降低 tRC 耗時或者在一個 Row Cycle 執行盡可能多數據讀寫等方式來優化性能。

NOTE:
在一個 Row Cycle 中,發送 Row Active Command 打開一個 Row 后,Controller 可以發起多個 Read 或者 Write Command 進行一個 Row 內的數據訪問。這種情況下,由于不用進行 Row 切換,數據訪問的性能會比需要切換 Row 的情況好。
在一些產品上,DRAM Controller 會利用這一特性,對 CPU 發起的內存訪問進行調度,在不影響數據有效性的情況下,將同一個 Row 上的數據訪問匯聚到一直起執行,以提供整體訪問性能。

7. Row Refresh Command

一般情況下,為了保證 DRAM 數據的有效性,Controller 每隔 tREFI(REFI for Refresh Interval) 時間就需要發送一個 Row Refresh Command 給 DRAM,進行 Row 刷新操作。DRAM 在接收到 Row Refresh Command 后,會根據內部 Refresh Counter 的值,對所有 Bank 的一個或者多個 Row 進行刷新操作。

DRAM 刷新的操作與 Active + Precharge Command 組合類似,差別在于 Refresh Command 是對 DRAM 所有 Bank 同時進行操作的。下圖為 DRAM Row Refresh Command 的時序圖:

DRAM 完成刷新操作所需的時間定義為 tRFC(RFC for Refresh Cycle)。

tRFC 包含兩個部分的時間,一是完成刷新操作所需要的時間,由于 DRAM Refresh 是同時對所有 Bank 進行的,刷新操作會比單個 Row 的 Active + Precharge 操作需要更長的時間;tRFC 的另一部分時間則是為了降低平均功耗而引入的延時,DRAM Refresh 操作所消耗的電流會比單個 Row 的 Active + Precharge 操作要大的多,tRFC 中引入額外的時延可以限制 Refresh 操作的頻率。

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

8. Read Cycle

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

9. Read Command With Auto Precharge

DRAM 還可以支持 Auto Precharge 機制。在 Read Command 中的地址線 A10 設為 1 時,就可以觸發 Auto Precharge。此時 DRAM 會在完成 Read Command 后的合適的時機,在內部自動執行 Precharge 操作。

Read Command With Auto Precharge 的時序如下圖所示:

Auto Precharge 機制的引入,可以降低 Controller 實現的復雜度,進而在功耗和性能上帶來改善。

NOTE:
Write Command 也支持 Auto Precharge 機制,參考下一小節的時序圖。

10. Additive Latency

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

Additive Latency 機制同樣是降低了 Controller 實現的復雜度,在功耗和性能上帶來改善。

11.DRAM Timing 設定

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

NOTE:
初始化和參數設定過程不在本文中詳細描述,感興趣的同學可以參考具體 CPU 和 DRAM 芯片的 Datasheet。

12. 參考資料

Memory Systems - Cache Dram and Disk

High Performance Dram System Design Constraints and Considerations

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SDRAM
    +關注

    關注

    7

    文章

    430

    瀏覽量

    55371
  • Controller
    +關注

    關注

    0

    文章

    398

    瀏覽量

    57140
  • 時序
    +關注

    關注

    5

    文章

    392

    瀏覽量

    37430
收藏 人收藏

    評論

    相關推薦

    硅谷云平臺詳細解析

     硅谷云平臺作為硅谷地區領先的云計算服務提供商,在數字化時代發揮著舉足輕重的作用。主機推薦小編為您整理發布硅谷云平臺的詳細解析
    的頭像 發表于 01-24 09:24 ?86次閱讀

    多c段站群服務器詳細解析

    多C段站群服務器是一種特殊配置的服務器,主要用于多站點管理和分布式網絡操作。主機推薦小編為您整理發布多C段站群服務器的詳細解析
    的頭像 發表于 01-23 09:38 ?57次閱讀

    SDRAM同步動態隨機存儲器的操作說明

    SDRAM是做嵌入式系統中,常用是的緩存數據的器件。基本概念如下(注意區分幾個主要常見存儲器之間的差異)。
    的頭像 發表于 11-05 17:35 ?512次閱讀
    <b class='flag-5'>SDRAM</b>同步動態隨機存儲器的<b class='flag-5'>操作</b>說明

    電源時序器的作用是什么

    ,避免因電源沖擊或電壓不穩定而導致的設備損壞。以下是對電源時序器的詳細解析,包括其定義、作用以及具體應用等方面。
    的頭像 發表于 09-29 16:28 ?2353次閱讀

    自動售貨機MDB協議中文解析(七)MDB-RS232控制紙幣器的詳細流程和解析

    自動售貨機MDB協議中文解析(七)MDB-RS232控制紙幣器的詳細流程和解析
    的頭像 發表于 09-09 10:04 ?710次閱讀

    DDR4時序參數介紹

    DDR4(Double Data Rate 4)時序參數是描述DDR4內存模塊在執行讀寫操作時所需時間的一組關鍵參數,它們直接影響到內存的性能和穩定性。以下是對DDR4時序參數的詳細
    的頭像 發表于 09-04 14:18 ?3543次閱讀

    DDR4 SDRAM控制器的主要特點

    設計和功能對于提升系統性能、降低功耗以及增強數據可靠性起著至關重要的作用。以下是對DDR4 SDRAM控制器主要特點的詳細分析,旨在覆蓋其關鍵功能、性能提升、技術優化以及應用優勢等方面。
    的頭像 發表于 09-04 12:55 ?771次閱讀

    鎖存器的基本輸出時序

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

    DDR SDRAM的工作模式和特點

    DDR SDRAM,全稱為Double Data Rate Synchronous Dynamic Random Access Memory,即雙數據率同步動態隨機存取存儲器,是現代計算機系統中廣泛采用的一種內存技術。以下將從DDR SDRAM的定義、工作模式及特點三個方
    的頭像 發表于 08-20 09:44 ?1113次閱讀

    深度解析FPGA中的時序約束

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

    SDRAM的特點與應用

    同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,簡稱SDRAM)是一種基于同步時鐘的DRAM。
    的頭像 發表于 07-29 16:56 ?2455次閱讀

    DRAM內存操作時序解析

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

    FPGA工程的時序約束實踐案例

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

    DDR SDRAMSDRAM功能及結構差異

    在計算機運算速度發展的過程中,需要提高內存的讀寫速率,只能通過提高時鐘頻率來提高SDRAM的讀寫速率。由于溫度等因素的影響,SDRAM的內核時鐘頻率受限,無法進一步提升。
    發表于 04-06 09:26 ?1985次閱讀
    DDR <b class='flag-5'>SDRAM</b>和<b class='flag-5'>SDRAM</b>功能及結構差異

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

    使用STM32H723ZG通過FMC操作外部SDRAM W9825G6KH時, 數據寬度16bit, 總線頻率108M, FMC操作時序如圖 SD
    發表于 03-11 06:40
    百家乐官网游戏全讯网2| 百家乐官网包赢技巧| 百家乐官网庄闲和游戏机| 克拉克百家乐官网的玩法技巧和规则 | 南京百家乐官网菜籽油| 五张百家乐官网的玩法技巧和规则 | 赌百家乐官网的玩法技巧和规则| 百家乐投注技巧| 大发88846| 信誉好百家乐官网平台| 百家乐高手看百家乐| 老人头百家乐官网的玩法技巧和规则 | 茅台百家乐官网的玩法技巧和规则| 百家乐的分析| 博E百娱乐城| 澳门百家乐官网单注下| 水果老虎机破解| 百家乐官网翻天粤qvod| 百家乐筹码币方形| 新皇冠| 下载百家乐官网的玩法技巧和规则 | 豪杰百家乐现金网| 大发888娱乐场开户注册| 豪华百家乐官网桌子| 澳门百家乐如何算| 百家乐官网免费是玩| 百家乐统计概率| 亿酷棋牌室| 大众百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城信誉怎么样| 澳门百家乐官网必胜看路| 合乐8百家乐娱乐城| 阜平县| 百家乐棋牌辅助| 百家乐官网视频下栽| 在线百家乐纸牌游戏| 舒兰市| 赌博百家乐趋势把握| 爱拼百家乐官网现金网| 百家乐有无技巧| 澳门百家乐官网路单怎么看|