內(nèi)容要點(diǎn):高速緩存,主存
1. 存儲(chǔ)層次結(jié)構(gòu)概況
外部記錄介質(zhì)R,運(yùn)算器CA,存儲(chǔ)器M
-
存儲(chǔ)器特性:非易失性,可讀可寫,隨機(jī)訪問(wèn),訪問(wèn)時(shí)間,容量,價(jià)格,功耗...
CPU 通用寄存器(Byte量級(jí)) 更小、更快、單位字節(jié)成本更高 SRAM 高速緩存(KB~MB量級(jí)) DRAM 主存(MB~GB量級(jí)) Disk 本地二級(jí)存儲(chǔ)(GB~TB量級(jí)) 更大、更慢、單位字節(jié)成本更低
2. DRAM
- DRAM的基本存儲(chǔ)單元(1bit)
- 電容存在漏電效應(yīng),經(jīng)過(guò)一段時(shí)間后電容上的電荷會(huì)流失,導(dǎo)致所存信息丟失
- 定期對(duì)所有單元進(jìn)行刷新(refresh),使原來(lái)表示邏輯"1"電容上的電荷得到補(bǔ)充,而原來(lái)表示邏輯"0"的電容仍保持無(wú)電荷狀態(tài)
- DRAM的特點(diǎn)
- 優(yōu)點(diǎn):集成度高,功耗較低,價(jià)格較低
- 缺點(diǎn):速度較慢,定時(shí)刷新
- 現(xiàn)代PC機(jī)大多采用DRAM作為主存
3. SRAM
- SRAM的基本存儲(chǔ)單元
- 6個(gè)晶體管,雙穩(wěn)態(tài)觸發(fā)器,無(wú)需更新
- SRAM的特點(diǎn)
- 優(yōu)點(diǎn):速度較快
- 缺點(diǎn):集成度低,功耗較大,價(jià)格較高
- 現(xiàn)代CPU中的高速緩存通常用SRAM實(shí)現(xiàn)
4. 主存
- SDRAM的關(guān)鍵性能參數(shù)(PC133標(biāo)準(zhǔn))
- tRCD(Row to Column Delay):從行選到列選的延遲時(shí)間
- 23T,約1223ns
- CL(CAS Latency):從列選到數(shù)據(jù)輸出的延遲周期數(shù)
- 23T,約1223ns
- tRP(RAS Precharge):行預(yù)充電(關(guān)閉行)的延遲時(shí)間
- 23T,約1223ns
- tRCD(Row to Column Delay):從行選到列選的延遲時(shí)間
-
SDRAM讀操作的典型訪問(wèn)過(guò)程
SDRAM讀操作的典型訪問(wèn)過(guò)程.png
5. 高速緩存的工作原理
-
程序的局部性原理(經(jīng)驗(yàn)性總結(jié))
- 時(shí)間局部性(Temporal locality):最近被訪問(wèn)的存儲(chǔ)器單元(指令或數(shù)據(jù))很快還會(huì)被訪問(wèn)
- 空間局部性(Spatial locality):正在被訪問(wèn)的存儲(chǔ)器單元附近的單元很快會(huì)被訪問(wèn)
-
Cache的基本原理
-
Cache對(duì)空間局部性的利用
- 從主存中取回待訪問(wèn)數(shù)據(jù)時(shí),會(huì)同時(shí)取回與位置相鄰的主存單元的數(shù)據(jù)
- 以數(shù)據(jù)塊(block)為單位和主存進(jìn)行數(shù)據(jù)交換
-
Cache對(duì)時(shí)間局部性的利用
- 保存近期頻繁被訪問(wèn)的主存單元的數(shù)據(jù)
-
Cache讀操作過(guò)程示例
MOV AL, [2011H] # 1.未命中,讀主存地址2010H,分配表項(xiàng)1(倒數(shù)第2位),讀出A1H(倒數(shù)第1位) MOV BL, [4011H]# 2.未命中,讀主存地址4011H,分配表項(xiàng)1,覆蓋前面的,讀出B1H MOV CL, [3732H]# 3.未命中,讀主存地址3732H,分配表項(xiàng)3,讀出C2H MOV DL, [401FH]# 4.命中表項(xiàng)1,讀出BFH有效位 標(biāo)簽 (數(shù)據(jù))字節(jié)0 字節(jié)1 字節(jié)2 字節(jié)3 ... 字節(jié)15 表項(xiàng)0 0 表項(xiàng)1 1 20H
40HA0H
B0HA1H√
B1H√A2H
B2HA3H
B3H... AFH
BFH√表項(xiàng)2 0 37H C0H C1H C2H√ C3H ... CFH 表項(xiàng)3 1 ... 表項(xiàng)5 0
-
-
Cache的寫策略
- ”Cache命中“時(shí)的寫策略
- 寫穿透(Write Through):數(shù)據(jù)同時(shí)寫入Cache和主存
- 寫返回(Write Back):數(shù)據(jù)只寫入Cache,僅當(dāng)該數(shù)據(jù)塊被替換時(shí)才將數(shù)據(jù)寫回主存
- ”Cache失效“時(shí)的寫策略
- 寫不分配(Write Non-Allocate):直接將數(shù)據(jù)寫入主存
- 寫分配(Write Allocate):將該數(shù)據(jù)所在的塊讀入Cache后,再將數(shù)據(jù)寫入Cache
- (寫返回,寫分配) (寫穿透,寫不分配)
- ”Cache命中“時(shí)的寫策略
-
高速緩存的組織結(jié)構(gòu)
Cache的訪問(wèn)過(guò)程.png- Average Memory Access Time = Hit Time + Miss Penalty * Miss Rate
- Cache Miss 原因:
- 義務(wù)時(shí)效(Compulsory Miss):無(wú)法有效避免
- 第一次訪問(wèn)某一數(shù)據(jù)塊
- 也稱為冷啟失效(Cold Start Miss)
- 容量失效(Capacity Miss):可通過(guò)增加Cache容量緩解
- Cache無(wú)法保存程序訪問(wèn)所需的所有數(shù)據(jù)塊
- 沖突失效(Conflict Miss)
- 多個(gè)存儲(chǔ)器位置映射到同一Cache位置
- 義務(wù)時(shí)效(Compulsory Miss):無(wú)法有效避免
- Cache的映射策略
- 直接映射Cache,二路組相聯(lián)Cache,...
- Cache替換算法
- 隨機(jī)(Random)
- 硬件隨機(jī)選擇一個(gè)Cache替換
- 輪轉(zhuǎn)(Round-Robin)
- 按照預(yù)先設(shè)定的順序依次選擇Cache塊替換
- 最近最少使用(LRU)
- 硬件記錄訪問(wèn)歷史信息
- 選擇距離現(xiàn)在最長(zhǎng)時(shí)間未被訪問(wèn)的Cache塊替換
- 隨機(jī)(Random)
- 存儲(chǔ)容量的計(jì)算
- K:
, M:
, G:
- 內(nèi)部存儲(chǔ)器容量
- 高速緩存:32KB = 32 * 1024Byte
- 內(nèi)存:4GB =
Byte
- 外部存儲(chǔ)器容量
- 優(yōu)盤:4GB =
Byte
- 硬盤:1TB =
Byte
- 優(yōu)盤:4GB =
- 數(shù)據(jù)傳輸率、時(shí)鐘頻率
- 以太網(wǎng):100Mbps =
bits per second
- CPU主頻:3GHz =
HZ
- 以太網(wǎng):100Mbps =
- K:
quiz:
- 循環(huán)通常具有很好的空間局部性 & 時(shí)間局部性
- 數(shù)組通常具有很好的空間局部性
- 64-bit數(shù)據(jù)寬度的DDR-400 SDRAM的峰值帶寬為3.2GB/s,核心時(shí)鐘頻率為200MHz,芯片內(nèi)部采用了2位數(shù)據(jù)預(yù)取技術(shù),其接口頻率是多少?200MHZ
- SRAM和DRAM區(qū)別:
- DRAM結(jié)構(gòu)比SRAM簡(jiǎn)單
- DRAM要刷新,SRAM不要
- DRAM功耗比SRAM低

