搞DDR必懂的關(guān)鍵技術(shù)筆記:Initialization, Training , Calibration
掃描二維碼
隨時隨地手機(jī)看文章
引言
當(dāng)一個帶有DRAM子系統(tǒng)的設(shè)備上電時,DRAM達(dá)到可操作狀態(tài)之前會發(fā)生一系列事件。以下是根據(jù)JEDEC規(guī)范中的狀態(tài)機(jī)所顯示的DRAM從上電到可操作狀態(tài)所經(jīng)歷的各種狀態(tài)。
這可不是我們平時就一句Training階段就能概述。
本質(zhì)上,初始化過程包括四個不同的階段:
-
- 上電和初始化
-
- ZQ校準(zhǔn)
-
- Vref DQ校準(zhǔn)
-
- 讀寫訓(xùn)練(也稱為內(nèi)存訓(xùn)練或初始校準(zhǔn))
本文的內(nèi)容就按照這個流程來展開一一聊聊,有些地方,為了講清楚,有點啰嗦,請海涵。
為了更好地理解以下部分,我們假設(shè)您有一個如下所示的系統(tǒng)——帶有1個DIMM模塊的ASIC/FPGA/處理器。
圖2:示例系統(tǒng)
Initialization-初始化
圖2:初始化狀態(tài)(來源:美光數(shù)據(jù)手冊)
上電和初始化是一個固定且定義明確的步驟序列。
通常,當(dāng)系統(tǒng)加電且ASIC/FPGA/處理器中的控制器從復(fù)位狀態(tài)中解除時,它會自動執(zhí)行上電和初始化序列。以下是控制器所做工作的超級簡化版本。有關(guān)確切的詳細(xì)信息,請參閱JESD79-49A規(guī)范中的第3.3節(jié)。[1]
- 對DRAM上電
- 解復(fù)位并激活ClockEnable(CKE)
- 啟用時鐘CK_t/CK_c
- 發(fā)出MRS命令并加載模式寄存器[模式寄存器以特定順序加載]
- 執(zhí)行ZQ校準(zhǔn)[ZQCL]
- 將DRAM置于IDLE狀態(tài)
此時,DIMM模塊上的DRAM了解了它們需要以什么頻率運行,以及CAS延遲(CL)、CAS寫入延遲(CWL)和其他一些時序參數(shù)是什么。
當(dāng)DIMM(雙列直插式內(nèi)存模塊)模塊上的DRAM(動態(tài)隨機(jī)存取存儲器)被初始化時,它們會獲取一系列關(guān)鍵的運行參數(shù),這些參數(shù)對于確保內(nèi)存模塊能夠高效、穩(wěn)定地運行至關(guān)重要。
- CAS延遲(CL,Column Address Strobe Latency)是內(nèi)存時序的第一個參數(shù),表示從發(fā)出讀取命令到數(shù)據(jù)實際可用的時間(以時鐘周期為單位)。它是衡量內(nèi)存性能的重要指標(biāo)之一。
- CAS寫入延遲(CWL,Column Address Strobe Write Latency)是DRAM在寫入數(shù)據(jù)時,從列地址被激活到數(shù)據(jù)開始被寫入DRAM的延遲時間。
- tRCD(Row Address to Column Address Delay):行地址到列地址的延遲時間,即從發(fā)出行地址命令到可以發(fā)出列地址命令的時間間隔。
- tRP(Row Precharge Time):行預(yù)充電時間,即從行地址被激活到該行可以被再次激活之前的預(yù)充電時間。
- tRAS(Active to Precharge Delay):行有效至預(yù)充電的最短周期,即從行地址被激活到該行被預(yù)充電之前的時間間隔。
提示可以查看關(guān)于DDR4時序參數(shù)的文章,以了解更多關(guān)于CL、CWL等的信息...
在DDR4內(nèi)存的初始化過程中,會執(zhí)行一系列步驟來配置這些時序參數(shù)。
- 首先,內(nèi)存控制器會發(fā)出命令并加載模式寄存器,這些寄存器會按照特定順序被編程以設(shè)置DRAM的運行參數(shù)。
- 隨后,會執(zhí)行ZQ校準(zhǔn)(ZQ Calibration),這是一個與數(shù)據(jù)引腳(DQ)相關(guān)的校準(zhǔn)過程,用于調(diào)整DQ引腳的阻抗以匹配外部參考電阻,從而優(yōu)化信號完整性。
- 完成這些步驟后,DRAM模塊就處于準(zhǔn)備好進(jìn)行數(shù)據(jù)讀寫操作的狀態(tài)了。
- 此時,內(nèi)存控制器和PHY(物理層)會執(zhí)行進(jìn)一步的讀/寫訓(xùn)練(也稱為內(nèi)存訓(xùn)練或初始校準(zhǔn)),以確保時鐘和數(shù)據(jù)選通信號(DQS)在DRAM上正確對齊,并計算出DRAM的正確讀寫延遲。
這些步驟共同確保了DDR4內(nèi)存能夠高效、穩(wěn)定地運行。
在DDR4內(nèi)存系統(tǒng)中,**模式寄存器(Mode Register)**是一種關(guān)鍵的配置寄存器,用于存儲和定義內(nèi)存模塊的操作模式和時序參數(shù)。模式寄存器允許內(nèi)存控制器在內(nèi)存初始化過程中,通過發(fā)送特定的模式寄存器設(shè)置(MRS)命令來配置DRAM的運行參數(shù),以確保內(nèi)存模塊能夠按照預(yù)定的設(shè)置進(jìn)行高效、穩(wěn)定的數(shù)據(jù)讀寫操作。
模式寄存器的主要功能和特點包括:
-
配置運行參數(shù):模式寄存器中存儲了多個參數(shù),如CAS延遲(CL)、CAS寫入延遲(CWL)、行地址到列地址的延遲(tRCD)、行預(yù)充電時間(tRP)等,這些參數(shù)共同決定了內(nèi)存模塊的性能和時序特性。
-
優(yōu)化信號完整性:通過配置模式寄存器,可以調(diào)整數(shù)據(jù)引腳(DQ)的阻抗匹配和時序參數(shù),以優(yōu)化信號在內(nèi)存模塊上的傳輸質(zhì)量,減少信號反射和噪聲干擾。
-
支持多種操作模式:DDR4內(nèi)存支持多種操作模式,如正常操作模式、自刷新模式、低功耗模式等。模式寄存器中的設(shè)置決定了內(nèi)存模塊在不同模式下的行為。
-
可編程性:內(nèi)存控制器可以通過發(fā)送MRS命令來編程模式寄存器中的值。這些值在內(nèi)存初始化過程中被設(shè)置,并可以在后續(xù)的操作中被修改以適應(yīng)不同的應(yīng)用場景和性能需求。
DDR4中的模式寄存器數(shù)量
DDR4內(nèi)存標(biāo)準(zhǔn)定義了多個模式寄存器(MR),通常包括MR0到MR6等。不同的模式寄存器負(fù)責(zé)不同的配置內(nèi)容和功能。例如,MR0可能用于控制內(nèi)存模塊的基本操作模式和時序參數(shù);MR1可能用于配置輸出驅(qū)動器阻抗和片上終結(jié)電阻(ODT)等特性;而MR5和MR6等則可能用于更高級的配置選項,如奇偶校驗和CRC校驗等。
ZQ校準(zhǔn)
ZQ(Zero Quiet Calibration)在DDR(動態(tài)隨機(jī)存取存儲器)內(nèi)存模塊中是一個關(guān)鍵的校準(zhǔn)電阻引腳,其名稱來源于“Zero Quinn”,意味著當(dāng)所有數(shù)據(jù)線預(yù)充電到Vcc/2(電源電壓的一半)時,通過ZQ進(jìn)行校準(zhǔn)應(yīng)使所有線路的阻抗為零。然而,這里的“零”是一個理想狀態(tài),實際上ZQ校準(zhǔn)是為了使線路的阻抗達(dá)到一個優(yōu)化值,以確保信號在傳輸過程中的完整性和穩(wěn)定性。
ZQ校準(zhǔn)與數(shù)據(jù)引腳DQ有關(guān)。為了了解ZQ校準(zhǔn)的作用以及為什么需要它,我們首先需要查看每個DQ引腳后面的電路。
請記住,DQ引腳是雙向的。它負(fù)責(zé)在讀取時發(fā)送數(shù)據(jù),在寫入時接收數(shù)據(jù)。
圖5:DQ校準(zhǔn)模塊
現(xiàn)在,如果你查看DRAM內(nèi)部,每個DQ引腳后面的電路都由一組并聯(lián)的240Ω電阻支路組成,如圖4所示。由于CMOS設(shè)備的特性,這些電阻永遠(yuǎn)不會精確到240Ω。電阻值甚至?xí)艿诫妷汉蜏囟茸兓挠绊?。因此,它們被制成可調(diào)諧的。
為了將這些電阻精確調(diào)節(jié)到240Ω,每個DRAM都包含:
-
- 一個稱為DQ校準(zhǔn)控制塊的特殊模塊
-
- 一個ZQ引腳,該引腳連接有一個外部精密(±1%)240Ω電阻。
這個外部精密電阻是“參考”電阻,它在所有溫度下都保持在240Ω。在初始化期間發(fā)出ZQCL命令時,DQ校準(zhǔn)控制塊被激活,并產(chǎn)生一個調(diào)諧值。然后,該值被復(fù)制到每個DQ的內(nèi)部電路中。
DQ電路中的240Ω電阻支路是一種稱為“多晶硅電阻”的電阻器,其阻值通常略大于240Ω(多晶硅電阻器是一種與CMOS技術(shù)兼容的電阻器類型)。有許多p型溝道器件與該多晶硅電阻并聯(lián)連接,以便能夠精確地將其調(diào)至240Ω。
下圖放大了DQ電路中的一個240Ω支路,并顯示了與多晶硅電阻相連的5個p型溝道器件。這些小晶體管是根據(jù)輸入VOH[0:4]設(shè)置的。
現(xiàn)在,連接到DQ校準(zhǔn)控制塊的電路本質(zhì)上是一個電阻分壓電路,其中一個電阻是多晶硅電阻,另一個是精確的240Ω電阻。
在初始化過程中發(fā)出ZQCL命令時,DQ校準(zhǔn)控制塊被激活,DQ校準(zhǔn)控制塊內(nèi)的內(nèi)部比較器使用VOH[0:4]調(diào)節(jié)p通道器件,直到電壓恰好為VDDq/2(經(jīng)典電阻分壓)。此時,校準(zhǔn)完成,VOH值被傳輸?shù)剿蠨Q引腳。
圖7:DQ校準(zhǔn)塊(來源:美光數(shù)據(jù)手冊)
接下來,你可能會好奇為什么DQ引腳一開始就有這個由240Ω電阻組成的并聯(lián)網(wǎng)絡(luò)!
擁有一組并聯(lián)的240Ω電阻允許您調(diào)整驅(qū)動強(qiáng)度(用于讀?。┖投私与娮瑁ㄓ糜趯懭耄?。每個PCB布局都是不同的,因此這種調(diào)整能力是改善信號完整性、最大化信號眼圖大小并允許DRAM以高速運行的必要條件。
DRAM的信號驅(qū)動強(qiáng)度可以通過設(shè)置模式寄存器MR1[2:1]來控制。端接可以使用模式寄存器MR1、2和5中的RTT_NOM、RTT_WR和RTT_PARK的組合來控制。
Vref DQ Calibration-Vref 數(shù)據(jù)隊列(DQ)校準(zhǔn)
“Vref DQ Calibration”指的是對內(nèi)存模塊中DQ引腳的參考電壓進(jìn)行校準(zhǔn)的過程,以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。這個過程通常涉及到調(diào)整DQ引腳上的參考電壓值,以匹配內(nèi)存控制器的要求,并優(yōu)化信號傳輸?shù)碾姎馓匦浴?
圖8:VrefDQ校準(zhǔn)(來源:美光數(shù)據(jù)手冊)
在DDR4中,數(shù)據(jù)線(DQ)的端接方式從CTT(中心抽頭端接,也稱為SSTL系列釘狀端接邏輯)更改為POD(偽開漏)。這是為了改善高速下的信號完整性并節(jié)省I/O功耗。這并不是首次采用這種方式,GDDR5(圖形DRAM)也使用了POD。
這句話的意思是,在DDR3中,Vdd/2被用作電壓參考來決定DQ信號是0還是1。再看一下圖9的左側(cè),接收器基本上是一個分壓電路。
但在DDR4中,接收器上沒有分壓電路。相反,它有一個內(nèi)部電壓參考,用于決定數(shù)據(jù)線(DQ)上的信號是0還是1。這個電壓參考被稱為VrefDQ。VrefDQ可以通過模式寄存器MR6進(jìn)行設(shè)置,并且需要在VrefDQ校準(zhǔn)階段由內(nèi)存控制器正確設(shè)置。
ZQ Calibration(Zero Quiet Calibration)VS Vref DQ Calibration
目的與作用:
- ZQ Calibration主要關(guān)注于校準(zhǔn)DRAM(動態(tài)隨機(jī)存取存儲器)接口中DQ(數(shù)據(jù)隊列)引腳的電氣特性,特別是驅(qū)動強(qiáng)度和端接電阻。
- 它通過連接在VDDQ和DRAM ZQ pin上的精確電阻(通常為240Ω)來校準(zhǔn)DRAM內(nèi)部的電阻值,這些電阻值可能會隨著溫度和電壓的變化而漂移。
- ZQ Calibration能夠補償這些外部因素的變化,確保DQ引腳的電氣特性保持在最佳狀態(tài),從而提高信號傳輸?shù)耐暾院涂煽啃浴?
工作方式:
- 在LPDDR5中,用戶可以選擇background ZQ或command-based ZQ兩種方式進(jìn)行校準(zhǔn)。
- DRAM會自動進(jìn)行周期性的ZQ Calibration,得到合適的驅(qū)動/ODT(片上終結(jié))電阻值,并在適當(dāng)?shù)臅r候通過發(fā)送ZQ latch命令來更新這些值。
Vref DQ Calibration
目的與作用:
- Vref DQ Calibration關(guān)注于校準(zhǔn)DQ引腳上的參考電壓(VrefDQ),這是用于確保數(shù)據(jù)傳輸過程中信號電平正確性的基準(zhǔn)電壓。
- 通過調(diào)整VrefDQ的值,可以優(yōu)化信號傳輸?shù)碾姎馓匦?,減少信號噪聲和干擾,從而提高數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。
工作方式:
- Vref DQ Calibration通常涉及設(shè)置VrefDQ的電壓范圍和步進(jìn)大小,并根據(jù)需要進(jìn)行調(diào)整以確保信號電平在可接受的范圍內(nèi)。
- 在DDR5等現(xiàn)代內(nèi)存技術(shù)中,Vref DQ Calibration可能還包括對VrefDQ設(shè)置容差和步進(jìn)時間的精確控制。
POD、CTT、SSTL、ODT技術(shù)的對比
| 技術(shù) | 簡稱 | 應(yīng)用場景 | 主要特點 | 備注 |
|---|---|---|---|---|
| 偽開漏 | POD | DDR4及以后版本 | 1. 接收端終端電壓等于VDDQ,降低功耗 | 1. DDR4中用于改善信號完整性和降低功耗 |
|
|
|
|
2. 減少寄生引腳電容和I/O終端功耗 | 2. 相比SSTL,POD在高電平時無電流流動 |
| 中心抽頭端接 | CTT | DDR3及以前版本 | 1. 類似于SSTL,但具體實現(xiàn)可能有所不同 | 1. 較少在DDR4中提及,更多作為歷史背景 |
| 釘狀系列端接邏輯 | SSTL | DDR3及以前版本 | 1. 接收端終端電壓為VDDQ/2 | 1. DDR3中常用的端接方式 |
|
|
|
|
2. 通過串聯(lián)電阻實現(xiàn)信號端接 | 2. 適用于較低速率的DDR版本 |
| 片上終結(jié) | ODT | DDR2及以后版本 | 1. 將終端電阻內(nèi)置到DRAM顆粒內(nèi)部 | 1. 提高信號完整性,減少反射 |
|
|
|
|
2. 可通過DRAM控制器獨立控制開關(guān) | 2. 降低主板制造成本,減少主板設(shè)計復(fù)雜度 |
|
|
|
|
3. 減少內(nèi)存閑置時的功率消耗 | 3. 支持多種模式,如RTT_NOM、RTT_WR、RTT_PARK等 |
備注說明:
- POD:在DDR4中引入,旨在通過降低接收端終端電壓和減少高電平時的電流流動來降低功耗。POD技術(shù)有助于提升DDR4在高速傳輸下的信號完整性和穩(wěn)定性。
- CTT:雖然在此表格中提及,但并非DDR內(nèi)存接口中的主流技術(shù),更多是作為歷史背景或與其他技術(shù)(如SSTL)進(jìn)行比較時提及。
- SSTL:在DDR3及以前版本中廣泛使用,通過串聯(lián)電阻實現(xiàn)信號端接,接收端終端電壓為VDDQ/2。適用于較低速率的DDR版本,但在高速傳輸時可能面臨信號完整性問題。
- ODT:從DDR2開始引入,將終端電阻內(nèi)置到DRAM顆粒內(nèi)部(稱為片上終結(jié))。ODT技術(shù)通過允許DRAM控制器獨立控制開關(guān)終端電阻來改善信號完整性,降低主板制造成本,并減少內(nèi)存閑置時的功率消耗。此外,ODT還支持多種模式以適應(yīng)不同的應(yīng)用場景和性能需求。
ZQ VS Vref DQ
|
|
ZQ Calibration | Vref DQ Calibration |
|---|---|---|
| 目標(biāo) | 校準(zhǔn)DQ引腳的電氣特性(驅(qū)動強(qiáng)度和端接電阻) | 校準(zhǔn)DQ引腳上的參考電壓(VrefDQ) |
| 作用 | 提高信號傳輸?shù)耐暾院涂煽啃? | 確保數(shù)據(jù)傳輸過程中信號電平的正確性 |
| 工作方式 | 通過連接在VDDQ和DRAM ZQ pin上的精確電阻進(jìn)行校準(zhǔn) | 調(diào)整VrefDQ的電壓值和步進(jìn)大小進(jìn)行校準(zhǔn) |
| 關(guān)注點 | 電阻值的變化和補償 | 電壓值的精確性和穩(wěn)定性 |
綜上所述,ZQ Calibration和Vref DQ Calibration雖然都是內(nèi)存技術(shù)中的校準(zhǔn)過程,但它們在校準(zhǔn)的目標(biāo)、方式和工作原理上存在差異。
ZQ Calibration更側(cè)重于電氣特性的校準(zhǔn)和補償,而Vref DQ Calibration則更關(guān)注于參考電壓的精確性和穩(wěn)定性。這兩種校準(zhǔn)過程共同確保了內(nèi)存模塊在數(shù)據(jù)傳輸過程中的高可靠性和準(zhǔn)確性。
Read/Write Training
在這一點上,初始化過程已完成,DRAM處于空閑狀態(tài),但內(nèi)存仍然不可操作。在數(shù)據(jù)能夠可靠地寫入或從DRAM讀取之前,控制器和PHY必須執(zhí)行幾個更重要的步驟。這個重要的階段被稱為讀寫訓(xùn)練(或內(nèi)存訓(xùn)練或初始校準(zhǔn)),其中控制器(或PHY)
- 運行算法以在DRAM處對齊時鐘[CK]和數(shù)據(jù)選通[DQS]
- 運行算法并計算出對DRAM進(jìn)行正確讀寫操作的延遲
- 為讀取操作調(diào)整數(shù)據(jù)眼圖的中心位置
- 如果信號完整性不佳且數(shù)據(jù)無法可靠地寫入或讀取,則報告錯誤
本節(jié)涉及狀態(tài)機(jī)中的以下循環(huán)
圖10:讀寫訓(xùn)練狀態(tài)(來源:美光手冊)
為什么需要讀寫訓(xùn)練?
讓我們更深入地了解我們的示例系統(tǒng)。下面的圖片展示了在ASIC/SoC/處理器和DIMM上的DRAM之間,數(shù)據(jù)信號和地址/命令信號是如何連接的。
數(shù)據(jù)和數(shù)據(jù)選通(DQ & DQS)以星形拓?fù)浣Y(jié)構(gòu)連接到每個內(nèi)存,因為每個內(nèi)存都連接到72條數(shù)據(jù)線的不同部分。
DIMM上的時鐘、命令和地址線(A、CK、CKE、WE、CSn)采用一種稱為飛越路由拓?fù)涞募夹g(shù)進(jìn)行連接。這是因為DIMM上的所有DRAM共享相同的地址線,而飛越路由是實現(xiàn)更好信號完整性和高速運行所必需的。
圖11:示例系統(tǒng)詳圖
因此,從ASIC/處理器的視角來看,DIMM上的每個DRAM內(nèi)存模塊都位于不同的距離上。而從DIMM的視角來看,由于每個DRAM的位置不同,它們接收到的時鐘和數(shù)據(jù)信號之間的偏斜(skew)也會有所不同。
DRAM是一個相對簡單的設(shè)備。當(dāng)你打算進(jìn)行寫入操作時,在初始化階段,你需要通過編程DRAM的模式寄存器之一來設(shè)置CAS寫入延遲(CWL),這是列地址和數(shù)據(jù)在DRAM輸入端之間的時間延遲。
這個定時參數(shù)必須始終得到遵守。內(nèi)存控制器需要考慮到板載線路延遲和飛越路由延遲,并以適當(dāng)?shù)钠眴拥刂泛蛿?shù)據(jù)信號,以確保它們以CWL延遲到達(dá)DRAM。
例如,如果你將CAS寫入延遲設(shè)置為9,那么當(dāng)ASIC/處理器啟動列地址時,它需要在不同的時間點啟動不同的數(shù)據(jù)位,以確保它們都在CWL為9的時間點上到達(dá)DRAM。
對于讀取操作,也需要進(jìn)行類似的處理。由于DIMM上的每個DRAM都位于不同的距離,因此當(dāng)發(fā)出讀取命令時,它們會在不同的時間點接收到該命令,隨后每個DRAM返回的數(shù)據(jù)也會在不同的時間點到達(dá)ASIC/處理器。
在初始校準(zhǔn)階段,ASIC/處理器會測量來自每個DRAM的延遲,并相應(yīng)地調(diào)整其內(nèi)部電路,以確保在正確的時刻捕獲來自不同DRAM的數(shù)據(jù)。
就是為了保證大家到的時候,能整整齊齊的,不要因為各自端口走的路程不一樣,而導(dǎo)致數(shù)據(jù)不一樣,目的就是確認(rèn)路徑長短,然后告訴大家每個人多久出發(fā),最后大家一起在終點碰頭。
對于讀寫訓(xùn)練,控制器/PHY IP通常提供多種算法。最常見的算法包括:
-
- 寫入電平調(diào)整(Write Leveling)
-
- 多用途寄存器(MPR)模式寫入(Multi-Purpose Register Pattern Write)
-
- 讀取中心化(Read Centering)
-
- 寫入中心化(Write Centering)
以下各節(jié)將更詳細(xì)地介紹這些算法。
寫入電平調(diào)整
在向DRAM寫入數(shù)據(jù)時,有一個重要的時序參數(shù)tDQSS,它是不能違反的。tDQSS是數(shù)據(jù)選通信號(DQS)相對于時鐘信號(CK)的位置。tDQSS必須位于規(guī)格中定義的tDQSS(MIN)和tDQSS(MAX)范圍內(nèi)。如果tDQSS超出此范圍,則可能會向內(nèi)存寫入錯誤的數(shù)據(jù)。
由于DIMM上每個DRAM的時鐘到數(shù)據(jù)/數(shù)據(jù)選通信號的偏斜不同,內(nèi)存控制器需要進(jìn)行訓(xùn)練,以便能夠補償這種偏斜,并保持DIMM上每個DRAM輸入端的tDQSS。
當(dāng)您在控制器中啟用寫入電平調(diào)整時,它將執(zhí)行以下步驟:
-
- 向模式寄存器MR1寫入數(shù)據(jù),將位7設(shè)置為1。這將DRAM置于寫入電平調(diào)整模式。在寫入電平調(diào)整模式下,當(dāng)DRAM看到數(shù)據(jù)選通信號(DQS)時,它會使用該信號對時鐘(CK)進(jìn)行采樣,并通過DQ總線將采樣值返回給控制器。
-
- 控制器然后發(fā)送一系列DQS脈沖。由于DRAM處于寫入電平調(diào)整模式,因此它會使用DQS對CK的值進(jìn)行采樣,并通過DQ總線將采樣值(1或0)返回給控制器。
-
- 控制器隨后查看DRAM返回的DQ位的值,并根據(jù)需要增加或減少DQS延遲,然后在一段時間后發(fā)送下一組DQS脈沖。
-
- DRAM再次對CK進(jìn)行采樣,并通過DQ總線返回采樣值。
-
- 重復(fù)步驟2到4,直到控制器看到0到1的轉(zhuǎn)換。此時,控制器鎖定DQS延遲設(shè)置,并針對該DRAM設(shè)備完成寫入電平調(diào)整。
-
- 然后,對整個DIMM的每個DQS重復(fù)步驟2到5,以完成寫入電平調(diào)整過程。
-
- 最后,通過向MR1[7]寫入0,將DRAM從寫入電平調(diào)整模式中移除。
下面的圖表展示了寫入電平調(diào)整的概念。
圖12:寫入電平調(diào)整(來源:美光數(shù)據(jù)手冊)
MPR(多用途寄存器)模式寫入
MPR模式寫入實際上并不直接被視為一種校準(zhǔn)算法,而是通常作為讀取中心化和寫入中心化之前的一個準(zhǔn)備步驟。
DDR4 DRAM中內(nèi)置了四個8位的可編程寄存器,這些寄存器被稱為MPR寄存器(多用途寄存器),它們專門用于DQ位(數(shù)據(jù)位)的訓(xùn)練過程,即讀取中心化和寫入中心化。為了啟用MPR訪問模式,需要將模式寄存器MR3的第2位(MR3[2])設(shè)置為1。
一旦這個模式被激活,原本應(yīng)該針對DRAM內(nèi)存庫執(zhí)行的讀取和寫入操作就會被重定向到這些多用途寄存器上,而不是直接操作內(nèi)存庫中的數(shù)據(jù)。這樣做的目的是為了在正式進(jìn)行讀寫操作之前,通過MPR寄存器對DRAM的數(shù)據(jù)路徑進(jìn)行配置和優(yōu)化,以確保后續(xù)操作的準(zhǔn)確性和穩(wěn)定性。
讀取中心化
讀取中心化的核心目標(biāo)是調(diào)整控制器(或PHY)內(nèi)部的讀取捕獲機(jī)制,確保數(shù)據(jù)在數(shù)據(jù)眼圖的中心位置被準(zhǔn)確捕獲。為了實現(xiàn)這一目標(biāo),內(nèi)存控制器(或PHY)會執(zhí)行以下步驟:
-
- 通過設(shè)置模式寄存器MR3的第2位,啟用對多用途寄存器(MPR)的訪問,這樣DRAM在讀取操作時就會返回MPR中的數(shù)據(jù),而不是直接從DRAM內(nèi)存讀取。
-
- 隨后,控制器會發(fā)起一系列連續(xù)的讀取操作。這些讀取操作會返回之前在MPR模式寫入步驟中寫入的數(shù)據(jù)模式,假設(shè)這個模式是交替的1-0-1-0...序列。
-
- 在讀取過程中,控制器內(nèi)部的讀取捕獲機(jī)制會動態(tài)調(diào)整內(nèi)部的讀取延遲寄存器,以找到數(shù)據(jù)眼圖的左邊緣和右邊緣。這通常是通過逐步增加或減少讀取延遲來實現(xiàn)的。
-
- 一旦確定了數(shù)據(jù)眼圖的邊緣,控制器就會相應(yīng)地設(shè)置讀取延遲寄存器,以確保數(shù)據(jù)始終在眼圖的中心位置被捕獲。
-
- 上述步驟會針對每個DQ數(shù)據(jù)位重復(fù)執(zhí)行,以確保所有數(shù)據(jù)位的讀取操作都能達(dá)到最佳性能。
寫入中心化
寫入中心化的目的是為每個數(shù)據(jù)位設(shè)置合適的寫入延遲,以確保寫入數(shù)據(jù)在DRAM設(shè)備的相應(yīng)寫入選通(DQS)邊緣上居中。為了實現(xiàn)這一目標(biāo),PHY會執(zhí)行以下寫入-讀取-移位-比較循環(huán):
-
- PHY會連續(xù)地發(fā)起寫入和讀取操作。這些操作會針對DRAM的特定數(shù)據(jù)位進(jìn)行。
-
- 在每次寫入操作后,PHY會逐步改變該數(shù)據(jù)位的寫入延遲,并隨后執(zhí)行讀取操作以驗證寫入的數(shù)據(jù)。
-
- 通過比較讀取回的數(shù)據(jù)與原始寫入的數(shù)據(jù),PHY可以評估不同寫入延遲下的數(shù)據(jù)質(zhì)量。
-
- 經(jīng)過多次迭代后,PHY可以確定一個寫入延遲范圍,在該范圍內(nèi)讀取回的數(shù)據(jù)與寫入的數(shù)據(jù)一致。這個范圍就代表了寫入數(shù)據(jù)眼圖的左邊緣和右邊緣。
-
- 最后,PHY會根據(jù)這個范圍設(shè)置最佳的寫入延遲,以確保寫入數(shù)據(jù)在DQS邊緣上居中,從而提高寫入操作的準(zhǔn)確性和穩(wěn)定性。
定期校準(zhǔn)
在網(wǎng)絡(luò)交換機(jī)或路由器等設(shè)備中,其運行過程中可能會遇到電壓和溫度的變化。為了保持信號完整性和數(shù)據(jù)訪問的可靠性,一些在初始化和讀寫訓(xùn)練期間校準(zhǔn)的參數(shù)需要重新運行。內(nèi)存控制器和PHY IP通常提供以下兩種定期校準(zhǔn)過程:
-
定期ZQ校準(zhǔn) - 也稱為ZQ校準(zhǔn)短周期(ZQCS)。它用于定期運行ZQ校準(zhǔn),以調(diào)整之前描述的240Ω電阻器。
-
定期讀取中心化 - 重新計算讀取延遲和其他與讀取相關(guān)的參數(shù)。
啟用定期校準(zhǔn)是可選的,因為如果你知道你的設(shè)備將在穩(wěn)定的溫度條件下部署,那么初始的ZQ校準(zhǔn)和讀寫訓(xùn)練就足夠了。
通常,內(nèi)存控制器或PHY允許你通過它們的寄存器設(shè)置定時器并啟用定期校準(zhǔn)。一旦定時器設(shè)置完成,每次定時器到期時都會執(zhí)行定期校準(zhǔn)。
總結(jié)
在DRAM可以使用之前,需要完成以下四個步驟:
-
- 上電和初始化
-
- ZQ校準(zhǔn)
-
- Vref DQ校準(zhǔn)
-
- 讀寫訓(xùn)練
完成這些步驟后,系統(tǒng)正式進(jìn)入空閑和運行狀態(tài)。當(dāng)然你可能需要根據(jù)你的設(shè)備部署條件來啟用定期校準(zhǔn)。





