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