1 / 73

計算機組織與結構 - 效能設計

計算機組織與結構 - 效能設計. 第四章 快取記憶體 (Cache memory). 電腦記憶體概述. 記憶體 特性 位置 容量 傳送單位 存取方法 效能 製材種類 物理特性 組織. 1 、 依位置分類. 處理器 暫存器 (Register) 內部 主記憶體 (Main memory) 外部 次要記憶體 (Secondary memory). 2 、依容量分類. 字組長度 記憶體組織最 ” 自然 ” 的單位 1 位元組 = 8 位元 16 位元電腦, 1 字組 = 16 位元 32 位元電腦, 1 字組 = 32 位元

Download Presentation

計算機組織與結構 - 效能設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機組織與結構-效能設計 第四章 快取記憶體 (Cache memory)

  2. 電腦記憶體概述 • 記憶體特性 • 位置 • 容量 • 傳送單位 • 存取方法 • 效能 • 製材種類 • 物理特性 • 組織

  3. 1、依位置分類 • 處理器 • 暫存器(Register) • 內部 • 主記憶體(Main memory) • 外部 • 次要記憶體(Secondary memory)

  4. 2、依容量分類 • 字組長度 • 記憶體組織最”自然”的單位 • 1位元組 = 8 位元 • 16位元電腦,1字組 = 16 位元 • 32位元電腦,1字組 = 32 位元 • 字組數目 • 或 位元組數目

  5. 3、依傳送單位分類 • 內部 • 通常受控於資料匯流排寬度 • 可能是位元組或字組 • 外部 • 通常使用比字組更大的區塊

  6. 4、依存取方法(1) 分類 • 循序(Sequential) • 從開頭有順序地往下讀取 • 存取時間跟上個資料、目前資料位置有關 • 比如:磁帶 • 直接(Direct) • 以唯一位址標示各個區塊 • 直接跳到鄰近區域,再依序搜尋 • 存取時間跟上個資料、目前資料位置有關 • 比如:磁碟

  7. 依存取方法(2)分類 • 隨機 (Random) • 唯一連線的定址機制 • 存取指定位置的時間,與先前存取無關 • 比如:RAM • 關聯(Associative) • 資料能否取出,依據其內容的某些位元,而非位址 • 存取指定位置的時間,與先前存取無關 • 比如:cache

  8. 5、依效能分類 • 存取時間(Access time) • 從位址出現到抓取正確資料為止的時間 • 週期時間(Cycle time) • 在下次存取之前,”復原”記憶體所需要的時間 • 週期時間=存取時間+ 復原時間 • 傳送率(Transfer rate) • 資料進出記憶體的速度

  9. 6、依製材種類分類 • 半導體(Semiconductor) • RAM • 磁面物質(Magnetic) • 磁碟& 磁帶 • 光學材料(Optical) • CD & DVD • 磁光(Magnetic-optical) • MO

  10. 7、依物理特性分類 • 揮發性/非揮發性 • 依靠電力與否(又稱為依電性)! • 可抹除/不可抹除 • 能否覆寫!

  11. 8、依組織分類 • 集合眾多位元成為字組的方式 • 也就是 • 字組內部位元實際排列的方式 • 通常並不明顯,比如:交錯排列

  12. 記憶體階層 • CPU內部 • 暫存器 • 內部主要記憶體 • 一或多階快取記憶體 • “RAM” • 外部次要記憶體(回存裝置) • 磁碟、光碟 • 磁帶、MO

  13. 記憶體階層圖 • 暫存器 • 快取記憶體 • L1 快取、L2快取 • RAM • DRAM、SDRAM • 磁碟 • 磁碟快取、硬碟 • 光碟 • CD-ROM、CD-RW • DVD-ROM、DVD-RW • 磁帶 • MO

  14. 評量方式 • 容量多大? • 速度多快? • 價格多貴?

  15. 最快速的電腦 • DRAM速度慢 • 一般的主記憶體採用DRAM架構 • SRAM速度快 • 快取記憶體採用SRAM架構 • 當然可以只用SRAM建造電腦,這種電腦將非常快速。而且,這種電腦也不需要快取記憶體 • 如何“快取”快取記憶體?!然而,這種電腦肯定很貴! • 速度:SRAM>DDR-SDRAM>SDRAM>DRAM

  16. 區域存取性(Locality) • 指令執行傾向存取其附近的程式記憶體,比如:迴圈,這種局部特性稱為區域存取性,也就是:程式傾向區域存取性。

  17. 快取觀念 • CPU 請求某些記憶體位置的內容,先檢查該筆資料是否放在快取記憶體,如果放在快取記憶體, 則快取之(速度快)。 • 反之,如果不在快取記憶體, 則以區塊方式讀取主記憶體內容,並放到快取記憶體內,然後,再從快取記憶體把該資料送到CPU。

  18. 兩階記憶體的效能表現

  19. 快取記憶體原理 • 單階快取:根據區域存取性,放到快取記憶體的指令區塊,很可能再被存取,因而提昇整體存取速率。

  20. 三階快取 • 三階快取組織的用法,L2快取速度通常比L1慢、容量則比較大;同樣地,L3快取速度通常比L2慢、容量則比較大。

  21. 典型快取結構

  22. 快取記憶體設計 • 快取設計要素 • 快取位址 • 快取大小 • 映射函數 • 置換演算法 • 寫入策略 • 快取線路大小 • 快取數目

  23. 1、快取位址 • 幾乎所有的非嵌入式處理器,以及大部分的嵌入式處理器,都使用虛擬記憶體。 • 虛擬記憶體允許程式以邏輯觀點來定址記憶體,這種使用虛擬記憶體的方式與實體記憶體大小無關。 • 虛擬記憶體是電腦系統內部記憶體管理的一種技術。它使得應用程式認為它擁有連續的可用的內部記憶體(一個連續完整的位址空間),而實際上,它通常是被分隔成多個實體記憶體碎片,還有部分暫時儲存在外部磁碟記憶體上,在需要時進行資料交換。

  24. 邏輯快取

  25. 實體快取

  26. 2、快取大小 • 成本 • 愈多快取記憶體愈貴 • 速度 • 愈多快取記憶體愈快( 但有上限) • 定址變大後,檢查資料相對費時

  27. 3、映射(Mapping)函數 • <續上頁範例> • 16K個快取線路 vs 4M個記憶區塊 • 因此需要映射函數 把記憶區塊映射至快取線路 • 通常有三種方法: • 直接映射 • 關聯映射 • 集合關聯映射

  28. 範例 4.1 • 先檢視其基本結構,再依序地探討: • 快取記憶體容量為64 KB。 • 主記憶體和快取記憶體之間的資料傳輸,以4 B區塊為單位。相對而言,這表示快取記憶體會有條線路,來選擇4 B區塊。 • 主記憶體容量為16 MB,總共有24個可定址的位元。基於映射需求,可以將主記憶體分割成4 M個4 B區塊。

  29. 直接映射(Direct mapping)(1) • 將記憶區塊直接映射到某個固定的快取線路 • 由於記憶區塊遠多於快取線路,因此直接映射關係是多對一的函數 • 記憶區塊由其實際位址決定,總是對號入座,固定地被指派給某個快取線路 • 通常,採用循環分配的方式,將快取線路重複指派給記憶區塊 • 雖然,快取線路可能配置給n個記憶區塊,但依據區域存取性,快取線路仍將提供最可能的記憶區塊。 • 比如:n=4M/16K=256

  30. 直接映射(2) • 最簡單的方法:直接將主記憶體內的每個區塊映射到唯一的快取線路,以下表示: i = j modulo m 其中 modulo ( 稱為 “模”) 代表餘數除法 i = 快取線路編號 j = 主記憶體區塊編號 m = 快取線路的總數 v = 集合數量 k = 每個集合之快取線路數量

  31. 直接映射(3) 主記憶體前m個區塊的每個主記憶體區塊映射到唯一的快取線。接續後面的m個主記憶體區塊,同樣也以相同方式映射到快取,也就是說,主記憶體區塊Bm映射到快取線L0,區塊Bm+1映射到快取線L1,依此類推…。

  32. 直接映射快取記憶體組織

  33. 24 位元位址 2 位元字組(即4B區塊) 22 位元區塊(8位元標籤+14 位元線路) 如果有多個區塊映射至同一個快取線路,會以不同的標籤(tag)標示 只要比對快取線路和標籤,就可以得知快取內容 標籤將指向主記憶體內某個唯一的區塊 8 14 2 標籤s-r 線路r 字組w 24 位元 直接映射位址格式

  34. 直接映射結論 • 位址長度= (s + w) 位元 • 可定址單元總數= 2s+w字組或位元組 • 記憶區塊大小= 快取線路大小= 2w字組或位元組 • 主記憶體區塊總數= 2s+ w/2w = 2s • 快取線路總數= m = 2r • 標籤大小= (s – r) 位元

  35. 直接映射快取線路表 • 採用循環分配方式,指派記憶區塊。

  36. 直接映射範例

  37. 直接映射優缺點 • 簡單 • 不貴 • 區塊總是被指派到固定的位置 • 如果程式不斷地輪流存取兩個擁有相同快取線路的區塊,快取記憶體內會持續地交換的這二塊區塊(就是所謂的顛簸thrashing現象),則有非常高的快取失誤,使得擊中率因而降低不少。

  38. 關聯映射(Associative mapping) • 關聯映射又稱為完全(fully)關聯映射 • 不管什麼記憶區塊,總是隨意入座、沒有任何限制,可以隨時指派給任何一條快取線路 • 可以把記憶體位址解譯成標籤和字組兩部分 • 標籤將指向主記憶體內某個唯一的區塊 • 快取比較電路會檢查每個快取線路的標籤,檢查看看是否相符! • 快取比較電路相對複雜、昂貴!

  39. 關聯映射情形

  40. 完全關聯映射快取組織

  41. 標籤 22 位元 字組 2 位元 關聯映射位址格式 • 22位元標籤和32位元資料區塊一起儲存於快取線路 • 比較標籤欄位,可以得知是否已找到資料 • 比如: • 位址標籤資料快取線路 • FFFFFC FFFFFC 24682468 3FFF

  42. 關聯對映結論 • 位址長度= (s + w) 位元 • 可定址單元數目= 2s+w字組或位元組 • 記憶區塊= 快取線路= 2w字組或位元組 • 主記憶體區塊數目= 2s+w/2w = 2s • 快取線路數目= 未定 • 標籤大小= s 位元

  43. 完全關聯映射範例4.2b

  44. 範例4.2b • 主記憶體位址由22位元的標籤和2位元的字組組成,其中22位元標籤必須和32位元的區塊資料一起儲存在每個快取線路,注意位址的最左邊22位元 ( 最大有效 ) 構成標籤,因此24位元的十六進制位址16339C具有22位元的標號058CE7,這可從二進制位的表示法中清楚地看出:

  45. 集合關聯映射 • 集合關聯映射(Set associative mapping)融合直接映射和關聯映射兩者的優點,改良其缺點。 • 集合關聯映射採取 • 非對號入座,而是對號入廳(集合) (類似直接映射) • 隨意分配集合內的位置(快取線路) (類似完全關聯映射)

  46. K向集合關聯映射 • 假設:快取記憶體被分割成v個集合,每個集合內含k條快取線路,因此,總共有vk個快取線路,因此,記憶區塊會被對映到某個固定的集合的任意快取線路上。 • 如果k=2,稱為雙向集合關聯 • 如果k=4,稱為四向集合關聯 • 如果k=8,稱為八向集合關聯

  47. v個關聯映射快取

  48. k個直接映射快取

  49. k向集合關聯快取組織

  50. 集合關聯映射結論 • 位址長度= (s + w) 位元 • 可定址單元數目= 2s+w 位元組 • 記憶區塊= 快取線路= 2w位元組 • 主記憶體區塊數目= 2d • 集合內快取線路數目= k • 集合數目v = 2d • 快取線路總數= kv = k * 2d • 標籤大小= (s – d) 位元

More Related