電腦內(nèi)存實(shí)用基礎(chǔ)知識(shí)
內(nèi)存(Memory)也被稱(chēng)為內(nèi)存儲(chǔ)器,其作用是用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤(pán)等外部存儲(chǔ)器交換的數(shù)據(jù)。計(jì)算機(jī)中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的,因此內(nèi)存的性能對(duì)計(jì)算機(jī)的影響非常大。下面就讓小編帶你去看看電腦內(nèi)存實(shí)用基礎(chǔ)知識(shí),希望能幫助到大家!
你不知道的內(nèi)存知識(shí)
一、CPU與內(nèi)存
先鋪墊幾個(gè)概念,以免后面混亂:
Socket或Processor: 指一個(gè)物理CPU芯片,盒裝還是散裝的。上面有很多針腳,直接安裝在主板上。
Core : 指在Processor里封裝一個(gè)CPU核心,每個(gè)Core都是完全獨(dú)立的計(jì)算單元,我們平時(shí)說(shuō)的4核心CPU,指的就是Processor里面封裝了4個(gè)Core。
HT超線程:目前Intel與AMD的Processor大多支持在一個(gè)Core里并行執(zhí)行兩個(gè)線程,此時(shí)從操作系統(tǒng)看就相當(dāng)于兩個(gè)邏輯CPU(Logical Processor)。大多數(shù)情況下,我們程序里提到的CPU概念就是指的這個(gè)Logical Processor。
咱們先來(lái)看幾個(gè)問(wèn)題:
1、CPU可以直接操作內(nèi)存嗎?
可能一大部分老鐵肯定會(huì)說(shuō):肯定的啊,不能操作內(nèi)存怎么讀取數(shù)據(jù)呢。
其實(shí)如果我們用這聰明的大腦想一想,咱們的臺(tái)式主機(jī)大家肯定都玩過(guò)。上面CPU和內(nèi)存條是兩個(gè)完全獨(dú)立的硬件啊,而且CPU也沒(méi)有任何直接插槽用于掛載內(nèi)存條的。
也就是說(shuō),CPU和內(nèi)存條是物理隔離的,CPU并不能直接的訪問(wèn)內(nèi)存條,而是需要借助主板上的其他硬件間接的來(lái)實(shí)現(xiàn)訪問(wèn)。
2、CPU的運(yùn)算速度和內(nèi)存條的訪問(wèn)速度差距有多大?
呵呵呵,這么說(shuō)吧,就是一個(gè)鴻溝啊,CPU的運(yùn)算速度與內(nèi)存訪問(wèn)速度之間的差距是100倍。
而由于CPU與內(nèi)存之間的速度差存在N個(gè)數(shù)量級(jí)的巨大鴻溝,于是CPU最親密的小伙伴Cache 閃亮登場(chǎng)了。與DRAM 家族的內(nèi)存(Memory)不同,Cache來(lái)自SRAM家族。
而DRAM與SRAM的最簡(jiǎn)單區(qū)別就是后者特別快,容量特別小,電路結(jié)構(gòu)非常復(fù)雜,造價(jià)特別高。
而Cache與主內(nèi)存之間的巨大性能差距主要還是工作原理與結(jié)構(gòu)不同:
DRAM存儲(chǔ)一位數(shù)據(jù)只需要一個(gè)電容加一個(gè)晶體管,SRAM則需要6個(gè)晶體管。
由于DRAM的數(shù)據(jù)其實(shí)是被保存在電容里的,所以每次讀寫(xiě)過(guò)程中的充放電環(huán)節(jié)也導(dǎo)致了DRAM讀寫(xiě)數(shù)據(jù)有一個(gè)延時(shí)的問(wèn)題,這個(gè)延時(shí)通常為十幾到幾十ns。
內(nèi)存可以被看作一個(gè)二維數(shù)組,每個(gè)存儲(chǔ)單元都有其行地址和列地址。
由于SRAM的容量很小,所以存儲(chǔ)單元的地址(行與列)比較短,可以被一次性傳輸?shù)絊RAM中。DRAM則需要分別傳送行與列的地址。
SRAM的頻率基本與CPU的頻率保持一致,而DRAM的頻率直到DDR4以后才開(kāi)始接近CPU的頻率。
3、Cache 是怎么使用的?
其實(shí)Cache 是被集成到CPU內(nèi)部的一個(gè)存儲(chǔ)單元(平時(shí)也被我們稱(chēng)為高速緩存),由于其造價(jià)昂貴,并且存儲(chǔ)容量遠(yuǎn)遠(yuǎn)不能滿(mǎn)足CPU大量、高速存取的需求。
所以出于對(duì)成本的控制,在現(xiàn)實(shí)中往往采用金字塔形的多級(jí)Cache體系來(lái)實(shí)現(xiàn)最佳緩存效果。
于是出現(xiàn)了,一級(jí)Cache(L1 Cache)、二級(jí)Cache(L2 Cache)及三級(jí)Cache(L3 Cache)。每一級(jí)都犧牲了部分性能指標(biāo)來(lái)?yè)Q取更大的容量,目的也是存儲(chǔ)更多的熱點(diǎn)數(shù)據(jù)。
以Intel家族Intel SandyBridge架構(gòu)的CPU為例:
L1 Cache容量為64KB,訪問(wèn)速度為1ns左右
L2Cache容量擴(kuò)大4倍,達(dá)到256KB,訪問(wèn)速度則降低到3ns左右
L3 Cache的容量則擴(kuò)大512倍,達(dá)到32MB,訪問(wèn)速度也下降到12ns左右(也比訪問(wèn)主存的105ns(40ns+65ns)快一個(gè)數(shù)量級(jí))
L3 Cache是被一個(gè)Socket上的所有CPU Core共享的,其實(shí)最早的L3 Cache被應(yīng)用在AMD發(fā)布的K6-III處理器上,當(dāng)時(shí)的L3 Cache受限于制造工藝,并沒(méi)有被集成到CPU內(nèi)部,而是被集成在主板上,如圖:
從上圖我們也能看出來(lái),CPU如果要訪問(wèn)內(nèi)存中的數(shù)據(jù),則需要經(jīng)過(guò)L1、L2、L3三道關(guān)卡,就是這三個(gè)Cache中都沒(méi)有需要的數(shù)據(jù),才會(huì)從主內(nèi)存中直接進(jìn)行讀取。
最后我們來(lái)看下Intel Sandy Bridge CPU的架構(gòu)圖:
二、多核CPU與內(nèi)存共享的問(wèn)題
問(wèn)題:Cache一致性問(wèn)題
多核CPU共享內(nèi)存的問(wèn)題也被稱(chēng)為Cache一致性問(wèn)題。
其實(shí)就是多個(gè)CPU核心看到的Cache數(shù)據(jù)應(yīng)該是一致的,在某個(gè)數(shù)據(jù)被某個(gè)CPU寫(xiě)入自己的Cache(L1 Cache)以后,其他CPU都應(yīng)該能看到相同的Cache數(shù)據(jù)。
如果在自己的Cache中有舊數(shù)據(jù),則拋棄舊數(shù)據(jù)。
考慮到每個(gè)CPU都有自己內(nèi)部獨(dú)占的Cache,所以這個(gè)問(wèn)題與分布式Cache保持同步的問(wèn)題是同一類(lèi)問(wèn)題
目前業(yè)界公認(rèn)的解決一致性問(wèn)題的最佳方案就是Intel 的MESI協(xié)議了,大多數(shù)SMP架構(gòu)都采用了這一方案。
解決方案:MESI
不知道大家還記得Cache Line 嗎,就是我們常說(shuō)的高速緩存中緩存條目里面的那個(gè)緩存行。
其實(shí)仔細(xì)想想,在進(jìn)行I/O操作從來(lái)不以字節(jié)為單位,而是以塊為單位,有兩個(gè)原因:
I/O 操作比較慢,所以讀一個(gè)字節(jié)與讀連續(xù)N個(gè)字節(jié)的花費(fèi)時(shí)間基本相同
數(shù)據(jù)訪問(wèn)一般都具有空間連續(xù)的特征
所以CPU針對(duì)Memory的讀寫(xiě)也采用了類(lèi)似于I/O塊的方式
實(shí)際上,CPU Cache(高速緩存)里最小的存儲(chǔ)單元就是Cache line(緩存行),Intel CPU 的一個(gè)Cache Line存儲(chǔ)64個(gè)字節(jié)。
每一級(jí)Cache都被劃分為很多組Cache Line,典型的情況就是4條Cache Line為一組。
當(dāng)Cache從Memory中加載數(shù)據(jù)時(shí),一次加載一條Cache Line的數(shù)據(jù)
如圖我們可以看到,每個(gè)Cache Line 頭部都有兩個(gè)Bit來(lái)標(biāo)識(shí)自身狀態(tài),總共四種:
M(Modified):修改狀態(tài),在其他CPU上沒(méi)有數(shù)據(jù)的副本,并且在本CPU上被修改過(guò),與存儲(chǔ)器中的數(shù)據(jù)不一致,最終必然會(huì)引發(fā)系統(tǒng)總線的寫(xiě)指令,將Cache Line中的數(shù)據(jù)寫(xiě)回Memory中。
E(E__clusive):獨(dú)占狀態(tài),表示當(dāng)前Cache Line中的數(shù)據(jù)與Memory中的數(shù)據(jù)一致,此外,在其他CPU上沒(méi)有數(shù)據(jù)的副本。
S(Shared):共享狀態(tài),表示Cache Line中的數(shù)據(jù)與Memory中的數(shù)據(jù)一致,而且當(dāng)前CPU至少在其他某個(gè)CPU中有副本。
I(Invalid):無(wú)效狀態(tài),在當(dāng)前Cache Line中沒(méi)有有效數(shù)據(jù)或者該Cache Line數(shù)據(jù)已經(jīng)失效,不能再用;當(dāng)Cache要加載新數(shù)據(jù)時(shí),優(yōu)先選擇此狀態(tài)的Cache Line,此外,Cache Line的初始狀態(tài)也是I狀態(tài)
在對(duì)Cache(高速緩存)的讀寫(xiě)操作引發(fā)了Cache Line(緩存行)的狀態(tài)變化,因而可以將其理解為一種狀態(tài)機(jī)模型。
但MESI的復(fù)雜和獨(dú)特之處在于狀態(tài)有兩種視角:
一種是當(dāng)前讀寫(xiě)操作(Local Read/Write)所在CPU看到的自身的Cache Line狀態(tài)及其他CPU上對(duì)應(yīng)的Cache Line狀態(tài)
另一種是一個(gè)CPU上的Cache Line狀態(tài)的變遷會(huì)導(dǎo)致其他CPU上對(duì)應(yīng)的Cache Line狀態(tài)變遷。
如下所示為MESI協(xié)議的狀態(tài)轉(zhuǎn)換圖:
具體MESI的實(shí)現(xiàn)過(guò)程可以看我另一篇文章:看懂這篇,才能說(shuō)了解并發(fā)底層技術(shù)
深入理解不一致性?xún)?nèi)存
MESI協(xié)議解決了多核CPU下的Cache一致性問(wèn)題,因而成為SMP架構(gòu)的唯一選擇,而SMP架構(gòu)近幾年迅速在PC領(lǐng)域(__86)發(fā)展。
SMP架構(gòu)是一種平行的架構(gòu),所有CPU Core都被連接到一個(gè)內(nèi)存總線上,它們平等訪問(wèn)內(nèi)存,同時(shí)整個(gè)內(nèi)存是統(tǒng)一結(jié)構(gòu)、統(tǒng)一尋址的。
如下所示給出了SMP架構(gòu)的示意圖:
隨著CPU核心數(shù)量的不斷增加,SMP架構(gòu)也暴露出天生的短板,其根本瓶頸是共享內(nèi)存總線的帶寬無(wú)法滿(mǎn)足CPU數(shù)量的增加,同時(shí),在一條“馬路”上通行的“車(chē)”多了,難免會(huì)陷入“擁堵模式”。
不知道你是否聽(tīng)說(shuō)過(guò)總線風(fēng)暴,可以看下:總線風(fēng)暴
在這種情況下,分布式解決方案應(yīng)運(yùn)而生,系統(tǒng)的內(nèi)存與CPU進(jìn)行分割并捆綁在一起,形成多個(gè)獨(dú)立的子系統(tǒng),這些子系統(tǒng)之間高速互聯(lián),這就是NUMA(None Uniform Memory Architecture)架構(gòu),如下圖所示。
可以看出,NUMA架構(gòu)中的內(nèi)存被分割為獨(dú)立的幾塊,被不同CPU私有化了。
因此在CPU訪問(wèn)自家內(nèi)存的時(shí)候會(huì)非???,在訪問(wèn)其他CPU控制的內(nèi)存數(shù)據(jù)時(shí),則需要通過(guò)內(nèi)部互聯(lián)通道訪問(wèn)。
NUMA架構(gòu)的優(yōu)點(diǎn)就是其伸縮性,就算擴(kuò)展到幾百個(gè)CPU也不會(huì)導(dǎo)致性嚴(yán)重的下降。
NUMA技術(shù)的特點(diǎn)
在NUMA架構(gòu)中引入了一個(gè)重要的新名詞——Node
一個(gè)Node由一個(gè)或者多個(gè)Socket Socket組成,即物理上的一個(gè)或多個(gè)CPU芯片組成一個(gè)邏輯上的Node
我們來(lái)看一個(gè)Dell PowerEdge系列服務(wù)器的NUMA的架構(gòu)圖:
從上圖可以看出其特點(diǎn):
4個(gè)處理器形成4個(gè)獨(dú)立的NUMA Node由于每個(gè)Node都為8 Core,支持雙線程
每個(gè)Node里的Logic CPU數(shù)量都為16個(gè),占每個(gè)Node分配系統(tǒng)總內(nèi)存的1/4
每個(gè)Node之間都通過(guò)Intel QPI(QuickPath Interconnect)技術(shù)形成了點(diǎn)到點(diǎn)的全互聯(lián)處理器系統(tǒng)
NUMA這種基于點(diǎn)到點(diǎn)的全互聯(lián)處理器系統(tǒng)與傳統(tǒng)的基于共享總線的處理器系統(tǒng)的SMP還是有巨大差異的。
在這種情況下無(wú)法通過(guò)嗅探總線的方式來(lái)實(shí)現(xiàn)Cache一致性,因此為了實(shí)現(xiàn)NUMA架構(gòu)下的Cache一致性,Intel引入了MESI協(xié)議的一個(gè)擴(kuò)展協(xié)議——MESIF
針對(duì)NUMA的支持
NUMA架構(gòu)打破了傳統(tǒng)的“全局內(nèi)存”概念,目前還沒(méi)有任意一種編程語(yǔ)言從內(nèi)存模型上支持它,當(dāng)前也很難開(kāi)發(fā)適應(yīng)NUMA的軟件。
Java在支持NUMA的系統(tǒng)里,可以開(kāi)啟基于NUMA的內(nèi)存分配方案,使得當(dāng)前線程所需的內(nèi)存從對(duì)應(yīng)的Node上分配,從而大大加快對(duì)象的創(chuàng)建過(guò)程
在大數(shù)據(jù)領(lǐng)域,NUMA系統(tǒng)正發(fā)揮著越來(lái)越強(qiáng)大的作用,SAP的高端大數(shù)據(jù)系統(tǒng)HANA被SGI在其UV NUMA Systems上實(shí)現(xiàn)了良好的水平擴(kuò)展
在云計(jì)算與虛擬化方面,OpenStack與VMware已經(jīng)支持基于NUMA技術(shù)的虛機(jī)分配能力,使得不同的虛機(jī)運(yùn)行在不同的Core上,同時(shí)虛機(jī)的內(nèi)存不會(huì)跨越多個(gè)NUMA Node
內(nèi)存的一些簡(jiǎn)單入門(mén)知識(shí)
首先是大家都知道的,也是百度百科的資料,內(nèi)存是什么?
內(nèi)存條是連接CPU 和其他設(shè)備的通道,起到緩沖和數(shù)據(jù)交換作用。 當(dāng)CPU在工作時(shí),需要從硬盤(pán)等外部存儲(chǔ)器上讀取數(shù)據(jù),但由于硬盤(pán)這個(gè)“倉(cāng)庫(kù)”太大,加上離CPU也很“遠(yuǎn)”,運(yùn)輸“原料”數(shù)據(jù)的速度就比較慢,導(dǎo)致CPU的工作效率大打折扣!為了解決這個(gè)問(wèn)題,人們便在CPU與外部存儲(chǔ)器之間,建了一個(gè)“小倉(cāng)庫(kù)”——內(nèi)存。
內(nèi)存的特點(diǎn)是存儲(chǔ)速度快。內(nèi)存是電腦中的主要部件,它是相對(duì)于外存而言的。我們平常使用的程序,如QQ、瀏覽器、游戲,包括WINDOWS系統(tǒng),一般都是安裝在硬盤(pán)等外存上的,但僅此是不能使用其功能的,必須把它們調(diào)入內(nèi)存中運(yùn)行,才能真正使用其功能,我們平時(shí)輸入一段文字,或玩一個(gè)游戲,其實(shí)都是在內(nèi)存中進(jìn)行的。就好比在一個(gè)書(shū)房里,存放書(shū)籍的書(shū)架或書(shū)柜相當(dāng)于電腦的外存,而我們工作的辦公室就是內(nèi)存。通常我們把要永久保存的、大量的數(shù)據(jù)存在外存上,當(dāng)然內(nèi)存的好壞會(huì)直接影響電腦的運(yùn)行速度。
內(nèi)存的發(fā)展歷史
內(nèi)存分為DRAM和ROM兩種,前者又叫動(dòng)態(tài)隨機(jī)存儲(chǔ)器,它的一個(gè)主要特征是斷電后數(shù)據(jù)會(huì)丟失,我們平時(shí)說(shuō)的內(nèi)存就是指這一種;后者又叫只讀存儲(chǔ)器,我們平時(shí)開(kāi)機(jī)首先啟動(dòng)的是存于主板上ROM中的BIOS程序,然后再由它去調(diào)用硬盤(pán)中的Windows,ROM的一個(gè)主要特征是斷電后數(shù)據(jù)不會(huì)丟失。
而我們平時(shí)所說(shuō)的“內(nèi)存條”則隸屬于DRAM類(lèi)別下的SDRAM家族。
第一代 SDR SDRAM
第二代 DDR SDRAM
第三代 DDR2 SDRAM
第四代 DDR3 SDRAM
第五代DDR4 SDRAM
我們現(xiàn)在常用的DDR4就是第五代內(nèi)存了!
關(guān)于內(nèi)存頻率、時(shí)序還有電壓的一些解釋
所謂內(nèi)存頻率,就是我們經(jīng)常說(shuō)的某某品牌,DDR4 2133、2400、2666…等等,后面這些數(shù)字就是內(nèi)存頻率。
一般情況下,內(nèi)存頻率的高低,決定了內(nèi)存性能的強(qiáng)弱。內(nèi)存頻率越高,內(nèi)存帶寬也就越高,正常工作的速度會(huì)更快。
關(guān)于內(nèi)存時(shí)序,也就是我們?cè)贑PU-Z里面所看到的數(shù)字了。
內(nèi)存時(shí)序是描述內(nèi)存條性能的一種參數(shù),一般存儲(chǔ)在內(nèi)存條的SPD中。這些參數(shù)設(shè)置的越小,內(nèi)存處理數(shù)據(jù)越快,但是也越不穩(wěn)定;反之較慢,但是穩(wěn)定性提高,因此需要設(shè)置合適的內(nèi)存時(shí)序。一般DDR4 2133的內(nèi)存默認(rèn)時(shí)序是15-15-15-35…
關(guān)于內(nèi)存電壓,每代內(nèi)存電壓都是有一個(gè)標(biāo)準(zhǔn)范圍的。比如我們現(xiàn)在用的DDR4內(nèi)存電壓默認(rèn)為1.2V,超頻也最好不要超過(guò)1.5V;而DDR3的內(nèi)存則是從1.5-2.0V;DDR2則是2V起步。
現(xiàn)在內(nèi)存所支持的__MP是什么?
Intel __MP全名是E__treme Memory Profile,是針對(duì)DDR3模塊而推出的一項(xiàng)認(rèn)證。
其主要功能就是高階的內(nèi)存設(shè)定,內(nèi)存廠商除了會(huì)在內(nèi)存預(yù)設(shè)普通的SPD值外,另外亦會(huì)寫(xiě)入更為高速的設(shè)定。當(dāng)然,廠商們可以任意替旗下的內(nèi)存模塊寫(xiě)進(jìn)更加高速的設(shè)定,但這樣就沒(méi)有任何穩(wěn)定性的保證及標(biāo)準(zhǔn),所以業(yè)界便引入__MP設(shè)計(jì)。
__MP會(huì)在內(nèi)存地址176-254中記錄內(nèi)存的速度,而最多可以保存2組的設(shè)定值。廠商們?nèi)缧枰玫絖_MP的認(rèn)證,就必須把內(nèi)存及該設(shè)定送交Intel測(cè)試,通過(guò)后就會(huì)給予認(rèn)證。Intel推出這個(gè)標(biāo)準(zhǔn),其主要用意是針對(duì)高效能市場(chǎng),玩家使用具備了__MP的內(nèi)存,就能夠直接提升工作平臺(tái)的效能。
內(nèi)存時(shí)序和頻率的一些問(wèn)題?
這時(shí)候我們就需要舉個(gè)例子了,以宇瞻黑豹DDR4 2400的內(nèi)存和影馳名人堂HOF DDR4 2400內(nèi)存來(lái)對(duì)比。
延遲對(duì)比:
宇瞻黑豹DDR4 2400 16-16-16-36 CL16 延遲計(jì)算 (1/2400MHz)__16=6.67納秒
宇瞻黑豹DDR4 2133 15-15-15-35 CL15 延遲計(jì)算 (1/2400MHz)__15=6.25納秒
然后計(jì)算帶寬(按照雙通道計(jì)算,內(nèi)存帶寬128bit):
2400 : 2400MHz__128bit/8= 38400MB/S
2133 : 2133MHz__128bit/8= 34128MB/S
內(nèi)存延遲意味著內(nèi)存的反應(yīng)速度。我們知道,CPU讀寫(xiě)內(nèi)存的事情,首先是要告訴內(nèi)存,要讀寫(xiě)某個(gè)地址的數(shù)據(jù),意味著CPU要先發(fā)送某個(gè)地址代碼給內(nèi)存,內(nèi)存接收到后,編譯準(zhǔn)備好的這段時(shí)間為內(nèi)存延遲時(shí)間。
當(dāng)內(nèi)存準(zhǔn)備好了數(shù)據(jù)反饋給CPU,CPU開(kāi)始讀寫(xiě)內(nèi)存,這時(shí)候,內(nèi)存的帶寬是主要作用,一直到數(shù)據(jù)傳輸完成,然后重復(fù)上一步操作,這就是內(nèi)存和CPU的工作原理(簡(jiǎn)單通俗的講,實(shí)際比這個(gè)復(fù)雜多了)
所以我們可以分兩種情況,當(dāng)CPU讀寫(xiě)內(nèi)存數(shù)據(jù)量很大,而且是連續(xù)的時(shí)候,內(nèi)存帶寬影響最大;當(dāng)CPU讀寫(xiě)的內(nèi)存數(shù)據(jù)非常零碎,且零碎數(shù)據(jù)很多,這時(shí)候的低延遲的內(nèi)存速度回更快。
這也解釋了核顯對(duì)于雙通道高頻內(nèi)存的需求,圖形數(shù)據(jù)一般都是大量并且連續(xù)的,AMD的APU需要高頻雙內(nèi)存的原理,就是這么來(lái)的。
關(guān)于內(nèi)存超頻的一些問(wèn)題
內(nèi)存超頻跟內(nèi)存顆粒的體制是肯定有最為直接的關(guān)系的。然后還有就是主板bios的設(shè)計(jì)、主板bios的優(yōu)化水平,CPU集成的內(nèi)存控制器等等原因,都是有影響的!
我們所看到某些支持__MP內(nèi)存和主板,在某種程度上,可以認(rèn)為是廠商預(yù)先保留的超頻選擇,直接在bios開(kāi)啟即實(shí)現(xiàn)超頻。
當(dāng)然,我們普通的內(nèi)存一樣是可以超頻的,具體要看實(shí)際平臺(tái)和內(nèi)存等等來(lái)操作,基本原理也就是時(shí)序、頻率和電壓了,每個(gè)人的情況都不一樣,需要自己去調(diào)試才行。
又到了學(xué)點(diǎn)內(nèi)存知識(shí)的季節(jié)
什么是DDR?
DDR,全稱(chēng):DDR SDRAM ,Double Data Rate Synchronous Dynamic Random Access Memary,即,雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取記憶體,也就是我們常用的內(nèi)存,它從SDRAM的基礎(chǔ)上發(fā)展起來(lái),以后依次出現(xiàn)了DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM。它們的能效不斷提升。文章結(jié)尾附一張純良心內(nèi)存能效參數(shù)表。
DDR間有什么區(qū)別?
1、SDRAM
SDRAM內(nèi)部組成如,可見(jiàn)其組成可以分為幾個(gè)部分,存儲(chǔ)陣列、IO門(mén)控單元、行列地址解碼器、行列地址鎖存器、邏輯控制單元(包含模式寄存器)、數(shù)據(jù)輸入輸出寄存器等。
存儲(chǔ)矩陣內(nèi)部結(jié)構(gòu),以8位內(nèi)存單元為例,每個(gè)內(nèi)存單元的數(shù)據(jù)輸出是并聯(lián)在一起,通過(guò)行列地址線選中一個(gè)存儲(chǔ)單元,
存儲(chǔ)容量大小和數(shù)據(jù)位寬度、行地址、列地址、塊數(shù)量等的關(guān)系:
單片容量(bit)=單片位寬×行數(shù)×列數(shù)×塊數(shù)量
2、DDR SDRAM
DDR的內(nèi)部結(jié)構(gòu)與SDRAM相比,數(shù)據(jù)讀寫(xiě)部分改進(jìn)比較大。其一,使用了兩位預(yù)讀取的技術(shù);其二,增加了DLL(delay lock loop演示鎖定回路);其三,增加了數(shù)據(jù)掩碼控制和數(shù)據(jù)總線反轉(zhuǎn)控制;此外,時(shí)鐘信號(hào)和數(shù)據(jù)選通信號(hào)改為差分信號(hào)。
3、DDR2 SDRAM
DDR2 SDRAM整體布局變化不大,在輸入輸出數(shù)據(jù)總線接口上變化比較多。
DDR2在DDR的基礎(chǔ)上增加了ODT(on-die termination片上終結(jié),即通過(guò)內(nèi)部邏輯選擇合適的終端電阻進(jìn)行匹配)功能,預(yù)讀取提高到了4位,即每傳輸4個(gè)字節(jié)/字,只有第一個(gè)字節(jié)/字有潛伏期。
4、DDR3 SDRAM
DDR3 SDRAM在輸入輸出數(shù)據(jù)總線接口上繼續(xù)提升性能,在存儲(chǔ)結(jié)構(gòu)上改進(jìn)工藝,堆疊更多的存儲(chǔ)塊,提高單顆芯片的容量。
在功能上的改進(jìn)有,增加了讀寫(xiě)平衡功能。
圖7 讀寫(xiě)時(shí)序平衡關(guān)系
5、DDR4 SDRAM
DDR4 SDRAM在輸入輸出數(shù)據(jù)總線接口上繼續(xù)改善性能,在存儲(chǔ)結(jié)構(gòu)上繼續(xù)改進(jìn)工藝,不僅堆疊更多的存儲(chǔ)塊,而且使用硅片穿孔工藝把把堆疊成的存儲(chǔ)塊進(jìn)行并列放置,集中到一顆芯片中,提高單顆芯片的容量。
電腦內(nèi)存實(shí)用基礎(chǔ)知識(shí)相關(guān)文章:
★ 常見(jiàn)內(nèi)存型號(hào)基礎(chǔ)知識(shí)去全解
★ 電腦硬盤(pán)常用的基礎(chǔ)知識(shí)大全