內(nèi)存條DIMM
在80286時代,內(nèi)存顆粒(Chip)是直接插在主板上的,叫做DIP(Dual In-line Package)。到了80386時代,換成1片焊有內(nèi)存顆粒的電路板,叫做SIMM(Single-Inline Memory Module)。由陣腳形態(tài)變化成電路板帶來了很多好處:模塊化,安裝便利等等,由此DIY市場才有可能產(chǎn)生。當時SIMM的位寬是32bit,即一個周期讀取4個字節(jié),到了奔騰時,位寬變?yōu)?4bit,即8個字節(jié),于是SIMM就順勢變?yōu)镈IMM(Double-Inline Memory Module)。這種形態(tài)一直延續(xù)至今,也是內(nèi)存條的基本形態(tài)。
說到這里,小張著急了:”這和我的內(nèi)存有啥關(guān)系?“。當然有關(guān)系,就是和10600S的S有關(guān),現(xiàn)在DIMM分為很多種:
RDIMM: 全稱(Registered DIMM),寄存型模組,主要用在服務器上,為了增加內(nèi)存的容量和穩(wěn)定性分有ECC和無ECC兩種,但市場上幾乎都是ECC的。
UDIMM:全稱(Unbuffered DIMM),無緩沖型模組,這是我們平時所用到的標準臺式電腦DIMM,分有ECC和無ECC兩種,一般是無ECC的。
SO-DIMM:全稱(Small Outline DIMM),小外型DIMM,筆記本電腦中所使用的DIMM,分ECC和無ECC兩種。
Mini-DIMM:DDR2時代新出現(xiàn)的模組類型,它是Registered DIMM的縮小版本,用于刀片式服務器等對體積要求苛刻的高端領(lǐng)域。
一般內(nèi)存長度 133.35mm,SO-DIMM為了適應筆記本內(nèi)狹小的空間,縮短為67.6mm而且一般為側(cè)式插入。高度也有些變種,一般的內(nèi)存條高度為30mm,VLP(Very Low Profile)降低為18.3mm,而ULP(Ultra Low Profile)更是矮化到17.8mm,主要是為了放入1U的刀片服務器中。
大小關(guān)系如下圖:
小張這下知道10600S中S代表了SO-DIMM,看來大小沒錯。不過速度呢?
DDR到DDR4
為了照顧小張的急性子,我就跳過了SDRAM后DDR和Rambus/RDRAM爭天下的故事。DDR SDRAM全稱為Double Data Rate SDRAM,中文名為“雙倍數(shù)據(jù)流SDRAM”。DDR SDRAM在原有的SDRAM的基礎上改進而來。也正因為如此,DDR能夠憑借著轉(zhuǎn)產(chǎn)成本優(yōu)勢來打敗昔日的對手RDRAM,成為當今的主流。顧名思義,和原本的SDRAM相比,DDR SDRAM一個時鐘周期要傳輸兩次數(shù)據(jù):
從DDR到DDR4主要的區(qū)別是在于傳輸速率的不同,隨著時鐘周期的不斷降低,傳輸率也不斷提高。還有電壓也越來越低。有趣的是命名規(guī)則,大部分臺式機DIMM廠商都會標注DDRx-yyy,x代表第幾代,yyy代表數(shù)據(jù)傳輸率。而大部分的SO-DIMM和RDIMM等則標注PCx-zzzz,x還代表第幾代,zzzz則代表最大帶寬。因為DDR位寬為64位,8個字節(jié),所以zzzz=yyy * 8,而yyy又是時鐘的兩倍。下面這張表是主要的各代DDR內(nèi)存的速度:
所以小張的內(nèi)存條上的PC3-10600S代表DDR3,1333MHz的SO-DIMM。小張又問,那2R*8啥意思呢?
RANK和BANK
其實從外觀上就可以看出來小張的內(nèi)存條由很多海力士的內(nèi)存顆粒組成。從內(nèi)存控制器到內(nèi)存顆粒內(nèi)部邏輯,籠統(tǒng)上講從大到小為:channel>DIMM>rank>chip>bank>row/column,如下圖:
一個現(xiàn)實的例子是:
在這個例子中,一個i7 CPU支持兩個Channel(雙通道),每個Channel上可以插倆個DIMM,而每個DIMM由兩個rank構(gòu)成,8個chip組成一個rank。由于現(xiàn)在多數(shù)內(nèi)存顆粒的位寬是8bit,而CPU帶寬是64bit,所以經(jīng)常是8個顆粒可以組成一個rank。所以小張的內(nèi)存條2R X 8的意思是由2個rank組成,每個rank八個內(nèi)存顆粒。由于整個內(nèi)存是4GB,我們可以算出單個內(nèi)存顆粒是256MB。
首先RDIMM 16GB 2R*8是什么意思
16GB代表總的容量是16GB,
2R代表一共有2Rank的總線寬度,不考慮ECC的時候,一個Rank是64位,
8代表一個Chip的位寬是X8,
總結(jié):一個Rank包含8個X8的Chip,那么2R就說明一共16個Chip;假設每個Chip都是單die的,那么Chip的大小就是1GB的。
其次RDIMM 16GB 2R*4是什么意思
16GB代表總的容量是16GB
2R代表一共64*2的總線寬度
4代表Chip的位寬是X4,
總結(jié):假設一個Chip中只有一個die那么Chip的數(shù)量就是2*64/4=32顆,每一顆的容量就是16GB/32=0.5GB,也就是4Gb;
再次RDIMM 32GB 2R*4是什么意思
32GB的容量
2*64的寬度
X4的位寬,
總結(jié):顆粒=2*64/4=32顆,那么每一顆的容量就是1GB,也就是8Gb;
再次LRDIMM 64GB 4R*4 是什么意思
64GB的容量
4*64的寬度
X4的位寬,
總結(jié)代表顆粒是4*64/4=64顆,但是其實DIMM最大只能放32個Chip,每個Chip上有兩個Die,每個Die是1GB;
最后3DS LRDIMM 64GB 4R*4是什么意思
64GB的容量
4*64的寬度
X4的位寬,Die一共是64顆,每顆1GB,一個Chip兩個Die
問題來了3DS代表3維堆疊,如果一個Chip中可以放4個Die那么這個DIMM怎么命名呢
4個Die,一個Die1GB,一個Chip是4GB,那么32個Chip最大是128GB,一個die的位寬是X4的話,32Chip*4Die*X4位寬/64=8Rank,因此可以稱為是3DS LRDIMM 128GB 8R*4或者3DS RDIMM 128GB 8R*4
最后一個問題RDIMM代表寄存器DIMM就是將地址和控制總線進行緩存的DIMM,這樣信號更好一些,LRDIMM比前者更進一步,將數(shù)據(jù)總線也進行緩存,進一步提高可靠性。
內(nèi)存顆粒chip
DDR4 協(xié)議標準中規(guī)定了幾種 DRAM 顆粒的容量規(guī)格,這些規(guī)格包含哪些方面?本文將討論這個話題。
DRAM 容量規(guī)格
DDR4 (下文可能混合使用 DDR4/DDR/DRAM, 皆為同義)顆粒在容量上有四種規(guī)格,分別為 2Gb、4Gb、8Gb 以及 16Gb。
DRAM 顆粒的容量 = 地址數(shù)量 x 位寬
每種顆粒容量規(guī)格,提供了 3 種地址數(shù)量和位寬的組合,以 2Gb 顆粒為例:
容量 (Gb) | 位寬 (b) | 選址數(shù)量 |
---|---|---|
2 | 4 | 512M |
2 | 8 | 256M |
2 | 16 | 128M |
提供多種組合目的是為了提供靈活的配置方案。因為一個嵌入式系統(tǒng)的 DRAM 位寬一般為 32 或者 64 比特(在 PC 上有更大的位寬),需要拼接多片 DDR4 顆粒才能提供這么多比特,那么使用不同位寬的 DDR 顆粒就會有不同拼接方案。
以 32 比特位寬,嵌入式系統(tǒng)為例,使用不同位寬的 2Gb 顆粒,有以下幾種組合:
系統(tǒng)位寬 (b) | 系統(tǒng)容量 (Gb) | 2Gb x4 顆粒數(shù)量 | 2Gb x8 顆粒數(shù)量 | 2Gb x16 顆粒數(shù)量 |
---|---|---|---|---|
32 | 16 | 8 | ||
32 | 8 | 4 | ||
32 | 4 | 2 |
一般系統(tǒng)位寬的需求是固定的,而顆粒容量和位寬是一對可調(diào)整的參數(shù),提供不同的系統(tǒng)容量,仍以 32 比特系統(tǒng) DRAM 位寬為例:
2Gb 顆粒 |
4Gb 顆粒 | 8Gb 顆粒 | 16Gb 顆粒 | |||||
---|---|---|---|---|---|---|---|---|
顆粒位寬 (b) | 系統(tǒng)容量(Gb) | 數(shù)量 | 系統(tǒng)容量 (Gb) | 數(shù)量 | 系統(tǒng)容量 (Gb) | 數(shù)量 | 系統(tǒng)容量 (Gb) | 數(shù)量 |
x4 | 16 | 8 | 32 | 8 | 64 | 8 | 128 | 8 |
x8 | 8 | 4 | 16 | 4 | 32 | 4 | 64 | 4 |
x16 | 4 | 2 | 8 | 2 | 16 | 2 | 32 | 2 |
上表中的數(shù)量指的是系統(tǒng)的 DDR 顆粒總數(shù)量。有點與直觀感覺違背的事實是,采用的位寬更大的顆粒,系統(tǒng)的總?cè)萘扛汀?/p>
這是因為相同容量的顆粒,位寬越大,地址數(shù)量也就越少,所以系統(tǒng)位寬固定時,決定系統(tǒng)容量的是顆粒的地址數(shù)量:
系統(tǒng)容量 = 地址數(shù)量 x 系統(tǒng)位寬
接下來我們來看顆粒的地址數(shù)量以及其尋址方式。我們知道 DDR4 的尋址由 COL - ROW* - BANK- BANKGROUP 組成(單個 RANK 時)。
*COL, column, 指 DRAM 內(nèi)部存儲陣列中的列
**ROW, row , 指 DRAM 內(nèi)部存儲陣列中的行
顆粒的列數(shù)量是固定的 1024 列,而行、Bank(BA)、Bank Group (BG) 數(shù)量在不同位寬時則是不同的。
位寬 (b) | 選址數(shù)量(M) | 行數(shù)量 | 列數(shù)量 | BG 數(shù)量 | 每個 BG 中 BA 數(shù)量 |
---|---|---|---|---|---|
4 | 512 | 32768 | 1024 | 4 | 4 |
8 | 256 | 16384 | 1024 | 4 | 4 |
16 | 128 | 16384 | 1024 | 2 | 4 |
地址所屬的行、列、BA 以及 BG 的尋址是通過對應的地址線尋址得到,所以不同位寬的顆粒地址線的數(shù)目也不同。
位寬 (b) | 行地址線數(shù)目 | 列地址線數(shù)目 | BA 地址線數(shù)目 | BG 地址線數(shù)目 |
---|---|---|---|---|
4 | 15 | 10 | 2 | 4 |
8 | 14 | 10 | 2 | 4 |
16 | 14 | 10 | 2 | 2 |
由于行列地址線是分時復用的,以 x4 位寬為例,行列共享 A0-A14 地址線中的 A0-A9,所以 x4 位寬總地址數(shù)量為 15 (A) + 2 (BA) + 2 (BG) = 19。
這里我們看到使用小位寬顆粒雖然能夠拼接更多顆粒,提供更大的系統(tǒng)容量,但是所需要的地址線較 x8 和 x16 的顆粒也更多。這是更大系統(tǒng)容量的代價,或者說是系統(tǒng)容量與地址線數(shù)量的折中考量( trade-off)。
位寬 (b) | 總地址線數(shù)目 | 行地址線 | 列地址線 | BA 地址線 | BG 地址線 |
---|---|---|---|---|---|
4 | 19 | A0-A14 | A0-A9 | BA0-BA1 | BG0-BG1 |
8 | 18 | A0-A13 | A0-A9 | BA0-BA1 | BG0-BG1 |
16 | 17 | A0-A13 | A0-A9 | BA0-BA1 | BG0 |
下面幾張圖都摘自 DDR4 協(xié)議 2.8 節(jié),列出了 DDR4 支持的四種容量顆粒的屬性,從中我們可以發(fā)現(xiàn)幾點:
地址線最多的是 16Gb 容量的 x4 顆粒,使用 A0-A17 地址線。需要注意的是所有 PHY 都會有 A0-A16 (因為 RAS_n 復用為 A16),但有些 PHY 可能不支持 A17。
所有顆粒每個 Bank Group 都有 4 個 Bank
但是,x16 顆粒只支持 2 個 Bank Group,而其他顆粒支持 4 個
x4 顆粒的地址線最多,而 x8 和 x16 顆粒的地址線數(shù)目相同,比 x4 少 1。x8 和 x16 的選址數(shù)目差異體現(xiàn)在 x16 的 Bank Group 少一半
另外值得一提的是頁大?。≒age size),等于一行中的數(shù)據(jù)數(shù)量,直觀來說頁大小與位寬直接相關(guān)。
Page size = 位寬 x 列數(shù)量 = 位寬 x 1K
對于 x4 顆粒,頁大小 = 4b x 1k = 4kb = 512B
順序讀取同頁數(shù)據(jù)時,每次讀取之間是基本無需等待的。而非同頁數(shù)據(jù)之間,則需要按照協(xié)議要求,在兩次讀取之間增加延遲。舉例而言, x16 顆粒上可以無延遲順序讀取 2KB 數(shù)據(jù),但是如果是一個 x8 顆粒,則需要在讀取完 1KB 數(shù)據(jù)后,關(guān)閉當前行并且打開下一行,才能讀取后 1KB 數(shù)據(jù),需要增加的延遲大約在幾十個時鐘周期量級。
最后,我們在前文中使用 4b x 512M 來描述一個 x4 顆粒,這是從顆粒位寬 x 地址數(shù)量的角度出發(fā)。協(xié)議中的稱呼為 512Mb x 4,個人覺得兩種稱呼都可使用吧,筆者自己平時也沒特別在意。
DDP 顆粒
最后討論一種容量比較特別的顆粒,也是最近工作中遇到的。事情是這樣的,客戶提問說 SoC 能不能支持一種 4GB 的 DDR4 顆粒。閱讀完本文的讀者知道,DDR4 最大只有 16Gb(2GB)的顆粒,哪來的單顆 4GB 顆粒?
看了客戶發(fā)來的顆粒 spec (是三星的顆粒)才知道,客戶想使用的是一種特殊封裝的顆粒,DDP(Dual Die Package),在協(xié)議的 2.9 節(jié)有簡略的介紹。
DDP 顆粒顧名思義就是將兩個 x8 Die 封裝在一起,這樣最大能夠提供單顆 32Gb (2 x8 16Gb)的容量。
兩個 Die 的連接方式如下圖所示,它們的 CA 在封裝內(nèi)被堆疊(或者焊接)到一起,往封裝外引出各自的 DQ 和 DQS 引腳。
協(xié)議中提到,除了具體產(chǎn)品手冊的特殊注明外,DDP 顆粒的特性以及時序和普通的 x8 顆粒相同。
DDP 的好處是可以節(jié)省 PCB 的空間和布局布線時的難度,另外,因為兩個 Die 之間的 CA 信號延遲會非常小,筆者覺得或許可以跳過兩個 Die 之間的 write leveling 訓練。
DDP 的劣勢就顯然易見,或許因為額外的封裝成本,價格會相對更高,自然用戶就會比較少,用戶越少,價格也就越昂貴,供貨越得不到保證,半導體行業(yè)典型的惡性循環(huán)就出現(xiàn)了?;谶@些考慮,我們的客戶后來也放棄了這個想法。
審核編輯:湯梓紅
-
電路板
+關(guān)注
關(guān)注
140文章
4968瀏覽量
98210 -
內(nèi)存條
+關(guān)注
關(guān)注
0文章
145瀏覽量
19547 -
DIMM
+關(guān)注
關(guān)注
0文章
26瀏覽量
9584 -
內(nèi)存顆粒
+關(guān)注
關(guān)注
0文章
5瀏覽量
1567
原文標題:解讀內(nèi)存條和內(nèi)存顆粒的標簽
文章出處:【微信號:被硬件攻城的獅子,微信公眾號:被硬件攻城的獅子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論