女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

在組相聯cache中,用于替換cache line的算法有哪些?

冬至子 ? 來源:CSDN ? 作者:谷公子 ? 2023-10-08 11:10 ? 次閱讀

1. 在組相聯cache中,用于替換cache line的算法有哪些?

  • LRU(Least Recently Used)算法:該算法會跟蹤每個cache line的age(年齡)情況,并在需要時替換掉近期最少使用的cache line。
  • MRU(Most Recently Used)算法:這與LRU相反,最年輕的cache line會優先被替換掉。
  • PLRU(Pseudo LRU)算法:這與LRU相似,它沒有age跟蹤cache line(這樣開銷較大),只有1個或2個bit來跟蹤cache line使用情況。
  • LFU(Least Frequently Used)算法:該算法會跟蹤一個cache line訪問的頻率,并決定替換使用次數最少的cache line。
  • Random replacement算法:該算法不存儲任何信息,當需要替換時隨機選擇一個cache line。

2. Cache coherency的問題是什么?

在SMP(Shared Multiprocessor systems)中,多個處理器都有自己的cache,同一數據(同一地址)的多個副本可能同時存在于不同的cache中。如果允許每個處理器自由更新cache,則可能導致數據一致性被破壞了。例如:如果允許兩個處理器向相同的地址寫入值,那么在不同的處理器上讀取相同的地址可能會看到不同的值。

3. 基于snoop的緩存一致性協議和基于directory的緩存一致性協議有什么區別?

在基于Snoop的一致性協議中,來自處理器的數據請求被發送到共享系統里的所有其它處理器。其它處理器根據這個請求查看自己是否有數據的副本,并做出相應的響應。因此,每個處理器都試圖保持內存的一致性視圖。

在基于directory的一致性協議中,directory用于跟蹤哪些處理器正在訪問和緩存哪些地址。任何發出新請求的處理器都將檢查該directory,以了解是否有任何其它處理器用于數據副本,然后可以向該處理器發送點到點請求,以獲取最新的數據副本。

兩者的優缺點為:基于snoop的一致性協議用于較小的系統的話,如果有足夠的帶寬用于傳遞請求,它會更快。但對于較大的SMP系統不具有可伸縮性,因此需要為每個請求廣播消息,可能會使系統過載阻塞。基于directory的一致性協議由于在發送消息之前需要查找記錄的表,可能會有較長的延遲。但它沒有廣播消息,可伸縮性更好,通常用于較大的SMP系統中。

4. 什么是MESI協議?

MESI協議是具有多個write-back 類型cache的設計中最常用的cache一致性協議。MESI表示在所有cache中跟蹤每個cache line并用于響應snoop請求的狀態。這些不同的狀態可以解釋如下:

  • M(Modified):表示cache line數據相對于memory數據被修改過了,為dirty的。
  • E(Exclusive):此狀態表示cache line數據相對于內存是clean的,且只在該cache中存在。Exclusive屬性允許該cache所在的處理器對該cache line進行寫操作。
  • S(Shared):該狀態表示cache line被多個cache共享,并且相對memory也是clean的。由于這是在所有cache共享的,因此協議不允許直接對該cache line進行寫操作。
  • I(Invalid):該狀態表示cache line無效,沒有任何有效數據。
  • 當cache line處于除Invalid之外的任何狀態時,cache都可以處理讀請求。當cache line處于Modified或Exclusive狀態時,才可以處理寫請求。

5. 什么是MESIF和MOESIF協議?

這兩個協議都是MESI協議的擴展,引入了兩個新的狀態”F”和”O”,解釋如下:

  • F(Forward):F狀態時S狀態的一種特殊形式,表明cache應該通過轉發數據來充當給定cache line的任何請求的指定反饋者。如果系統中有多個cache具有處于S狀態的同一cache line,則將其中一個指定為F狀態,以便為來自不同處理器的新請求轉發數據。該協議確保,如果任何cache保存的cache line為S狀態,那么最多只有一個(其他)cache保存的cache line為F狀態。這種狀態有助于減少對memory帶寬的占用,因為沒有F狀態,即使一條cache line在多個cache中處于S狀態,它們都不能將數據轉發給請求讀或寫的不同處理器。(請注意,cache中的S狀態cache line只能服務于相同的處理器讀取)
  • O(Owned):O狀態時一種特殊的狀態,它是為了在不需要寫回memory的情況下在系統的不同cache中移動修改過的或dirty的數據而引入的。如果cache line還與其它可以使cache line保持S狀態的cache共享,則cache line需要從M狀態轉換到O狀態。O狀態有助于將修改后的數據推遲寫回memory,直到真正需要時再寫。

6. 什么是RFO?

