RM新时代网站-首页

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

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

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

深入理解Armv9 DSU-110中的L3 cache

冬至子 ? 來源:Arm精選 ? 作者:baron ? 2023-10-11 14:33 ? 次閱讀

思考:

1、L1、L2、L3 cache的替換策略是怎樣的?

2、什么類型的內(nèi)存永遠(yuǎn)不會(huì)進(jìn)L3 cache?

3、L3 cache一般都是多大?

4、L3 cache的組織形式一般是怎樣的?

5、什么是cache partitioning?

6、DSU、DSU-110、DSU-120有什么區(qū)別?

7、什么MPAM?有什么作用?

8、什么是Cache stashing?

9、什么是Cache slices?有什么好處?

在共享DSU-110 DynamIQ cluster中,所有core共享L3緩存。

注意:以下功能在此版本中不受支持,計(jì)劃在后續(xù)版本中支持:

  • 從CHI接口和加速器一致性端口ACP)接口進(jìn)行的緩存存儲(chǔ)(stashing)。

DSU-110的共享L3緩存提供以下功能:

  • (1)動(dòng)態(tài)優(yōu)化的緩存分配策略,通常是互斥的。這種緩存分配策略意味著在正常使用中,一行數(shù)據(jù)要么位于一個(gè)或多個(gè)核心(或complexes)的緩存中,要么位于L3緩存中,但不會(huì)同時(shí)存在于兩個(gè)緩存中。只有可緩存的、可共享的內(nèi)存位置才會(huì)被分配到L3緩存中。不可共享的內(nèi)存位置不會(huì)被分配到L3緩存中。
  • (2)可以通過內(nèi)存系統(tǒng)資源分區(qū)和監(jiān)視(MPAM)體系結(jié)構(gòu)擴(kuò)展將緩存路組分區(qū)并分配給進(jìn)程。緩存分區(qū)確保每個(gè)進(jìn)程不會(huì)主導(dǎo)緩存的使用,以不利于其他進(jìn)程。
  • (3)支持來自ACP和CHI接口的存儲(chǔ)請(qǐng)求。這些存儲(chǔ)請(qǐng)求也可以針對(duì)集群中核心或complexes的任何L2緩存。
  • (4)對(duì)緩存數(shù)據(jù)和標(biāo)簽RAM提供糾錯(cuò)碼(ECC)保護(hù)。
  • (5)緩存可以實(shí)現(xiàn)最多八個(gè)緩存切片( cache slices),取決于指定的L3緩存大小。緩存切片可以增加L3緩存的帶寬并改善物理布局。每個(gè)緩存切片包括數(shù)據(jù)、標(biāo)簽、犧牲和嗅探過濾器RAM以及相關(guān)的邏輯(data, tag, victim, and snoop filter RAMs and associated logic)。

在關(guān)機(jī)時(shí),DSU-110會(huì)自動(dòng)執(zhí)行cache cleaning操作,無需進(jìn)行由軟件控制的緩存清理。

1 L3 cache allocation policy

DSU-110 L3緩存只允許存儲(chǔ)可緩存的、可共享的內(nèi)存位置。Non-shareable的內(nèi)存不能被分配到L3緩存中。DSU-110 L3緩存采用動(dòng)態(tài)優(yōu)化的緩存分配策略,通常是互斥的。這種緩存分配策略意味著在正常使用中,一行數(shù)據(jù)要么位于一個(gè)或多個(gè)核心(或complexes)的緩存中,要么位于L3緩存中,但不會(huì)同時(shí)存在于兩個(gè)緩存中。

當(dāng)數(shù)據(jù)只分配給一個(gè)核心或complexes時(shí),使用獨(dú)占分配。有時(shí),當(dāng)數(shù)據(jù)在多個(gè)核心或complexes之間共享時(shí),會(huì)使用Inclusive分配。

  • 來自core0的初始請(qǐng)求將數(shù)據(jù)分配到L1或L2緩存,但不分配到L3緩存。
  • 當(dāng)從core0驅(qū)逐數(shù)據(jù)時(shí),被驅(qū)逐的數(shù)據(jù)會(huì)分配到L3緩存。這個(gè)緩存行的分配策略仍然是獨(dú)占的。
  • 如果core0重新獲取該行,它將分配到核心0的L1或L2緩存中,并從L3緩存中刪除。這個(gè)緩存行的分配策略仍然是獨(dú)占的。
  • 如果core1訪問該行以進(jìn)行讀取,那么它仍然分配給核心0。它還會(huì)分配到核心1和L3緩存中。在這種情況下,該行采用Inclusive分配,因?yàn)樗诙鄠€(gè)核心之間共享。

