【ARM CoreLink 系列 2 -- CCI-400 控制器簡(jiǎn)介】
CCI-400 介紹
CCI(Cache Coherent Interconnect)是ARM中的cache一致性控制器。

CCI-400將互連和一致性功能結(jié)合到一個(gè)模塊中。它支持多達(dá)兩個(gè)ACE 主節(jié)點(diǎn)的連接,例如:
- Cortex?-A7 processor
- Cortex-A15 processor
- Cortex-A17 processor
- Cortex-A53 processor
- Cortex-A57 processor
| Feature | Details |
|---|---|
| AMBA specifications | AMBA 4 ACE and ACE-Lite |
| ACE Slave interfaces | 2 for fully coherent processors including Arm Cortex |
| ACE-Lite slave interfaces | 1-3 for IO coherent devices such as Mali processors, accelerators and IO |
| Memory and system master interfaces | 1-2 memory interfaces 1 system interface |
| Coherency | Broadcast snoop protocol |
| Memory map | 40 bit Physical, configurable address map 44 bit DVM |
CCI-400還支持多達(dá)三個(gè)ACE-Lite主站,例如,ARM MaliTM-T600系列圖形處理器單元(GPU)。
DVM消息
- 緩存一致性維護(hù):在ARM多核系統(tǒng)中,不同處理器或設(shè)備可能共享內(nèi)存。DVM消息用于同步各核心/設(shè)備的緩存狀態(tài),確保對(duì)同一內(nèi)存地址的訪問(wèn)一致。
- 跨節(jié)點(diǎn)通信:在NUMA(非統(tǒng)一內(nèi)存訪問(wèn))架構(gòu)中,DVM消息協(xié)調(diào)不同內(nèi)存節(jié)點(diǎn)的數(shù)據(jù)同步,降低訪問(wèn)延遲。
所有這些接口都有可選的DVM消息支持,以管理分布式內(nèi)存管理單元(MMU),例如CoreLink MMU-400。這些單元可以通過(guò)CCI-400與最多三個(gè)ACE-Lite從機(jī)進(jìn)行通信。
硬件管理的一致性可以通過(guò)共享片上數(shù)據(jù)來(lái)提高系統(tǒng)性能和降低系統(tǒng)功耗。
CCI-400cache一致性控制器實(shí)現(xiàn)了ACE協(xié)議,demo系統(tǒng)框圖如下所示:

CCI-400cache一致性控制器是一個(gè)基礎(chǔ)設(shè)施組件,支持以下內(nèi)容:
- 在最多兩個(gè)ACE主站和三個(gè)ACE-Lite主站之間的數(shù)據(jù)一致性,有三個(gè)獨(dú)立的序列化點(diǎn)(PoS)和全屏障支持。
- 主站和最多三個(gè)從站之間的高帶寬、跨欄互連功能。
- 主站之間的DVM消息傳輸。
- QoS虛擬網(wǎng)絡(luò)(QVN)。本質(zhì)上是一種 Virtual 的 Network,我們知道從一個(gè) master 到一個(gè)slave,它中間走的實(shí)際路線叫做physical network,在physical network上根據(jù)需要還可以設(shè)置多個(gè)virtual 的 network,在 virtual network之間,通過(guò)類似于token這種機(jī)制(只有一個(gè)master獲得了token,它才有資格去往下發(fā)送它的一些傳輸?shù)恼?qǐng)求)。QVN 機(jī)制使用這種 virtual network,使用這種基于token的機(jī)制去傳輸數(shù)據(jù)能夠很好的避免系統(tǒng)擁塞。
- 服務(wù)質(zhì)量(QoS)調(diào)節(jié),用于塑造流量曲線。QoS機(jī)制可認(rèn)為是一種資源分配的機(jī)制,比如根據(jù) outstanding 的能力,去限制某一個(gè)端口發(fā)送數(shù)據(jù)的能力。還可以根據(jù)發(fā)送速率或者傳輸?shù)膌atency來(lái)分配transaction,這些都是QoS-400能夠做到的。
- 性能監(jiān)測(cè)單元(PMU),統(tǒng)計(jì)與性能有關(guān)的事件。
DVM 機(jī)制介紹
Distributed Virtual Memory(DVM)機(jī)制是一種用于實(shí)現(xiàn)分布式虛擬內(nèi)存的技術(shù)。它允許多個(gè)處理器共享同一塊物理內(nèi)存,并通過(guò)高速網(wǎng)絡(luò)連接進(jìn)行通信。
DVM機(jī)制的核心思想是將物理內(nèi)存劃分為多個(gè)虛擬內(nèi)存空間,并將這些虛擬內(nèi)存空間分配給不同的處理器。每個(gè)處理器只能訪問(wèn)自己的虛擬內(nèi)存空間,但可以通過(guò)網(wǎng)絡(luò)與其他處理器進(jìn)行通信和共享數(shù)據(jù)。
DVM機(jī)制的實(shí)現(xiàn)主要依賴于以下幾個(gè)關(guān)鍵技術(shù):
- 虛擬內(nèi)存管理:每個(gè)處理器都有自己的虛擬地址空間,通過(guò)地址轉(zhuǎn)換機(jī)制將虛擬地址映射到物理地址。這樣可以實(shí)現(xiàn)不同處理器之間的地址隔離和虛擬內(nèi)存的管理。
- 數(shù)據(jù)共享:處理器可以通過(guò)網(wǎng)絡(luò)連接,將自己的虛擬內(nèi)存中的數(shù)據(jù)共享給其他處理器。這種數(shù)據(jù)共享可以通過(guò)消息傳遞、遠(yuǎn)程存取等方式實(shí)現(xiàn)。
- 一致性維護(hù):由于多個(gè)處理器共享同一塊物理內(nèi)存,需要保證數(shù)據(jù)的一致性。當(dāng)一個(gè)處理器修改了共享內(nèi)存中的數(shù)據(jù)時(shí),其他處理器需要及時(shí)獲得最新的數(shù)據(jù),以保證一致性。這通常需要使用一致性協(xié)議和緩存一致性機(jī)制。
DVM機(jī)制的優(yōu)點(diǎn)是可以充分利用多處理器系統(tǒng)的計(jì)算資源,提高系統(tǒng)的性能和可擴(kuò)展性。它適用于需要高并發(fā)和大規(guī)模數(shù)據(jù)共享的應(yīng)用場(chǎng)景,例如分布式計(jì)算、數(shù)據(jù)中心等。
需要注意的是,DVM機(jī)制并非 ARM處理器 中的內(nèi)置特性,而是一種通用的分布式計(jì)算技術(shù)。在ARM處理器中,可以通過(guò)軟件實(shí)現(xiàn)DVM機(jī)制,或者使用一些專門的硬件實(shí)現(xiàn),如ARM的CoreLink CCI(Cache Coherent Interconnect)系列產(chǎn)品。這些產(chǎn)品提供了高性能的互連網(wǎng)絡(luò)和緩存一致性機(jī)制,以支持分布式虛擬內(nèi)存的實(shí)現(xiàn)。
DVM 消息傳輸過(guò)程
DVM消息的傳輸過(guò)程如下:
- 當(dāng)一個(gè)處理器需要改變某段內(nèi)存的狀態(tài)時(shí)(例如,寫入數(shù)據(jù)),它會(huì)生成一個(gè)DVM消息,并將其發(fā)送到CCI。
- CCI在收到DVM消息后,會(huì)將其轉(zhuǎn)發(fā)到其他連接到CCI的處理器。這些處理器在收到DVM消息后,會(huì)檢查自己的緩存,如果緩存中包含了該內(nèi)存,那么會(huì)根據(jù)DVM消息的類型進(jìn)行相應(yīng)的操作,例如,更新緩存或者將緩存失效。
- 當(dāng)所有的處理器都對(duì)DVM消息進(jìn)行了響應(yīng)之后,CCI會(huì)向原始處理器發(fā)送一個(gè)確認(rèn)消息,表示該DVM消息已經(jīng)被所有的處理器處理完畢。
如下是 DVMop 一個(gè)典型的應(yīng)用:


