天天看點

七、高速緩沖存儲器Cache7.1、解決CPU和主存之間的速度差異,避免CPU“空等”現象。局部性原理:時間局部性、空間

作者:九天攬月兮五洋捉鼈

七、高速緩沖存儲器Cache

7.1、解決CPU和主存之間的速度差異,避免CPU“空等”現象。

局部性原理: 時間局部性、空間局部性

7.2、Cache的映像方法

(1)直接映像。直接映像方式的優點是位址變換很簡單,缺點是不靈活,塊沖突率高。

(2)全相聯映像。位置不受限制,十分靈活。其主要缺點是無法從主存塊号中直接獲得Cache的塊号,變換比較複雜,速度比較慢。

(3)組相聯映像。距離CPU較近位置可以采用直接映像或者組相聯映像;距離CPU較遠的可以采用全相聯映像。

7.3、Cache的性能:CPU在通路記憶體時,首先判斷所要通路的内容是否在Cache中,如果在,就稱為“命中”,此時CPU直接從Cache中調用該内容;否則,就稱為 “不命中”,CPU隻好去記憶體中調用所需的子程式或指令了。CPU不但可以直接從Cache中讀出内容,也可以直接往其中寫入内容。由于Cache的存取速率相當快,使得CPU的使用率大大提高,進而使整個系統的性能得以提升。

如果以Hc為代表對Cache的通路命中率,tc為Cache的存取時間,tm為主存的通路時間,則Cache的平均通路時間ta為 : ta=Hc*tc+(1-Hc)*tm

7.4、寫政策:因為Cache的内容是部分主存内容的副本,應該與主存内容保持一緻。而CPU對cache的寫入更改了Cache内容,如何與主存内容保持一緻就有幾種寫操作工作方式可供選擇,統稱為寫政策。

(1) 寫回法(write–back):當CPU對Cache寫命中時,隻修改cache的内容不立即寫入主存,隻當此行被換出時才寫回主存。這種政策使Cache在CPU-主存之間,不僅在讀方向而且在寫方向上都起到高速緩存作用。

(2)寫直達法(write–through):又稱全寫法,寫透。是當Cache寫命中時,cache與主存同時發生寫修改。

(3)标記法:資料進入Cache後,有效位置1,當cpu對該資料修改時,資料隻寫入主存并将該有效位置0。要從Cache中讀取資料時要測試其有效位,若為1則直接從Cache中取數,否則從主存中取數。

7.5、Cache替換算法

(1)随機算法。這是最簡單的替換算法。随機法完全不管Cache塊過去、現在及将來的使用情況,簡單地根據一個随機數,選擇一塊替換掉。

(2)先進先出(First In and First Out,FIFO)算法。按調入Cache的先後決定淘汰的順序,即在需要更新時,将最先進入Cache的塊作為被替換的塊。這種方法要求為每塊做一記錄,記下它們進入Cache的先後次序。這種方法容易實作,而且系統開銷小。其缺點是可能會把一些需要經常使用的程式塊(如循環程式)替換掉。

(3)近期最少使用(Least Recently Used,LRU)算法。LRU算法是把CPU近期最少使用的塊作為被替換的塊。這種替換方法需要随時記錄Cache中各塊的使用情況,以便确定哪個塊是近期最少使用的塊。LRU算法相對合理,但實作起來比較複雜,系統開銷較大。通常需要對每一塊設定一個稱為“年齡計數器”的硬體或軟體計數器,用以記錄其被使用的情況。

(4)最不經常使用頁置換(Least Frequently Used,LFU)算法。要求在頁置換時置換引用計數最小的頁,因為經常使用的頁應該有一個較大的引用次數。但是有些頁在開始時使用次數很多,但以後就不再使用,這類頁将會長時間留在記憶體中,是以可以将引用計數寄存器定時右移一位,形成指數衰減的平均使用次數。LFU的複雜度以及計數器規模都比LRU大,LRU隻關注近期通路情況,而LFU會統計累計通路次數作為淘汰的依據。該算法計數器位數多,實作困難。

#軟考# #軟考進階系統分析師# #軟考進階資訊系統項目管理師/高項筆記#

七、高速緩沖存儲器Cache7.1、解決CPU和主存之間的速度差異,避免CPU“空等”現象。局部性原理:時間局部性、空間
七、高速緩沖存儲器Cache7.1、解決CPU和主存之間的速度差異,避免CPU“空等”現象。局部性原理:時間局部性、空間
七、高速緩沖存儲器Cache7.1、解決CPU和主存之間的速度差異,避免CPU“空等”現象。局部性原理:時間局部性、空間

繼續閱讀