來源:漫談大千世界
DDR training出現(xiàn)的原因主要包括以下幾點:
信號完整性(Signal Integrity, SI)問題:隨著DDR內(nèi)存頻率的提高,信號完整性問題變得更加突出。高速信號在傳輸過程中會受到各種因素的影響,如反射、串擾、噪聲干擾等,這些問題會導致信號失真,影響數(shù)據(jù)的正確傳輸。DDR training通過自適應的機制來補償這些信號完整性問題,確保數(shù)據(jù)鏈路的可靠性。
時鐘和數(shù)據(jù)信號的對齊:在高速數(shù)據(jù)傳輸中,時鐘信號和數(shù)據(jù)信號需要精確對齊以保證數(shù)據(jù)的正確讀取和寫入。由于物理布局、走線長度差異等因素,時鐘和數(shù)據(jù)信號可能會有微小的偏差,DDR training通過調(diào)整時序來對齊這些信號,以確保數(shù)據(jù)傳輸?shù)臏蚀_性。
適應不同的物理層設(shè)計:不同的主板設(shè)計、內(nèi)存條設(shè)計以及物理層的實現(xiàn)可能會引入不同的信號傳輸特性。DDR training能夠適應這些差異,通過調(diào)整參數(shù)來優(yōu)化內(nèi)存系統(tǒng)的性能。
提高數(shù)據(jù)傳輸效率:DDR內(nèi)存通過雙倍數(shù)據(jù)速率的傳輸方式,結(jié)合多通道傳輸和數(shù)據(jù)校驗等技術(shù),提高了數(shù)據(jù)傳輸效率和可靠性。DDR training是實現(xiàn)這些技術(shù)的關(guān)鍵步驟之一。

