今天分享DDR相關知識。
什么是DDR
DDR是Double Data Rate的縮寫,即“雙倍速率同步動態隨機存儲器”。DDR是一種技術,中國大陸工程師習慣用DDR稱呼用了DDR技術的SDRAM,而在中國臺灣以及歐美,工程師習慣用DRAM來稱呼。
DDR的核心要義是在一個時鐘周期內,上升沿和下降沿都做一次數據采樣,這樣400MHz的主頻可以實現800Mbps的數據傳輸速率。
每一代DDR的基本區別
(可點擊圖片放大查看)
關鍵技術解釋
1、VTT
VTT為DDR的地址線,控制線等信號提供上拉電源,上拉電阻是50Ω左右。VTT=1/2VDDQ,并且VTT要跟隨VDDQ,因此需要專用的電源同時提供VDDQ和VTT。例如芯片TPS51206DSQT,LP2996。用專門的電源芯片,還有一個重要的原因,在Fly-by的拓撲中,VTT提供電流,增強DDR信號線的驅動能力。
DDR的接收器是一個比較器,其中一端是VREF,另一端是信號,例如地址線A2在有VTT上拉的時候,A2的信號在0和1.8V間跳動,當A2電壓高于VTT時,電流流向VTT。當A2低于VTT時,VTT流向DDR。因此VTT需要有提供電流和吸收電流的能力,一般的開關電源不能作為VTT的提供者。此外,VTT電源相當于DDR接收器信號輸入端的直流偏執,且這個偏執等于VREF,因此VTT的噪聲要越小越好,否則當A2的狀態為高阻態時,DDR接收器的比較器容易產生誤觸發。
上文說過,VTT相當于DDR接收器的直流偏執,其實如果沒有VTT,這個直流偏執也存在,它在芯片的內部,提供電流的能力很弱。如果只有1個或2個DDR芯片,走Fly-by拓撲,那么不需要外部的VTT上拉。如果有2個以上的DDR芯片,則一定需要VTT上拉。
2、Prefetch
Prefetch字面意思就是預存取,每一代的DDR預存取大小不同,詳見第2章中表格。以DDR3為例,它的Prefetch=8n,相當于DDR的每一個IO都有一個寬度為8的buffer,從IO進來8個數據后,在第8個數據進來后,才把這8個數據一次性的寫入DDR內部的存儲單元。下圖是一個形象的解釋,同時我們關注一下幾個速率。DDR3的時鐘是800MHz,Data Rate是1600Mbps,由于這個Buffer的存在,DDR內部的時鐘只需要200MHz就可以了(注意DDR內部不是雙比特翻轉采樣)。
我們來做一個頻率對照表,如下:
DDR內部的最小存儲單元(1bit)是一個晶體管+一個電容,電容會放電,需要不斷的“刷新”(充電)才能保持正常的工作狀態,由于電容充放電需要時間,DDR內部的頻率受限于此,很難提高,目前技術一般在100~200MHz。因此需要用Prefetch技術來提內部數據高吞吐率(其實就是串并轉換原理)。Prefetch位寬的提高,是DDR2,3,4非常顯著的變化。
第一段提到,對于DDR3,在第8個數據進來后,FIFO滿了,然后才把這8個數據一次性的寫入DDR內部的存儲單元,那么必須要求DDR的內部時鐘和外部時鐘有一定的約束關系,FIFO滿的時候一定是以DQS下降沿采樣結束的,數據手冊中對DQS的下降沿與clk有一個建立時間和保持時間的約束要求的目的原來是這樣。
3、SSTL
SSTL(Stub Series Terminated Logic)接口標準也是JEDEC所認可的標準之一。該標準專門針對高速內存(特別是SDRAM)接口。SSTL規定了開關特點和特殊的端接方案。
SSTL標準規定了IC供電,IO的DC和AC輸入輸出門限,差分信號門限,Vref電壓等。SSTL_3是3.3V標準,SSTL_2是2.5V標準,SSTL_18是1.8V標準,SSTL_15是1.5V。
SSTL最大的特點是需要終端匹配電阻,也叫終端終結電阻,上拉到VTT(1/2VDDQ)。這個短接電阻最大的作用是為了信號完整性,特別是在1拖多的Fly-by走線拓撲下,還能增強驅動能力。
4、Bank
以下圖為例,一個Bank中包含若干個Array,Array相當于一個表單,選中“行地址”和“列地址”后,表單中的一個單元格就被選中,這個單元格就是一個bit。Bank中的所有Array的行地址是連在一起的,列地址也是。那么選中“行地址”和“列地址”后,將一起選中所有Array的bit。有多少個array,就有多少個bit被選中。以DDR3為例,Data線寬度是32,prefetch是8,那么Array就有32x8=256.內部一次操作會選中256bit的數據。
Bank數量越多,需要的Bank選擇線越多,DDR3有8個bank,需要3個BA信號BA0~2。BA,行地址,列地址共同組成了存儲單元的訪問地址,缺一不可。
5、DDR的容量計算
下圖是DDR3 1Gb的尋址配置,以其中128Mbx8為例說明,其中x8表示IO數據(DQ)位寬度。
我的理解是,這個page size更像是邏輯上的一個頁,并不是一個bank中,一行的所有bit,因為一行的所有bit要考慮prefetch寬度。
上表是JESD-3D中的表格,Row Address和Column Address都是真實需要尋址的地址,其他用途的地址比如A10,A12或者A11等并沒有計算在內。在計算時,不要因為有A13,就認為Column Address就是A0~A13。
6、Burst
Burst字面意思是突發,DDR的訪問都是以突發的方式連續訪問同一行的相鄰幾個單元。進行Brust時,需要有幾個參數:
Burst Length:一次突發訪問幾個列地址。
Read/Write: 是讀還是寫
Starting Column:從哪一列開始Burst
Burst:突發的順序。
下圖是DDR3中突發類型和順序,Burst是通過A12/BC#選擇的。但對于DDR,DDR2和DDR4,不一定就是通過A12/BC#,詳見PIN定義章節。
7、DDR的tRDC,CL,tAC
在實際工作中,Bank地址與相應的行地址是同時發出的,此時這個命令稱之為“行激活”(Row Active)。在此之后,將發送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個命令也是同時發出的,所以一般都會以“讀/寫命令”來表示列尋址。
根據相關的標準,從行有效到讀/寫命令發出之間的間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),我們可以理解為行選通周期。tRCD是DDR的一個重要時序參數,廣義的tRCD以時鐘周期(tCK,Clock Time)數為單位,比如tRCD=3,就代表延遲周期為兩個時鐘周期,具體到確切的時間,則要根據時鐘頻率而定,DDR3-800,tRCD=3,代表30ns的延遲。
接下來,相關的列地址被選中之后,將會觸發數據傳輸,但從存儲單元中輸出到真正出現在內存芯片的 I/O 接口之間還需要一定的時間(數據觸發本身就有延遲,而且還需要進行信號放大),這段時間就是非常著名的 CL(CAS Latency,列地址脈沖選通潛伏期)。CL 的數值與 tRCD 一樣,以時鐘周期數表示。如 DDR3-800,時鐘頻率為 100MHz,時鐘周期為 10ns,如果 CL=2 就意味著 20ns 的潛伏期。不過CL只是針對讀取操作。
由于芯片體積的原因,存儲單元中的電容容量很小,所以信號要經過放大來保證其有效的識別性,這個放大/驅動工作由S-AMP負責,一個存儲體對應一個S- AMP通道。但它要有一個準備時間才能保證信號的發送強度(事前還要進行電壓比較以進行邏輯電平的判斷),因此從數據I/O總線上有數據輸出之前的一個時鐘上升沿開始,數據即已傳向S-AMP,也就是說此時數據已經被觸發,經過一定的驅動時間最終傳向數據I/O總線進行輸出,這段時間我們稱之為 tAC(Access Time from CLK,時鐘觸發后的訪問時間)。
目前內存的讀寫基本都是連續的,因為與CPU交換的數據量以一個Cache Line(即CPU內Cache的存儲單位)的容量為準,一般為64字節。而現有的Rank位寬為8字節(64bit),那么就要一次連續傳輸8次,這就涉及到我們也經常能遇到的突發傳輸的概念。突發(Burst)是指在同一行中相鄰的存儲單元連續進行數據傳輸的方式,連續傳輸的周期數就是突發長度(Burst Lengths,簡稱BL)。
在進行突發傳輸時,只要指定起始列地址與突發長度,內存就會依次地自動對后面相應數量的存儲單元進行讀/寫操作而不再需要控制器連續地提供列地址。這樣,除了第一筆數據的傳輸需要若干個周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個數據只需一個周期的即可獲得。
突發連續讀取模式:只要指定起始列地址與突發長度,后續的尋址與數據的讀取自動進行,而只要控制好兩段突發讀取命令的間隔周期(與BL相同)即可做到連續的突發傳輸。
談到了突發長度時。如果BL=4,那么也就是說一次就傳送4×64bit的數據。但是,如果其中的第二筆數據是不需要的,怎么辦?還都傳輸嗎?為了屏蔽不需要的數據,人們采用了數據掩碼(Data I/O Mask,簡稱DQM)技術。通過DQM,內存可以控制I/O端口取消哪些輸出或輸入的數據。這里需要強調的是,在讀取時,被屏蔽的數據仍然會從存儲體傳出,只是在“掩碼邏輯單元”處被屏蔽。DQM由北橋控制,為了精確屏蔽一個P-Bank位寬中的每個字節,每個DIMM有8個DQM 信號線,每個信號針對一個字節。這樣,對于4bit位寬芯片,兩個芯片共用一個DQM信號線,對于8bit位寬芯片,一個芯片占用一個DQM信號,而對于 16bit位寬芯片,則需要兩個DQM引腳。
在數據讀取完之后,為了騰出讀出放大器以供同一Bank內其他行的尋址并傳輸數據,內存芯片將進行預充電的操作來關閉當前工作行。還是以上面那個Bank示意圖為例。當前尋址的存儲單元是B1、R2、C6。如果接下來的尋址命令是B1、R2、C4,則不用預充電,因為讀出放大器正在為這一行服務。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必須要先把R2關閉,才能對R4尋址。從開始關閉現有的工作行,到可以打開新的工作行之間的間隔就是tRP(Row Precharge command Period,行預充電有效周期),單位也是時鐘周期數。
8、ODT
ODT是內建核心的終結電阻,它的功能是讓一些信號在終結電阻處消耗完,防止這些信號在電路上形成反射。換句話說就是在片內設置合適的上下拉電阻,以獲得更好的信號完整性。被ODT校準的信號包括:
DQ, DQS, DQS# and DM for x4 configuration
DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration
DQU, DQL, DQSU, DQSU#, DQSL, DQSL#, DMU and DML for X16 configuration
當一個CPU掛了很多個DDR芯片的時候,他們是共用控制線,地址線的,走線肯定要分叉,如果沒有中端匹配電阻,肯定會產生信號完整性問題。那么如果只有一個DDR芯片的時候,需不需要呢?正常情況下,走線很短,有符合規則,是不需要的。
下圖是DDR中的IO上下拉電阻,RON是DDR的輸出結構的上下拉電阻,RTT是DDR輸入結構的上下拉電阻。這兩個電阻的阻值都是可調的。
下圖是RON的調節,注意這不是ODT的任務,調節是通過寄存器實現。
下圖是RTT的調節,是ODT要做的事情,而且RTT的檔位要多,也是通過寄存器調節的。
注意,DDR3的PIN定義上有一個引腳是ODT,如果ODT=0,DRAM Termination State功能關閉;ODT=1,DRAM Termination State的功能參考寄存器設置。如下是一個真值表。因為DRAM Termination State非常耗電,所以不用的時候最好不要打開。
9、DDR3的ZQ
ZQ信號在DDR3時代開始引入,要求在ZQ引腳放置一個240Ω±1%的高精度電阻到地,注意必須是高精度。而且這個電阻是必須的,不能省略的。進行ODT時,是以這個引腳上的阻值為參考來進行校準的。
校準需要調整內部電阻,以獲得更好的信號完整性,但是內部電阻隨著溫度會有些細微的變化,為了將這個變化糾正回來,就需要一個外部的精確電阻作為參考。詳細來講,就是為RTT和RON提供參考電阻。
10、OCD
OCD 是在 DDR-II 開始加入的新功能,而且這個功能是可選的,有的資料上面又叫離線驅動調整。OCD的主要作用在于調整 I/O 接口端的電壓,來補償上拉與下拉電阻值, 從而調整DQS 與 DQ 之間的同步確保信號的完整與可靠性。調校期間,分別測試 DQS 高電平和 DQ高電平,以及 DQS 低電平和 DQ 高電平的同步情況。
如果不滿足要求,則通過設定突發長度的地址線來傳送上拉 / 下拉電阻等級(加一檔或減一檔),直到測試合格才退出OCD操作,通過OCD操作來減少 DQ 、 DQS的傾斜從而提高信號的完整性及控制電壓來提高信號品質。由于在一般情況下對應用環境穩定程度要求并不太高,只要存在差分DQS時就基本可以保證同步的準確性, 而且OCD的調整對其他操作也有一定影響, 因此OCD功能在普通臺式機上并沒有什么作用,其優點主要體現在對數據完整性非常敏感的服務器等高端產品領域。
DDR3的PIN定義
下面是三星K4B4G0446Q/K4B4G0846Q的PIN定義,每一個都有很詳細的解釋。
以x8的配置為例,如下是其Ball Map。
一對時鐘線CK和CKn
數據線DQ0~DQ7共8位
一對差分對DQS和DQSn
地址線A0~A15,其中,A10和A12有特殊用途
行選中信號RASn
列選中信號CASn
寫使能Wen
片選CSn
Bank選擇BA0~2
一個Reset信號,是DDR3新增的一項重要功能,并為此專門準備了一個引腳。這一引腳將使DDR3的初始化處理變得簡單。當Reset命令有效時,DDR3 內存將停止所有的操作,并切換至最少量活動的狀態,以節約電力。在Reset期間,DDR3內存將關閉內在的大部分功能,所有數據接收與發送器都將關閉,且所有內部的程序裝置將復位,DLL(延遲鎖相環路)與時鐘電路將停止工作,甚至不理睬數據總線上的任何動靜。這樣一來,該功能將使DDR3達到最節省電力的目的。
ZQ和ODT PIN上文已經說明。
DDR的走線規則
DDR的信號線需要分組:
數據線一組(DQ,DQS,DQM),誤差控制在20mil以內;
控制線一組(Address,控制線,時鐘),以時鐘為中心,誤差控制在100mil以內。
今天分享DDR相關知識。
什么是DDR
DDR是Double Data Rate的縮寫,即“雙倍速率同步動態隨機存儲器”。DDR是一種技術,中國大陸工程師習慣用DDR稱呼用了DDR技術的SDRAM,而在中國臺灣以及歐美,工程師習慣用DRAM來稱呼。
DDR的核心要義是在一個時鐘周期內,上升沿和下降沿都做一次數據采樣,這樣400MHz的主頻可以實現800Mbps的數據傳輸速率。
每一代DDR的基本區別
(可點擊圖片放大查看)
關鍵技術解釋
1、VTT
VTT為DDR的地址線,控制線等信號提供上拉電源,上拉電阻是50Ω左右。VTT=1/2VDDQ,并且VTT要跟隨VDDQ,因此需要專用的電源同時提供VDDQ和VTT。例如芯片TPS51206DSQT,LP2996。用專門的電源芯片,還有一個重要的原因,在Fly-by的拓撲中,VTT提供電流,增強DDR信號線的驅動能力。
DDR的接收器是一個比較器,其中一端是VREF,另一端是信號,例如地址線A2在有VTT上拉的時候,A2的信號在0和1.8V間跳動,當A2電壓高于VTT時,電流流向VTT。當A2低于VTT時,VTT流向DDR。因此VTT需要有提供電流和吸收電流的能力,一般的開關電源不能作為VTT的提供者。此外,VTT電源相當于DDR接收器信號輸入端的直流偏執,且這個偏執等于VREF,因此VTT的噪聲要越小越好,否則當A2的狀態為高阻態時,DDR接收器的比較器容易產生誤觸發。
上文說過,VTT相當于DDR接收器的直流偏執,其實如果沒有VTT,這個直流偏執也存在,它在芯片的內部,提供電流的能力很弱。如果只有1個或2個DDR芯片,走Fly-by拓撲,那么不需要外部的VTT上拉。如果有2個以上的DDR芯片,則一定需要VTT上拉。
2、Prefetch
Prefetch字面意思就是預存取,每一代的DDR預存取大小不同,詳見第2章中表格。以DDR3為例,它的Prefetch=8n,相當于DDR的每一個IO都有一個寬度為8的buffer,從IO進來8個數據后,在第8個數據進來后,才把這8個數據一次性的寫入DDR內部的存儲單元。下圖是一個形象的解釋,同時我們關注一下幾個速率。DDR3的時鐘是800MHz,Data Rate是1600Mbps,由于這個Buffer的存在,DDR內部的時鐘只需要200MHz就可以了(注意DDR內部不是雙比特翻轉采樣)。
我們來做一個頻率對照表,如下:
DDR內部的最小存儲單元(1bit)是一個晶體管+一個電容,電容會放電,需要不斷的“刷新”(充電)才能保持正常的工作狀態,由于電容充放電需要時間,DDR內部的頻率受限于此,很難提高,目前技術一般在100~200MHz。因此需要用Prefetch技術來提內部數據高吞吐率(其實就是串并轉換原理)。Prefetch位寬的提高,是DDR2,3,4非常顯著的變化。
第一段提到,對于DDR3,在第8個數據進來后,FIFO滿了,然后才把這8個數據一次性的寫入DDR內部的存儲單元,那么必須要求DDR的內部時鐘和外部時鐘有一定的約束關系,FIFO滿的時候一定是以DQS下降沿采樣結束的,數據手冊中對DQS的下降沿與clk有一個建立時間和保持時間的約束要求的目的原來是這樣。
3、SSTL
SSTL(Stub Series Terminated Logic)接口標準也是JEDEC所認可的標準之一。該標準專門針對高速內存(特別是SDRAM)接口。SSTL規定了開關特點和特殊的端接方案。
SSTL標準規定了IC供電,IO的DC和AC輸入輸出門限,差分信號門限,Vref電壓等。SSTL_3是3.3V標準,SSTL_2是2.5V標準,SSTL_18是1.8V標準,SSTL_15是1.5V。
SSTL最大的特點是需要終端匹配電阻,也叫終端終結電阻,上拉到VTT(1/2VDDQ)。這個短接電阻最大的作用是為了信號完整性,特別是在1拖多的Fly-by走線拓撲下,還能增強驅動能力。
4、Bank
以下圖為例,一個Bank中包含若干個Array,Array相當于一個表單,選中“行地址”和“列地址”后,表單中的一個單元格就被選中,這個單元格就是一個bit。Bank中的所有Array的行地址是連在一起的,列地址也是。那么選中“行地址”和“列地址”后,將一起選中所有Array的bit。有多少個array,就有多少個bit被選中。以DDR3為例,Data線寬度是32,prefetch是8,那么Array就有32x8=256.內部一次操作會選中256bit的數據。
Bank數量越多,需要的Bank選擇線越多,DDR3有8個bank,需要3個BA信號BA0~2。BA,行地址,列地址共同組成了存儲單元的訪問地址,缺一不可。
5、DDR的容量計算
下圖是DDR3 1Gb的尋址配置,以其中128Mbx8為例說明,其中x8表示IO數據(DQ)位寬度。
我的理解是,這個page size更像是邏輯上的一個頁,并不是一個bank中,一行的所有bit,因為一行的所有bit要考慮prefetch寬度。
上表是JESD-3D中的表格,Row Address和Column Address都是真實需要尋址的地址,其他用途的地址比如A10,A12或者A11等并沒有計算在內。在計算時,不要因為有A13,就認為Column Address就是A0~A13。
6、Burst
Burst字面意思是突發,DDR的訪問都是以突發的方式連續訪問同一行的相鄰幾個單元。進行Brust時,需要有幾個參數:
Burst Length:一次突發訪問幾個列地址。
Read/Write: 是讀還是寫
Starting Column:從哪一列開始Burst
Burst:突發的順序。
下圖是DDR3中突發類型和順序,Burst是通過A12/BC#選擇的。但對于DDR,DDR2和DDR4,不一定就是通過A12/BC#,詳見PIN定義章節。
7、DDR的tRDC,CL,tAC
在實際工作中,Bank地址與相應的行地址是同時發出的,此時這個命令稱之為“行激活”(Row Active)。在此之后,將發送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個命令也是同時發出的,所以一般都會以“讀/寫命令”來表示列尋址。
根據相關的標準,從行有效到讀/寫命令發出之間的間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),我們可以理解為行選通周期。tRCD是DDR的一個重要時序參數,廣義的tRCD以時鐘周期(tCK,Clock Time)數為單位,比如tRCD=3,就代表延遲周期為兩個時鐘周期,具體到確切的時間,則要根據時鐘頻率而定,DDR3-800,tRCD=3,代表30ns的延遲。
接下來,相關的列地址被選中之后,將會觸發數據傳輸,但從存儲單元中輸出到真正出現在內存芯片的 I/O 接口之間還需要一定的時間(數據觸發本身就有延遲,而且還需要進行信號放大),這段時間就是非常著名的 CL(CAS Latency,列地址脈沖選通潛伏期)。CL 的數值與 tRCD 一樣,以時鐘周期數表示。如 DDR3-800,時鐘頻率為 100MHz,時鐘周期為 10ns,如果 CL=2 就意味著 20ns 的潛伏期。不過CL只是針對讀取操作。
由于芯片體積的原因,存儲單元中的電容容量很小,所以信號要經過放大來保證其有效的識別性,這個放大/驅動工作由S-AMP負責,一個存儲體對應一個S- AMP通道。但它要有一個準備時間才能保證信號的發送強度(事前還要進行電壓比較以進行邏輯電平的判斷),因此從數據I/O總線上有數據輸出之前的一個時鐘上升沿開始,數據即已傳向S-AMP,也就是說此時數據已經被觸發,經過一定的驅動時間最終傳向數據I/O總線進行輸出,這段時間我們稱之為 tAC(Access Time from CLK,時鐘觸發后的訪問時間)。
目前內存的讀寫基本都是連續的,因為與CPU交換的數據量以一個Cache Line(即CPU內Cache的存儲單位)的容量為準,一般為64字節。而現有的Rank位寬為8字節(64bit),那么就要一次連續傳輸8次,這就涉及到我們也經常能遇到的突發傳輸的概念。突發(Burst)是指在同一行中相鄰的存儲單元連續進行數據傳輸的方式,連續傳輸的周期數就是突發長度(Burst Lengths,簡稱BL)。
在進行突發傳輸時,只要指定起始列地址與突發長度,內存就會依次地自動對后面相應數量的存儲單元進行讀/寫操作而不再需要控制器連續地提供列地址。這樣,除了第一筆數據的傳輸需要若干個周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個數據只需一個周期的即可獲得。
突發連續讀取模式:只要指定起始列地址與突發長度,后續的尋址與數據的讀取自動進行,而只要控制好兩段突發讀取命令的間隔周期(與BL相同)即可做到連續的突發傳輸。
談到了突發長度時。如果BL=4,那么也就是說一次就傳送4×64bit的數據。但是,如果其中的第二筆數據是不需要的,怎么辦?還都傳輸嗎?為了屏蔽不需要的數據,人們采用了數據掩碼(Data I/O Mask,簡稱DQM)技術。通過DQM,內存可以控制I/O端口取消哪些輸出或輸入的數據。這里需要強調的是,在讀取時,被屏蔽的數據仍然會從存儲體傳出,只是在“掩碼邏輯單元”處被屏蔽。DQM由北橋控制,為了精確屏蔽一個P-Bank位寬中的每個字節,每個DIMM有8個DQM 信號線,每個信號針對一個字節。這樣,對于4bit位寬芯片,兩個芯片共用一個DQM信號線,對于8bit位寬芯片,一個芯片占用一個DQM信號,而對于 16bit位寬芯片,則需要兩個DQM引腳。
在數據讀取完之后,為了騰出讀出放大器以供同一Bank內其他行的尋址并傳輸數據,內存芯片將進行預充電的操作來關閉當前工作行。還是以上面那個Bank示意圖為例。當前尋址的存儲單元是B1、R2、C6。如果接下來的尋址命令是B1、R2、C4,則不用預充電,因為讀出放大器正在為這一行服務。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必須要先把R2關閉,才能對R4尋址。從開始關閉現有的工作行,到可以打開新的工作行之間的間隔就是tRP(Row Precharge command Period,行預充電有效周期),單位也是時鐘周期數。
8、ODT
ODT是內建核心的終結電阻,它的功能是讓一些信號在終結電阻處消耗完,防止這些信號在電路上形成反射。換句話說就是在片內設置合適的上下拉電阻,以獲得更好的信號完整性。被ODT校準的信號包括:
DQ, DQS, DQS# and DM for x4 configuration
DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration
DQU, DQL, DQSU, DQSU#, DQSL, DQSL#, DMU and DML for X16 configuration
當一個CPU掛了很多個DDR芯片的時候,他們是共用控制線,地址線的,走線肯定要分叉,如果沒有中端匹配電阻,肯定會產生信號完整性問題。那么如果只有一個DDR芯片的時候,需不需要呢?正常情況下,走線很短,有符合規則,是不需要的。
下圖是DDR中的IO上下拉電阻,RON是DDR的輸出結構的上下拉電阻,RTT是DDR輸入結構的上下拉電阻。這兩個電阻的阻值都是可調的。
下圖是RON的調節,注意這不是ODT的任務,調節是通過寄存器實現。
下圖是RTT的調節,是ODT要做的事情,而且RTT的檔位要多,也是通過寄存器調節的。
注意,DDR3的PIN定義上有一個引腳是ODT,如果ODT=0,DRAM Termination State功能關閉;ODT=1,DRAM Termination State的功能參考寄存器設置。如下是一個真值表。因為DRAM Termination State非常耗電,所以不用的時候最好不要打開。
9、DDR3的ZQ
ZQ信號在DDR3時代開始引入,要求在ZQ引腳放置一個240Ω±1%的高精度電阻到地,注意必須是高精度。而且這個電阻是必須的,不能省略的。進行ODT時,是以這個引腳上的阻值為參考來進行校準的。
校準需要調整內部電阻,以獲得更好的信號完整性,但是內部電阻隨著溫度會有些細微的變化,為了將這個變化糾正回來,就需要一個外部的精確電阻作為參考。詳細來講,就是為RTT和RON提供參考電阻。
10、OCD
OCD 是在 DDR-II 開始加入的新功能,而且這個功能是可選的,有的資料上面又叫離線驅動調整。OCD的主要作用在于調整 I/O 接口端的電壓,來補償上拉與下拉電阻值, 從而調整DQS 與 DQ 之間的同步確保信號的完整與可靠性。調校期間,分別測試 DQS 高電平和 DQ高電平,以及 DQS 低電平和 DQ 高電平的同步情況。
如果不滿足要求,則通過設定突發長度的地址線來傳送上拉 / 下拉電阻等級(加一檔或減一檔),直到測試合格才退出OCD操作,通過OCD操作來減少 DQ 、 DQS的傾斜從而提高信號的完整性及控制電壓來提高信號品質。由于在一般情況下對應用環境穩定程度要求并不太高,只要存在差分DQS時就基本可以保證同步的準確性, 而且OCD的調整對其他操作也有一定影響, 因此OCD功能在普通臺式機上并沒有什么作用,其優點主要體現在對數據完整性非常敏感的服務器等高端產品領域。
DDR3的PIN定義
下面是三星K4B4G0446Q/K4B4G0846Q的PIN定義,每一個都有很詳細的解釋。
以x8的配置為例,如下是其Ball Map。
一對時鐘線CK和CKn
數據線DQ0~DQ7共8位
一對差分對DQS和DQSn
地址線A0~A15,其中,A10和A12有特殊用途
行選中信號RASn
列選中信號CASn
寫使能Wen
片選CSn
Bank選擇BA0~2
一個Reset信號,是DDR3新增的一項重要功能,并為此專門準備了一個引腳。這一引腳將使DDR3的初始化處理變得簡單。當Reset命令有效時,DDR3 內存將停止所有的操作,并切換至最少量活動的狀態,以節約電力。在Reset期間,DDR3內存將關閉內在的大部分功能,所有數據接收與發送器都將關閉,且所有內部的程序裝置將復位,DLL(延遲鎖相環路)與時鐘電路將停止工作,甚至不理睬數據總線上的任何動靜。這樣一來,該功能將使DDR3達到最節省電力的目的。
ZQ和ODT PIN上文已經說明。
DDR的走線規則
DDR的信號線需要分組:
數據線一組(DQ,DQS,DQM),誤差控制在20mil以內;
控制線一組(Address,控制線,時鐘),以時鐘為中心,誤差控制在100mil以內。
-
數據傳輸
+關注
關注
9文章
1952瀏覽量
64850 -
比較器
+關注
關注
14文章
1658瀏覽量
107427 -
DDR
+關注
關注
11文章
715瀏覽量
65525
原文標題:DDR、DDR2、DDR3、DDR4、LPDDR的區別
文章出處:【微信號:gh_a6560e9c41d7,微信公眾號:硬件筆記本】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論