2 可用的緩存路組數(shù)量

每個(gè)緩存切片中可用的緩存路組數(shù)量取決于您選擇實(shí)現(xiàn)的L3緩存大小。當(dāng)選擇2的冪次方L3緩存大小,如256KB、512KB、1024KB、2MB、4MB、8MB或16MB時(shí),每個(gè)緩存切片具有16個(gè)緩存路組。當(dāng)選擇非2的冪次方L3緩存大小,如1536KB、3MB、6MB或12MB時(shí),每個(gè)緩存切片僅具有12個(gè)緩存路組。

3 L3緩存分區(qū)(partitioning)

L3緩存支持一種分區(qū)方案,可以改變替換(victim)選擇策略,以防止進(jìn)程占用整個(gè)L3緩存,對(duì)其他進(jìn)程造成不利影響。緩存分區(qū)適用于特殊的軟件,其中有不同緩存訪問模式的不同類別進(jìn)程在運(yùn)行。例如,兩個(gè)進(jìn)程A和B在同一個(gè)cluster的不同核心上運(yùn)行,因此共享L3緩存。如果進(jìn)程A比進(jìn)程B更具數(shù)據(jù)密集性,那么進(jìn)程A可能導(dǎo)致進(jìn)程B分配的所有緩存行都被驅(qū)逐。驅(qū)逐這些已分配的緩存行可能降低進(jìn)程B的性能。DynamIQ Shared Unit-110(DSU-110)使用Memory System Resource Partitioning and Monitoring(MPAM)體系結(jié)構(gòu)擴(kuò)展來分區(qū)L3緩存。MPAM是一種旨在將內(nèi)存系統(tǒng)性能劃分給軟件的體系結(jié)構(gòu)擴(kuò)展。因此,MPAM提供了廣泛的可選功能,如緩存分區(qū)、帶寬分區(qū)和進(jìn)程監(jiān)視。DSU-110僅使用MPAM來分區(qū)L3緩存。MPAM要求系統(tǒng)傳遞MPAM ID,各core綁定到每個(gè)內(nèi)存系統(tǒng)事務(wù)(transaction)。雖然MPAM ID的結(jié)構(gòu)是架構(gòu)性的,但其組件的配置是實(shí)現(xiàn)定義的。DSU-110使用以下MPAM ID結(jié)構(gòu):
? MPAMNS字段,1 BIT,指示此事務(wù)是否安全或非安全。
? PARTID,6 BIT,是當(dāng)前事務(wù)的軟件分配的分區(qū)標(biāo)識(shí)符。這支持在非安全空間中最多64個(gè)PARTID,在安全空間中最多8個(gè)PARTID。雖然單個(gè)進(jìn)程最多可以使用2個(gè)PARTID,一個(gè)用于指令獲取,一個(gè)用于數(shù)據(jù)訪問,但也可以由多個(gè)進(jìn)程共享單個(gè)PARTID。MPAMNS位指示此事務(wù)是否需要安全或非安全PARTID。如果此事務(wù)需要安全PARTID,則僅使用PARTID的低3位。
? PMG,1 BIT,標(biāo)識(shí)性能監(jiān)視組(Performance Monitoring Group),用于MPAM提供分區(qū)的細(xì)粒度監(jiān)視,DSU-110不使用此功能。

當(dāng)啟用L3MPAMSTORAGE參數(shù)時(shí),L3緩存存儲(chǔ)此MPAM ID信息,可以在驅(qū)逐時(shí)檢索。注意:通常,只有在存在下游緩存(downstream cach),如系統(tǒng)緩存,也支持MPAM時(shí)才需要此設(shè)置。

