首先來看看DDR SDRAM interface的基本操作,如下圖(Fig. 1)。Memory controller (MC)送出CLK/CMD/ADD訊號給DRAM,然後MC和DRAM在傳送、或接收數據(Data)。一般DDR SDRAM interface裡的CLK/CMD/ADD訊號是單向的,由MC送往DRAM。而數據訊號(DQS&DQ)則是雙向的,寫入資料時是由MC送往DRAM,讀取資料時是由DRAM送往MC。
Fig. 1: Simple DDR interface.
TDQSS這規格是定義CLK和write DQS (WDQS)的skew,一般是+/-0.25T,也就是WDQS可以超前或落後最多四分之一個週期,如下圖(Fig. 2)。
Fig. 2: TDQSS timing
如下圖(Fig. 3),在DDR2的架構下,訊號CLK/CMD/ADD從MC用balance tree的方式,送到每顆DRAM,所以每顆DRAM 接收到的CLK/ADD/CMD訊號可由PCB layout走線的技巧來得到相同的延遲(delay)。再經由控制DQ/DQS PCB繞線長度,這樣就能符合TDQSS這個規格。
Fig. 3. Balance tree (T type) routing for CLK/CMD/ADD.
Fly-by架構:
由於balance tree架構,其SI (Signal integrity)較差,不利於高速應用。 因此從DDR3開始,CLK/CMD/ADD訊號改採用fly-by架構,而DQS/DQ訊號依然是點對點的架構。如下圖(Fig. 4)的系統,共有四顆DRAM使用fly-by架構,CLK/CMD/ADD訊號從MC送出後,將先抵達第一顆DRAM,再到第二顆、第三顆,最後才抵達第四顆DRAM。fly-by架構,除了SI表現較好,較適合高速應用外,也可節省PCB layout的繞線難度和面積。但fly-by架構的關係,CLK/CMD/ADD訊號到每顆DRAM的時間將會不同,這會造成系統設計上,不容易讓每顆DRAM都符合TDQSS這規格。
Fig. 4. Fly-by routing for CLK/CMD/ADD signals.
Write leveling:
由於fly-by架構的關係,CLK/CMD/ADD訊號到每顆DRAM的時間將會不同,從DDR3開始,DRAM提供write leveling這個功能來解決fly-by造成的skew問題。MC在系統初始設定時,先讓DRAM進入Write leveling的模式,DRAM將會利用接收到的DQS來敲CLK訊號,並由DQ訊號把結果送回MC, 如下簡圖(Fig. 5)。
Fig. 5. DRAM in write leveling mode.
進入Write leveling的模式後,MC持續送出CLK訊號並送出DQS pulse,觀察DRAM送回來的DQ訊號變化,再調整送出的DQS 的時間。反覆操作,直到DQ送回0到1的轉態時,代表CLK和DQS的正緣已經對齊了,這就完成了write leveling校正,就可符合TDQSS規格,如下圖(Fig. 6)。
總結:
Writing leveling是DDR3開始有的新功能。
當系統上的DRAM數量少時,如一顆、兩顆DRAM時,MC也許可不支援writing leveling,有機會在PCB layout的設計,讓系統符合TDQSS規格。但當系統上的DRAM數量多時,如8顆DRAM,那MC就要支援writing leveling功能來滿足TDQSS規格了。
延伸閱讀:
Reference:
Reference:
- DDR2 JESD79-2F, Nov. 2009
- DDR3 JESD79-3F, Jul. 2012
- DDR4 JESD79-4B, Jun. 2017
- LPDDR2, JESD209-2F, June 2013.
- LPDDR3 JESD209-3C, Aug. 2015
- LPDDR4 JESD209-4C, Nov. 2019
- LPDDR4X JESD209-4-1, Mar. 2017
沒有留言:
張貼留言