1. 存儲系統層次結構程序員
主存速度緩慢的緣由:主存增速與CPU不一樣步,執行指令期間屢次訪問主存算法
主存容量不足的緣由:編程
- 存在制約主存容量的技術因素:如由CPU、主板等相關技術指標規定了主存容量
- 應用對主存容量需求不斷擴大:window98 -- 8M,windows 8 -- 1G
-----> 存儲體系結構化層次: CPU -- Cache1 -- Cache2(解決速度) -- 主存 -- 輔存(解決容量)windows
存儲體系結構化層次理論基礎:緩存
- 時間局部性:程序體現爲循環結構
- 空間局部性:程序體現爲順序結構
2. 主存中的數據組織dom
存儲字長:主存的一個存儲單元所包含的二進制位數,目前大多數計算機主存按字節編址,主要由32爲和64位異步
數據存儲與邊界的關係:分佈式
- 按邊界對齊的數據存儲,未按邊界對齊的數據存儲
- 邊界對齊與存儲地址的關係:(32位爲例)
- 雙字長邊界對齊:起始地址最末三位爲000(8字節整數倍)
- 單字長邊界對齊:起始地址最末二位爲00(4字節整數倍)
- 半字長邊界對齊:起始地址最末一位爲0(2字節整數倍)
大端與小端存儲方式:ide
- 大端:最高字節地址是數據地址(0123存成0123)
- 小端:最低字節地址是數據地址(0123存成3210)
3. 存儲器分類spa
- SRAM存儲器:存取速度快,但集成度低,功耗大,作緩存
- DRAM存儲器:存取速度慢,但集成度高,功耗低,作主存
DRAM刷新方式:集中刷新、分散刷新、異步刷新
4. 主存容量的擴展
- 位擴展法:8K * 8位 --> 8K * 32位
- 字擴展法:8K * 8位 --> 32K * 8位
- 字位同時擴展法:8K * 8位 --> 32K * 32位
5. 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
- 隨機替換法
6. 虛擬存儲器
- 解決問題:主存容量不足。但願向程序員提供更大(比主存大)的編程空間
- 分類:頁式,段式,段頁式
- 頁式實現方式:MMU(Memory Management Unit) + 頁表 + TLB(Transaction Lookaside Buffer:地址轉換後備緩衝器)
- 頁式轉換過程:虛擬地址 = 虛擬頁號 + 頁內偏移 ==> 物理頁號 + 頁內偏移
7. 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,再條帶化