SRAM和DRAM的區別

 在上體系結構這門課之前,我只知道DRAM用作內存比較多,SRAM用作cache比較多。在今天講到內存技術時,我對於這兩個基礎概念有了更加完整的認識。這篇文章是我的聽課心得,現在分享給各位,僅供參考,若有錯誤多多指正。

  從名字上看,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快的原因之一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章