如果未存儲(chǔ)MPAM ID,則任何L3驅(qū)逐都將使用引起驅(qū)逐的事務(wù)的MPAM ID。注意:如果將事務(wù)映射到未設(shè)置MPAMCFG_CPBM設(shè)置的分區(qū),則不會(huì)將此事務(wù)分配到L3緩存中。

L3緩存的分區(qū)是通過緩存路組的方式進(jìn)行的,對(duì)于DSU-110,每個(gè)組包含兩個(gè)路組,因此最多支持8個(gè)分區(qū)。

  • 不是2的冪次方的緩存大小(1.5MB、3MB、6MB和12MB)支持的緩存路組較少,因?yàn)樗鼈兙哂休^少的可用路組。
  • 如果某些緩存路組被關(guān)閉(更多細(xì)節(jié)請(qǐng)參見第58頁的5.4.1節(jié)L3緩存RAM關(guān)機(jī)),則每個(gè)L3緩存分區(qū)中的路組數(shù)量會(huì)減少。這種緩存路組的減少可能會(huì)降低性能,當(dāng)進(jìn)程沒有足夠的路組可用時(shí)。因此,Arm建議在使用緩存分區(qū)時(shí)謹(jǐn)慎關(guān)閉緩存路組。

MPAM作為一種架構(gòu)擴(kuò)展的優(yōu)點(diǎn)之一是它定義了一種通用機(jī)制,用于分割L3緩存,因此可以很容易地通過標(biāo)準(zhǔn)軟件進(jìn)行交互和配置。緩存分區(qū)允許您將L3緩存分割為最多8個(gè)獨(dú)立的分區(qū)。然而,您可以自由地定義所需的分區(qū)數(shù)量,也可以重疊分區(qū)。例如,您可以將路組0到4分配給分區(qū)0,然后將路組0到8分配給分區(qū)1。這意味著分配給分區(qū)1的進(jìn)程可以使用所有路組,而分配給分區(qū)0的進(jìn)程只能使用一半的路組。

4 緩存存儲(chǔ)

緩存存儲(chǔ)允許外部代理請(qǐng)求將一行數(shù)據(jù)帶入(或存儲(chǔ))到簇中的緩存中。DynamIQ? Shared Unit-110(DSU-110)不能執(zhí)行cache stashing部分,響應(yīng)如下:

  • DSU-110永遠(yuǎn)不會(huì)發(fā)送SnpResp * _ Read響應(yīng)。
  • 對(duì)于SnpMakeInvalidStash,DSU-110將以SnpResp_I響應(yīng)。
  • 對(duì)于SnpStashUnique和SnpStashShared,DSU-110將以SnpRespI、SnpRespSC或SnpResp_UC之一響應(yīng)。
  • 對(duì)于SnpUniqueStash,DSU-110將在需要的情況下返回?cái)?shù)據(jù)。因此,它將返回SnpRespDataI或SnpRespI。DSU-110不執(zhí)行加速器一致性端口(ACP)事務(wù)的緩存存儲(chǔ)部分。這些事務(wù)被視為等效的非緩存存儲(chǔ)事務(wù)。

5 L3緩存數(shù)據(jù)RAM延遲

DSU-110 L3數(shù)據(jù)RAM接口可以實(shí)現(xiàn)在輸入和輸出路徑上具有可配置的延遲。以下選項(xiàng)可供選擇:

  • 輸入路徑到L3數(shù)據(jù)RAM的寫入延遲可以是1個(gè)周期(默認(rèn))或2個(gè)周期。
  • 從L3數(shù)據(jù)RAM的輸出路徑到達(dá)的讀取延遲可以是2個(gè)周期(默認(rèn))或3個(gè)周期。
  • 當(dāng)配置了輸出路徑上的3個(gè)周期讀取延遲時(shí),輸入路徑上可以選擇2p的寫入延遲選項(xiàng)。這個(gè)2p的寫入延遲還可以使RAM輸入信號(hào)在額外的周期內(nèi)保持穩(wěn)定,允許在RAM輸入上進(jìn)行額外的保持時(shí)間。
  • L3數(shù)據(jù)RAM的輸出端口上可以選擇一個(gè)可選的寄存器切片。

在輸入路徑上,如果請(qǐng)求了2或2p的寫入延遲,則RAM時(shí)鐘使能會(huì)進(jìn)行流水線處理,并且對(duì)所有其他RAM輸入信號(hào)應(yīng)用多周期路徑。