綜上所述,從主機的角度來看,與 DIMM 上不同的顆粒的距離是不同的。而從 DIMM 的角度來看,時鐘(黑色)與數(shù)據(jù)(綠色)之間的相對延遲對于不同顆粒是不同的。訓練的目的即消除這兩個不同對數(shù)據(jù)讀寫的影響,確保高速內(nèi)存系統(tǒng)在各種條件下都能穩(wěn)定、可靠運行的重要技術(shù)手段。
1. DDR training sequence
為了保證穩(wěn)定且可靠的內(nèi)存訪問,寫入和讀取的眼圖(eye diagram)的寬度是一個關(guān)鍵因素。眼圖的位置取決于兩個主要參數(shù):LCDL(Load Command Delay Line,負載命令延遲線)的值以及VREF(參考電壓)的設(shè)置。
寫入和讀取數(shù)據(jù)眼圖訓練用于通過改變LCDL的值(結(jié)合初始計算和編程的VREF設(shè)置)來找出最佳的眼圖位置。
VREF訓練用于確定一個VREF值的范圍,在該范圍內(nèi)內(nèi)存接口(寫入和讀取)是穩(wěn)定的,并進一步確定最佳的寫入和讀取眼圖位置。
1. CS Training: 目的是對齊CS_N和CK;在發(fā)送cmd后進入CS Training Mode,通過Delay CS_N timing以達到和CK對齊
2. CA Training: 目的是對齊CA和CK,在發(fā)送cmd后進入CA Training Mode,通過Delay CA timing以達到和CK對齊
3. ZQ Calibration:每個DRAM都包含一個稱為DQ校準控制塊的特殊模塊和一個ZQ引腳,該引腳連接有一個外部精密(±1%)240Ω電阻。這個外部精密電阻是“參考”電阻,它在所有溫度下都保持在240Ω。在初始化期間發(fā)出ZQCL命令時,DQ校準控制塊被激活,并產(chǎn)生一個調(diào)諧值。然后,該值被復制到每個DQ的內(nèi)部電路中。
4. DLL(Delay Lock Loop): 目的是在Read時,對齊DQS和CK.
DDR SDRAM對時鐘的精確性要求很高,因為它有兩個時鐘:外部的總線時鐘和內(nèi)部的工作時鐘。理論上,這兩個時鐘應該是同步的,但由于溫度、電壓波動等原因,它們很難保持同步。DLL的任務(wù)就是根據(jù)外部時鐘動態(tài)修正內(nèi)部時鐘的延遲,以實現(xiàn)兩者的同步. DLL功能在DDR SDRAM中可以被禁止,但僅限于除錯與評估操作,正常工作狀態(tài)是自動有效的
5. MPR mode: 啟用此模式后,發(fā)送到DRAM的讀取和寫入操作會被轉(zhuǎn)移到多用途寄存器,而不是內(nèi)存bank,可以避免cell問題導致讀取數(shù)據(jù)錯誤,確保后續(xù)的讀寫可以正常進行
6. Read preamble Training: Controller方用于對齊DQS 和CK
7. Read Training: Controller方用于找到最佳的DQS sample DQ 的窗口。Read Training 的目的是訓練控制器的讀采樣電路,確保在讀取數(shù)據(jù)時,采樣操作發(fā)生在數(shù)據(jù)眼圖的中心位置,以獲得最穩(wěn)定的采樣結(jié)果。
8. Write Leveling: 對齊Write時的DQS和CK
9. VrefDQ training: VrefDQ校準的目的是為了確保控制器能夠正確地識別和解釋從DRAM接收到的信號。在VrefDQ校準階段,內(nèi)存控制器需要通過嘗試不同的VrefDQ值來設(shè)置一個能夠正確區(qū)分高低電平的值。這個校準過程對于讀寫操作都是至關(guān)重要的,因為它直接影響到數(shù)據(jù)的完整性和準確性。
DRAM VREF訓練:此訓練通過掃描內(nèi)存內(nèi)部的DRAM VrefDQ值來優(yōu)化寫入眼圖。
Host VREF訓練:此訓練通過掃描PHY I/O的VREF設(shè)置來優(yōu)化讀取眼圖
上述的Training中,僅僅ZQ和DLL是control發(fā)生CMD后,DDR自己完成的;其它的都是在control發(fā)起后,control完成。
2. CS Training Mode (CSTM)
CS訓練模式是一種促進CS_n信號采樣序列環(huán)回的方法。在這種模式下,CK(時鐘信號)在運行,而CA(命令/地址)信號保持在NOP(無操作)命令編碼狀態(tài)。一旦啟用了這個模式并且選擇了DRAM設(shè)備來主動采樣和驅(qū)動反饋,DRAM將在CK的上升沿時對CS_n信號進行采樣。每組四個CK上升沿的采樣將被包含在邏輯計算中,以確定發(fā)送回主機的CSTM輸出結(jié)果,通過DQ總線發(fā)送回主機。一旦開始采樣,DRAM必須保持每4個tCK的連續(xù)采樣組。當CS_n Sample[0]和Sample[2]的結(jié)果為邏輯0,而CS_n Sample[1]和Sample[3]的結(jié)果為邏輯1時,DRAM將在所有的DQ信號上驅(qū)動0。沒有要求驅(qū)動任何時序信號,輸出信號可以每4個tCK轉(zhuǎn)換一次。
3. CA Training Mode (CSTM)
目的:CA training旨在確保CA信號與CK信號正確對齊,以實現(xiàn)正確的時序。
機制:在CA training模式下,CK正常運行,CS_n在CK采樣CA信號時進行限定。通過回傳方程,CA信號的邏輯組合被回傳到主機存儲控制器,以異步方式通過DQ信號發(fā)送。這樣,主機可以優(yōu)化CS_n、CK和CA[13:0]信號之間的時序,實現(xiàn)正確的對齊
4. Write Leveling
Write Leveling(寫均衡)是DDR內(nèi)存技術(shù)中用于確保數(shù)據(jù)在正確的時鐘周期內(nèi)被寫入內(nèi)存的一種訓練過程。以下是Write Leveling的一些關(guān)鍵點:
目的:Write Leveling的目的是調(diào)整DQS(數(shù)據(jù)請求信號)與CK(時鐘信號)之間的時序關(guān)系,以確保數(shù)據(jù)在內(nèi)存中可靠地寫入。由于布線差異等因素,DRAM使用的strobe信號通常不會與它接收的輸入時鐘對齊,因此需要通過Write Leveling來調(diào)整這種相位差。

