1. 程式人生 > >計算機組成與設計(十一)—— 儲存層次結構(上)

計算機組成與設計(十一)—— 儲存層次結構(上)

儲存層次結構概況

這是我們非常熟悉的馮·諾依曼計算機結構, 那這其中哪些部件和儲存功能有關呢? 

 

儲存器和外部記錄介質肯定具有儲存功能,另外還有一個自帶儲存功能的運算器,為了描述方便,我們把這些部件統稱為儲存器。那麼我們看一下計算機中對儲存器有哪些要求 ?

1、首先儲存器當中應該儲存了將要執行的程式和需要運算的資料,那這些內容在系統通電啟動的時候就應該在儲存器當中了,而且在斷電之後也不會丟失。那麼具有這樣特定的儲存器我們稱之為非易失性儲存器。而斷電後儲存的資訊就會丟失的儲存器則稱為易失性儲存器。

  • 易失性儲存器:主存和CPU中的通用暫存器都是易失性的儲存器,斷電後資訊就丟失了
  • 非易失性儲存器:bios晶片和硬碟:在系統通電之後CPU必須要從bios晶片開始執行程式,然後這段程式把硬碟等裝置配置好之後再將更多的程式和資料從硬碟搬運到記憶體,之後CPU才可以在記憶體裡執行程式。 因此在系統中必須要有非易失性的儲存器。

2、其次,這樣的儲存器肯定得是可讀又可寫的。那在這個結構當中硬碟和主存都是可讀可寫的, 而bios晶片則是一個只讀的晶片,倒不是說它完全不支援寫操作,而是對它的寫需要 藉助特殊的裝置或者特殊的操作過程,非常的麻煩,無法支援經常性地寫入資料。

3、最後,儲存器最好是能夠支援隨機訪問。所謂隨機訪問是指對儲存器當中任何一個數據的訪問所花費的時間與這個資料所在的位置沒有關係。對主存的讀寫和Bios晶片的讀都是支援隨機訪問的。

而硬碟內部實際上是由多個碟片構成,這些碟片處於高速旋轉的狀態,並由一個機械的讀寫頭去尋找需要訪問的資料的位置。這就不是隨機訪問的模式,而且由於期中有機器部件的存在,速度就變得非常的慢。

 

DRAM和SRAM

SRAM比較快,DRAM比較慢,SRAM比較貴,DRAM比較便宜,記住這些結論是很容易的, 但是比是什麼更重要的是為什麼,我們就從電路的級別來探索DRAM 和SRAM為什麼會具有他們這樣各自的特點。

 

DRAM

這是我們計算機中使用的記憶體條,準確的說叫記憶體模組,這上圖這個記憶體模組中共有8塊DRAM晶片。

DRAM晶片內部核心結構就是這個儲存陣列,由若干行、若干列構成。如果外部給定行地址和列地址,DRAM中有地址譯碼邏輯電路,就能選中一個儲存單元,而每個儲存單元往往包含若干個位元,常見的有4位元和8位元,每個位元都採用如下的電路結構,稱為DRAM的基本儲存單元。

 

DRAM的基本儲存單元(1bit)

這個基本單元就是都過一個電容來儲存一個位元,寫入就是由外部的資料線驅動對電容進行充電或者放電的操作,從而完成寫入0或1,讀操作則是由電容對外部的資料訊號線進行驅動,從而完成讀出0或1。

這個電路非常簡單,由於電容存在漏電效應,需要定期“重新整理”以保證DRAM的儲存資訊的正確性。如果原先儲存的資料是0,則通過重新整理使它保持無電荷狀態,如果原先儲存的資料為1,則補充這個電容的電荷。

現在PC機中大多是採用DRAM作為主儲存器(即記憶體),DRAM也有很多種不同的實現,比如SDRAM這個s是同步的縮寫,那它是在DRAM的基本結構基礎上對輸入輸出介面進行時鐘同步。從而提高了讀寫的效率,而現在更為常用的記憶體 則是在SDARAM的基礎上又進行了進一步的改進,比如說這些年有DDR1,DDR2,DDR3, 這些不同的記憶體標準都是在SDRAM的基礎上進行的改進和升級。

總體來說,DRAM的基本儲存單元簡單,所以能做到很高的整合度,而且功耗也比較低,我們可以用較低的成本製造大容量的DRAM晶片。它的讀寫是通過充放電的方式,所以速度較慢,而且它還需要定期重新整理,這進一步影響了DRAM的讀寫效能。

 

SRAM

SRAM的基本儲存單元(1bit)

這個結構共有6個電晶體,M1~M6表示,6個合在一起才可以儲存一個位元。對外有3個介面訊號,BL、~BL用於傳送讀寫時的資料,WL用於標識外部是否能訪問這個儲存單元。

 

 寫入資料1時的工作過程:

  1. 首先,只有通電,VCC總為1,地總為0
  2. 將BL置為1,這樣~BL為0,要寫入的資料就準備好了
  3. 然後我們需要訪問這個SRAM單元,要將WL置為1,隨之M5、M6的gate端也為1
  4. 根據NMOS、PMOS的性質,可推匯出電路保持穩定且不會有衝突(分析略),Q = 1,~Q = 0
  5. 因為電晶體的速度很快,寫入過程也很快,等這幾個電晶體穩定後,寫入過程就結束了
  6. 現在可以撤銷WL訊號了(即由1變0),從而M5、M6關閉,BL和~BL也可以撤銷了
  7. M4處於導通狀態,電源對傳到Q,使得M1、M2的Gate端始終為1
  8. 那麼在這4個電晶體的相互作用下,SRAM就保持住了剛才寫入的1
  9. WL保持為0,則儲存的資料始終為1,當然不能斷電(斷電Vdd沒有了)

 

讀出資料1時的工作過程:

  1. 把WL置為1,因此M5、M6會是導通狀態
  2. 此時外部並不驅動BL和~BL,它們會通過M5、M6被SRAM驅動
  3. BL被驅動為1,~BL被驅動為0

 

電晶體的開關速度遠比電容充放電速度快,所以SRAM更快。但是它每儲存一個位元就需要6個電晶體,電晶體數量多會造成芯片面積大,帶來整合度和價格高的問題。同時每個電晶體都是要耗電的,電晶體越多功耗就越高。現在CPU中的快取記憶體都是用SRAM實現的。

 

 

參考連結:https://www.coursera.org/learn/jisuanji-zucheng/lecture/NwGZV/702-dramhe-sram