在輸出路徑上,2個(gè)周期的讀取延遲和3個(gè)周期的讀取延遲會(huì)對(duì)所有RAM輸出信號(hào)應(yīng)用多周期路徑??蛇x寄存器切片的輸出是單周期的,絕不能應(yīng)用多周期路徑。

下圖顯示了L3數(shù)據(jù)RAM的時(shí)序圖。

image.png

RAM延遲的增加會(huì)增加L3命中延遲,從而降低性能。因此,只有在RAM無法滿足2個(gè)周期延遲的時(shí)序要求時(shí)才使用3個(gè)周期讀取延遲選項(xiàng)。但是,如果僅僅是從RAM到SCU邏輯的導(dǎo)線路由延遲無法滿足這個(gè)時(shí)序要求,那么應(yīng)該使用寄存器切片。

延遲選項(xiàng)僅針對(duì)L3數(shù)據(jù)RAM進(jìn)行了指定,因?yàn)長3標(biāo)簽RAM和SCU嗅探過濾器RAM滿足1個(gè)周期的輸入和1個(gè)周期的輸出時(shí)序要求。

以下表格描述了不同延遲配置參數(shù)對(duì)L3數(shù)據(jù)RAM性能的影響:

image.png

6 緩存切片和分區(qū)

DynamIQ? Shared Unit-110(DSU-110)的L3緩存可以分為最多八個(gè)相同的切片,每個(gè)切片包含256KB到2MB的緩存。一個(gè)緩存切片包括數(shù)據(jù)RAM、tag RAM、替換RAM和snoop RAM以及相關(guān)邏輯。一個(gè)分區(qū)是對(duì)緩存切片中的RAM的進(jìn)一步細(xì)分。對(duì)于每個(gè)緩存切片,數(shù)據(jù)RAM和標(biāo)簽RAM都被細(xì)分為兩個(gè)分區(qū)。

下圖顯示了單個(gè)和雙緩存切片配置之間的差異。

image.png

將L3緩存分割成切片提供了以下優(yōu)點(diǎn):

  • 在實(shí)現(xiàn)宏單元時(shí)改善物理布局,通過確保RAM位于控制它們的邏輯附近。
  • 增加帶寬,因?yàn)榭梢圆⑿性L問這些切片。
6.1 Cache slice and master port selection

對(duì)于具有多個(gè)緩存切片的實(shí)現(xiàn),請(qǐng)求會(huì)根據(jù)地址和內(nèi)存屬性發(fā)送到特定的切片。

