計算機組成原理——cache高速緩存存儲器


轉載自https://blog.csdn.net/chen1083376511/article/details/8187481

 

cache-高速緩存存儲器

在主存與CPU之間插入一級或多級SRAM組成的高速緩存存儲器。擴展cache有限,因為SRAM價格昂貴。

cache作用:為了解決CPU和主存之間速度不匹配而采用的一項重要技術。

cache特性:具有空間局部性以及時間局部性。

cache的組成:SRAM和控制邏輯。如果cache在CPU芯片外,它的控制邏輯一般和主存控制邏輯合成在一起,稱主存/cache控制器。若cache在CPU內,則由CPU提供它的控制邏輯。

CPU與cache之間的數據交換是以字為單位,而cache與主存之間的數據交換是以塊為單位。一個塊由若干字組成,是定長的。


cache原理圖

 

ache的命中率:為了使主存的平均讀出時間盡可能接近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的一致性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM