日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度解读DynamIQ架构cache的替换策略

發(fā)布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度解读DynamIQ架构cache的替换策略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

快速鏈接:
.
👉👉👉 個人博客筆記導(dǎo)讀目錄(全部) 👈👈👈

思考:
在經(jīng)典的 DynamIQ架構(gòu) 中,數(shù)據(jù)是什么時候存在L1 cache,什么時候存進L2 cache,什么時候又存進L3 cache,以及他們的替換策略是怎樣的? 比如什么時候數(shù)據(jù)只在L1? 什么時候數(shù)據(jù)只在L2? 什么時候數(shù)據(jù)只在L3? 還有一些組合,比如什么時候數(shù)組同時在L1和L3,而L2沒有? 這一切的規(guī)則是怎樣定義的?
說明:
本文討論經(jīng)典的DynamIQ的cache架構(gòu),忽略 big.LITTLE的cache架構(gòu)

1、L1 / L2 cache直接的替換策略

我們先看一下DynamIQ架構(gòu)中的cache中新增的幾個概念:

  • (1) Strictly inclusive: 所有存在L1 cache中的數(shù)據(jù),必然也存在L2 cache中
  • (2) Weakly inclusive: 當(dāng)miss的時候,數(shù)據(jù)會被同時緩存到L1和L2,但在之后,L2中的數(shù)據(jù)可能會被替換
  • (3) Fully exclusive: 當(dāng)miss的時候,數(shù)據(jù)只會緩存到L1

綜上總結(jié):inclusive/exclusive 描述的僅僅是 L1和L2之間的替換策略

我們再去查閱 ARMV9 cortex-A710 trm手冊,查看該core的cache類型,得知:

  • L1 I-cache和L2之間是 weakly inclusive的
  • L1 D-cache和L2之間是 strictly inclusive的

也就是說:

  • 當(dāng)發(fā)生D-cache發(fā)生miss時,數(shù)據(jù)緩存到L1 D-cache的時候,也會被緩存到L2 Cache中,當(dāng)L2 Cache被替換時,L1 D-cache也會跟著被替換
  • 當(dāng)發(fā)生I-cache發(fā)生miss時,數(shù)據(jù)緩存到L1 I-cache的時候,也會被緩存到L2 Cache中,當(dāng)L2 Cache被替換時,L1 I- cache不會被替換

再次總結(jié) : L1 和 L2之間的cache的替換策略,I-cache和D-cache可以是不同的策略,每一個core都有每一個core的做法,請查閱你使用core的手冊。

2、core cache / DSU cache / memory 之間的替換策略

說實話,core cache / DSU cache / 這個名字可能不好,感覺叫private cache 和 share cache更好,我也不知道官方一般使用哪個,反正我們能理解其意思即可吧。

那么他們之間的替換策略是怎樣的呢?

我們知道MMU的頁表中的表項中,管理者每一塊內(nèi)存的屬性,其實就是cache屬性,也就是緩存策略。
其中就有cacheable和shareable、Inner和Outer的概念。如下是針對 DynamIQ 架構(gòu)做出的總結(jié),注意哦,僅僅是針對 DynamIQ 架構(gòu)的cache。

  • 如果將block的內(nèi)存屬性配置成Non-cacheable,那么數(shù)據(jù)就不會被緩存到cache,那么所有observer看到的內(nèi)存是一致的,也就說此時也相當(dāng)于Outer Shareable。
    其實官方文檔,也有這一句的描述:
    在B2.7.2章節(jié) “Data accesses to memory locations are coherent for all observers in the system, and correspondingly are treated as being Outer Shareable”

  • 如果將block的內(nèi)存屬性配置成write-through cacheable 或 write-back cacheable,那么數(shù)據(jù)會被緩存cache中。write-through和write-back是緩存策略。

  • 如果將block的內(nèi)存屬性配置成 non-shareable, 那么core0訪問該內(nèi)存時,數(shù)據(jù)緩存的到Core0的L1 D-cache / L2 cache (將L1/L2看做一個整體,直接說數(shù)據(jù)會緩存到core0的private cache更好),不會緩存到其它cache中。

  • 如果將block的內(nèi)存屬性配置成 inner-shareable, 那么core0訪問該內(nèi)存時,數(shù)據(jù)只會緩存到core 0的L1 D-cache / L2 cache和 DSU L3 cache,不會緩存到System Cache中(當(dāng)然如果有system cache的話 ) , (注意這里MESI協(xié)議其作用了)此時core0的cache TAG中的MESI狀態(tài)是E, 接著如果這個時候core1也去讀該數(shù)據(jù),那么數(shù)據(jù)也會被緩存core1的L1 D-cache / L2 cache 和DSU0的L3 cache(白字黑字,絕不瞎說,請參見文末的[1] DSU TRM判斷), 此時core0和core1的MESI狀態(tài)都是S

  • 如果將block的內(nèi)存屬性配置成 outer-shareable, 那么core0訪問該內(nèi)存時,數(shù)據(jù)會緩存到core 0的L1 D-cache / L2 cache 、cluster0的DSU L3 cache 、 System Cache中, core0的MESI狀態(tài)為E。如果core1再去讀的話,則也會緩存到core1的L1 D-cache / L2 cache,此時core0和core1的MESI都是S。這個時候,如果core7也去讀的話,數(shù)據(jù)還會被緩存到cluster1的DSU L3 cache. 至于DSU0和DSU1之間的一致性,非MESI維護,具體怎么維護的請看DSU手冊,本文不展開討論。

Non-cacheablewrite-through
cacheablewrite-back
cacheable
non-shareable數(shù)據(jù)不會緩存到cache
(對于觀察則而言,又相當(dāng)于outer-shareable)
core0訪問該內(nèi)存時,數(shù)據(jù)緩存的到Core0的L1 D-cache / L2 cache (將L1/L2看做一個整體,直接說數(shù)據(jù)會緩存到core0的private cache更好),不會緩存到其它cache中同左側(cè)
inner-shareable數(shù)據(jù)不會緩存到cache
(對于觀察則而言,又相當(dāng)于outer-shareable)
core0訪問該內(nèi)存時,數(shù)據(jù)只會緩存到core 0的L1 D-cache / L2 cache和 DSU L3 cache,不會緩存到System Cache中(當(dāng)然如果有system cache的話 ) , (注意這里MESI協(xié)議其作用了)此時core0的cache TAG中的MESI狀態(tài)是E, 接著如果這個時候core1也去讀該數(shù)據(jù),那么數(shù)據(jù)也會被緩存core1的L1 D-cache / L2 cache 和DSU0的L3 cache, 此時core0和core1的MESI狀態(tài)都是S同左側(cè)
outer-shareable數(shù)據(jù)不會緩存到cache
(對于觀察則而言,又相當(dāng)于outer-shareable)
core0訪問該內(nèi)存時,數(shù)據(jù)會緩存到core 0的L1 D-cache / L2 cache 、cluster0的DSU L3 cache 、 System Cache中, core0的MESI狀態(tài)為E。如果core1再去讀的話,則也會緩存到core1的L1 D-cache / L2 cache,此時core0和core1的MESI都是S
思考:那么此時core7去讀取會怎樣?
同左側(cè)

[1] DSU TRM判斷

總結(jié)

以上是生活随笔為你收集整理的深度解读DynamIQ架构cache的替换策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。