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