1. 程式人生 > >CSAPP:第六章 儲存器層次結構

CSAPP:第六章 儲存器層次結構

儲存器層次結構

關鍵點:記憶體

6.1 隨機訪問儲存器6.2 區域性性6.3 儲存器層次結構

6.1 隨機訪問儲存器

  隨機訪問儲存器(Random-Access Memory,RAM)分為兩類:靜態的和動態的。靜態RAM(SRAM)比動態RAM(DRAM)更快,但也貴的多。SRAM用來作為快取記憶體儲存器,既可以在CPU晶片上,也可以在片下。DRAM用來做主存以及圖形系統的幀緩衝區。

  • 1. 靜態RAM
      SRAM將每個位儲存在一個雙穩態的儲存器單元裡,具有雙穩態性,只要有電,它就會永遠地保持它的值。即使有干擾來擾亂電壓,當干擾消除時,又會恢復到穩定狀態
  • 2. 動態RAM
      DRAM將每個位儲存為對一個電容的充電。DRAM儲存器可以製造得非常密集--每個單元由一個電容和一個訪問電晶體組成。但是與SRAM不同,DRAM儲存器單元對干擾非常敏感。當電容的電壓被擾亂後,它就不會恢復了
  • 3. 傳統的DRAM
      DRAM晶片中的單元(位)被分成d個超單元,每個超單元都由w個DRAM單元組成。一個d * w的DRAM總共儲存了dw位資訊。超單元被組織成一個r行c列的長方型陣列,這裡rc = d。每個超單元有形如(i,j)的地址,這裡的i表示行,j表示列。

      如圖6-3展示的是一個16x8的DRAM晶片組織,有d = 16個超單元,每個超單元有w = 8位,r = 4行,c = 4列。帶有陰影的方框表示地址(2,1)處的超單元,資訊通過稱為引腳(pin)的外部連結器流入和流出晶片。每個引腳攜帶一個1位訊號。
  • 4. 記憶體模組
      DRAM晶片封裝在記憶體模組中,它插到主機板的擴充套件槽上。如下圖展示了一個記憶體模組的基本思想。示例模組用8個64Mbit的8M x 8的DRAM晶片,總共儲存64MB,這8個晶片編號為0~7.每個超單元儲存主存的一個位元組,而相應超單元地址為(i,j)的8個超單元來表示主存中位元組地址A處的64位字。
      要取出記憶體地址A處的一個字,記憶體控制器將A轉化成一個超單元地址(i,j),並將它傳送到記憶體模組,然後記憶體模組再將i和j廣播到每個DRAM。作為響應,每個DRAM輸出它的(i,j)超單元的8位內容,模組中的電路收集這些輸出,並把它們合併成一個64位字,再返回給記憶體控制器。
  • 5. 增強的DRAM
    • 快頁模式DRAM(非同步)
    • 擴充套件資料輸出DRAM(非同步)
    • 同步DRAM(SDRAM)
    • 雙倍速率同步DRAM(Double Data-Rate Synchronous DRAM,DDR SDRAM).
    • 視訊RAM(VRAM)
  • 6. 非易失性儲存器   如果斷電SRAM和DRAM會丟失它們的資訊,從某種意義上說,它們是易失性的。非易失性儲存器,即使在掉電後,仍然儲存著它們的資訊。現在有很多種非易失性儲存器,但是整體上都被稱為只讀儲存器(Read-only Memory,ROM).
    • PROM(可程式設計ROM)
    • EPROM(可擦寫可程式設計,Erasable Programmable ROM)
    • EEPROM(電子可擦除PROM)
    • FLASH(快閃記憶體,SSD就是基於快閃記憶體的磁碟驅動器)
        儲存在ROM裝置中的程式通常被稱為韌體(fireware)。當一個計算機通電後,它會執行在ROM中的韌體。
  • 7. 訪問主存
      資料流通過匯流排的共享電子電路在處理器和DRAM主存之間來來回回。每次CPU和主存之間的資料傳輸都是通過一系列步驟完成的,這些步驟稱為匯流排事務。讀事務(從主存傳送資料到CPU),寫事務(從CPU傳送資料到主存)

6.2 區域性性

  一個良好的計算機程式常常具有良好的區域性性。也就是它們傾向於引用臨近於其他最近引用過的資料和資料項。這種傾向被稱為區域性性原理。

  • 時間區域性性:在一個具有良好時間區域性性的程式中,被引用過一次的記憶體位置,很可能在不遠的將來再次多次被引用。
  • 空間區域性性:在一個具有良好空間區域性性的程式中,被引用過一次的記憶體位置,很可能在不遠的將來引用附近其他位置的記憶體。

6.3 儲存器層次結構

  計算機儲存結構如下圖,一般而言從高層往底層走,儲存裝置變得更慢、更便宜和更大。在最高層是L0,是少量快速的CPU暫存器,CPU可以在一個時鐘週期訪問它們,接下來是一個或者多箇中型基於SRAM的快取記憶體儲存器,可以在幾個時鐘週期訪問。然後是一個大的基於DRAM的主存,可在幾十到幾百個時鐘週期內訪問,接下來是慢速的本地磁碟,最後系統可能還包含了遠端伺服器。