slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
? 12 ? ???? PowerPoint Presentation
Download Presentation
? 12 ? ????

Loading in 2 Seconds...

play fullscreen
1 / 53

? 12 ? ???? - PowerPoint PPT Presentation


  • 157 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '? 12 ? ????' - zeal


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
快取結構
  • 電腦最重要的關鍵技術之一
  • 常用於硬體和軟體
  • 降低范紐曼瓶頸的最佳化技術
slide3
快取記憶體
  • 快取技術扮演中介角色,來改善存取效能。
  • 快取結構必須比正常存取機制快速。
  • 在正常的情況下,必須使用快取記憶體,來保存某些資料的備份,以便在接受資料請求之後,能夠直接回覆請求。
slide4
快取結構圖
  • 快取置放在請求機制(稱為請求者)和回答請求機制(通常是大型資料儲存裝置)之間的路徑上
slide5
快取特性
  • 小巧
    • 快取容量遠小於整體容量
  • 靈活
    • 決定如何回答
  • 透通
    • 不管快取插入與否,都不影響請求者和資料儲存裝置的功能 。
  • 自動
    • 快取機制具有主動的演算法,可以調整快取的管理方式。
slide6
快取領域
  • 軟硬體
  • 小型資料項目(比如:位元組、字組)
  • 中型資料項目(比如:區段、分頁)
  • 大型資料項目(比如:整個程式)
  • 一般資料項目(比如:檔案、磁碟區塊)
  • 應用程式(比如:網頁、文件、或資料庫)的資料項目
  • 文字資料(比如:電子郵件訊息)
slide7
快取領域(Cont.)
  • 非文字資料(比如:影像、音效檔、視訊)
  • 單一電腦系統(比如:在處理器和記憶體之間)
  • 多重電腦系統(比如:在多個桌上型電腦和資料庫伺服器之間)
  • 擷取取資料的專用系統(比如:WWW網站)
  • 擷取和儲存資料的專用系統(比如:實體記憶體)
slide8
快取重要性

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

slide9
快取術語
  • 快取擊中:
    • 簡稱擊中
    • 快取請求時,可直接從快取記憶體中取出所請求的資料;
  • 快取失誤:
    • 簡稱失誤
    • 無法從快取記憶體取出請求的資料,必須到底層的資料儲存裝置,去擷取所請求的資料。
slide10
快取術語(Cont.)
  • 區域存取性:
    • 存取的指令或資料有區域化傾向
    • 有許多重複指令或資料的請求,稱為高區域存取性
    • 反之,則稱低區域存取性
  • 愈高的區域存取性,代表愈高的效能表現。
slide12
最差快取效能
  • 最壞的極端情況:假設每一個請求都是新的資料項目,顯然無法在快取記憶體中,找到這些資料。
  • 快取轉送N個請求給資料儲存裝置,這些所累計的時間成本,稱為最差成本Cworst:

Cworst=NCm

  • 平均成本為Cm。
slide13
最佳快取效能
  • 最好的極端情況:假設快取的第一個請求,是擷取於儲存裝置,而後續的請求直接使用快取內部的複本。
  • 累計N個請求的時間成本,稱為最佳成本Cbest:

Cbest=Cm+(N-1)Ch

  • 平均成本為:
  • 當N∞時,請求成本逼近快取速度Ch
slide14
效能成本的結論

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

slide15

擊中次數

請求總數

快取效能的評估
  • 擊中率意指:在一序列的快取請求中,快取擊中次數的比率。

擊中率 =

  • 失誤率定義:

失誤率 = 1 - 擊中率

slide16
整體成本的評估
  • 擊中率需視實際的情況而定
  • 整體成本 = rCh + (1-r)Cm
    • r 擊中率
    • Ch擊中成本
    • Cm失誤成本
  • 有兩個可以改善整體成本:
    • 增加擊中率
    • 降低擊中成本
slide17
快取置換策略
  • 如何增加擊中率呢?
  • 快取容量遠小於資料儲存裝置,一旦快取滿載後,就必須引入一種置換策略。
  • 置換策略有兩個主要考慮因素:
    • 盡量保留存取最頻繁的資料項目,增加擊中率!
    • 建構置換策略的成本必須不貴。
