作者:一博科技
( F: |; C J) _7 B; J5 ^# _+ N: @. [1 |! H4 }
在上一篇的問題里面問到了DDRX相對于前一代來說的關(guān)鍵技術(shù)突破在哪里,雖然沒有人回答得完全正確,但這個(gè)也是很正常的,因?yàn)橥ㄟ^幾句話要想說清楚也確實(shí)是不容易的,所以還是通過文章來把這些關(guān)鍵技術(shù)再給大家介紹一下。
; ]5 t# U. j* g8 j
. U( [4 X, s) s H% Q0 k! {9 H差分時(shí)鐘技術(shù)
" }) }6 h R4 l1 a 差分時(shí)鐘是DDR的一個(gè)重要且必要的設(shè)計(jì),但大家對CK#(CKN)的作用認(rèn)識很少,很多人理解為第二個(gè)觸發(fā)時(shí)鐘,其實(shí)它的真實(shí)作用是起到觸發(fā)時(shí)鐘校準(zhǔn)的作用。
/ y# C% G: k. ^; F) u2 o
2 j/ p7 e* S: k3 L' _; g由于數(shù)據(jù)是在CK的上下沿觸發(fā),造成傳輸周期縮短了一半,因此必須要保證傳輸周期的穩(wěn)定以確保數(shù)據(jù)的正確傳輸,這就要求CK的上下沿間距要有精確的控制。但因?yàn)闇囟取㈦娮栊阅艿母淖兊仍,CK上下沿間距可能發(fā)生變化,此時(shí)與其反相的CK#(CKN)就起到糾正的作用(CK上升快下降慢,CK#則是上升慢下降快),如下圖一所示。
. R) T" x0 ~ H9 f
1 a+ z( G7 |% a( ^圖一 差分時(shí)鐘示意圖
& U) }4 }. W9 J3 D/ Z. P數(shù)據(jù)選取脈沖(DQS)
# y: y, c" ^4 O4 m3 D* [/ d就像時(shí)鐘信號一樣,DQS也是DDR中的重要功能,它的功能主要用來在一個(gè)時(shí)鐘周期內(nèi)準(zhǔn)確的區(qū)分出每個(gè)傳輸周期,并便于接收方準(zhǔn)確接收數(shù)據(jù)。每一顆8bit DRAM芯片都有一個(gè)DQS信號線,它是雙向的,在寫入時(shí)它用來傳送由主控芯片發(fā)來的DQS信號,讀取時(shí),則由DRAM芯片生成DQS向主控發(fā)送。完全可以說,它就是數(shù)據(jù)的同步信號。
8 Y" l2 G6 H. r$ t% a* f
( k* N' Q$ h0 f- v) V( G3 {在讀取時(shí),DQS與數(shù)據(jù)信號同時(shí)生成(也是在CK與CK#的交叉點(diǎn))。而DDR內(nèi)存中的CL也就是從CAS發(fā)出到DQS生成的間隔,數(shù)據(jù)真正出現(xiàn)在數(shù)據(jù)I/O總線上相對于DQS觸發(fā)的時(shí)間間隔被稱為tAC。實(shí)際上,DQS生成時(shí),芯片內(nèi)部的預(yù)取已經(jīng)完畢了,由于預(yù)取的原因,實(shí)際的數(shù)據(jù)傳出可能會提前于DQS發(fā)生(數(shù)據(jù)提前于DQS傳出)。由于是并行傳輸,DDR內(nèi)存對tAC也有一定的要求,對于DDR266,tAC的允許范圍是±0.75ns,對于DDR333,則是±0.7ns,其中CL里包含了一段DQS的導(dǎo)入期。- X; {1 Y; X5 s+ f
# p% ]. h& N% d! J$ I8 ]& t/ dDQS 在讀取時(shí)與數(shù)據(jù)同步傳輸,那么接收時(shí)也是以DQS的上下沿為準(zhǔn)嗎?不,如果以DQS的上下沿區(qū)分?jǐn)?shù)據(jù)周期的危險(xiǎn)很大。由于芯片有預(yù)取的操作,所以輸出時(shí)的同步很難控制,只能限制在一定的時(shí)間范圍內(nèi),數(shù)據(jù)在各I/O端口的出現(xiàn)時(shí)間可能有快有慢,會與DQS有一定的間隔,這也就是為什么要有一個(gè)tAC規(guī)定的原因。而在接收方,一切必須保證同步接收,不能有tAC之類的偏差。這樣在寫入時(shí),DRAM芯片不再自己生成DQS,而以發(fā)送方傳來的DQS為基準(zhǔn),并相應(yīng)延后一定的時(shí)間,在DQS的中部為數(shù)據(jù)周期的選取分割點(diǎn)(在讀取時(shí)分割點(diǎn)就是上下沿),從這里分隔開兩個(gè)傳輸周期。這樣做的好處是,由于各數(shù)據(jù)信號都會有一個(gè)邏輯電平保持周期,即使發(fā)送時(shí)不同步,在DQS上下沿時(shí)都處于保持周期中,此時(shí)數(shù)據(jù)接收觸發(fā)的準(zhǔn)確性無疑是最高的,如下圖二所示。
" x) o |- }0 i5 a7 h, d # u1 A ^# a* X1 y ]
% i" H& u- s$ R, v$ V
$ H* U3 P2 _1 O4 V! O圖二 數(shù)據(jù)時(shí)序 2 ]3 ^) M, m& O! F: c7 l
數(shù)據(jù)掩碼技術(shù)(DQM)
4 Q* _) P/ w" @* x* a A不是DDR所特有的,但對于DDR來說也是比較重要的技術(shù),所以一并介紹下。
' A; C* S0 H _# R" V4 M1 x9 a/ M% {
為了屏蔽不需要的數(shù)據(jù),人們采用了數(shù)據(jù)掩碼(Data I/O Mask,簡稱DQM)技術(shù)。通過DQM,內(nèi)存可以控制I/O端口取消哪些輸出或輸入的數(shù)據(jù)。這里需要強(qiáng)調(diào)的是,在讀取時(shí),被屏蔽的數(shù)據(jù)仍然會從存儲體傳出,只是在“掩碼邏輯單元”處被屏蔽。 $ I# D4 V5 [& c' H3 \/ r& }
+ S9 D" F) B6 s6 z
DQM由主控芯片控制,為了精確屏蔽一個(gè)P-Bank位寬中的每個(gè)字節(jié),每個(gè)64bit位寬的數(shù)據(jù)中有8個(gè)DQM信號線,每個(gè)信號針對一個(gè)字節(jié)。這樣,對于4bit位寬芯片,兩個(gè)芯片共用一個(gè)DQM 信號線,對于8bit位寬芯片,一個(gè)芯片占用一個(gè)DQM信號,而對于16bit位寬芯片,則需要兩個(gè)DQM引腳。SDRAM 官方規(guī)定,在讀取時(shí)DQM發(fā)出兩個(gè)時(shí)鐘周期后生效,而在寫入時(shí),DQM與寫入命令一樣是立即生效,如下圖三和四分別顯示讀取和寫入時(shí)突發(fā)周期的第二筆數(shù)據(jù)被取消。
# J5 g! X5 W% u% b! d# v$ n0 U; Q$ y; ?/ {7 Q1 \7 l' s4 I
: v- R/ T! P2 _
圖三 讀取時(shí)數(shù)據(jù)掩碼操作- v' k/ q) K; l" u! G1 {
& i1 j, i- K1 d) G( [, k/ n
圖四 寫入時(shí)數(shù)據(jù)掩碼操作 $ l) ?. u8 b! z8 m( j- B+ Y
所以DQM信號的作用就是對于突發(fā)寫入,如果其中有不想存入的數(shù)據(jù),就可以運(yùn)用DQM信號進(jìn)行屏蔽。DQM信號和數(shù)據(jù)信號同時(shí)發(fā)出,接收方在DQS的上升與下降沿來判斷DQM的狀態(tài),如果DQM為高電平,那么之前從DQS中部選取的數(shù)據(jù)就被屏蔽了。
1 r8 w8 @& E! I0 c; {! L
: H( c; K# l7 ]" H5 A2 e4 }' d' w有人可能會覺得,DQM是輸入信號,意味著DRAM芯片不能發(fā)出DQM信號給主控芯片作為屏蔽讀取數(shù)據(jù)的參考。其實(shí),該讀哪個(gè)數(shù)據(jù)也是由主控芯片決定的,所以DRAM芯片也無需參與主控芯片的工作,哪個(gè)數(shù)據(jù)是有用的就留給主控芯片自己去選擇。
: n7 N' E/ B B# L9 L! H$ I( H6 F |