在 DDR 標準中有很多很多時序參數(timing parameter),但當你真的和 DDR4 打交道時,會發現經常訪問或者讀到的參數也就那么幾個,它們相比剩下的參數要常用許多。所以,本文將基于具體的DDR命令,討論那些經常用到的參數。
這些命令真的很容易忘記,一段時間不怎么用到后,記憶就會馬上模糊。本系列的另一篇文章:Timing Parameter Cheat Sheet,可以用作具體時序參數的快速查找手冊。
Note:本文所用到的圖片都來自于 JEDEC DDR4 標準,或者美光的產品手冊,在參考文獻部分給出了相應的鏈接。
激活命令 ACTIVATE Timing
激活命令用于在訪問之前打開某個 bank 中的某個 row。在 Understanding the Basics一文中我們了解到每個 bank 有僅有一組 sense amps,所以每個 bank 中可以保持一個 row 處于打開狀態。與激活命令相關的常用時序參數共有 3 個,tRRD_S,tRRD_L?以及?tFAW。
1、tRRD_S
row-to-row delay--short
當向多個屬于不同 bank group 的 bank 發送 ACT 命令時,ACT 命令之間需要滿足?tRRD_S?長度的間隔
2、tRRD_L
row-to-row delay--long
與?tRRD_S?的不同點在于,當向多個屬于同一個?bank group 的 bank 發送 ACT 命令時,ACT 命令之間需要滿足?tRRD_L?長度的間隔
圖-1?tRRD?時序圖
3、tFAW
Four Activate Window
限制容納至多四個 ACT 命令的窗口,在這段時間內最多只能發出四個 ACT 命令。
當連續發送 ACT 命令時,ACT 命令之間一方面需要滿足?tRRD_S/L?,另一方面,在發送四個 ACT 命令后,需要等待?tFAW?窗口結束,才能發送第五個 ACT 命令。
圖-2?tFAW?時序圖
刷新命令 REFRESH Timing
為了確保存儲在 SDRAM 中的數據不會丟失,存儲控制器需要平均間隔?tREFI?,發送一次 REFRESH 命令。但是在進行刷新之前,SDRAM 所有的 bank 需要進行 PRECHARGE 預充電,并空閑一段時間,這個時長稱為?tRP(min) 。在發出 REFRESH 命令后,必須經過?tRFC(min) 的延遲,才能發出下一個命令( DES 命令除外)。
值得注意的是,這里的?tREFI?是刷新命令之間的“平均”間隔,這是因為你可以在周期性發出的刷新命令中,減少一部分,但在后續補上(譯注:只需要平均間隔滿足?tREFI?即可)。延后刷新功能是 DDR4 標準新增的,用于解決高密度刷新帶來的較長命令鎖定期影響性能的問題。可延后發出的刷新命令數量取決于當前的刷新模式(1x,2x 和 4x),在模式寄存器 MR2 中設置。
1、tREFI
DRAM 所需的刷新命令的平均間隔
2、tRFC
刷新命令與其他命令(除 DES 命令)之間的延遲
3、tRP
Precharge time
所有 bank 需要在刷新命令前預充電,并保持?tRP?的空閑時間
圖-3 刷新時序圖
圖-4 延后刷新命令
讀命令 READ Timing
讀命令相關的時序參數可以分為三類
總體讀時序?Read Timing
時鐘-數據有效信號(Strobe)間的時序關系?Clock to Data Strobe relationship
數據-數據有效信號間的時序關系?Data Strobe to Data relationship
1、Read Timing
CL?(CAS latency)
Column-Address-Strobe
當列地址在地址信號上就緒時,CL 是內部讀命令與讀數據第一個比特之間的延遲時鐘周期。
CL 大小定義在模式寄存器 MR0 中。SDRAM 標準定義了不同頻率下需要設定的 CL 值大小。
AL?(Additive Latency)
AL 延遲允許緊跟激活命令后發出讀命令,器件內部將讀命令延遲 AL 個時鐘周期后執行。
該項特性用于保持器件內部的高帶寬與高速率
RL?(Read Latency)
總的讀延遲,RL = AL + CL
tCCD_S/L
讀取不同 bank 之間的延遲,和?tRRD_S/L?類似,訪問不同 bank group 的bank相比屬于同一bank group 的延遲要小一點,為?tRRD_S?(short)
圖-5 不同 bank group 間的連續讀命令。上圖中 AL=0,CL=11,所以 RL=11。值得注意的是兩次讀數據之間沒有間隔,后一次的數據緊接著前一次數據。由于兩次讀命令的 bank group 不同,所以讀命令間的延遲是 tCCD_S
圖-6 不同 bank group 間的非連續讀命令。
圖-7 tCCD_S/L 的不同
2、Clock to Data Strobe relationship?(CK & DQS)
tDQSCK(MIN/MAX)
數據有效信號 strobe?上升沿相對于時鐘信號 CK_t(上升沿)、CK_c(下降沿) 所允許的延遲范圍
tDQSCK
數據有效信號 strobe?上升沿相對于時鐘信號 CK_t(上升沿)、CK_c(下降沿) 的實際延遲
tQSH
數據有效信號高電平脈沖脈寬
tQSL
數據有效信號低電平脈沖脈寬
圖-8 CK-DQS 間相位關系
3、Data Strobe to Data relationship (DQS & DQ)
tDQSQ
描述 DQ 上升沿相對于 DQS 邊沿的最晚時間,(譯注,晚于該時刻將影響本次數據采樣),在下方的圖中可以看到,?tDQSQ?指的是 DQS 上升沿至有效 DQ 信號左邊沿的時間
tQH
描述 DQ 上升沿相對于 DQS 邊沿的最早時間,(譯注,早于該時刻將影響前次數據采樣),在下方的圖中可以看到,tQH?指的是 DQS 上升沿至有效 DQ 信號的右邊沿的時間
圖-8 續 DQS-DQ 間相位關系
寫命令 Write Timing
寫命令時序大致上與讀命令相同...
1、總體寫時序 Write timing
CWL?(CAS Write latency)
Column-Address-Strobe Write
寫命令與第一個送出第一個寫數據之間的延遲
CWL 大小在模式寄存器 MR2 中定義
AL?(Additive Latency)
AL 延遲允許緊跟激活命令后發出寫命令,器件內部將寫命令延遲 AL 個時鐘周期后執行。
該項特性用于保持器件內部的高帶寬與高速率
WL?(Read Latency)
總的寫延遲,WL = AL + CWL
tCCD_S/L
寫入不同 bank 之間的延遲,和?tRRD_S/L?類似,訪問不同 bank group 的 bank 相比屬于同一 bank group 的延遲要小一點,為?tRRD_S?(short)
2、時鐘-數據有效信號(Strobe)間的時序關系?Clock to Data Strobe relationship
tDQSS(MIN/MAX)
數據有效信號 strobe?上升沿相對于時鐘信號 CK_t(上升沿)、CK_c(下降沿) 所允許的延遲范圍
tDQSS
數據有效信號 strobe?上升沿相對于時鐘信號 CK_t(上升沿)、CK_c(下降沿) 的實際延遲
tDQSH
數據有效信號高電平脈沖脈寬
tDQSL
數據有效信號低電平脈沖脈寬
tWPST
Post-write 最后一個數據與有效信號重新置高之間的周期,此時總線并不驅動數據
tWPRE
Pre-write 數據有效信號(strobe)從無效(non-valid)到有效(valid)之間的周期數
圖-9 寫時序圖
模式寄存器時序 Mode Register Timing
通過 SDRAM 的 7 個模式寄存器,可以對 SDRAM 的特性,功能以及設置進行編程。這些寄存器本身通過 MRS 命令編輯。模式寄存器一般在初始化期間進行設定,但也可以在后續正常工作期間進行修改。模式寄存器設置有下列兩個時序參數:
1、tMRD
Mode Register Set command cycle time
MRS 命令周期數,指完成寄存器寫操作所需要的的周期數,也是兩個 MRS 命令之間最小的間隔
圖-10 tMRD timing
2、tMOD
Mode Register Set command update time
MRS 命令與其他命令(除 DES)之間的最小間隔
圖-10 tMOD timing
審核編輯:黃飛
?
評論
查看更多