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