一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

冬至子 ? 來(lái)源:CSDN ? 作者:谷公子 ? 2023-10-08 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

  • LRU(Least Recently Used)算法:該算法會(huì)跟蹤每個(gè)cache line的age(年齡)情況,并在需要時(shí)替換掉近期最少使用的cache line。
  • MRU(Most Recently Used)算法:這與LRU相反,最年輕的cache line會(huì)優(yōu)先被替換掉。
  • PLRU(Pseudo LRU)算法:這與LRU相似,它沒(méi)有age跟蹤cache line(這樣開銷較大),只有1個(gè)或2個(gè)bit來(lái)跟蹤cache line使用情況。
  • LFU(Least Frequently Used)算法:該算法會(huì)跟蹤一個(gè)cache line訪問(wèn)的頻率,并決定替換使用次數(shù)最少的cache line。
  • Random replacement算法:該算法不存儲(chǔ)任何信息,當(dāng)需要替換時(shí)隨機(jī)選擇一個(gè)cache line。

2. Cache coherency的問(wèn)題是什么?

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

3. 基于snoop的緩存一致性協(xié)議和基于directory的緩存一致性協(xié)議有什么區(qū)別?

在基于Snoop的一致性協(xié)議中,來(lái)自處理器的數(shù)據(jù)請(qǐng)求被發(fā)送到共享系統(tǒng)里的所有其它處理器。其它處理器根據(jù)這個(gè)請(qǐng)求查看自己是否有數(shù)據(jù)的副本,并做出相應(yīng)的響應(yīng)。因此,每個(gè)處理器都試圖保持內(nèi)存的一致性視圖。

在基于directory的一致性協(xié)議中,directory用于跟蹤哪些處理器正在訪問(wèn)和緩存哪些地址。任何發(fā)出新請(qǐng)求的處理器都將檢查該directory,以了解是否有任何其它處理器用于數(shù)據(jù)副本,然后可以向該處理器發(fā)送點(diǎn)到點(diǎn)請(qǐng)求,以獲取最新的數(shù)據(jù)副本。

兩者的優(yōu)缺點(diǎn)為:基于snoop的一致性協(xié)議用于較小的系統(tǒng)的話,如果有足夠的帶寬用于傳遞請(qǐng)求,它會(huì)更快。但對(duì)于較大的SMP系統(tǒng)不具有可伸縮性,因此需要為每個(gè)請(qǐng)求廣播消息,可能會(huì)使系統(tǒng)過(guò)載阻塞?;赿irectory的一致性協(xié)議由于在發(fā)送消息之前需要查找記錄的表,可能會(huì)有較長(zhǎng)的延遲。但它沒(méi)有廣播消息,可伸縮性更好,通常用于較大的SMP系統(tǒng)中。

4. 什么是MESI協(xié)議?

MESI協(xié)議是具有多個(gè)write-back 類型cache的設(shè)計(jì)中最常用的cache一致性協(xié)議。MESI表示在所有cache中跟蹤每個(gè)cache line并用于響應(yīng)snoop請(qǐng)求的狀態(tài)。這些不同的狀態(tài)可以解釋如下:

  • M(Modified):表示cache line數(shù)據(jù)相對(duì)于memory數(shù)據(jù)被修改過(guò)了,為dirty的。
  • E(Exclusive):此狀態(tài)表示cache line數(shù)據(jù)相對(duì)于內(nèi)存是clean的,且只在該cache中存在。Exclusive屬性允許該cache所在的處理器對(duì)該cache line進(jìn)行寫操作。
  • S(Shared):該狀態(tài)表示cache line被多個(gè)cache共享,并且相對(duì)memory也是clean的。由于這是在所有cache共享的,因此協(xié)議不允許直接對(duì)該cache line進(jìn)行寫操作。
  • I(Invalid):該狀態(tài)表示cache line無(wú)效,沒(méi)有任何有效數(shù)據(jù)。
  • 當(dāng)cache line處于除Invalid之外的任何狀態(tài)時(shí),cache都可以處理讀請(qǐng)求。當(dāng)cache line處于Modified或Exclusive狀態(tài)時(shí),才可以處理寫請(qǐng)求。

5. 什么是MESIF和MOESIF協(xié)議?

這兩個(gè)協(xié)議都是MESI協(xié)議的擴(kuò)展,引入了兩個(gè)新的狀態(tài)”F”和”O(jiān)”,解釋如下:

  • F(Forward):F狀態(tài)時(shí)S狀態(tài)的一種特殊形式,表明cache應(yīng)該通過(guò)轉(zhuǎn)發(fā)數(shù)據(jù)來(lái)充當(dāng)給定cache line的任何請(qǐng)求的指定反饋者。如果系統(tǒng)中有多個(gè)cache具有處于S狀態(tài)的同一cache line,則將其中一個(gè)指定為F狀態(tài),以便為來(lái)自不同處理器的新請(qǐng)求轉(zhuǎn)發(fā)數(shù)據(jù)。該協(xié)議確保,如果任何cache保存的cache line為S狀態(tài),那么最多只有一個(gè)(其他)cache保存的cache line為F狀態(tài)。這種狀態(tài)有助于減少對(duì)memory帶寬的占用,因?yàn)闆](méi)有F狀態(tài),即使一條cache line在多個(gè)cache中處于S狀態(tài),它們都不能將數(shù)據(jù)轉(zhuǎn)發(fā)給請(qǐng)求讀或?qū)懙牟煌幚砥鳌#ㄕ?qǐng)注意,cache中的S狀態(tài)cache line只能服務(wù)于相同的處理器讀取)
  • O(Owned):O狀態(tài)時(shí)一種特殊的狀態(tài),它是為了在不需要寫回memory的情況下在系統(tǒng)的不同cache中移動(dòng)修改過(guò)的或dirty的數(shù)據(jù)而引入的。如果cache line還與其它可以使cache line保持S狀態(tài)的cache共享,則cache line需要從M狀態(tài)轉(zhuǎn)換到O狀態(tài)。O狀態(tài)有助于將修改后的數(shù)據(jù)推遲寫回memory,直到真正需要時(shí)再寫。

6. 什么是RFO?

RFO代表Read for Ownership。這是cache一致性協(xié)議中的一種操作。它是由處理器試圖寫入共享或無(wú)效狀態(tài)的cache line時(shí)發(fā)出的,這將導(dǎo)致所有其它處理器將該cache line的狀態(tài)設(shè)置為Invalid。RFO是意圖寫入該memory地址的讀操作。因此,該操作是排他的,它將數(shù)據(jù)讀到cache中,并使持有該memory地址的所有其它處理器的cache無(wú)效掉這個(gè)cache line。

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

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235365
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167460
  • SMP
    SMP
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    20286
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    28259
  • cache技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    1238
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32H7的MPU配置與D-Cache沖突如何解決???

    現(xiàn)象??: STM32H743 MPU 與 D-Cache 沖突問(wèn)題詳細(xì)描述** 硬件環(huán)境 MCU 型號(hào) :STM32H743VIT6 開發(fā)板 :自定義板(或 STM32H743I-EVAL 等
    發(fā)表于 06-23 17:32

    如何在NXP MCU上啟用D-Cache?

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

    國(guó)產(chǎn)電壓基準(zhǔn)源替換REF3025工業(yè)電源管理應(yīng)用替換方案

    國(guó)產(chǎn)電壓基準(zhǔn)源替換REF3025工業(yè)電源管理應(yīng)用替換方案
    的頭像 發(fā)表于 03-19 09:44 ?456次閱讀
    國(guó)產(chǎn)電壓基準(zhǔn)源<b class='flag-5'>替換</b>REF3025<b class='flag-5'>在</b>工業(yè)電源管理應(yīng)用<b class='flag-5'>中</b>的<b class='flag-5'>替換</b>方案

    國(guó)產(chǎn)AFE替換ADS1248壓力傳感器的應(yīng)用

    國(guó)產(chǎn)AFE替換ADS1248壓力傳感器的應(yīng)用
    的頭像 發(fā)表于 03-10 09:47 ?422次閱讀
    國(guó)產(chǎn)AFE<b class='flag-5'>替換</b>ADS1248<b class='flag-5'>在</b>壓力傳感器<b class='flag-5'>中</b>的應(yīng)用

    請(qǐng)問(wèn)驚鴻7110是否支持cache維護(hù)指令?

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

    高速緩沖存儲(chǔ)器是內(nèi)存還是外存,高速緩沖存儲(chǔ)器是為了解決什么

    高速緩沖存儲(chǔ)器(Cache)是內(nèi)存的一種特殊形式,但它與通常所說(shuō)的主存儲(chǔ)器(RAM)有所不同。計(jì)算機(jī)存儲(chǔ)體系,Cache位于CPU和主存儲(chǔ)器之間,
    的頭像 發(fā)表于 01-29 11:48 ?1418次閱讀

    Linux服務(wù)器卡頓救星之一招釋放Cache內(nèi)存

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

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

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

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

    緩存(Cache)是一種高速存儲(chǔ)器,用于臨時(shí)存儲(chǔ)數(shù)據(jù),以便快速訪問(wèn)。計(jì)算機(jī)系統(tǒng),緩存的作用是減少處理器訪問(wèn)主存儲(chǔ)器(如隨機(jī)存取存儲(chǔ)器RAM)所需的時(shí)間。 緩存(
    的頭像 發(fā)表于 12-18 09:28 ?1.2w次閱讀

    國(guó)產(chǎn)純硅振蕩器替換SITime用于三維掃描儀

    國(guó)產(chǎn)純硅振蕩器替換SITime用于三維掃描儀
    的頭像 發(fā)表于 12-04 10:18 ?517次閱讀
    國(guó)產(chǎn)純硅振蕩器<b class='flag-5'>替換</b>SITime<b class='flag-5'>用于</b>三維掃描儀<b class='flag-5'>中</b>

    關(guān)于LRU(Least Recently Used)的邏輯實(shí)現(xiàn)

    Cache替換策略里還是較大的用途的。對(duì)于一個(gè)N路相連,當(dāng)對(duì)應(yīng)的entry滿了之后,當(dāng)新的訪問(wèn)請(qǐng)求到來(lái)后需從N個(gè)entry
    的頭像 發(fā)表于 11-12 11:47 ?936次閱讀
    關(guān)于LRU(Least Recently Used)的邏輯實(shí)現(xiàn)

    GPGPU體系結(jié)構(gòu)優(yōu)化方向(2)

    目前的GPU缺乏cache一致性,需要diable 線程private的L1 cache,或者采用基于軟件的bulk coherence決策(比如在同步點(diǎn),flush掉所有的private L1 cache。
    的頭像 發(fā)表于 10-09 10:06 ?754次閱讀
    GPGPU體系結(jié)構(gòu)優(yōu)化方向(2)

    Cache和內(nèi)存有什么區(qū)別

    Cache(高速緩存)和內(nèi)存(Memory,通常指主存儲(chǔ)器或RAM)是計(jì)算機(jī)存儲(chǔ)系統(tǒng)兩個(gè)重要的組成部分,它們計(jì)算機(jī)的性能和數(shù)據(jù)處理扮演著不同的角色。以下是對(duì)
    的頭像 發(fā)表于 09-26 15:28 ?4088次閱讀

    解析Arm Neoverse N2 PMU事件L2D_CACHE_WR

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

    2k1000LA關(guān)于IODMA請(qǐng)求的描述

    2k1000的用戶手冊(cè),對(duì)IO互連網(wǎng)絡(luò)的DMA請(qǐng)求路由方式進(jìn)行闡述,如圖。 其中提到窗口命中需要兩個(gè)條件,一是地址經(jīng)過(guò)掩碼后與base相等,二是DMA訪存屬性和mmap[5]共同決定是否命中
    發(fā)表于 08-15 21:52