第六章 存儲器層次結構
第一節 存儲技術
一、随機通路存儲器(RAM)
RAM分類:
- 靜态的SRAM-更快,更貴,作為高速緩存存儲器,CPU片上或片下
- 動态的DARM-作為主存以及圖形系統的幀緩沖區
1.傳統的DRAM
(1)超單元
- 晶片中的單元位被分為d個超單元,每個超單元有w個DRAM單元組成,一個dxw的DRAM總共存儲了dw位資訊。
- 超單元被組織成一個r行c列的長方形,即rc=d。
- 每個超單元有形如(i, j)的位址,i表示行,j表示列。
(2)資訊的流入流出
資訊通過引腳流入流出晶片,每個引腳攜帶一個1位的信号。
(3)存儲控制器
這個電路可以一次傳入或傳出w位。
- RAS-行通路選通脈沖-行位址i
- CAS-列通路選通脈沖-列位址j
3.增強的DRAM
- 快頁模式-FPM DRAM:允許對同一行連續的通路可以直接從行緩沖區得到服務。(原本的DRAM對同一行的四條指令時,每條指令取完後都會丢棄,然後重新讀取。)
- 擴充資料輸出-EDO DRAM:允許單獨的CAS信号在時間上靠的更緊密一點。
- 同步-SDRAM:用與驅動存儲控制器相同的外部時鐘信号的上升沿來代替許多這樣的控制信号-比異步的更快。
- 雙倍資料速率同步-DDR SDRAM:通過使用兩個時鐘沿作為控制信号,進而使DRAM的速度翻倍。分類:DDR(2位),DDR2(4位),DDR3(8位)
- RDRAM
- 視訊-VRAM:用在圖形系統的幀緩存區中,思想類似FPM DRAM,差別:
1.VRAM的輸出是通過依次對内部緩沖區的整個内容進行移位得到的 2.VRAM允許對存儲器并行的讀和寫。
4.非易失性存儲器——ROM
(1)分類
- PROM-可程式設計ROM,隻能被程式設計一次
- EPROM-可擦寫可程式設計ROM,能夠被擦除和編寫的次數的數量級大概為1000次
- EEPROM,電子可擦除PROM,能夠被程式設計的次數的數量級在10的五次方。
(2)閃存FLASH
- 基于EEPROM,為大量的電子裝置提供快速而持久的非易失性存儲。
存在于:數位相機、手機、音樂播放器、PDA、筆記本、桌上型電腦、伺服器計算機系統
(3)固件
存儲在ROM裝置中的程式通常被稱為固件,當一個計算機系統通電以後,他會運作存儲在ROM中的固件。
5.通路主存
(1)總線
總線分類:
a.系統總線——連接配接CPU和I/O橋
b.存儲器總線——連接配接I/O橋和主存
c.I/O總線(具體見6.1.2.4)
二、磁盤存儲
1.磁盤構造
- 盤片
- 表面:每個盤片有兩個表面
- 主軸:盤片中央,可旋轉
- 旋轉速率:通常5400~15000/min
- 磁道:同心圓們
- 扇區:每個磁道被劃分為一組扇區
- 資料位:每個扇區包含相等數量的~,通常為512位元組
- 間隙:存儲用來辨別扇區的格式化位
- 磁盤驅動器-磁盤-旋轉磁盤
- 柱面:所有盤片表面上到主軸中心的距離相等的磁道的集合。
2.磁盤容量——一個磁盤上可以記錄的最大位數
(1)影響因素:
- 記錄密度-位/英寸
- 磁道密度-道/英寸
- 面密度-位/平方英寸
(2)計算公式:

3.磁盤操作
磁盤以扇區大小的塊來讀寫資料。
通路時間的分類:
(1)尋道時間
移動傳動臂所用的時間,依賴于讀/寫頭以前的位置和傳動臂在盤面上移動的速度。
(2)旋轉時間
驅動器等待目标扇區的第一個位旋轉到讀/寫頭下,依賴于盤面位置和旋轉速度。
最大旋轉延遲=1/RPM X 60secs/1min (s)
平均旋轉時間是最大值的一半。
(3)傳送時間
通路一個磁盤扇區内容的平均時間為平均尋道時間,平均旋轉延遲和平均傳送時間之和。
主要時間是尋道時間和旋轉延遲。
三、固體磁盤
固态硬碟是一種基于閃存的存儲技術【差別于旋轉磁盤:固态磁盤沒有移動的部分。
1.組成
一個SSD包由一個或多個閃存晶片和閃存翻譯層組成:
閃存晶片——對應旋轉磁盤中機械驅動器
閃存翻譯層(硬體/固件裝置)——對應磁盤控制器
2.讀/寫
(1)順序讀寫
速度相當,順序讀比順序寫稍微快一點
(2)随機讀寫
寫比讀慢一個數量級
原因:底層閃存基本屬性決定。
一個閃存由B個塊的序列組成,每個塊由P頁組成。通常頁的大小是512~4kb,塊是由32~128頁組成的,塊的大小為16kb~512kb。
資料是以頁為機關讀寫的。
3.優點
- 由半導體構成,沒有移動的零件——
- 随機通路時間比旋轉磁盤要快
- 能耗更低
- 更結實
4.缺點
- 更容易磨損
- 更貴
四、存儲技術優勢
- 不同的存儲技術有不同的價格和性能折中
- 不同存儲技術的價格和性能屬性以截然不同的速率變化着
- 增加密度進而降低成本比降低通路時間更容易
- DRAM和磁盤的性能滞後于cpu的性能
第二節 局部性
局部性原理:
一個編寫良好的計算機程式,常常傾向于引用臨近于其他最近引用過的資料項的資料項,或者最近引用過的資料項本身。
分類:
- 時間局部性
- 空間局部性
量化評價一個程式中局部性的簡單原則:
- 重複引用同一個變量的程式有良好的時間局部性
- 對于具有步長為k的引用模式的程式,步長越小,空間局部性越好
- 對于取指令來說,循環有好的時間和空間局部性。循環體越小,循環疊代次數越多,局部性越好。
第三節 存儲器層次結構
每層儲存設備都是下一層的“緩存”
緩存
高速緩存:是一個小而快速的儲存設備,它作為存儲在更大、更慢的裝置中的資料對象的緩沖區域。
緩存:使用高速緩存的過程稱為緩存。。
1.緩存命中
當程式需要第k+1層的某個資料對象d時,首先在目前存儲在第k層的一個塊中查找d,如果d剛好緩存在第k層中,就稱為緩存命中。
該程式直接從第k層讀取d,比從第k+1層中讀取d更快。
2.緩存不命中
即第k層中沒有緩存資料對象d。
這時第k層緩存會從第k+1層緩存中取出包含d的那個塊。如果第k層緩存已滿,就可能會覆寫現存的一個塊
覆寫——替換/驅逐
替換政策:
- 随機替換政策-随機犧牲一個塊
- 最近最少被使用替換政策LRU-犧牲最後被通路的時間距離現在最遠的塊。
3.緩存不命中的種類
(1)強制性不命中/冷不命中
(2)沖突不命中
(3)容量不命中
第四節 高速緩存存儲器
一、通用的高速緩存存儲器結構
高速緩存是一個高速緩存組的數組,它的結構可以用元組(S,E,B,m)來描述:
S:這個數組中有S=2^s個高速緩存組
E:每個組包含E個高速緩存行
B:每個行是由一個B=2^b位元組的資料塊組成的
m:每個存儲器位址有m位,形成M=2^m個不同的位址
除此之外還有标記位和有效位:
有效位:每個行有一個有效位,指明這個行是否包含有意義的資訊
标記位:t=m-(b+s)個,唯一的辨別存儲在這個高速緩存行中的塊
組索引位:s
塊偏移位:b
高速緩存的結構将m個位址劃分成了t個标記位,s個組索引位和b個塊偏移位。
高速緩存的大小/容量C
指所有塊的大小的和,不包括标記位和有效位,是以:
C=S*E*B
二、直接映射高速緩存
高速緩存确定一個請求是否命中,然後取出被請求的字的過程,分為三步:
1.組選擇
2.行比對
3.字抽取
1.組選擇
高速緩存從w的位址中間抽取出s個組索引位
2.行比對
判斷緩存命中有兩個充分必要條件:
- 該行設定了有效位
- 高速緩存行中的标記和w的位址中的标記相比對
3.字選擇
同樣的一個類比:塊-關于位元組的數組,位元組偏移是到這個數組的一個索引。
4.後運作中的直接映射高速緩存
- 标記位和索引位連起來唯一的辨別了存儲器中的每個塊
- 映射到同一個高速緩存組的塊由标記位唯一地辨別
三、組相聯高速緩存
E路組相聯高速緩存:1<E<C/B
2.行比對和字選擇
形式是(key, value),用key作為标記和有效位去比對,比對上了之後傳回value。
重要思想:組中的任意一行都可以包含任何映射到這個組的存儲器塊,是以告訴緩存必須搜尋組中的每一行。
判斷比對的标準依舊是兩個充分必要條件:
1.有效
2.标記比對
3.行替換
有空行替換空行,沒有空行,應用替換政策:
- 随機替換
- 最不常使用政策LFU:替換在過去某個時間視窗内引用次數最少的那一行。
- 最近最少使用政策LRU:替換最後一次通路時間最久遠的那一行。
四、全相聯高速緩存(E=C/B)
隻有一個組,預設組0,沒有索引位,位址隻被劃分成了一個标記和一個塊偏移。
同組相聯。
隻适合做小的高速緩存。
五、寫
1.寫命中時,更新低一層中的拷貝的方法:
(1)直寫,立即将w的高速緩存塊協會到緊接着的低一層中
缺點:每次寫都會引起總線流量。
(2)寫回,隻有當替換算法要驅逐更新過的塊時,才寫到緊接着的低一層中
- 優點:符合局部性原理,顯著的減少總線流量
- 缺點:增加了複雜性,必須為每個高速緩存行維護一個額外的修改位
2.寫不命中的處理方法
(1)寫配置設定---通常寫回對應
加載相應的低一層中的塊到高速緩存中,然後更新這個高速緩存塊。
(2)非寫配置設定---通常直寫對應
避開高速緩存,直接把這個字寫在低一層中。
六、真實的高速緩存層次結構:
高速緩存既儲存資料,也儲存指令。
- 隻儲存指令的:i-cache
- 隻儲存程式資料的:d-cache
- 既儲存指令又儲存資料的:統一的高速緩存
七、高速緩存參數的性能影響
1.性能:
- 不命中率 = 不命中數量/引用數量
- 命中率 = 1 - 不命中率
- 命中時間
- 不命中處罰:因為不命中所需要的額外的時間
2.具體影響:
- 高速緩存大小:命中率+,命中時間+
- 塊大小:空間局部性+,命中率+,高速緩存行數-,時間局部性-,不命中處罰+
- 相聯度:E值大,抖動-,價格+,命中時間+,不命中處罰+,控制邏輯+【折中為不命中處罰低的,相聯度低,不命中處罰高的,使用高相聯度】
- 寫政策:越往下,越可能用寫回而不是直寫
參考資料:
1.《深入了解計算機系統》