slide18
LRU置換法
  • 最流行的置換策略就是LRU置換法
  • LRU主張
    • 把過去最長時間未被存取的資料項目,列為置換的對象。
    • 容易實現,而且工作順暢。
  • 如果快取請求具有高區域存取性時,資料項目會不斷地重複存取,此時LRU會傾向保存這些資料項目,來降低存取成本。
slide19
LRU觀念

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

slide20
多階層快取結構
  • 快取結構最令人感到驚嘆的是改善效能的表現
  • 快取會盡量靠近請求者,就近反應,降低抓取資料的成本。
  • 我們可以在請求者和資料儲存裝置之間使用多個快取,稱為多階層快取結構,更進一步改善快取效能。
slide22
二階層快取結構
  • 這種二階層快取結構的成本會低於原快取的存取成本。
  • 整體成本 = r1Ch1 + r2Ch2 +(1-r1-r2)Cm
    • r1是新快取的擊中率
    • Ch1則是新快取的存取成本;
    • r2是原快取的擊中率
    • Ch2則是原快取的存取成本。
slide23
預先載入快取
  • 快取設計者發現:程式在執行初期,快取擊中率會特別的低。
  • 使用預先載入快取的觀念,來加以改善。
  • 目前存在各種不同的預先載入法,比如:
    • 快取可以先把某些內容備份在非揮發性記憶體,等到啟動時,預先載入這些資料。
    • 處理器想存取1位元組記憶體時,快取可以預先擷取64位元組。
slide24
快取記憶體
  • TLB
  • 分頁
  • 實體快取
slide25
TLB快取
  • TLB是一個應用在分頁系統的高速硬體機制,可以改善分頁效能。
  • TLB正是一個不折不扣的快取
    • 漸進性的查閱動作,幾乎總在查閱相同的分頁。
    • 大都可以從TLB,直接取得相同的答案。
  • TLB使用LRU置換法
  • TLB內含數位電路,可以高速移動數值到CAM記憶體,並非使用慢速的主記憶體。
slide26
分頁的快取效果

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

slide27
實體快取
  • 讓快取搜尋快取答案的同時,也傳輸請求給實體記憶體。
    • 一旦快取先找到答案,立刻取消記憶體動作。
    • 如果找不到答案,快取會等待底層記憶體的答案。
  • 快取硬體會採用平行策略,同時搜尋快取區域和存取底層記憶體,雖然硬體有些複雜,但有較高的效能表現。
slide28
寫透和寫回
  • 快取會受到寫入動作的影響,一般的寫入動作分成兩種:
  • 寫透
    • 同時更新快取和底層記憶體;
  • 寫回
    • 不急著把資料寫入記憶體
    • 通常只會把資料寫入快取,等到發生快取置換動作時,才把數值寫入記憶體。
slide30
快取一致性協定
  • 快取一致性協調被存取數值的一致化,比如:
    • 當處理器2讀取位址A時,一致性協定會要求快取1,立刻更新記憶體數值,如此快取2才能取出正確的資料。
    • 任何處理器的讀取動作,可能會觸發其它快取的寫回動作,。
slide31
多階層快取結構
  • L1快取:意指處理器晶片內部的快取。
  • L2快取:意指晶片外部的快取。
  • L3快取:意指內建在實體記憶體的快取。
slide32
存取記憶體的成本

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

slide33
指令快取和資料快取
  • 指令擷取有相當高的區域特性:
    • 下一個要執行的指令通常在鄰近的記憶體位址
    • 大部分的時間都消耗在空間要求不大的迴圈上
  • 某些高區域指令特性並不一定適用於資料上,儘管有些資料存取也有同樣的高區域性,但有些則否。
  • 指令和資料行為可能存在差異。
slide34
指令快取和資料快取(Cont.)
  • 分離型快取使用兩種不同的快取:
    • 一個處理指令
    • 一個處理資料
  • 整合型快取只使用單一快取,同時處理指令和資料存取。
