1. 程式人生 > >Cache寫機制:Write-through與Write-back

Cache寫機制:Write-through與Write-back

mem 原因 存在 取代 pos href oca through 將不


cache through

https://www.cnblogs.com/gordonkong/p/7161809.html

原文地址:https://blog.csdn.net/wyzxg/article/details/7254458


通常有三種方法:

  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就和中介差不多,你給了中介錢,然後它告訴你說你的東西買到了,然後就相信拿到這個東西了,但是要是出現特殊情況中介跑了,你再去檢查,東西原來沒有真正到手。

對於寫操作,存在寫入緩存缺失數據的情況,這時有兩種處理方式:

  1. Write
    allocate
    : 方式將寫入位置讀入緩存,然後采用write-hit(緩存命中寫入)操作。寫缺失操作與讀缺失操作類似。

  2. No-write allocate: 方式並不將寫入位置讀入緩存,而是直接將數據寫入存儲。這種方式下,只有讀操作會被緩存。

無論是Write-through還是Write-back都可以使用寫缺失的兩種方式之一。
只是通常Write-back采用Write allocate方式,而Write-through采用No-write allocate方式;因為多次寫入同一緩存時,Write allocate配合Write-back可以提升性能;而對於Write-through則沒有幫助。

https://blog.csdn.net/heli200482128/article/details/80090719

Cache寫機制:Write-through與Write-back