地址到切片的映射不可配置,但地址到master port的映射是可配置的,并且可以獨(dú)立于切片映射。

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

    關(guān)注

    2

    文章

    796

    瀏覽量

    37838
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114641
  • ARM芯片
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

    21466
  • 緩存器
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

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

    關(guān)注

    0

    文章

    41

    瀏覽量

    1062
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入理解Android

    深入理解Android
    發(fā)表于 08-20 15:30

    深入理解STM32

    時(shí)鐘系統(tǒng)是處理器的核心,所以在學(xué)習(xí)STM32所有外設(shè)之前,認(rèn)真學(xué)習(xí)時(shí)鐘系統(tǒng)是必要的,有助于深入理解STM32。下面是從網(wǎng)上找的一個(gè)STM32時(shí)鐘框圖,比《STM32文參考手冊(cè)》里面的是中途看起來清晰一些:重要的時(shí)鐘:PLLCLK,SYSCLK,HCKL,PCLK1,..
    發(fā)表于 08-12 07:46

    對(duì)棧的深入理解

    為什么要深入理解棧?做C語言開發(fā)如果棧設(shè)置不合理或者使用不對(duì),棧就會(huì)溢出,溢出就會(huì)遇到無法預(yù)測(cè)亂飛現(xiàn)象。所以對(duì)棧的深入理解是非常重要的。注:動(dòng)畫如果看不清楚可以電腦看更清晰啥是棧先來看一段動(dòng)畫:沒有
    發(fā)表于 02-15 07:01

    為什么要深入理解

    [導(dǎo)讀] 從這篇文章開始,將會(huì)不定期更新關(guān)于嵌入式C語言編程相關(guān)的個(gè)人認(rèn)為比較重要的知識(shí)點(diǎn),或者踩過的坑。為什么要深入理解棧?做C語言開發(fā)如果棧設(shè)置不合理或者使用不對(duì),棧就會(huì)溢出,溢出就會(huì)遇到無法
    發(fā)表于 02-15 06:09

    ARM Cortex-A715核心技術(shù)參考手冊(cè)

    DSU-110),表現(xiàn)為具有L3高速緩存和窺探控制。這種連接配置也用于具有不同類型內(nèi)核的系統(tǒng)其中Cortex??A715核心是平衡性能核心。
    發(fā)表于 08-09 07:37

    ARM Cortex-X3核心技術(shù)參考手冊(cè)

    計(jì)算應(yīng)用。 Cortex?-X3核心在Dynamiq?-110群集中實(shí)施,并始終連接到Dynamiq?共享單元-110(DSU-110),該共享單元與
    發(fā)表于 08-09 07:39

    ARM Cortex-A510核心技術(shù)參考手冊(cè)

    核心在DSU-110Dynamiq?集群內(nèi)實(shí)施,并始終連接到Dynamiq?共享單元-110(DSU-110)。DSU-110L3緩存和監(jiān)
    發(fā)表于 08-09 07:50

    ARM Dynamiq?共享單元-110型技術(shù)參考手冊(cè)

    DynamIQ? 共享單元-110DSU-110)提供了一個(gè)共享的L3內(nèi)存系統(tǒng)、窺探控制和過濾以及其他控制邏輯,以支持a級(jí)架構(gòu)核心的集群。該集群被稱為DSU-110 DynamIQ?
    發(fā)表于 08-10 07:52

    深入理解Android》文前

    深入理解Android》文前
    發(fā)表于 03-19 11:23 ?0次下載

    深入理解Android:卷I》

    深入理解Android:卷I》
    發(fā)表于 03-19 11:23 ?0次下載

    深入理解Android網(wǎng)絡(luò)編程

    深入理解Android網(wǎng)絡(luò)編程
    發(fā)表于 03-19 11:26 ?1次下載

    淺談ARM發(fā)布Armv9的三大改進(jìn)

    英國芯片設(shè)計(jì)公司Arm周二發(fā)布了Armv9,這是其在2011年發(fā)布Armv8之后十年來首次推出新的芯片架構(gòu)。Arm表示,與以前的架構(gòu)相比,Armv9提供了三大主要改進(jìn),即安全性更高,更好的AI性能,以及總體上速度更快。
    的頭像 發(fā)表于 04-01 15:17 ?2341次閱讀

    宋寶華:深入理解cache對(duì)寫好代碼至關(guān)重要

    現(xiàn)代CPU,通常L1 cache的指令和數(shù)據(jù)是分離的。這樣可以實(shí)現(xiàn)2條高速公路并行訪問,CPU可以同時(shí)load指令和數(shù)據(jù)。當(dāng)然,cache也不一定是一個(gè)core獨(dú)享,現(xiàn)代很多CPU的典型分布是這樣的,比如多個(gè)core共享一個(gè)
    的頭像 發(fā)表于 12-06 10:38 ?916次閱讀

    Arm微架構(gòu)之Armv9時(shí)代

    在介紹Armv9系列前,我們先看一下ARM的Cortex-X定制CPU計(jì)劃。Cortex-X方案先于Armv9發(fā)布,在Arm發(fā)布A78時(shí),同時(shí)也發(fā)布了Cortex-X1這一顆性能強(qiáng)大的CPU,后續(xù)大家習(xí)慣稱之為超級(jí)大核。
    的頭像 發(fā)表于 02-06 14:43 ?9081次閱讀

    深入理解Cache工作原理

    按照數(shù)據(jù)關(guān)系劃分:Inclusive/exclusive Cache: 下級(jí)Cache包含上級(jí)的數(shù)據(jù)叫inclusive Cache。不包含叫exclusive Cache。舉個(gè)例子,
    的頭像 發(fā)表于 05-30 16:02 ?799次閱讀
    <b class='flag-5'>深入理解</b><b class='flag-5'>Cache</b>工作原理
    RM新时代网站-首页