計算機組成原理(2)-cache快取記憶體儲存器
cache-快取記憶體儲存器
在主存與CPU之間插入一級或多級SRAM組成的快取記憶體儲存器。擴充套件cache有限,因為SRAM價格昂貴。
cache作用:為了解決CPU和主存之間速度不匹配而採用的一項重要技術。
cache特性:具有空間區域性性以及時間區域性性。
cache的組成:SRAM和控制邏輯。如果cache在CPU晶片外,它的控制邏輯一般和主存控制邏輯合成在一起,稱主存/cache控制器。若cache在CPU內,則由CPU提供它的控制邏輯。
CPU與cache之間的資料交換是以字為單位,而cache與主存之間的資料交換是以塊為單位。一個塊由若干字組成,是定長的。
cache原理圖
cache的命中率:為了使主存的平均讀出時間儘可能接近cache的讀出時間,cache命中率應接近於1.
地址對映
含義:為了把主存塊放到cache中,必須應用某種方法把主存地址定位到cache中,稱作地址對映。
地址對映方式:全相聯對映方式、直接對映方式和組相聯對映方式。
全相聯對映方式
小結:
(1)在全相聯cache中,全部標記用一個相聯儲存器來實現,全部資料用一個普通RAM來實現。
(2)優點”衝突率小,cache利用率高
(3)缺點:比較器難於設計與實現
(4)只適用小容量cache。
直接對映方式
小結:
(1)優點:硬體簡單,成本低。
(2)缺點:每個主存塊只有一個固定得行位置可存放。
(3)發生衝突率大。(如果塊號相距m整數倍得兩個塊存於同一cache行時)
(4)適合大容量cache.
組相聯對映方式
小結:
適度兼顧了“全相聯對映方式”和“直接對映方式”的優點以及儘量避免兩者的缺點。
替換策略
含義:當一個新的主存塊需要拷貝到cache,而允許存放塊的行位置都被其他主存佔滿時,就要產生替換。
適合的地址對映方式:全相聯對映方式和組相聯對映方式
(1)最不經常使用(LFU)演算法
含義:將一段時間內被訪問次數最少的那行資料換出。每行設定一個計數器,從0開始計數,每次訪問某一行時被訪問的計數器增1.當需要替換時,將計數值最小的行換出,同時將這些行的計數器全部清零。
特點:這種演算法將計數週期限定在對這些定行兩次替換之間的間隔時間內(即替換一次,計數器清零一次),不能嚴格反映近期訪問情況。
(2)近期最少使用(LRU)演算法
含義:將近期內長久未被訪問過的換出。每行設定一個計數器,Cache每命中一次,命中行計數器清零,其他各行計數器增1.當需要替換時,將計數值最大的行換出。
特點:這種演算法保護了剛拷貝到cache中的新資料行,有較高的命中率。
(3)隨機替換
含義:從cache的行位置中隨機地選取一行換出。
特點:在硬體上容易實現,且速度也比那幾種策略快。但可能降低cache命中率和工作效率。
(4)先入先出(FIFO)演算法
含義:總是將最先調入的cache的內容替換出來,不需要隨時記錄各字塊的使用情況。
特點:容易實現,電路簡單。但是可能會把一些經常使用的程式(如迴圈程式)也作為最早的cache塊而替換出去。
cache的寫回操作策略
含義:CPU對Cache的寫入更改了Cache的內容。當被更改了內容的Cache塊被替換出Cache時,選用寫回操作替換策略使Cache內容和主存內容保持一致。
(1)寫回法
當CPU寫Cache命中時,只修改Cache的內容,而不立即寫入主存;只有當此行被替換出時才寫回主存。
優點:減少了訪問主存的次數。
缺點:存在不一致性的隱患。
解決問題:每個Cache行必須配置一個修改位,以反映此行是否被CPU修改過。
(2)全寫法
當CPU寫Cache命中時,Cache與主存同時發生寫修改。因而較好地維護了Cache與主存內容的一致性。當CPU寫Cache未命中時,直接向主存進行寫入。
優點:Cache中每行無需設定一個修改位以及相應的判斷邏輯。
缺點:cache對CPU向主存的寫操作無高速緩衝功能,降低了Cache的功效。
(3)寫一次法
基於寫回法並結合全寫法的寫策略,寫命中與寫未命中的處理方法與寫回法基本相同,只是第一次寫命中時要同時寫入主存(全寫法)。
優點:便於維護系統全部Cache的一致性。