古詩詞大全網 - 成語經典 - 什麽是Cache?cache有什麽用?說明cache的幾種替換策略

什麽是Cache?cache有什麽用?說明cache的幾種替換策略

Cache是什麽

Cache是壹種特殊的存儲器,它由Cache 存儲部件和Cache控制部件組成。Cache 存儲部件壹般采用與CPU同類型的半導體存儲器件,存取速度比內存快幾倍甚至十幾倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址變換部件及替換控制部件等。至於它們各自又是怎樣工作的、有何作用等等,我想我們就沒有必要做進壹步的研究,知道壹般Cache分為L1 Cache(其中又分為數據Cache、代碼Cache)、L2 Cache就行了。

根據程序局部性規律可知:程序在運行中,總是頻繁地使用那些最近被使用過的指令和數據。這就提供了替換策略的理論依據。綜合命中率、實現的難易及速度的快慢各種因素,替換策略可有隨機法、先進先出法、最近最少使用法等。

1.隨機法(RAND法)

隨機法是隨機地確定替換的存儲塊。設置壹個隨機數產生器,依據所產生的隨機數,確定替換塊。這種方法簡單、易於實現,但命中率比較低。

2.先進先出法(FIFO法)

先進先出法是選擇那個最先調入的那個塊進行替換。當最先調入並被多次命中的塊,很可能被優先替換,因而不符合局部性規律。這種方法的命中率比隨機法好些,但還不滿足要求。先進先出方法易於實現,例如Solar-16/65機Cache采用組相聯方式,每組4塊,每塊都設定壹個兩位的計數器,當某塊被裝入或被替換時該塊的計數器清為0,而同組的其它各塊的計數器均加1,當需要替換時就選擇計數值最大的塊被替換掉。

3.最近最少使用法(LRU法)

LRU法是依據各塊使用的情況, 總是選擇那個最近最少使用的塊被替換。這種方法比較好地反映了程序局部性規律。

實現LRU策略的方法有多種。 下面簡單介紹計數器法、寄存器棧法及硬件邏輯比較對法的設計思路。

計數器方法:緩存的每壹塊都設置壹個計數器,計數器的操作規則是:

(1) 被調入或者被替換的塊, 其計數器清“0”,而其它的計數器則加“1”。

(2) 當訪問命中時,所有塊的計數值與命中塊的計數值要進行比較,如果計數值小於命中塊的計數值,則該塊的計數值加“1”;如果塊的計數值大於命中塊的計數值,則數值不變。最後將命中塊的計數器清為0。

(3) 需要替換時,則選擇計數值最大的塊被替換。