吴忠躺衫网络科技有限公司

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

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

3天內不再提示

緩存如何工作,如何設計CPU緩存

h1654155282.3538 ? 來源:EEtoday ? 作者:EEtoday ? 2020-11-19 17:23 ? 次閱讀

20世紀80年代,CPU性能有了顯著提升,但這受到板載內存訪問速度緩慢增長的阻礙。隨著這種差異的惡化,工程師們發現了一種通過新的設計技術緩存來解決問題的方法。本文將幫助你進一步了解什么是緩存,它如何工作以及如何設計CPU緩存。

什么是CPU硬件緩存?

CPU硬件緩存是一個較小的內存,位于離處理器較近的位置,用于存儲最近引用的數據或指令,以便在需要時可以快速檢索它們。通過減少訪問較慢主存儲器的昂貴的讀寫操作,緩存對CPU的性能產生巨大影響。實際上,所有現代處理器都采用某種形式的緩存。第一個緩存是片外或外部的。這些很快就被通常由SRAM制成的片上高速緩存存儲器取代。為了進一步提高性能,這些片上高速緩存分為指令和數據分區。圖1顯示了分區的示例。

圖1.Intel80486使用了通用緩存,而其后繼產品PentiumP5則使用了分區緩存(總線寬

緩存分區導致了多級緩存層次結構的誕生,其中處理器核心將擁有自己的小型私有緩存(L1),其位于更大的共享緩存(L2)之上,其中一些處理器包括第三級緩存(L3),偶爾會有第四級緩存(L4)。

位置(又稱緩存如何工作?)

為什么緩存工作?緩存通過參考局部性原則工作。引用位置是指處理器在運行應用程序時訪問相同內存位置的趨勢。因為這些內存訪問是可預測的,所以可以通過緩存來利用它們。局部性通常分為時間局部性和空間局部性兩個子集,有時又分為三個子集,稱為算法局部性。

時間位置

時間局部性是指在短時間內重用特定數據項。這依賴于以下事實:在處理器上運行的程序往往在短時間內使用相同的變量和數據結構。從主內存中提取一個項目并將其存儲在緩存中之后,對該數據的任何后續調用都可以更快地完成。

空間位置

空間位置是指很快將需要的數據項駐留在當前需要的項附近或相鄰的內存位置的趨勢。這可能是程序員或編譯器在內存中聚集項目的結果。例如,使用數組(一種數據結構)的應用程序將把數組的元素存儲在相鄰的存儲單元中。通過緩存當前正在使用的數據項旁邊的數據項,處理器可以在必要時快速訪問那些相鄰項。

算法局部性

一種不常討論的局域類型是算法局部性。算法局部性是應用程序在相關數據項上執行操作的趨勢,盡管不是在任何短時間段內,并且盡管事物在內存中彼此不相鄰。使用鏈表(另一種數據結構)的應用程序可能會出現此行為。這種類型的局部性可能出現在圖形處理或迭代模擬中。

邏輯緩存組織

緩存存儲和檢索數據的方式和位置取決于緩存的組織方式。這稱為緩存的邏輯組織。確定存儲的內容由內置于緩存中的管理啟發式控制,但它也受到邏輯組織的嚴重影響。因此,緩存的布局方式在其性能中起著巨大的作用。組織緩存有三種主要方法:全相聯緩存;直接映射高速緩存;組相聯緩存。

緩存塊

當CPU需要訪問主內存中的項目時,它使用地址來查找該項目。CPU硬件緩存通常透明地工作,這意味著程序員不必以任何方式確認緩存。因此,用于訪問存儲器的地址首先由高速緩存處理。該地址用于標識數據項是否位于緩存中。

術語緩存命中表示在緩存中找到數據項,緩存未命中表示沒有找到。高速緩存被組織成稱為高速緩存塊的數據組。每個地址被劃分為若干個個位字段,以便可以識別正確的高速緩存塊。這些字段是緩存標記、組編號和字節偏移量。圖2顯示了分成緩存可以解釋的字段的地址。

圖2.尋址緩存塊

當一個CPU緩存被賦予一個地址時,它會將該地址分成必要的字段并開始檢查其緩存條目。緩存條目包括緩存標記(此處標記為標記)和緩存塊(標記數據)。緩存標記是一個標識符,用于指示引用哪個緩存塊。緩存塊是存儲在該標記上的實際數據,表示來自主內存的一個項目塊。要獲取該塊中的單個字段,需要使用偏移量。

直接映射

在直接映射的高速緩存中,高速緩存項被組織成多個組。地址中的組編號用于索引每組條目。一旦識別出組,就比較緩存標簽。如果它們匹配,則這是緩存命中并輸出指定的數據。理解直接映射緩存的關鍵是每個組只有一個緩存條目。這使得直接映射緩存非常快,同時消耗最少的功率。

圖3.Adirect-mapped緩存

由于每個集合只能包含一個項,因此直接映射的緩存確實具有更高的爭用率,這意味著需要將多個數據項存儲在同一位置。這導致緩存未命中。解決此問題的一種方法是使用完全關聯的緩存。

全相聯

全相聯緩存與直接映射緩存相反。全相聯緩存具有多個緩存項,而不是包含單個項的多個集合,而是包含在單個集合中。因此,設定的號碼不再提供任何信息,也不會使用。相反,當緩存處理內存地址時,將檢查每個緩存條目的匹配標記。如果找到,則使用字節偏移量在高速緩存塊內輸出正確的數據。檢查每個緩存條目使得全相聯的緩存比直接映射緩存消耗更多的功率。通過使用組關聯高速緩存來完成功耗和更高競爭率之間的平衡。

圖4.全相聯緩存

組相聯

組相聯緩存提供了兩全其美的優勢。它由多個集合組成,每個集合具有多個緩存條目。它是如何工作的?首先,設置好允許緩存跳轉到適當的條目集。接下來,搜索每組條目以尋找匹配的標簽。如果找到,則使用字節偏移量來輸出所請求的數據。此方法允許緩存提供功耗和爭用率的優化平衡。

圖5顯示了一個4路組相聯緩存。它被稱為4路,因為每個集合最多可以包含四個緩存條目。如果每個集合只能容納兩個緩存條目,那么它將是一個雙向的。因此,直接映射高速緩存實際上只是單向組關聯高速緩存,而組相聯高速緩存是單組m路組相聯高速緩存,其中m是高速緩存條目的數量。


責任編輯人:CC

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

    關注

    68

    文章

    10902

    瀏覽量

    213001
  • 緩存
    +關注

    關注

    1

    文章

    241

    瀏覽量

    26757
收藏 人收藏

    評論

    相關推薦

    CPU一級緩存

    CPU一級緩存              CPU緩存(Cache
    發表于 12-24 10:21 ?463次閱讀

    CPU二級緩存容量

    CPU二級緩存容量            CPU緩存(Cache Memory)是位
    發表于 12-24 10:22 ?541次閱讀

    什么是CPU工作電壓/高級轉移緩存

    什么是CPU工作電壓/高級轉移緩存CPU工作電壓是指CPU正常
    發表于 02-04 10:32 ?1280次閱讀

    什么是CPU一級緩存/二級緩存

    什么是CPU一級緩存/二級緩存?  即L1 Cache。集成在CPU內部中,用于CPU在處理數據過程中數據的暫時保存。由于
    發表于 02-04 10:43 ?1191次閱讀

    什么是CPU緩存/前端總線(FSB)頻率

    什么是CPU緩存/前端總線(FSB)頻率  緩存   緩存大小也是CPU的重要指標之一,而且
    發表于 02-04 11:22 ?1451次閱讀

    CPU緩存對性能的影響

      說到CPU,不得不說的就是CPU緩存,目前CPU緩存已經成了衡量CPU性能的一個必要指標,
    發表于 11-13 17:58 ?2530次閱讀

    CPU緩存的作用 CPU有多層緩存有何用意

    簡短的回答是不同的緩存級別適用于不同的目的和限制,在設計上完全不同。經驗上,隨著緩存級別的增加,緩存變得更大,更慢,密度更高,每單位存儲消耗的電能更少,能處理更多的任務。
    的頭像 發表于 10-25 10:04 ?5081次閱讀

    CPU緩存是什么意思_CPU緩存有什么作用

    由于處理器是核心硬件,相信我們在選擇處理器的時候都會去關心處理器參數方面,而在處理器核心參數中,我們經常會看到緩存(Cache)這個參數,那么CPU緩存有什么作用呢?下面小編科普一下關于CP
    發表于 05-19 09:24 ?7790次閱讀

    各級別CPU緩存工作原理

    討論CPU(Central Processing Units)時,您可能聽說過高速緩存。但是,我們并沒有過多地關注這些數字,它們也不是這些CPU廣告的主要亮點。 那么,CPU
    的頭像 發表于 10-30 15:25 ?4186次閱讀
    各級別<b class='flag-5'>CPU</b><b class='flag-5'>緩存</b>的<b class='flag-5'>工作</b>原理

    CPU緩存的作用及原理有哪些

    實際數據讀取中重要的是一級緩存,因為一級緩存速度最快,二級緩存其次,三級緩存最慢,只是三級緩存的容量最大,更容易體現產品更新換代時的價值。
    的頭像 發表于 08-27 15:58 ?1.1w次閱讀

    關于CPU緩存的作用

    CPU沒有存儲功能,那么緩存到底是干什么的?CPU緩存是用于減少處理器訪問內存所需平均時間的部件,作用類似于CPU內部的內存。
    的頭像 發表于 03-30 10:58 ?4603次閱讀
    關于<b class='flag-5'>CPU</b><b class='flag-5'>緩存</b>的作用

    CPU緩存設計的原則及工作原理

    本文將研究 CPU 緩存設計的原則,包括局部性、邏輯組織和啟發式管理。
    的頭像 發表于 04-28 17:19 ?3607次閱讀
    <b class='flag-5'>CPU</b><b class='flag-5'>緩存</b>設計的原則及<b class='flag-5'>工作</b>原理

    cpu緩存的作用及原理是什么

    CPU高速緩存集成于CPU的內部,其是CPU可以高效運行的成分之一,本文圍繞下面三個話題來講解CPU緩存
    發表于 08-21 12:17 ?2410次閱讀
    <b class='flag-5'>cpu</b><b class='flag-5'>緩存</b>的作用及原理是什么

    CPU緩存那些事兒

    CPU Cache 在讀取內存數據時,每次不會只讀一個字或一個字節,而是一塊塊地讀取,這每一小塊數據也叫CPU 緩存行(CPU Cache Line)。這也是對局部性原理的運用,當一個
    的頭像 發表于 09-10 10:57 ?726次閱讀
    <b class='flag-5'>CPU</b><b class='flag-5'>緩存</b>那些事兒

    什么是CPU緩存?它有哪些作用?

    CPU緩存(Cache Memory)是計算機系統中一個至關重要的組成部分,它位于CPU與內存之間,作為兩者之間的臨時存儲器。CPU緩存的主
    的頭像 發表于 08-22 14:54 ?3729次閱讀
    电脑百家乐官网玩| 足球直播| 真人百家乐作| 七胜百家乐赌场娱乐网规则| 奔驰百家乐游戏电玩| 网上百家乐信誉度| 单机百家乐棋牌| 百家乐赌场合作| 缅甸百家乐赌| 新东泰百家乐官网的玩法技巧和规则 | 百家乐官网必胜方法如果你还想继续不看可能后悔一生 | 百家乐规则好学吗| 百家乐庄家胜率| 游戏百家乐庄闲| 百家乐java| 大发888下载 df888| 优博平台网址| 赌百家乐官网的高手| 保单百家乐官网游戏机厂家| 百家乐官网唯一能长期赢钱的方法 | 战神国际| 百家乐官网有秘技吗| 昆明百家乐官网装修装潢有限公司 | 哪家百家乐优惠最好且信誉不错 | 嵊州市| 武冈市| 百家乐官网分路单| 24山安葬择日| 百家乐完美一对| 顶级赌场连环夺宝下载| 广南县| 百家乐官网和21点| 玩百家乐高手支招篇| 疯狂水果机怎么玩| 利高国际娱乐网| 百家乐官网赌博论谈| 新手百家乐指点迷津| 百家乐技巧技巧| 西峡县| 乐天堂百家乐官网赌场娱乐网规则 | 百家乐技术辅助软件|