思考:
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ù)版本中支持:
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í)序圖。
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性能的影響:
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è)和雙緩存切片配置之間的差異。
將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ú)立于切片映射。
-
加速器
+關(guān)注
關(guān)注
2文章
796瀏覽量
37838 -
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
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論