入門啟示錄Ch06簡報
- 2. 簡報綱要
6.1 引言
6.2 記憶體效能失衡
6.3 快取結構設計
6.4 記憶體平均存取時間
6.5 區域存取性 6.9 集合關聯映射
6.6 映射函數 6.10 寫入策略
6.7 直接映射 6.11 快取階層
6.8 完全關聯映射 6.12 結語 2
- 3. 核心重點
快取記憶體利用區域存取
•
原理,以補償晶片之間的
效能失衡,改善范紐曼瓶
頸。
快取有三種映射函數:直接映射、完全關聯映射、集合關聯
•
映射,可以把少量的高速快取記憶體,搭配大量的慢速記憶
體,建構出完美的快取結構。
3
- 8. CPU內頻和外頻
CPU的內頻 = 外頻 × 倍數
外頻雖然慢速,但進入CPU內部的倍頻電路後,呈倍數地轉
換成內頻,變成CPU內部高速運作的時序。
8
- 10. FSB(前端匯流排)
FSB與外頻
0.8GHz
3.2GHz
Intel特別把CPU連接到北橋
的區域匯流排,稱為FSB(前
端匯流排)。
FSB支援800MHz(等效時脈),由於一個時脈週期,可傳送四個
FSB支援800MHz(等效時脈),由於一個時脈週期,可傳送四個
位元資訊,因此外頻仍然為200MHz(真實時脈)。
位元資訊,因此外頻仍然為200MHz(真實時脈)。
10
- 13. ※照片出處 http://en.wikipedia.org/wiki/Maurice_Wilkes
魏爾克斯
魏爾克斯生於1913的英格蘭,二戰結束後,魏爾克斯回到
劍橋大學,建立了數學實驗室。(後改為電腦實驗室)
1946年,魏爾克斯參加為愛
1946年,魏爾克斯參加為愛
尼克計算機所舉辦的暑期研
習,從此開啟他在計算機界
的卓越貢獻,相關傑出成就
與榮耀(含杜林獎),證明
他在計算機界無比崇高的領
導地位。
Maurice Wilkes(1913~) 13
- 18. AMAT
AMAT = C + (1-h) M
其中:
整個記憶體平均存取時間 擊中次數
h擊中率 = ×100%
(Average Memory Access 請求總數
Time)簡寫成AMAT。
其中,C代表快取記憶體的存取時間,M代表主記憶體的存
取時間,h代表擊中率,1-h代表失誤率。
18
- 22. 區域存取性
• 空間區域存取性
(Spatial locality)
• 時間區域存取性 快取記憶體容量一般並不
大,往往無法容納整個程
(Temporal locality)
式或資料。
式或資料
如果我們能夠掌握程式的行為模式,把即將要執行的指令或
資料,以區塊的方式擷取到快取內部,如此將能夠提昇擊中
率,降低失誤率。
22
- 26. 僧多粥少
快取發生失誤時,會直接
從主記憶體搬走對應的記
憶區塊,放在快取線上。
因此一個快取線路可以對應到某一個區塊,問題在於主記憶
體遠大於快取記憶體,因此區塊數也就遠多於快取線,僧多
粥少,焦點演變到眾多的區塊如何搶奪少量的快取線。
26
- 31. 直接映射
假設快取線和區塊大小
都是1B,快取有4個快取
都是1B,快取有4個快取
線,主記憶體有8個區
線,主記憶體有8個區
塊。
直接映射依順序分配區塊,每個區塊只能放到固定的快取線,
一個快取線對應到二個區塊(一對多的函數關係)(二個區塊
搶一個快取線)。
31
- 35. 欲存取的 快取記憶體 主記憶體
參考位址 位址 標籤 資料 位址 資料
001 00 000 11H
010 01 001 22H
011 10 010 33H
100 11 011 44H
010 100 55H
011 101 66H
※位址、標籤以二進制表示 110 77H
※資料以16進制表示,簡寫為H。 111 88H
35
- 37. (ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
所以 填入0,而 填入22H
2. 第二個參考欲擷取主記憶體位址010:快取miss
所以 填入0,而 填入33H
3. 第三個參考欲擷取主記憶體位址011:快取miss
所以 填入0,而 填入44H
4. 第四個參考欲擷取主記憶體位址100:快取miss
所以 填入1,而 填入55H
5. 第五個參考欲擷取主記憶體位址010:快取hit
直接擷取快取內容 ,不會擷取主記憶體
6. 第六個參考欲擷取主記憶體位址011:快取hit
直接擷取快取內容 ,不會擷取主記憶體 37
- 38. (iii)
快取擊中率:總共6個存取動作,2個hit。
2
× 100% = 33.3%
6
38
- 42. 完全關聯映射的置換規則:
• FIFO(First In First Out,先進先出):如果
發生置換行為的話,先進先出置換法就是最先進入
快取線的記憶區塊,總是會最先被淘汰出去。
• LRU(Least Recently Used,近來無用法):淘
汰快取線中,最久沒作存取的區塊。(計算時間)
• LFU(Least Frequently Used,最罕使用法):
淘汰快取線中,最少使用的區塊。(計數頻率)
• 亂數置換(Random Replacement):隨機淘汰一
條快取線。
42
- 44. 欲存取的 快取記憶體 主記憶體
標籤 資料 標籤 資料 標籤 資料 標籤 資料
參考位址 位址 資料
1 1 2 2 3 3 4 4
→ →
001 000 11H
← ←
010 001 22H
011 010 33H
100 011 44H
010 100 55H
011 101 66H
※位址、標籤以二進制表示 110 77H
※資料以16進制表示,簡寫為H。 111 88H
44
- 46. (ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
所以 填入001,而 填入22H。
2. 第二個參考欲擷取主記憶體位址010:快取miss
所以 填入010,而 填入33H
3. 第三個參考欲擷取主記憶體位址011:快取miss
所以 填入011,而 填入44H
4. 第四個參考欲擷取主記憶體位址100:快取miss
所以 填入1,而 填入55H
5. 第五個參考欲擷取主記憶體位址010:快取hit
因此直接擷取快取內容 ,不會擷取主記憶體
6. 第六個參考欲擷取主記憶體位址011:快取hit
因此直接擷取快取內容 ,不會擷取主記憶體 46
- 47. (iii)
快取擊中率:總共6個存取動作,2個hit。
2
× 100% = 33.3%
6
47
- 50. 集合關聯映射
集合關聯映射結合直接映
射和完全關聯映射的優
點。
以二向集合關聯來看,不管有幾排,總是有二個集合,而每
筆資料「依排分配座位」,可以放在第一個集合,或第二個
集合。
50
- 53. 欲存取的 快取記憶體 主記憶體
位址 Tag1 資料1 Tag2 資料2
參考位址 位址 資料
→ →
0 000
001 11H
← ←
1 001
010 22H
010
011 33H
011
100 44H
100
010 55H
101
011 66H
110
※位址、標籤(Tag)使用二進制。 77H
111
※資料使用16進制,簡寫為H。 88H
53
- 55. (ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
所以 填入00,而 填入22H
2. 第二個參考欲擷取主記憶體位址010:快取miss
所以 填入01,而 填入33H
3. 第三個參考欲擷取主記憶體位址011:快取miss
所以 填入01,而 填入44H
4. 第四個參考欲擷取主記憶體位址100:快取miss
所以 填入10,而 填入55H
5. 第五個參考欲擷取主記憶體位址010:快取hit
因此直接擷取快取內容 ,不會擷取主記憶體
6. 第六個參考欲擷取主記憶體位址011:快取hit
因此直接擷取快取內容 ,不會擷取主記憶體 55
- 56. (iii)
快取擊中率:總共6個存取動作,2個hit。
2
× 100% = 33.3%
6
56
- 60. Load
記憶體參考動作有二:
• 載入(Load)記憶體
大部分的記憶體參考動
• 儲存(Store)記憶體
作(約有七、八成)是
載入(Load)動作。
載入(Load)動作。
不管在載入的任何時刻…,也不管是擊中或失誤與否,主記
不管在載入的任何時刻…,也不管是擊中或失誤與否,主記
憶區塊為正本,快取線則是複本,正本和複本總是相同,兩
者具有一致性。(稱為:快取一致性)
60
- 61. Store
Store有兩種寫入策略:
• 寫透法(write through)
少部分的記憶體參考動
作(約有一、二成)是
• 寫回法(write back)
儲存(Store)記憶體。
儲存(Store)記憶體。
比如:CPU經過運算(或其它行為)得到某個結果,而且這
比如:CPU經過運算(或其它行為)得到某個結果,而且這
個結果必須寫入記憶體,此時主記憶體和快取記憶體可能因
為正副本,而導致「快取不一致性」問題。
61
- 62. 寫透法
CPU同時更新快取記憶
CPU同時更新快取記憶
體和主記憶體。
這種方法對於單一快取系統而言,可以確保主記憶體和快取
的一致性,讓資料永遠有效,缺點則是:在慢速的記憶體匯
流排上,產生大量的資料流量,造成速度瓶頸。
62
- 63. 寫回法
先更新快取記憶體,暫時
不更新主記憶體,以減少
發生置換行為
不必要的寫入流量。
等到快取記憶體要被取代之前,才更新入主記憶體資料。看
起來,這種方式好像會出現正複本不一致,但對於單一快取
記憶體而言,這種方法和寫透一樣,也不會有什麼問題。
63
- 66. 快取階層
大部分的電腦廠商喜歡將
快取記憶體分階層置放,
來降低失誤的代價。
L1快取失誤時,只要到L2快取進行存取,L2快取所付出的代
L1快取失誤時,只要到L2快取進行存取,L2快取所付出的代
價比記憶體輕微;即使L2又失誤,只要善用平行存取技術,
價比記憶體輕微;即使L2又失誤,只要善用平行存取技術,
到記憶體去存取,整體仍有比較好的效能表現。
66
- 67. 處理器 類別 發表日期 L1快取 L2快取 L3快取
大型主機 — —
IBM 360/85 1968 16 ~32 KB
迷你電腦 — —
PDP-11/70 1975 1 KB
迷你電腦 — —
VAX 11/780 1978 16 KB
大型主機 — —
IBM 3033 1978 64 KB
大型主機 — —
IBM 3090 1985 128~256KB
— —
Intel 80486 PC 1989 8 KB
—
Pentium PC 1993 8 KB/8 KB 256~512KB
— —
PowerPC 601 PC 1993 32 KB
— —
PowerPC 620 PC 1996 32KB/32KB
PowerPC G4 PC/伺服器 1999 32KB/32KB 256KB~1MB 2 MB
大型主機
IBM S/390 G4 1997 32 KB 256 KB 2 MB
大型主機 —
IBM S/390 G6 1999 256 KB 8 MB
—
Pentium 4 PC/伺服器 2000 8 KB/8 KB 256 KB
高階伺服器 —
IBM SP 2000 64 KB/32 KB 8 MB
CRAY MTA PC/伺服器 2001 16KB/16KB 96KB 4MB
Itanium PC/伺服器 2001 16KB/16KB 96 KB 4 MB
67
高階伺服器 —
SGI Origin 2001 2001 32KB/32KB 4 MB