SRAM與DRAM的區(qū)別
2017-04-24 17:15:10
首先先從定義是去理解sram跟dram在名稱上的定義,從字面上看,SRAM(Static Random Access Memory),即靜態(tài)隨機(jī)存取存儲(chǔ)器。它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。DRAM(Dynamic Random Access Memory),即動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,最為常見(jiàn)的系統(tǒng)內(nèi)存。DRAM 只能將數(shù)據(jù)保持很短的時(shí)間。為了保持?jǐn)?shù)據(jù),DRAM使用電容存儲(chǔ),所以必須隔一段時(shí)間刷新(refresh)一次,如果存儲(chǔ)單元沒(méi)有被刷新,存儲(chǔ)的信息就會(huì)丟失。從定義上看SRAM跟DRAM區(qū)別只在于一個(gè)是靜態(tài)一個(gè)是動(dòng)態(tài)。由于
SRAM不需要刷新電路就能夠保存數(shù)據(jù),所以具有靜止存取數(shù)據(jù)的作用。而DRAM則需要不停地刷新電路,否則內(nèi)部的數(shù)據(jù)將會(huì)消失。而且不停刷新電路的功耗是很高的,在我們的PC待機(jī)時(shí)消耗的電量有很大一部分都來(lái)自于對(duì)內(nèi)存的刷新。那么為什么我們不用SRAM來(lái)作為內(nèi)存呢?
首先來(lái)看一張SRAM的基本單元結(jié)構(gòu)圖(圖一),再來(lái)看看DRAM的基本單元結(jié)構(gòu)圖(圖二)
SRAM存儲(chǔ)器存儲(chǔ)一位需要花6個(gè)晶體管,而DRAM存儲(chǔ)器只需要用一個(gè)電容和一個(gè)晶體管。cache追求的是速度所以選擇SRAM,而內(nèi)存則追求容量所以選擇能夠在相同空間中存放更多內(nèi)容并且造價(jià)相對(duì)低廉的DRAM。
我們暫且不去討論關(guān)于SRAM是如何靜態(tài)存儲(chǔ)數(shù)據(jù)的,為什么DRAM存儲(chǔ)器需要不斷刷新呢?
DRAM存儲(chǔ)器里面的數(shù)據(jù)實(shí)際上是存在電容里的。而電容放久了,內(nèi)部的電荷就會(huì)越來(lái)越少,對(duì)外就形成不了電位的變化。而且當(dāng)對(duì)DRAM進(jìn)行讀操作的時(shí)候需要將電容與外界形成回路,通過(guò)檢查是否有電荷流進(jìn)或流出來(lái)判斷該bit是1還是0。所以無(wú)論怎樣,在讀操作中我們都破壞了原來(lái)的數(shù)據(jù)。所以在讀操作結(jié)束后需要將數(shù)據(jù)寫(xiě)回DRAM中。在整個(gè)讀或者寫(xiě)操作的周期中,計(jì)算機(jī)都會(huì)進(jìn)行DRAM存儲(chǔ)器的刷新,通常是刷新的周期是4ms-64ms。
關(guān)于SRAM和DRAM的尋址方式也有所不同。雖然通常我們都認(rèn)為內(nèi)存像一個(gè)長(zhǎng)長(zhǎng)的數(shù)組呈一維排列,但實(shí)際上內(nèi)存是以一個(gè)二維數(shù)組的形式排列的,每個(gè)單元都有其行地址和列地址,當(dāng)然cache也一樣。而這兩者的不同在于對(duì)于容量較小的SRAM,我們可以將行地址和列地址一次性傳入到SRAM中,而如果我們對(duì)DRAM也這樣做的話,則需要很多很多根地址線(容量越大,地址越長(zhǎng),地址位數(shù)越多)。所以我們選擇分別傳送行地址和列地址到DRAM中。先選中一整行,然后將整行數(shù)據(jù)存到一個(gè)鎖存器中,等待列地址的傳送然后選中所需要的數(shù)據(jù)。這也是為什么SRAM比DRAM快的原因之一。