實現(xiàn)原理:Memory Controller(MC)通過調(diào)節(jié)發(fā)出DQS-DQS#的時間,來讓各個內(nèi)存顆粒的DQS-DQS#和CK-CK#對齊,起到補償skew的作用。MC不斷地調(diào)整DQS-DQS#信號相對于CK-CK#的延遲,顆粒端在每個DQS-DQS#上升沿采樣CK-CK#信號。如果采樣值為低,則將所有DQ[n]保持為低來告知MC,tDQSS相位關(guān)系還未滿足;如果在某個DQS-DQS#上升沿采樣到CK-CK#電平發(fā)生跳變,則認為此時tDQSS已滿足,將所有DQ[n]保持為高(異步反饋)來告知MC,tDQSS相位關(guān)系已滿足,表征寫均衡成功。
操作過程:在Write Leveling過程中,控制器不斷將選通信號發(fā)送到特定的DRAM。當DRAM接收到選通信號時,它將對時鐘信號進行采樣,并將其在數(shù)據(jù)總線上的值返回給控制器??刂破鲗镈QS信號引入越來越多的延遲,直到觀察到數(shù)據(jù)總線上從零到一的轉(zhuǎn)變?yōu)橹?。此時,控制器將鎖定此校準延遲設(shè)置,并將其用于以后的寫操作。
Write Leveling會針對每個DRAM芯片進行CK與DQS信號間的相位調(diào)整,采用一種多次試錯,尋找最優(yōu)值的方法使DRAM接收到的時鐘信號與寫數(shù)據(jù)同步。

名詞釋義:
(1) DQSS:DQS-DQS# rising edge to CK-CK# rising edge,spec要求為+/-0.25 tCK,tCK為CK時鐘周期
(2) tDQSH:DQS高電平脈寬
(3) tDQSL:DQS低電平脈寬
(4) tWLMRD:在 MC 配置 DRAM MR,使之進入 write leveling 模式后,經(jīng)過 tWLMRD 后,MC 開始發(fā)出第一個用于 write leveling 的 DQS 脈沖。
(5) tWLO:DRAM 在 DQS 采樣 CK 值后,通過 DQ 返回采樣值,這里需要注意的是,返回采樣值是一個異步的操作。DRAM 會在采樣后的 tWLO 時刻返回采樣值。
(6) tWLOE:協(xié)議規(guī)定,DQ 的所有比特都會返回一個相同的值,但這些比特的跳變時間之間有一個偏差,這個偏差的最大值是 tWLOE。
Write Leveling是確保高速內(nèi)存接口中數(shù)據(jù)正確寫入的關(guān)鍵步驟,它通過動態(tài)調(diào)整DQS和CK之間的時序來補償可能的偏差,從而提高內(nèi)存性能和穩(wěn)定性。
5. Read Training
Read Training 的目的是訓練控制器的讀采樣電路,確保在讀取數(shù)據(jù)時,采樣操作發(fā)生在數(shù)據(jù)眼圖的中心位置,以獲得最穩(wěn)定的采樣結(jié)果。以下是實現(xiàn)這一目的的具體步驟和機制:
啟用MPR訪問模式:DDR控制器通過設(shè)置模式寄存器MR3的第2位(MR3[2])為1,啟用對多用途寄存器(MPR)的訪問。這樣,DRAM在讀取操作時就會返回MPR中的數(shù)據(jù),而不是直接從DRAM內(nèi)存讀取。
發(fā)起連續(xù)的讀取操作:隨后,控制器會發(fā)起一系列連續(xù)的讀取操作。這些讀取操作會返回之前在MPR模式寫入步驟中寫入的數(shù)據(jù)模式,通常這個模式是交替的1-0-1-0-...序列。
動態(tài)調(diào)整讀取延遲:在讀取過程中,控制器內(nèi)部的讀取捕獲機制會動態(tài)調(diào)整內(nèi)部的讀取延遲寄存器,以找到數(shù)據(jù)眼圖的左邊緣和右邊緣。這通常是通過逐步增加或減少讀取延遲來實現(xiàn)的。
確定數(shù)據(jù)眼圖的邊緣:當檢測到眼圖邊緣時,讀取延遲寄存器會被適當設(shè)置,以確保數(shù)據(jù)始終在眼圖的中心位置被捕獲。
對每個DQ數(shù)據(jù)位重復操作:上述步驟會針對每個DQ數(shù)據(jù)位重復執(zhí)行,以確保所有數(shù)據(jù)位的讀取操作都能達到最佳性能。
通過這一系列步驟,Read Training (或 Read Centering) 確保了控制器能夠在數(shù)據(jù)眼圖的最佳位置進行采樣,從而提高了讀取數(shù)據(jù)的穩(wěn)定性和準確性。這個過程對于確保內(nèi)存系統(tǒng)的高性能和可靠性至關(guān)重要。
6. ZQ Calibration
如果從 DRAM 內(nèi)部的視角來看,每個 DQ 管腳之后的電路都有多個并聯(lián)的 240 歐姆電阻組成VOH[0:4]。由于顆粒制造時,CMOS 工藝本身的限制,這些電阻不可能是精確的 240 歐姆。此外,阻值還會隨著溫度和電壓的改變而改變。所以必須校準至接近 240 歐姆,用于提高信號完整性。

