Cache寫機制:Write-through與Write-back
通常有三種方法:
1.write through:CPU向cache寫入數據時,同時向memory(後端存儲)也寫一份,使cache
和memory的數據保持一致。優點是簡單,缺點是每次都要訪問memory,
速度比較慢。
2. post write:CPU更新cache數據時,把更新的數據寫入到一個更新緩衝器,在合適的
時候纔對memory(後端存儲)進行更新。這樣可以提高cache訪問速度,
但是,在數據連續被更新兩次以上的時候,緩衝區將不夠使用,被迫同
時更新memory(後端存儲)。
3. write back:cpu更新cache時,只是把更新的cache區標記一下,並不同步更新memory
(後端存儲)。只是在cache區要被新進入的數據取代時,才更新
memory(後端存儲)。這樣做的原因是考慮到很多時候cache存入的是中間結
果,沒有必要同步更新memory(後端存儲)。優點是CPU執行的效率提高,
缺點是實現起來技術比較複雜。
Write-through與Write-back和買賣東西相似,Write-Through就相當於你親自去買東西,
你買到什麼就可以親手拿到;而Write-Back就和中介差不多,你給了中介錢,然後它告
訴你說你的東西買到了,然後就相信拿到這個東西了,但是要是出現特殊情況中介跑了,
你再去檢查,東西原來沒有真正到手。
對於寫操作,存在寫入緩存缺失數據的情況,這時有兩種處理方式:
Write allocate:方式將寫入位置讀入緩存,然後採用write-hit
(緩存命中寫入)操作。寫缺失操作與讀缺失操
作類似。
No-write allocate:方式並不將寫入位置讀入緩存,而是直接將
數據寫入存儲。這種方式下,只有讀操作會
被緩存。
無論是Write-through還是Write-back都可以使用寫缺失的兩種方式之一。
只是通常Write-back採用Write allocate方式,而Write-through採用No-write allocate方式;因爲多次寫入同一緩存時,Write allocate配合Write-back
可以提升性能;而對於Write-through則沒有幫助。
—end------
————————————————
版權聲明:本文爲CSDN博主「skate」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wyzxg/article/details/7254458