内存是我們平常接觸最頻繁的計算機硬件之一,内存的大小、多寡和型号和我們計算機、手機等性能密切相關。内存系列計劃通過三篇文章由淺入深介紹内存的軟硬件特性以及與固件的關系。這是第一篇,以一個生活情景給讀者介紹内存的背景知識,為後面打下基礎。
情景
小張有一定的計算機背景知識,最近他在京東上買了兩條DDR3的内存,打算把筆記本升級成8G。可是一拆開包裝到就傻眼了:
4GB看起來很好,兩根剛好8GB。2Rx8是啥,PC3又是啥,10600似乎和他想買的1333的差好遠,後面那串數字又代表什麼呢?
小張找到了我,讓我幫忙給他說說這些字母和數字都代表什麼。我最是好為人師,于是開始了我們今天的介紹。
什麼是DIMM?在80286時代,内存顆粒(Chip)是直接插在主闆上的,叫做DIP(Dual In-line Package)。到了80386時代,換成1片焊有内存顆粒的電路闆,叫做SIMM(Single-Inline Memory Module)。由陣腳形态變化成電路闆帶來了很多好處:模塊化,安裝便利等等,由此DIY市場才有可能産生。當時SIMM的位寬是32bit,即一個周期讀取4個字節,到了奔騰時,位寬變為64bit,即8個字節,于是SIMM就順勢變為DIMM(Double-Inline Memory Module)。這種形态一直延續至今,也是内存條的基本形态。
說到這裡,小張着急了:”這和我的内存有啥關系?“。當然有關系,就是和10600S的S有關,現在DIMM分為很多種:
RDIMM: 全稱(Registered DIMM),寄存型模組,主要用在服務器上,為了增加内存的容量和穩定性分有ECC和無ECC兩種,但市場上幾乎都是ECC的。
UDIMM:全稱(Unbuffered DIMM),無緩沖型模組,這是我們平時所用到的标準台式電腦DIMM,分有ECC和無ECC兩種,一般是無ECC的。
SO-DIMM:全稱(Small Outline DIMM),小外型DIMM,筆記本電腦中所使用的DIMM,分ECC和無ECC兩種。
Mini-DIMM:DDR2時代新出現的模組類型,它是Registered DIMM的縮小版本,用于刀片式服務器等對體積要求苛刻的高端領域。
一般内存長度 133.35mm,SO-DIMM為了适應筆記本内狹小的空間,縮短為67.6mm而且一般為側式插入。高度也有些變種,一般的内存條高度為30mm,VLP(Very Low Profile)降低為18.3mm,而ULP(Ultra Low Profile)更是矮化到17.8mm,主要是為了放入1U的刀片服務器中。
大小關系如下圖:
小張這下知道10600S中S代表了SO-DIMM,看來大小沒錯。不過速度呢?
DDR到DDR4為了照顧小張的急性子,我就跳過了SDRAM後DDR和Rambus/RDRAM争天下的故事。DDR SDRAM全稱為Double Data Rate SDRAM,中文名為“雙倍數據流SDRAM”。DDR SDRAM在原有的SDRAM的基礎上改進而來。也正因為如此,DDR能夠憑借着轉産成本優勢來打敗昔日的對手RDRAM,成為當今的主流。顧名思義,和原本的SDRAM相比,DDR SDRAM一個時鐘周期要傳輸兩次數據:
從DDR到DDR4主要的區别是在于傳輸速率的不同,随着時鐘周期的不斷降低,傳輸率也不斷提高。還有電壓也越來越低。有趣的是命名規則,大部分台式機DIMM廠商都會标注DDRx-yyy,x代表第幾代,yyy代表數據傳輸率。而大部分的SO-DIMM和RDIMM等則标注PCx-zzzz,x還代表第幾代,zzzz則代表最大帶寬。因為DDR位寬為64位,8個字節,所以zzzz=yyy * 8,而yyy又是時鐘的兩倍。下面這張表是主要的各代DDR内存的速度:
所以小張的内存條上的PC3-10600S代表DDR3,1333MHz的SO-DIMM。小張又問,那2R*8啥意思呢?
RANK和BANK其實從外觀上就可以看出來小張的内存條由很多海力士的内存顆粒組成。從内存控制器到内存顆粒内部邏輯,籠統上講從大到小為:Channel>DIMM>rank>chip>bank>row/column,如下圖:
一個現實的例子是:
在這個例子中,一個i7 CPU支持兩個Channel(雙通道),每個Channel上可以插倆個DIMM,而每個DIMM由兩個rank構成,8個chip組成一個rank。由于現在多數内存顆粒的位寬是8bit,而CPU帶寬是64bit,所以經常是8個顆粒可以組成一個rank。所以小張的内存條2R * 8的意思是由2個rank組成,每個rank八個内存顆粒。由于整個内存是4GB,我們可以算出單個内存顆粒是256MB。
後記小張這下放心了,不過他提起看到過不少内存條上都有很多數字标記,如:
這些是什麼呢?其實,這是内存顆粒的時延(Latency)數據,如4-4-4-8, 5-5-5-15, 7-7-7-21, 或9-9-9-24,分别代表 CL-tRCD-tRP-tRAS的數據,越小越好。具體這些都是什麼,就需要更深入的知識了,我們将會在下一篇硬件原理中講到,而且我們還會在UEFI的memory reference code(MRC)部分再詳細深入說明這些參數的具體使用。
如果你和小張一樣意猶未盡,在下一篇文章之前大家可以思考下面幾個問題:
1.每一代内存條寬度都一樣,會不會插錯呢?
2.從前面各代内存速度表可以看出,每一代和前一代帶寬都有部分重複,這是為什麼?
3.前一代和下一代如果帶寬一樣,那個performance更好呢?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!