通過(guò)DVM消息,處理器可以有效地維護(hù)緩存一致性,確保在多處理器系統(tǒng)中,所有的處理器都可以看到最新的數(shù)據(jù)。這對(duì)于提高多處理器系統(tǒng)的性能和可靠性具有重要意義。
需要注意的是,DVM消息的具體實(shí)現(xiàn)可能會(huì)因ARM的不同產(chǎn)品而有所不同。具體的細(xì)節(jié),如DVM消息類型、格式和傳輸過(guò)程,需要參考相關(guān)的硬件文檔和規(guī)范。
TOKEN 機(jī)制介紹
在多個(gè)設(shè)備同時(shí)訪問(wèn)總線時(shí),如果不進(jìn)行流量控制,可能會(huì)導(dǎo)致數(shù)據(jù)沖突和混亂。為了避免這種情況,ARM引入了總線token機(jī)制。
總線token機(jī)制基于一個(gè)令牌(token)的概念。令牌可以理解為一種權(quán)限,只有持有令牌的設(shè)備才能在總線上進(jìn)行數(shù)據(jù)傳輸。當(dāng)一個(gè)設(shè)備需要訪問(wèn)總線時(shí),它必須請(qǐng)求令牌。如果當(dāng)前總線上沒有令牌可用,設(shè)備必須等待,直到有令牌可用為止。一旦設(shè)備獲得令牌,它就可以在總線上進(jìn)行數(shù)據(jù)傳輸。當(dāng)傳輸完成后,設(shè)備釋放令牌,使其可供其他設(shè)備使用。
總線token機(jī)制具有以下特點(diǎn):
- 確保數(shù)據(jù)傳輸?shù)挠行蛐裕好看沃挥幸粋€(gè)設(shè)備可以持有令牌,這樣可以保證數(shù)據(jù)傳輸按照請(qǐng)求的順序進(jìn)行。
- 控制總線的帶寬:通過(guò)令牌管理,可以控制總線上的設(shè)備數(shù)量,以控制總線的帶寬使用情況,避免過(guò)多設(shè)備同時(shí)訪問(wèn)總線導(dǎo)致的性能下降。
- 提高系統(tǒng)的可靠性:總線token機(jī)制可以避免數(shù)據(jù)沖突和競(jìng)爭(zhēng),從而提高系統(tǒng)的可靠性和穩(wěn)定性。
總線token機(jī)制是ARM處理器中用于管理總線上的數(shù)據(jù)傳輸?shù)囊环N重要機(jī)制,能夠保證數(shù)據(jù)傳輸?shù)挠行蛐院涂煽啃?。在多設(shè)備同時(shí)訪問(wèn)總線的情況下,總線token機(jī)制可以有效地管理和控制數(shù)據(jù)傳輸。
Question:
ARM L1\L2 CACHE 緩存一致性是由DVM 實(shí)現(xiàn)的嗎
在ARM架構(gòu)中,L1/L2緩存的一致性并非直接由DVM(Distributed Virtual Memory)實(shí)現(xiàn),而是通過(guò)硬件一致性協(xié)議(如ACE或CHI)完成的。以下是關(guān)鍵點(diǎn)解析:
1. 緩存一致性的核心機(jī)制
-
硬件一致性協(xié)議:
ARM多核系統(tǒng)的L1/L2緩存一致性主要通過(guò)AMBA總線協(xié)議(如ACE或CHI)實(shí)現(xiàn)。- ACE (AXI Coherency Extensions): 用于多核間緩存同步(如Cortex-A7/A15)。
- CHI (Coherent Hub Interface): 更高性能的協(xié)議(如Cortex-A76/Neoverse N1)。
- MESI/MOESI協(xié)議: 在緩存行級(jí)別維護(hù)一致性狀態(tài)(Modified/Exclusive/Shared/Invalid)。
-
硬件自動(dòng)維護(hù):
當(dāng)CPU核心訪問(wèn)內(nèi)存時(shí),緩存控制器會(huì)自動(dòng)通過(guò)總線協(xié)議廣播消息,確保其他核心的緩存狀態(tài)同步,無(wú)需軟件干預(yù)。
2. DVM的輔助角色
DVM主要用于跨系統(tǒng)范圍(如多集群、NUMA節(jié)點(diǎn))的一致性管理,而非直接處理L1/L2緩存:
- 跨域同步:
在多集群架構(gòu)(如ARM DynamIQ)中,不同集群(Cluster)可能屬于不同的緩存一致性域(CCIX),DVM消息用于協(xié)調(diào)跨域操作。 - 虛擬化擴(kuò)展:
在虛擬機(jī)(VM)或安全世界(TrustZone)間隔離內(nèi)存時(shí),DVM消息協(xié)助維護(hù)物理內(nèi)存映射的一致性。 - 系統(tǒng)級(jí)操作:
如全局緩存維護(hù)指令(DC CIVAC)會(huì)觸發(fā)DVM消息廣播到所有節(jié)點(diǎn),確保所有緩存層級(jí)(包括L1/L2)被清理。
3. 示例:緩存操作如何關(guān)聯(lián)DVM
當(dāng)執(zhí)行一條全局緩存無(wú)效化指令時(shí):
DC CIVAC, X0 // 無(wú)效化地址X0對(duì)應(yīng)的緩存行
DSB ISH
- 硬件會(huì)通過(guò)總線協(xié)議(如CHI)更新本地L1/L2緩存。
- 如果目標(biāo)地址屬于其他一致性域(如另一個(gè)NUMA節(jié)點(diǎn)),則生成DVM消息通知遠(yuǎn)端節(jié)點(diǎn)同步。
4. 對(duì)比:DVM vs 硬件一致性協(xié)議
| 特性 | 硬件一致性協(xié)議 (ACE/CHI) | DVM |
|---|---|---|
| 作用范圍 | 單芯片內(nèi)多核的L1/L2緩存 | 跨集群/NUMA節(jié)點(diǎn)的系統(tǒng)級(jí)內(nèi)存 |
| 實(shí)現(xiàn)方式 | 硬件自動(dòng)完成 | 硬件消息+軟件協(xié)同 |
| 性能影響 | 低延遲(硬件優(yōu)化) | 較高延遲(跨域通信) |
| 典型場(chǎng)景 | 多核CPU共享內(nèi)存 | 多芯片/虛擬機(jī)/異構(gòu)計(jì)算 |
5. 開發(fā)者注意事項(xiàng)
- 無(wú)需手動(dòng)處理L1/L2一致性:
硬件協(xié)議已自動(dòng)維護(hù),除非涉及DMA設(shè)備(需調(diào)用__clean_dcache_area_poc等內(nèi)核API)。 - 跨域操作需顯式同步:
若數(shù)據(jù)可能被其他一致性域訪問(wèn),需使用DVM相關(guān)指令或內(nèi)存屏障(如DSB)。 - 性能敏感場(chǎng)景避免DVM:
頻繁的跨節(jié)點(diǎn)DVM消息可能導(dǎo)致總線擁堵,需優(yōu)化數(shù)據(jù)局部性。
結(jié)論:
L1/L2緩存一致性由硬件協(xié)議(ACE/CHI)直接實(shí)現(xiàn),DVM則用于更大范圍的系統(tǒng)級(jí)內(nèi)存同步,兩者協(xié)同但職責(zé)不同。


浙公網(wǎng)安備 33010602011771號(hào)