RFO代表Read for Ownership。這是cache一致性協議中的一種操作。它是由處理器試圖寫入共享或無效狀態的cache line時發出的,這將導致所有其它處理器將該cache line的狀態設置為Invalid。RFO是意圖寫入該memory地址的讀操作。因此,該操作是排他的,它將數據讀到cache中,并使持有該memory地址的所有其它處理器的cache無效掉這個cache line。

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

    關注

    68

    文章

    19804

    瀏覽量

    233523
  • 存儲器
    +關注

    關注

    38

    文章

    7634

    瀏覽量

    166398
  • SMP
    SMP
    +關注

    關注

    0

    文章

    78

    瀏覽量

    20163
  • 狀態機
    +關注

    關注

    2

    文章

    493

    瀏覽量

    28068
  • cache技術
    +關注

    關注

    0

    文章

    41

    瀏覽量

    1194
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何在NXP MCU上啟用D-Cache

    Data Cache,我已經能夠減少其他 MCU 的推理時間。我想知道如何在 NXP MCU 上啟用 D-Cache。任何其他性能提升策略也受到歡迎。
    發表于 03-27 07:48

    國產電壓基準源替換REF3025工業電源管理應用替換方案

    國產電壓基準源替換REF3025工業電源管理應用替換方案
    的頭像 發表于 03-19 09:44 ?323次閱讀
    國產電壓基準源<b class='flag-5'>替換</b>REF3025<b class='flag-5'>在</b>工業電源管理應用<b class='flag-5'>中</b>的<b class='flag-5'>替換</b>方案

    請問驚鴻7110是否支持cache維護指令?

    驚鴻7110是就sifive u74處理器的。查看了一下u74手冊,它是專門的cache維護指令CFLUSH.D.L1。賽昉官方版本編譯不通過。請問一下大佬,這個怎么解決呀?
    發表于 03-10 07:24

    Linux服務器卡頓救星之一招釋放Cache內存

    為了加速操作和減少磁盤I/O,內核通常會盡可能多地緩存內存,這部分內存就是Cache Memory(緩存內存)。根據設計,包含緩存數據的頁面可以按需重新用于其他用途(例如,應用程序)。 緩存內存
    的頭像 發表于 01-16 10:04 ?1266次閱讀

    晶圓scribe line(劃片線)和saw line(鋸片線)的差異

    關鍵的概念,它們晶圓的后段工藝扮演著重要的角色。為了方便理解,我們可以把晶圓比作一塊大餅,而每一片芯片就像是從大餅上切下來的薄片,劃片線和鋸片線則是切割這些薄片的“指引”和“路徑”。 Scribe Line(劃片線) 定義:
    的頭像 發表于 01-03 11:33 ?1165次閱讀
    晶圓<b class='flag-5'>中</b>scribe <b class='flag-5'>line</b>(劃片線)和saw <b class='flag-5'>line</b>(鋸片線)的差異

    什么是緩存(Cache)及其作用

    緩存(Cache)是一種高速存儲器,用于臨時存儲數據,以便快速訪問。計算機系統,緩存的作用是減少處理器訪問主存儲器(如隨機存取存儲器RAM)所需的時間。 緩存(
    的頭像 發表于 12-18 09:28 ?7422次閱讀

    Cache和內存有什么區別

    Cache(高速緩存)和內存(Memory,通常指主存儲器或RAM)是計算機存儲系統兩個重要的組成部分,它們計算機的性能和數據處理扮演著不同的角色。以下是對
    的頭像 發表于 09-26 15:28 ?3579次閱讀

    解析Arm Neoverse N2 PMU事件L2D_CACHE_WR

    客戶希望我們幫忙分析 Eigen gemm 基準測試的一些執行情況。具體來說是為什么 L1D_CACHE_WR 的值會低于 L2D_CACHE_WR,這種情況令人費解。
    的頭像 發表于 09-03 11:42 ?1721次閱讀
    解析Arm Neoverse N2 PMU事件L2D_<b class='flag-5'>CACHE</b>_WR

    2k1000LA關于IODMA請求的描述

    2k1000的用戶手冊對IO互連網絡的DMA請求路由方式進行闡述,如圖。 其中提到窗口命中需要兩個條件,一是地址經過掩碼后與base相等,二是DMA訪存屬性和mmap[5]共同決定是否命中
    發表于 08-15 21:52

    Cortex R52內核Cache的具體操作(2)

    ,clean等操作。雖然目前cortex R52內核很少需要操作cache,但是本節依然給一些操作指導和實踐,以備以后不時之須。
    的頭像 發表于 07-15 15:44 ?2006次閱讀
    Cortex R52內核<b class='flag-5'>Cache</b>的具體操作(2)

    Cortex R52內核Cache的相關概念(1)

    開始閱讀本系列文章之前,請先參閱《有關CR52 MPU配置說明》。因為這篇文章講述了,cache配置所涉及到的寄存器的設置和MPU的一些基本概念。如果讀者都已經理解了上述內容,可以跳過。本章內容主要講述cache屬性的具體含意
    的頭像 發表于 07-15 10:37 ?2252次閱讀
    Cortex R52內核<b class='flag-5'>Cache</b>的相關概念(1)

    CortexR52內核Cache的具體操作

    ,clean等操作。雖然目前cortex R52內核很少需要操作cache,但是本節依然給一些操作指導和實踐,以備以后不時之須。
    的頭像 發表于 07-15 10:32 ?1800次閱讀
    CortexR52內核<b class='flag-5'>Cache</b>的具體操作

    替換ADS1248,國產ADCPLC的應用方案

    替換ADS1248,國產ADCPLC的應用方案
    的頭像 發表于 07-09 09:35 ?770次閱讀
    <b class='flag-5'>替換</b>ADS1248,國產ADC<b class='flag-5'>在</b>PLC<b class='flag-5'>中</b>的應用方案

    wwe例程加入blufi功能,blufi不可用,報BTINT:malloc failed.怎么處理?

    ) SR_SYS: Data cache line should be 64B 都是關于內存的,查看wwe 的設置, 語音識別為什么要求cache為64kb?什么辦法規避,讓語音
    發表于 06-28 07:39

    國產ADC可替換AD7794電量測量的應用

    國產ADC可替換AD7794電量測量的應用
    的頭像 發表于 06-18 09:54 ?784次閱讀
    國產ADC可<b class='flag-5'>替換</b>AD7794<b class='flag-5'>在</b>電量測量<b class='flag-5'>中</b>的應用