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