0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Cache替換策略和Write-through介紹

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-31 11:48 ? 次閱讀

Cache和存儲器一樣具有兩種基本操作,即讀操作和寫操作。當CPU發(fā)出讀操作命令時,根據它產生的主存地址分為兩種情形:一種是需要的數據已在Cache中,那么只需要直接訪問Cache,從對應單元中讀取信息到數據總線即可;

另一種是需要的數據尚未裝入Cache,CPU需要從主存中讀取信息的同時,Cache替換部件把該地址所在的那塊存儲內容從主存復制到Cache中。若Cache中相應位置已被字塊占滿,就必須去掉舊的字塊。常見的替換策略有以下兩種:

1-先進先出策略(FIFO)

FIFO(First In First Out)策略總是把最先調入的Cache字塊替換出去,它不需要隨時記錄各個字塊的使用情況,較容易實現(xiàn)。缺點是經常使用的塊,如一個包含循環(huán)程序的塊也可能由于它是最早的塊而被替換掉。

2-最近最少使用策略(LRU)

LRU(Least Recently Used)策略是把當前近期Cache中使用次數最少的信息塊替換出去,這種替換算法需要隨時記錄Cache中字塊的使用情況。LRU的平均命中率比FIFO高,在組相聯(lián)映像方式中,當分組容量加大時,LRU的命中率也會提高。

關于Write-through和Write-back

1-對于磁盤操作來說

write-through的意思是寫操作根本不使用緩存,數據總是直接寫入磁盤,關閉寫緩存,可釋放緩存用于讀操作(緩存被讀寫操作共用)。

write-back的意思是數據不直接被寫入磁盤,而是先寫入緩存,再由控制器將緩存內未寫入磁盤的數據寫入磁盤,從應用程序的角度看,比等待完成磁盤寫入操作要快得多,因此可以提高寫性能。

但是write-back(write cache)方式通常在磁盤負荷較輕時速度更快。負荷重時,每當數據被寫入緩存后,就要馬上再寫入磁盤以釋放緩存來保存將要寫入的新數據,這時如果數據直接寫入磁盤,控制器會以更快的速度運行。因此,負荷重時,將數據先寫入緩存反而會降低吞吐量。

2-對于CPU內部的cache緩沖模式來說

Write-Through和Write-Back,前者是按順序來一個寫一個,而后者則是先將資料按一定數量保存在緩沖區(qū)中,然后將相同位置的數據一次性寫出。舉例說明:有一部電梯,如果按先入先出的原則,即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中的數據。

?Write-Back:在write的時候更新cache,但是memory中的數據不一定同步更新,只有當cache到一定程度才會把cache中的數據刷到memory中,或者通過cache指令刷新,不會同步自動刷新。

?cache line的意思是假設你那條指令只要從memory中讀4個字節(jié),但是一般來說你接下來的指令很有可能要讀這4個字節(jié)后面的數據,所以一般硬件會多讀一些數據進入cache,比如64字節(jié),那么這64字節(jié)就是一個cache line。而如果你這個cache line里的數據長時間不被CPU訪問,那么這個cache line可能會被選中換出,這時候就必須把cache里被改過的信息寫回memory了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7365

    瀏覽量

    163089
  • 數據
    +關注

    關注

    8

    文章

    6713

    瀏覽量

    88307
  • 磁盤
    +關注

    關注

    1

    文章

    355

    瀏覽量

    25090
  • Cache
    +關注

    關注

    0

    文章

    128

    瀏覽量

    28188
