存儲系統層次結構
主存速度緩慢的原因:主存增速與 CPU 不同步,執行指令期間多次訪問主存
主存容量不足的原因:
- 存在制約主存容量的技術因素:如由 CPU、主板等相關技術指標規定了主存容量
- 應用對主存容量需求不斷擴大:window98 -- 8M,windows 8 -- 1G
存儲體系結構化層次:CPU -- Cache1 -- Cache2(解決速度) -- 主存 -- 輔存(解決容量)
存儲體系結構化層次理論基礎:
- 時間局部性:程序體現為循環結構
- 空間局部性:程序體現為順序結構
主存中的數據組織
存儲字長:主存的一個存儲單元所包含的二進制位數,目前大多數計算機主存按字節編址,主要由32為和64位
數據存儲與邊界的關系:
- 按邊界對齊的數據存儲
- 未按邊界對齊的數據存儲
邊界對齊與存儲地址的關系:(32 位為例)
- 雙字長邊界對齊:起始地址最末三位為 000(8 字節整數倍)
- 單字長邊界對齊:起始地址最末二位為 00(4 字節整數倍)
- 半字長邊界對齊:起始地址最末一位為 0(2 字節整數倍)
大端與小端存儲方式:
- 大端:最高字節地址是數據地址(0123 存成 0123)
- 小端:最低字節地址是數據地址(0123 存成 3210)
存儲器分類
- SRAM存儲器:存取速度快,但集成度低,功耗大,做緩存
DRAM存儲器:存取速度慢,但集成度高,功耗低,做主存
DRAM刷新方式:集中刷新、分散刷新、異步刷新
主存容量的擴展
- 位擴展法:8K * 8位 --> 8K * 32位
- 字擴展法:8K * 8位 --> 32K * 8位
- 字位同時擴展法:8K * 8位 --> 32K * 32位
Cache的基本原理
cache的工作過程
- 數據:cpu 與 cache 交換字,cache 與內存交換塊
- 讀:命中,不命中
- 寫:寫穿策略,寫回策略
寫策略
- 寫穿策略(write through):同時寫緩存和內存,好像穿過緩存一樣。若不命中,先寫到主存中,並選擇性地同時分配到緩存中(寫分配/非寫分配)
- 寫回策略(write back):寫到緩存后不管了,只有當緩存的內容替換回主存時再管,需有臟位。好像隔段時間后再寫回到主存中一樣
地址映射機制
- 相聯存儲器:地址本身包含着位置啊可比較的信息啊等內容信息,可根據區分地址內容進行尋址
- 主存地址 = 塊地址 + 塊內偏移地址 = (Tag + Index) + 塊內偏移地址
- cache結構
- 好多行,每行與主存塊大小相等
- 每行 = tag + data + valid + dirty
三種映射方式
- 全相聯:cache行號 = random(內存塊號)
- 直接相聯:cache行號 = 內存塊號 % cache行數
- 組相聯:兩者結合。8 行 1 路組相聯就是全相聯,8 行 8 路組相聯就是直接相聯
替換算法
- 先進先出法 - FIFO
- 最近最不經常使用法 - LFU
- 近期最少使用法 - LRU
- 隨機替換法
虛擬存儲器
- 解決問題:主存容量不足。希望向程序員提供更大(比主存大)的編程空間
- 分類:頁式,段式,段頁式
- 頁式實現方式:MMU(Memory Management Unit) + 頁表 + TLB(Transaction Lookaside Buffer:地址轉換后備緩沖器)
- 頁式轉換過程:虛擬地址 = 虛擬頁號 + 頁內偏移 ==> 物理頁號 + 頁內偏移
RAID
- 概念:獨立磁盤構成的具有冗余能力的陣列(Redundant Arrays Independent Disks)
- 核心技術:使用異或運算恢復數據 (x ⊕ y = z --> x = y ⊕ z)
- 分類:
RAID0:條帶均勻分布
磁盤 0 磁盤 1 磁盤 2 磁盤 3 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 RAID1:以鏡像為冗余方式
磁盤 0 磁盤 1 D0 D0 D1 D1 D2 D2 RAID3/4:有校驗盤
磁盤 0 磁盤 1 磁盤 2 校驗磁盤 D0 D1 D2 P0 D3 D4 D5 P1 D6 D7 D8 P2 RAID5:校驗信息分布式
磁盤 0 磁盤 1 磁盤 2 磁盤 3 D0 D1 D2 P0 D3 D4 P1 P5 D6 P2 D7 D8 P3 D9 D10 D11 - RAID10/01:10 是先鏡像再條帶化,01 是先條帶化再鏡像
RAID50:先 RAID5,再條帶化