CSAPP:第六章 儲存器層次結構
阿新 • • 發佈:2018-12-02
儲存器層次結構
關鍵點:記憶體
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的主存,可在幾十到幾百個時鐘週期內訪問,接下來是慢速的本地磁碟,最後系統可能還包含了遠端伺服器。