1 / 53

第 12 章 快取結構

第 12 章 快取結構. 快取結構. 電腦最重要的關鍵技術之一 常用於硬體和軟體 降低范紐曼瓶頸的最佳化技術. 快取記憶體. 快取技術扮演中介角色,來改善存取效能。 快取結構必須比正常存取機制快速。 在正常的情況下,必須使用快取記憶體,來保存某些資料的備份,以便在接受資料請求之後,能夠直接回覆請求。 . 快取結構圖. 快取置放在請求機制(稱為請求者)和回答請求機制(通常是大型資料儲存裝置)之間的路徑上. 快取特性. 小巧 快取容量遠小於整體容量 靈活 決定如何回答 透通 不管快取插入與否,都不影響請求者和資料儲存裝置的功能 。 自動

zeal
Download Presentation

第 12 章 快取結構

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. 第 12 章快取結構

  2. 快取結構 • 電腦最重要的關鍵技術之一 • 常用於硬體和軟體 • 降低范紐曼瓶頸的最佳化技術

  3. 快取記憶體 • 快取技術扮演中介角色,來改善存取效能。 • 快取結構必須比正常存取機制快速。 • 在正常的情況下,必須使用快取記憶體,來保存某些資料的備份,以便在接受資料請求之後,能夠直接回覆請求。

  4. 快取結構圖 • 快取置放在請求機制(稱為請求者)和回答請求機制(通常是大型資料儲存裝置)之間的路徑上

  5. 快取特性 • 小巧 • 快取容量遠小於整體容量 • 靈活 • 決定如何回答 • 透通 • 不管快取插入與否,都不影響請求者和資料儲存裝置的功能 。 • 自動 • 快取機制具有主動的演算法,可以調整快取的管理方式。

  6. 快取領域 • 軟硬體 • 小型資料項目(比如:位元組、字組) • 中型資料項目(比如:區段、分頁) • 大型資料項目(比如:整個程式) • 一般資料項目(比如:檔案、磁碟區塊) • 應用程式(比如:網頁、文件、或資料庫)的資料項目 • 文字資料(比如:電子郵件訊息)

  7. 快取領域(Cont.) • 非文字資料(比如:影像、音效檔、視訊) • 單一電腦系統(比如:在處理器和記憶體之間) • 多重電腦系統(比如:在多個桌上型電腦和資料庫伺服器之間) • 擷取取資料的專用系統(比如:WWW網站) • 擷取和儲存資料的專用系統(比如:實體記憶體)

  8. 快取重要性 快取結構是一種基本的最佳化技術,廣泛地運用於抓擷取資料的軟硬體系統,而所擷取的項目並沒有限制固定的資料型態、型式、或大小。

  9. 快取術語 • 快取擊中: • 簡稱擊中 • 快取請求時,可直接從快取記憶體中取出所請求的資料; • 快取失誤: • 簡稱失誤 • 無法從快取記憶體取出請求的資料,必須到底層的資料儲存裝置,去擷取所請求的資料。

  10. 快取術語(Cont.) • 區域存取性: • 存取的指令或資料有區域化傾向 • 有許多重複指令或資料的請求,稱為高區域存取性 • 反之,則稱低區域存取性 • 愈高的區域存取性,代表愈高的效能表現。

  11. 快取效能

  12. 最差快取效能 • 最壞的極端情況:假設每一個請求都是新的資料項目,顯然無法在快取記憶體中,找到這些資料。 • 快取轉送N個請求給資料儲存裝置,這些所累計的時間成本,稱為最差成本Cworst: Cworst=NCm • 平均成本為Cm。

  13. 最佳快取效能 • 最好的極端情況:假設快取的第一個請求,是擷取於儲存裝置,而後續的請求直接使用快取內部的複本。 • 累計N個請求的時間成本,稱為最佳成本Cbest: Cbest=Cm+(N-1)Ch • 平均成本為: • 當N∞時,請求成本逼近快取速度Ch

  14. 效能成本的結論 如果不管額外的設計負荷,在最壞的情況下,有快取設計的效能不會比沒快取設計的效能要差;反之,在最好的情況下,每一個請求的時間成本接近快取效能,並且遠低於資料儲存裝置的存取成本。

  15. 擊中次數 請求總數 快取效能的評估 • 擊中率意指:在一序列的快取請求中,快取擊中次數的比率。 擊中率 = • 失誤率定義: 失誤率 = 1 - 擊中率

  16. 整體成本的評估 • 擊中率需視實際的情況而定 • 整體成本 = rCh + (1-r)Cm • r 擊中率 • Ch擊中成本 • Cm失誤成本 • 有兩個可以改善整體成本: • 增加擊中率 • 降低擊中成本

  17. 快取置換策略 • 如何增加擊中率呢? • 快取容量遠小於資料儲存裝置,一旦快取滿載後,就必須引入一種置換策略。 • 置換策略有兩個主要考慮因素: • 盡量保留存取最頻繁的資料項目,增加擊中率! • 建構置換策略的成本必須不貴。

  18. LRU置換法 • 最流行的置換策略就是LRU置換法 • LRU主張 • 把過去最長時間未被存取的資料項目,列為置換的對象。 • 容易實現,而且工作順暢。 • 如果快取請求具有高區域存取性時,資料項目會不斷地重複存取,此時LRU會傾向保存這些資料項目,來降低存取成本。

  19. LRU觀念 當快取記憶體滿載,卻又必須存取新的資料項目,此時快取面臨的選擇是要保留目前的資料項目,或者進行置換動作(回收一個資料,置放新的資料)。目前最常使用的置換法,以LRU置換法最受歡迎,除了容易建構實現外,LRU會盡量保留重複請求的資料項目。

  20. 多階層快取結構 • 快取結構最令人感到驚嘆的是改善效能的表現 • 快取會盡量靠近請求者,就近反應,降低抓取資料的成本。 • 我們可以在請求者和資料儲存裝置之間使用多個快取,稱為多階層快取結構,更進一步改善快取效能。

  21. 多階層快取結構圖

  22. 二階層快取結構 • 這種二階層快取結構的成本會低於原快取的存取成本。 • 整體成本 = r1Ch1 + r2Ch2 +(1-r1-r2)Cm • r1是新快取的擊中率 • Ch1則是新快取的存取成本; • r2是原快取的擊中率 • Ch2則是原快取的存取成本。

  23. 預先載入快取 • 快取設計者發現:程式在執行初期,快取擊中率會特別的低。 • 使用預先載入快取的觀念,來加以改善。 • 目前存在各種不同的預先載入法,比如: • 快取可以先把某些內容備份在非揮發性記憶體,等到啟動時,預先載入這些資料。 • 處理器想存取1位元組記憶體時,快取可以預先擷取64位元組。

  24. 快取記憶體 • TLB • 分頁 • 實體快取

  25. TLB快取 • TLB是一個應用在分頁系統的高速硬體機制,可以改善分頁效能。 • TLB正是一個不折不扣的快取 • 漸進性的查閱動作,幾乎總在查閱相同的分頁。 • 大都可以從TLB,直接取得相同的答案。 • TLB使用LRU置換法 • TLB內含數位電路,可以高速移動數值到CAM記憶體,並非使用慢速的主記憶體。

  26. 分頁的快取效果 根據快取的分析顯示,一般在容量有限的電腦系統中使用分頁請求,感覺很像整個虛擬空間都有足夠的實體記憶體一樣。

  27. 實體快取 • 讓快取搜尋快取答案的同時,也傳輸請求給實體記憶體。 • 一旦快取先找到答案,立刻取消記憶體動作。 • 如果找不到答案,快取會等待底層記憶體的答案。 • 快取硬體會採用平行策略,同時搜尋快取區域和存取底層記憶體,雖然硬體有些複雜,但有較高的效能表現。

  28. 寫透和寫回 • 快取會受到寫入動作的影響,一般的寫入動作分成兩種: • 寫透 • 同時更新快取和底層記憶體; • 寫回 • 不急著把資料寫入記憶體 • 通常只會把資料寫入快取,等到發生快取置換動作時,才把數值寫入記憶體。

  29. 多重快取系統圖

  30. 快取一致性協定 • 快取一致性協調被存取數值的一致化,比如: • 當處理器2讀取位址A時,一致性協定會要求快取1,立刻更新記憶體數值,如此快取2才能取出正確的資料。 • 任何處理器的讀取動作,可能會觸發其它快取的寫回動作,。

  31. 多階層快取結構 • L1快取:意指處理器晶片內部的快取。 • L2快取:意指晶片外部的快取。 • L3快取:意指內建在實體記憶體的快取。

  32. 存取記憶體的成本 現代電腦使用多階層快取系統,其中L1快取通常嵌入處理器晶片內部,L2快取放在處理器外部(但愈來愈多廠商也把L2快取直接嵌入處理器晶片內部),L3快取則內建於實體記憶體。整體而言,多階層快取系統最好的情況是:記憶體的存取成本接近暫存器的存取成本。

  33. 指令快取和資料快取 • 指令擷取有相當高的區域特性: • 下一個要執行的指令通常在鄰近的記憶體位址 • 大部分的時間都消耗在空間要求不大的迴圈上 • 某些高區域指令特性並不一定適用於資料上,儘管有些資料存取也有同樣的高區域性,但有些則否。 • 指令和資料行為可能存在差異。

  34. 指令快取和資料快取(Cont.) • 分離型快取使用兩種不同的快取: • 一個處理指令 • 一個處理資料 • 整合型快取只使用單一快取,同時處理指令和資料存取。

  35. 虛擬快取 • 如何把虛擬位址應用在快取結構? • 快取放在MMU和實體記憶體之間,表示快取只要認識實體位址,即可。(快取使用實體位址來指定資料) • 快取放在處理器和MMU之間,表示快取也要瞭解虛擬位址。(快取使用虛擬位址來指定資料)

  36. 清空快取 • 如何解決多重應用程式使用相同位址所造成的問題呢? • 結構師有兩個解答: • 清空快取 • 清晰識別

  37. 清空快取(Cont.) 保證快取不會給錯數值,每當作業系統更改到一個新的虛擬位址時,就強迫清空快取,移走目前快取的所有數值。

  38. 清晰識別 • 清晰識別必須額外地加入識別位址的相關位元。 • 也就是 • 處理器內部有一個額外的硬體暫存器,可以配置每一個執行程式一個唯一ID號碼。 • 每當處理器開始執行某一個應用程式時,作業系統會把應用程式ID號碼載入到ID暫存器,然後這個ID暫存器內容會與原來的虛擬位址一起儲存到快取上。

  39. ID暫存器圖

  40. 快取實現技術 • 直接映射快取 • 集合關聯快取

  41. 直接映射快取 • 快取記錄的不是單一位元組,而是區塊。 • 快取由多個區塊組成 • 每個區塊有4個位元組 • 記憶體會被分割成多個相同大小的區塊。

  42. 直接映射快取圖

  43. 標籤

  44. 2的冪次

  45. 直接映射快取的查閱演算法 已知: 記憶體位址 尋找: 該位址的位元組資料 方法: 從位址上萃取標籤t、區塊編號b、和偏移值o 檢視快取槽b的標籤,如果標籤確實為t,則擷 取其數值。 如果標籤不是t,使用記憶體位址直接擷取記憶 體區塊,然後把該區塊內容備份到快取槽b, 並且更改標籤為t。 最後以偏移值o選擇適當的位元組資料。

  46. 集合關聯快取 • 集合關聯快取會使用硬體平行策略 • 同時進行存取的硬體,可以儲存多個標籤相同的記憶體區塊,取代原先單一的快取動作。

  47. 集合關聯快取圖

  48. 集合關聯快取的優點 • 具有兩組底層硬體的集合關聯快取,稱為雙向集合關聯快取。 • 考慮兩個位址:A1和A2,雖然不同標籤,但都具有相同的區塊編號0 • 假設在直接映射快取中,存取這兩個位址,會競爭同一個快取槽。 • 交互存取這兩個位址,愈會造成快取失誤。 • 在集合關聯快取中,這兩個位址可以放到兩個底層硬體:A1放在其中一個快取槽,A2放在另一個快取槽,即使交互存取,也會快取擊中。

  49. 完全關聯快取 • 可以使用集合關聯快取,來代表快取所有的映射關係,注意兩個極端情形: • 完全關聯快取允許記憶體區塊任意地儲存到任何一個快取槽,全部採用類似於CAM記憶體的平行策略。 • 另一個是之前談到的直接映射快取,這種快取只能讓記憶體區塊固定放在某一個快取槽,沒有任何平行策略。

  50. 完全關聯快取的平行觀念 • 直接映射快取:沒有平行處理的能力。 • 集合關聯快取:部分平行處理的能力。 • 完全關聯快取:全部平行處理的能力。 (相當於 :內容定址記憶體)

More Related