「博文連載」DDR掃盲——single rank與dual-rank

「博文连载」DDR扫盲——single rank与dual-rank

一般來講,一條內存總線的data寬度是64bits,也就是說總線上有64條道,每條道上一次傳送1位數據。

DIMM上的每個內存顆粒,提供4位、8位或者16位數據,來組成這64位數據(data word)。提供4位數據的芯片記作x4,提供8位數據的記作x8(即x4、x8 and x16 Configuration)據此,要組成一個64位的word就需要16片x4的芯片或者8片x8的芯片(沒有x4和x8的芯片混搭的情況)。所以,一條DIMM上一般至少有8顆內存顆粒(x16的用的比較少),排列在DIMM的一面或兩面上。標準的DIMM的每一面有足夠的空間容納第9顆芯片,這第9顆芯片用來存儲4bits或8bits的ECC.

如果1根ECC DIMM的9顆芯片都位於DIMM的同一面,就叫做single-sided(單面)。如果9顆芯片分佈在DIMM的兩面,就叫做double-sided(雙面)。

1根 single-sided x8 ECC DIMM,和1根 double-sided x4 ECC DIMM,產生72bits數據(64bits data+8 bits ECC)。前者單面8顆芯片,後者雙面,每面8顆共16顆芯片。兩者都只用1個片選信號用來激活DIMM上的所有芯片。相反,1根 double-sided x8 DIMM 要求有2個片選信號來激活DIMM上的芯片來訪問72-bit的block.(總結得出,1個片選信號對應72bits data,這樣才能控制72bit的數據齊進齊出,對吧)。

「博文连载」DDR扫盲——single rank与dual-rank

作為對single-sided和double-sided的補充,DIMM還被分為single-rankdouble-rank(也就是我們在內存的lable上經常能看到的1R,2R)。內存的rank的定義,是指在DIMM上通過一部分或者所有的內存顆粒產生的一個64-bit的area或者說block。對ECC DIMM來說,一個內存rank有72個數據位(64 bits data+8 bits ECC).

1根single-rank ECC DIMM (x4 or x8)為了產生72bits的block要動用到它身上所有的內存芯片,這些芯片被同一個片選信號控制。而1根double-rank ECC DIMM可以產生2個block的72bits數據,但需要2個片選信號。這兩個片選信號是交錯的,因此兩組芯片(被同一片選信號控制的芯片為1組)不用爭搶內存總線。

另外還有quad-rank的DIMM,由4個片選信號控制4組芯片。這4個片選信號也是交錯的。(4R的DIMM一般用在server上面)。(single rank的DIMM與double-rank的DIMM在實際使用中相比較,1R的有優點。有些平臺對內存的支持,不僅僅在內存容量上有限制,還在rank上也有限制。像Intel的E7320和E7520就限制在8 rank.平臺雖然一共有8個內存插槽,但是如果用了兩對2GB double-rank的內存,就已經達到了8 rank的上限(2對,共4根內存,每根有兩個rank)。這時,縱使還有4個內存插槽空著,也不能在往上升級,這才只有8GB的內存在使用。如果,換成4對2GB single-rank的內存,同樣是達到8 rank的上限,可是內存容量卻達到了16GB。差距還是很大的哦!)

芯片組把每個rank當作一個在內存總線上的electrical load。對於較慢速度的總線,load的數量並不對總線纖毫的完整性產生負面影響。但是對於速度較快的總線來說,比如DDR2-667,芯片組可以驅動的load是有限的。為了補償,現在的芯片組提供多個內存總線。

「博文连载」DDR扫盲——single rank与dual-rank「博文连载」DDR扫盲——single rank与dual-rank


分享到:


相關文章: