欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

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

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

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

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

2. Cache coherency的問題是什么?

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

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

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

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

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

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

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

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

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

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

  • F(Forward):F狀態(tài)時S狀態(tài)的一種特殊形式,表明cache應(yīng)該通過轉(zhuǎn)發(fā)數(shù)據(jù)來充當(dāng)給定cache line的任何請求的指定反饋者。如果系統(tǒng)中有多個cache具有處于S狀態(tài)的同一cache line,則將其中一個指定為F狀態(tài),以便為來自不同處理器的新請求轉(zhuǎn)發(fā)數(shù)據(jù)。該協(xié)議確保,如果任何cache保存的cache line為S狀態(tài),那么最多只有一個(其他)cache保存的cache line為F狀態(tài)。這種狀態(tài)有助于減少對memory帶寬的占用,因為沒有F狀態(tài),即使一條cache line在多個cache中處于S狀態(tài),它們都不能將數(shù)據(jù)轉(zhuǎn)發(fā)給請求讀或?qū)懙牟煌幚砥鳌#ㄕ堊⒁?,cache中的S狀態(tài)cache line只能服務(wù)于相同的處理器讀取)
  • O(Owned):O狀態(tài)時一種特殊的狀態(tài),它是為了在不需要寫回memory的情況下在系統(tǒng)的不同cache中移動修改過的或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,直到真正需要時再寫。

6. 什么是RFO?

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

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

    關(guān)注

    68

    文章

    19432

    瀏覽量

    231282
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7529

    瀏覽量

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

    關(guān)注

    0

    文章

    76

    瀏覽量

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

    關(guān)注

    2

    文章

    492

    瀏覽量

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

    關(guān)注

    0

    文章

    41

    瀏覽量

    1095
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

    解析Arm Neoverse N2 PMU事件L2D_CACHE_WR

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

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

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

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

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

    Cortex R52內(nèi)核Cache的相關(guān)概念(1)

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

    CortexR52內(nèi)核Cache的具體操作

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

    為什么HAL庫操作Flash erase的時候,需要把I-Cache和D-Cache關(guān)閉呢?

    請問為什么HAL庫操作Flash erase的時候,需要把I-Cache和D-Cache關(guān)閉呢? 這有什么原因呢? 有人可以解答嗎?
    發(fā)表于 04-07 09:08

    STM32F429使用外部SPI flash,只要執(zhí)行Bitmap::cache(id)就進(jìn)入硬件錯誤怎么解決?

    我使用的是STM32F429,使用外部SPI flash,繪圖前,需要先把圖片緩存 使用函數(shù)Bitmap::cache(id)。 我遇到的問題是,當(dāng)id>13的時候,只要執(zhí)行這個函數(shù)
    發(fā)表于 03-27 07:39

    STM32H7配置FileX時,開關(guān)“Enable data cache maintenance”的作用是什么?發(fā)生HardFault_Handler的原因?

    STM32H7上基于AzureRTOS的FileX實現(xiàn)向TF卡寫入數(shù)據(jù),CubeMX配置FileX頁面里Enable data cache maintenance開關(guān),這個選項
    發(fā)表于 03-13 06:23

    STM32h7開啟Cache后,串口發(fā)送DMA會導(dǎo)致中斷觸發(fā)如何解決?

    STM32h7 開啟Cache后,串口使用發(fā)送DMA發(fā)送數(shù)據(jù)會導(dǎo)致中斷觸發(fā)(只開啟接收空閑中斷),接收和發(fā)送的緩存指定在手動分配的內(nèi)存區(qū)域(此區(qū)域通過MPU配置,關(guān)閉了Cache功能),此問題辦法解決嗎?
    發(fā)表于 03-12 07:37

    請問STM32MP13X的MMU和Cache如何使能?

    STM32MP13X的MMU和Cache如何使能?修改了hal_conf里的DATA_CACHE_ENABLE的宏console里還是顯示沒開,設(shè)置里的Define symbols把NO_C
    發(fā)表于 03-12 06:46

    Stm32mp135打開cache之后,用作ltdc的顯存地址數(shù)據(jù)就會異常怎么解決?

    各位大佬好,本人在Stm32mp135的裸機(jī)開發(fā)過程中發(fā)現(xiàn),幾個問題需要請教大家。 1-打開cache之后,用作ltdc的顯存地址數(shù)據(jù)就會異常(屏幕刷新異常),請問有沒有類型M7系列的mpu保護(hù)
    發(fā)表于 03-07 07:55

    STM32H750使能內(nèi)存保護(hù)后啟用cache導(dǎo)致SPI+DMA傳輸不準(zhǔn)確怎么解決?

    STM32H750使能內(nèi)存保護(hù)后啟用cache 導(dǎo)致SPI+DMA傳輸不準(zhǔn)確,具體就是調(diào)用HAL_SPI_TransmitReceive_DMA 這個函數(shù),讀到的數(shù)據(jù)全是0,但是拿邏輯分析儀看上面顯示的數(shù)據(jù)是正確的。
    發(fā)表于 03-07 06:12