Cache和存儲器一樣具有兩種基本操作,即讀操作和寫操作。當(dāng)CPU發(fā)出讀操作命令時,根據(jù)它產(chǎn)生的主存地址分為兩種情形:一種是需要的數(shù)據(jù)已在Cache中,那么只需要直接訪問Cache,從對應(yīng)單元中讀取信息到數(shù)據(jù)總線即可;
另一種是需要的數(shù)據(jù)尚未裝入Cache,CPU需要從主存中讀取信息的同時,Cache替換部件把該地址所在的那塊存儲內(nèi)容從主存復(fù)制到Cache中。若Cache中相應(yīng)位置已被字塊占滿,就必須去掉舊的字塊。常見的替換策略有以下兩種:
1-先進(jìn)先出策略(FIFO)
FIFO(First In First Out)策略總是把最先調(diào)入的Cache字塊替換出去,它不需要隨時記錄各個字塊的使用情況,較容易實現(xiàn)。缺點(diǎn)是經(jīng)常使用的塊,如一個包含循環(huán)程序的塊也可能由于它是最早的塊而被替換掉。
2-最近最少使用策略(LRU)
LRU(Least Recently Used)策略是把當(dāng)前近期Cache中使用次數(shù)最少的信息塊替換出去,這種替換算法需要隨時記錄Cache中字塊的使用情況。LRU的平均命中率比FIFO高,在組相聯(lián)映像方式中,當(dāng)分組容量加大時,LRU的命中率也會提高。
關(guān)于Write-through和Write-back
1-對于磁盤操作來說
write-through的意思是寫操作根本不使用緩存,數(shù)據(jù)總是直接寫入磁盤,關(guān)閉寫緩存,可釋放緩存用于讀操作(緩存被讀寫操作共用)。
write-back的意思是數(shù)據(jù)不直接被寫入磁盤,而是先寫入緩存,再由控制器將緩存內(nèi)未寫入磁盤的數(shù)據(jù)寫入磁盤,從應(yīng)用程序的角度看,比等待完成磁盤寫入操作要快得多,因此可以提高寫性能。
但是write-back(write cache)方式通常在磁盤負(fù)荷較輕時速度更快。負(fù)荷重時,每當(dāng)數(shù)據(jù)被寫入緩存后,就要馬上再寫入磁盤以釋放緩存來保存將要寫入的新數(shù)據(jù),這時如果數(shù)據(jù)直接寫入磁盤,控制器會以更快的速度運(yùn)行。因此,負(fù)荷重時,將數(shù)據(jù)先寫入緩存反而會降低吞吐量。
2-對于CPU內(nèi)部的cache緩沖模式來說
Write-Through和Write-Back,前者是按順序來一個寫一個,而后者則是先將資料按一定數(shù)量保存在緩沖區(qū)中,然后將相同位置的數(shù)據(jù)一次性寫出。舉例說明:有一部電梯,如果按先入先出的原則,即write through模式,第一個人去3樓,第二個去2樓,第三個也去3樓,那么這電梯就得先到3樓,然后到2樓,再去3樓。
但如果在write back模式下,電梯先到2樓把第二個人送出去,然后再到3樓把第一個人和第三個人送出去,效率顯然高多了。早期的cache只有write through模式,但現(xiàn)在的cache都使用write back模式了。
3-其他的解釋
?Write-Through:在write的時候,同步更新cache和memory中的數(shù)據(jù)。
?Write-Back:在write的時候更新cache,但是memory中的數(shù)據(jù)不一定同步更新,只有當(dāng)cache到一定程度才會把cache中的數(shù)據(jù)刷到memory中,或者通過cache指令刷新,不會同步自動刷新。
?cache line的意思是假設(shè)你那條指令只要從memory中讀4個字節(jié),但是一般來說你接下來的指令很有可能要讀這4個字節(jié)后面的數(shù)據(jù),所以一般硬件會多讀一些數(shù)據(jù)進(jìn)入cache,比如64字節(jié),那么這64字節(jié)就是一個cache line。而如果你這個cache line里的數(shù)據(jù)長時間不被CPU訪問,那么這個cache line可能會被選中換出,這時候就必須把cache里被改過的信息寫回memory了。
-
存儲器
+關(guān)注
關(guān)注
38文章
7513瀏覽量
163987 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7080瀏覽量
89175 -
磁盤
+關(guān)注
關(guān)注
1文章
379瀏覽量
25224 -
Cache
+關(guān)注
關(guān)注
0文章
129瀏覽量
28363
發(fā)布評論請先 登錄
相關(guān)推薦
評論