現(xiàn)在,連接到DQ校準控制模塊的電路本質(zhì)上是一個電阻分壓器電路,其中一個電阻是多晶硅,另一個是精密240Ω。在初始化期間發(fā)出命令時,該DQ校準控制模塊將啟用,DQ校準控制模塊中的內(nèi)部比較器使用p溝道器件進行調(diào)諧,直到電壓準確(經(jīng)典電阻分壓器)。此時,校準已完成,值將傳輸?shù)剿蠨Q引腳。
具體校準過程如下:
(1) 收到ZQ校準命令后,PUP會被驅(qū)動為低電平,使和VDDQ連接的PMOS開關(guān)打開
(2) 校準控制模塊通過調(diào)整VOH[0:4], 來使不同的P Channel device導通
(3) 比較VPULL-UP和VDDQ/2的電壓,當二者相等時,DQ上下兩側(cè)的電阻相等,均為240Ω,記錄下該電阻的VOH[0:4]的值。此時,校準已完成,值將傳輸?shù)剿蠨Q引腳。
下拉電阻校準過程類似,不多贅述。不同的是和240Ω+電阻并聯(lián)的是N Channel device。

具有一組并聯(lián)的240Ω電阻可以調(diào)整驅(qū)動強度(用于讀取)和端接電阻(用于寫入)。每個PCB布局都是不同的,因此需要這種調(diào)諧功能來提高信號完整性,最大化信號的眼睛尺寸,并允許DRAM高速運行。
(1) 在DQ作為輸出時,斷掉所有下拉電阻,只有上拉電阻和DQ連接,并且控制上拉電阻的導通個數(shù),來控制輸出Voh電壓(Output High Voltage)。
(2) 在DQ作為輸入時,斷掉所有上拉電阻,只有下拉電阻和DQ連接,從而構(gòu)成ODT需要的下拉ODT(On-Die Termination)終止電阻(RTT),并且通過控制下拉電阻的導通個數(shù),生成需要的不同電阻值的電阻。
7. Preamble 術(shù)語解釋
7.1 Read Preamble/Postamble

可以看到在DQ信號開始傳送的時候,DQS會先有一個從上到下,再往上的信號,維持時間為一個tCK,這個信號我們稱之為Read Preamble,其用意主要是在提示Memory Controller Read的資料即將出現(xiàn)。而在DQ信號即將結(jié)束的時候DQS也會有一個由下往上的信號,維持時間為0.5個tCK,這個信號我們稱之為Read Postamble,其用意主要是在提示Memory Controller Read的資料即將傳送結(jié)束。
7.2 Write Preamble/Postamble
Write信號也會有Write Preamble和Postamble,我們可以看到Write Preamble也是先上再下的信號,但DQS與DQ的Edge則有一個90度的相位差。
可以通過DQS與DQ的相位是否切齊來判斷此時信號為Read or Write,切齊則是read操作,相差90度是write操作。

上描述側(cè)重的是在顆粒端,在MC端(實際是PHY端),Read操作時,DQS在DQ的中間,Write操作時,會通過training的過程決定DQS與DQ的相位關(guān)系。
簡而言之,在使用 DRAM 之前需要完成 4 個步驟
(1) 上電和初始化
(2) ZQ校準
(3) Vref DQ 校準
(4) 讀/寫Training
完成此操作后,系統(tǒng)將正式處于空閑狀態(tài)并正常運行。您可能需要啟用定期校準,具體取決于設(shè)備的部署條件。
-
DDR
+關(guān)注
關(guān)注
11文章
749瀏覽量
68762 -
內(nèi)存
+關(guān)注
關(guān)注
9文章
3183瀏覽量
76239 -
時鐘
+關(guān)注
關(guān)注
11文章
1964瀏覽量
134699 -
信號完整性
+關(guān)注
關(guān)注
68文章
1477瀏覽量
97939
原文標題:DDR training
文章出處:【微信號:封裝與高速技術(shù)前沿,微信公眾號:封裝與高速技術(shù)前沿】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
TMS320C6678 DDR3 初始化
Labview調(diào)用OCR Training.exe實現(xiàn)字符識別
iMX8MPlus + DDR4卡在wait_ddrphy_training_complete()怎么解決?
Protel 99 se Training Manual
電弧產(chǎn)生原理_電弧產(chǎn)生的原因
DDR training的產(chǎn)生原因
評論