收藏 人收藏

    評論

    相關推薦

    CacheWrite Buffer一般性介紹

    Cache是位于CPU與主存儲器即DRAM(Dynamic RAM,動態(tài)存儲器)之間的少量超高速靜態(tài)存儲器SRAM(Static RAM)
    的頭像 發(fā)表于 10-31 15:07 ?536次閱讀
    <b class='flag-5'>Cache</b>和<b class='flag-5'>Write</b> Buffer一般性<b class='flag-5'>介紹</b>

    STM32H7系列AXI SRAM設置不同的cache策略導致以太網初始化異常怎么解決?

    最近基于STM32H743處理器進行以太網移植,mpu按照art-pi配置是可以,以太網初始化正常,且可以ping通,此時AXI SRAM設置為 write-through 和 no write
    發(fā)表于 07-18 06:43

    MPU的作用是什么?有哪些功能?

    MPU的作用是什么?有哪些功能?MPU常用的寄存器有哪些?read/write-through/back/allocate的區(qū)別是什么?
    發(fā)表于 02-22 07:01

    淺析cache控制器的分配策略替換策略

    ,Write-through策略通常比write-back策略要慢 。當然,目前寫入不會直接寫入到主存,會通過在cache和主存之間插入
    發(fā)表于 06-15 16:24

    介紹一種多級cache的包含策略Cache inclusion policy)

    時不會通知L2 cache;write-through policy在寫L1 cache時會通知L2 cache。原作者:xpuu
    發(fā)表于 07-20 14:46

    基于修正LRU的壓縮Cache替換策略

    以優(yōu)化壓縮cache替換策略為目標,提出一種優(yōu)化的基于修正LRU的壓縮cache替換策略MLR
    發(fā)表于 04-15 09:51 ?36次下載

    OrCAD中元件的替換與更新

    OrCAD中元件的替換與更新,有時要對原理圖中某一個元件批量替換,或者給同一種元件統(tǒng)一添加屬性值,這就要用到replace cache和update cache命令。
    發(fā)表于 12-02 10:16 ?2.5w次閱讀
    OrCAD中元件的<b class='flag-5'>替換</b>與更新

    基于BWDSP指令Cache的PLRU替換算法研究

    通過BWDSP模擬器對目前常用的幾種替換算法和大小不同的指令Cache塊進行仿真實驗得出不同缺失率。實驗結果表明,所提出的PLRU替換算法性能高于LRU、LFU、FIFO替換算法,并使
    發(fā)表于 09-25 14:50 ?17次下載

    一種有效的Cache優(yōu)化替換策略

    該問題,一種有效的解決方法是優(yōu)化Cache替換策略,減少Cache中臟塊被替換出的數量。現(xiàn)有研究主要通過在插入和訪問命中時給臟塊設定較高的保
    發(fā)表于 11-27 15:16 ?1次下載
    一種有效的<b class='flag-5'>Cache</b>優(yōu)化<b class='flag-5'>替換</b><b class='flag-5'>策略</b>

    OrCAD教程:如何對元件進行替換與更新

    批量替換replace cache 打開cache,選中要替換的元件,如圖所示 右鍵,replace cache 彈出
    發(fā)表于 04-17 14:18 ?1.3w次閱讀
    OrCAD教程:如何對元件進行<b class='flag-5'>替換</b>與更新

    寄存器和cache的區(qū)別介紹

    本文開始闡述了CACHE的概念、CACHE替換機構與讀寫操作,其次介紹了寄存器的原理以及它的主要技術,最后闡述了寄存器和cache兩者之間的
    發(fā)表于 04-11 14:10 ?1.3w次閱讀

    從三個方面闡述Cache

    關于cache,大概可以從三個方面進行闡述:內存到cache的映射方式,cache的寫策略,cache
    的頭像 發(fā)表于 11-21 11:09 ?2423次閱讀

    在組相聯(lián)cache中,用于替換cache line的算法有哪些?

    LRU(Least Recently Used)算法:該算法會跟蹤每個cache line的age(年齡)情況,并在需要時替換掉近期最少使用的cache line。
    的頭像 發(fā)表于 10-08 11:10 ?717次閱讀

    Cache分類與替換算法

    根據不同的分類標準可以按以下3種方法對Cache進行分類。 ?1)數據cache和指令cache ?● 指令cache:指令預取時使用的cache
    的頭像 發(fā)表于 10-31 11:26 ?764次閱讀
    <b class='flag-5'>Cache</b>分類與<b class='flag-5'>替換</b>算法

    Cache內容鎖定是什么

    “鎖定”在cache中的塊在常規(guī)的cache替換操作中不會被替換,但當通過C7控制cache中特定的塊時,比如使某特定的塊無效時,這些被“鎖
    的頭像 發(fā)表于 10-31 11:31 ?598次閱讀