slide35
虛擬快取
  • 如何把虛擬位址應用在快取結構?
    • 快取放在MMU和實體記憶體之間,表示快取只要認識實體位址,即可。(快取使用實體位址來指定資料)
    • 快取放在處理器和MMU之間,表示快取也要瞭解虛擬位址。(快取使用虛擬位址來指定資料)
slide36
清空快取
  • 如何解決多重應用程式使用相同位址所造成的問題呢?
  • 結構師有兩個解答:
    • 清空快取
    • 清晰識別
slide37
清空快取(Cont.)

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

slide38
清晰識別
  • 清晰識別必須額外地加入識別位址的相關位元。
  • 也就是
    • 處理器內部有一個額外的硬體暫存器,可以配置每一個執行程式一個唯一ID號碼。
    • 每當處理器開始執行某一個應用程式時,作業系統會把應用程式ID號碼載入到ID暫存器,然後這個ID暫存器內容會與原來的虛擬位址一起儲存到快取上。
slide40
快取實現技術
  • 直接映射快取
  • 集合關聯快取
slide41
直接映射快取
  • 快取記錄的不是單一位元組,而是區塊。
  • 快取由多個區塊組成
  • 每個區塊有4個位元組
  • 記憶體會被分割成多個相同大小的區塊。
slide45
直接映射快取的查閱演算法

已知:

記憶體位址

尋找:

該位址的位元組資料

方法:

從位址上萃取標籤t、區塊編號b、和偏移值o

檢視快取槽b的標籤,如果標籤確實為t,則擷 取其數值。

如果標籤不是t,使用記憶體位址直接擷取記憶 體區塊,然後把該區塊內容備份到快取槽b, 並且更改標籤為t。

最後以偏移值o選擇適當的位元組資料。

slide46
集合關聯快取
  • 集合關聯快取會使用硬體平行策略
  • 同時進行存取的硬體,可以儲存多個標籤相同的記憶體區塊,取代原先單一的快取動作。
slide48
集合關聯快取的優點
  • 具有兩組底層硬體的集合關聯快取,稱為雙向集合關聯快取。
  • 考慮兩個位址:A1和A2,雖然不同標籤,但都具有相同的區塊編號0
    • 假設在直接映射快取中,存取這兩個位址,會競爭同一個快取槽。
    • 交互存取這兩個位址,愈會造成快取失誤。
    • 在集合關聯快取中,這兩個位址可以放到兩個底層硬體:A1放在其中一個快取槽,A2放在另一個快取槽,即使交互存取,也會快取擊中。
slide49
完全關聯快取
  • 可以使用集合關聯快取,來代表快取所有的映射關係,注意兩個極端情形:
    • 完全關聯快取允許記憶體區塊任意地儲存到任何一個快取槽,全部採用類似於CAM記憶體的平行策略。
    • 另一個是之前談到的直接映射快取,這種快取只能讓記憶體區塊固定放在某一個快取槽,沒有任何平行策略。
slide50
完全關聯快取的平行觀念
  • 直接映射快取:沒有平行處理的能力。
  • 集合關聯快取:部分平行處理的能力。
  • 完全關聯快取:全部平行處理的能力。 (相當於 :內容定址記憶體)
slide51
對程式設計師的影響
  • 快取運作良好!
  • 快取讓程式設計師可以盡量在程式中運用迴圈技巧,讓處理器不斷重複地執行某一小段的指令。
  • 編譯器應該協助程式在快取執行時,有最佳化的表現。
slide52
結論
  • 快取結構是效能的最佳化技術
  • 快取結構被廣泛地運用在電腦系統及其它領域,比如:
    • 多階層快取
    • 預先載入快取
    • TLB
    • 分頁請求
slide53
結論 (Cont.)
  • 快取可以應用在實體記憶體上,也可以應用在虛擬記憶體系統。
  • 現代電腦大都使用多階層快取。
  • 直接映射快取運用硬體迅速地執行快取查閱。
  • 集合關聯快取則把直接映射的觀念,延伸到平行存取的底層硬體。