第六章------存儲器層次結構

第六章------存儲器層次結構
1.隨機訪問存儲器
      隨機訪問存儲器(Random-Access Memory,RAM)分爲兩類:靜態的和動態的。靜態RAM(SRAM)比動態RAM(DRAM)更快,但也貴得多。SRAM用來作爲高速緩存存儲器,既可以在CPU芯片上,也可以在片下。DRAM用來作爲主存以及圖形系統的幀緩衝區。典型地,一個桌面系統SRAM不會超過幾兆字節,但是DRAM卻有幾百或幾千兆字節。
      ●靜態RAM
      SRAM將每個位存儲在一個雙穩態的存儲器單元裏。每個單元使用一個六晶體管電路來實現的。由於SRAM存儲器單元的雙穩態特性,只要有電,它就會永遠的保持它的值。即使有干擾(例如電子噪音)來擾亂電壓,當干擾消除時,電路就會恢復到穩定值。
      ●動態RAM
      DRAM將每個位存儲爲對一個電容的充電。在這個電容非常小,通常只有大約30毫微法拉。與SRAM不同,DRAM存儲器對於干擾非常敏感。當電容的電壓被幹擾之後,它就永遠不會恢復了。暴露在光線下會導致電容電壓改變。實際上,數碼照相機和攝像機中的傳感器本質上就是DRAM單元的陣列。
      幸運的是,計算機運行的時鐘週期是以納秒來衡量的,所以相對而言這個保持時間是比較長的。內存系統必須週期性的通過讀出,然後重寫來刷新內存的每一位。

2.訪問主存
      數據流通過稱爲總線的共享電子電路在處理器和DRAM主存之間來來回回。每次CPU和主存之間的數據傳送都是通過一系列步驟來完成的,這些步驟稱爲總線事務。讀事務從主存傳送數據到CPU。寫事務從CPU傳送數據到主存。
      總線是一組並行的導線,能攜帶地址、數據和控制信號。
      下圖展示了一個示例計算機系統的配置。主要部件是CPU芯片、我們將稱爲I/O橋接器(I/O)的芯片組(其中包括內存控制器),以及組成主存的DRAM內存模塊。這些部件由一對總線連接起來,其中一條是系統總線,它連接CPU和I/O橋接器,另一條總線是內存總線,它連接I/O橋接器和主存。I/O橋接器降系統總線和內存總線連接到I/O總線,像磁盤和圖形卡這樣的I/O設備共享I/O總線。
3.磁盤存儲
       磁盤是廣爲應用的保存大量數據的存儲設備,存儲數據的數量級可以達到幾百到幾千兆字節,而給予RAM的存儲器只能有幾百或幾千兆字節。不過,從磁盤上都信息的時候爲毫秒級,比從DRAM讀慢了10萬倍,比從SRAM讀慢了100萬倍。
      1)磁盤構造
       磁盤由盤片構成的。每個盤片有兩面或者稱爲表面,表面覆蓋着磁性記錄材料。盤片中央有一個可以旋轉的主軸,它使得盤片以固定的旋轉速度旋轉,通常是5400~15000轉每分鐘。
      下圖a展示了一個典型的磁盤表面的結構。每個表面由一組稱爲磁道的同心圓組成的。每個磁道被劃分爲一組扇區。每個扇區包含相等數量的數據位(通常是512字節),這些數據編碼在扇區上的磁性材料中。扇區之間由一些間隙分隔開,這些間隙中不存儲數據位,間隙存出用來標識扇區的格式化位。
       磁盤是由一個或多個疊放在一起的盤片組成的,它們被封裝在一個密封的包裝裏,如下圖b,整個裝置通常被稱爲磁盤驅動器,我們通常簡稱爲磁盤。有時也稱爲旋轉磁盤,以使之區別於基於閃存的固態硬盤(SSD)。

   2)磁盤操作
       如下圖,磁盤用讀/寫頭來讀寫存儲在磁性表面的位,而讀寫頭連接到傳動臂一端,如下圖所示,通過沿着半徑軸前後移動這個傳動臂,驅動器可以將讀/寫頭定位在盤面上的任何磁道上。這樣的機械運動稱爲尋道。一旦讀/寫頭定位到了期望的磁道上,那麼當磁道上的每個位通過它的下面時,讀/寫頭就可以感知這個位的值(讀該位)。
       當操作系統想要執行一個I/O操作時,例如讀一個磁盤扇區的數據到主存,操作系統會發送一個命令到磁盤控制器,讓它讀某個邏輯塊號。控制器上的固件執行一個快速查表查找,將一個邏輯塊號翻譯成一個(盤面,磁道,扇區)的三元組,這個三元組唯一地標識了對應的物理扇區。控制器上的硬件會解釋這個三元組,將讀/寫頭移動到適當的柱面,等待扇區移動到讀寫/頭下,將讀/寫頭感知到的位放到控制器上的一個小緩衝區,然後將它們複製到主存中。

4.存儲器層次結構
       1)下圖是一個典型的存儲器層次結構,一般而言,從高層往底層走,存儲設備變得更慢、更便宜和更大。在最高層(L0),是少量快速的CPU寄存器,CPU可以在一個時鐘週期內訪問它們。
       
       2)存儲器層次結構中的緩存
       一般而言,高速緩存(cache)是一個小而快速的存儲設備,它作爲存儲器更大、也更慢的設備中的數據對象的緩衝區域。使用高速緩存的過程稱爲緩存。
       存儲器層次結構的中心思想是,對於每個K,位於k層的更快更小的存儲設備作爲位於k+1層的更大更慢的存儲設備的緩存。換句話說,層次結構中的每一層都緩存來自較低一層的數據對象。
       類似的,第k層的存儲器被劃分成較少的塊(第k+1層的存儲器被劃分成連續的數據對象組塊(chunk),稱爲塊(block))的集合,每個塊的大小與k+1層的塊的大小一樣。在任何時刻,第k層的緩存包含第k+1層塊的一個子集的副本,如下圖所示,第k層的緩存有4個塊的空間,當前包含塊4、9、14和3的副本。
       
       緩存命中和緩存不命中:當程序需要第k+1層的某個數據對象d時,它首先在當前存儲在第k層的一個快種查找d。如果剛好緩存在第k層中,那麼就是我們所說的緩存命中,否則爲緩存不命中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章