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

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

發佈了336 篇原創文章 · 獲贊 33 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章