【ARM CoreLink 系列 3.1 -- CCI-500 詳細介紹 -上半部】
1.1 CCI-500 介紹
CCI-500 是個可編程高帶寬的互聯,可以通過硬件來保證 緩存一致性 ,使用硬件來保證緩存一致性可以有效提高系統性能和減少功耗,主要優點有以下幾點:
- 減少對外部memory的訪問;
- 降低軟件開銷和復雜性;
- 保駕 ARM big.LITTLE 架構的正常工作。
CCI-500 是個可配置的互聯,支持以下適配:
- 支持多達 4個 ACE Masters,例如 Cortex-A57 或者 Cortex-A53 處理器;
- 支持多達 4 個 ACE-Lite master, 比如 ARM Mali-T760 GPU;
- 支持多達 4 個 AXI slaves,例如 memory和系統外設。
ACE 是一種協議,它擴展了標準的 AXI(Advanced eXtensible Interface)總線協議,添加了緩存一致性和原子操作支持。適用于那些需要與其他處理器共享緩存數據的復雜處理器核心。
ACE-Lite 是 ACE 協議的一個子集,它支持系統一致性,但不支持處理器之間緩存行的讀取共享。ACE-Lite 適用于那些不需要緩存共享的處理器或I/O控制器。
這種設計使得 CCI-500 能夠適應多種不同的 SoC 架構需求,從而支持從小型、低功耗設備到大型、多核心處理器系統的廣泛應用。例如,一個 SoC 可能會有幾個完整的 CPU 核心(使用 ACE 接口)和一些簡單的 DMA 或 I/O 控制器(使用 ACE-Lite 接口)。
1.2 CCI-500 features 詳細介紹
-
Data coherency between ACE masters.
-
Quality of Service (QoS) features for traffic management.
-
Input and Output (I/O) coherency with ACE-Lite masters.
-
Crossbar interconnect functionality between the masters and slaves.
-
A Performance Monitoring Unit (PMU) to count performance-related events.
-
DVM message transport between masters for communication between MMUs.
-
A Programmers View (PV) to control coherency and interconnect functionality.
-
A snoop filter to reduce snoop power and improve performance for snoop misses.
-
Support for Arm TrustZone? technology to provide Secure, Non-secure, and protected states.
下面詳細介紹您提到的 CCI-500 的特征和功能。
1.2.1 Data Coherency between ACE Masters
數據一致性是多核處理器系統中的一個關鍵概念,它確保了所有的處理器核心在訪問共享數據時所看到的是相同的信息。CCI-500 通過實現 ACE(AXI Coherency Extensions)協議來確保不同的 ACE 主控制器(通常是 CPU 核心)之間的數據一致性。該協議允許核心共享它們的緩存狀態,從而能夠同步對共享數據的更新,避免了數據不一致的問題。
1.2.2 Quality of Service (QoS)
質量服務(Quality of Service,簡稱 QoS)特性允許 CCI-500 對經過互聯的流量進行管理,為不同的數據流和事務分配優先級。這種方式有助于確保關鍵任務獲得必要的內存帶寬,同時提高整個系統的性能和響應時間。CCI-500 的 QoS 功能支持調整帶寬分配,以優化總線使用率和控制延遲。
vendor IP 中如何配置 QoS?
1.2.3 (I/O) Coherency
除了全功能的 ACE 主控制器之外,CCI-500 還支持與 ACE-Lite 主控制器的 I/O 一致性。ACE-Lite 主控制器通常是那些不需要參與緩存共享的外圍設備或DMA控制器。 CCI-500 通過 ACE-Lite 協議提供了 I/O 一致性,使得這些控制器在訪問共享內存時可以獲取最新的數據,即使它們不直接參與緩存行的一致性協議 。
1.2.4 Crossbar Interconnect Functionality
CCI-500 提供了交叉開關(crossbar)互聯功能,允許多個主控制器同時與多個從控制器(如內存控制器、外圍設備等)進行交互。交叉開關互聯的特點是它允許多通道并行操作,從而能夠提供高帶寬和低延遲的數據傳輸。CCI-500 通過這種方式能夠確保多個主控制器可以高效地共享對從控制器的訪問,從而提升整體 系統性能 。
1.2.5 Performance Monitoring Unit (PMU)
- 功能 :PMU(Performance Monitoring Unit)使得 CCI-500 能夠監控和計數各種與性能相關的事件。這包括跟蹤數據傳輸、緩存命中和未命中、QoS 事件等。
- 用途 :系統設計師和開發者可以利用 PMU 提供的數據來識別性能瓶頸,優化軟件和硬件配置以提高整體系統性能。
1.2.6 DVM Message Transport
- 功能 :DVM(Distributed Virtual Memory)消息傳輸允許互聯網上的主控制器之間進行通信,特別是用于內存管理單元(MMUs)之間的同步。
- 用途 :DVM 消息對于維護大規模多核系統中的虛擬內存一致性至關重要。它允許 MMUs 共享有關頁面映射和無效化等信息。
1.2.7 Programmers View (PV)
- 功能 :PV(Programmers View)提供了一組控制寄存器,允許程序員配置和控制緩存一致性和互聯功能。
- 用途 :通過 PV,程序員可以細粒度地管理如何在各種主控制器之間實施緩存一致性協議,以及配置互聯網絡的行為。
1.2.8 Snoop Filter
- 功能 :Snoop filter 是一種優化機制,旨在減少不必要的 snoop 操作,這些操作由于緩存一致性協議在多個處理器核心之間進行檢查以確定數據是否是最新的。
- 用途 :通過減少因 snoop 未命中而產生的額外流量,snoop filter 有助于降低功耗并提高系統性能。
1.2.9 ARM TrustZone? Technology Support
- 功能 :CCI-500 支持 ARM TrustZone? 技術,這是一種安全技術,可以在物理處理器上創建一個安全的執行環境(稱為 “安全世界”),與非安全環境(稱為 “非安全世界”)隔離開來。
- 用途 :TrustZone 技術保護敏感數據和應用不受惡意軟件攻擊,同時還能夠定義受保護的狀態,進一步加強安全性。
CCI-500 的這些功能使其成為一個強大的組件,用于構建可以處理高性能計算任務并需求嚴格安全措施的復雜系統。通過性能監控、DVM 消息傳輸、程序員視圖、snoop 過濾和 TrustZone 支持,CCI-500 提供了必要的工具和機制來優化性能,維持系統一致性,并確保數據安全。
1.3 CCI-500 Interface 詳細介紹

上圖可以看到 Slave 口 S5 和 S6 通過ACE 總線跟 Cortex-A72/A53 相連。CCI-500 提供多個連接的處理器集群之間 L1 和 L2 緩存的完全一致性和數據共享。這意味著:
- 當一個處理器核心對共享緩存行進行修改時,CCI-500 保證其他核心可以看到這些修改。
- 它通過 snoop 協議來實現緩存一致性,確保所有的處理器核心都能訪問到最新的數據,無論它們位于哪個處理器集群中。
- 這種機制對于提升多核處理器性能至關重要,因為它減少了因緩存不一致性而導致的處理器間同步延遲。
1.3.1 可選 AMBA 域橋接(ADB-400)使用
為了進一步提升系統的功率和頻率可擴展性,CCI-500 允許使用 AMBA 域橋接(ADB-400)來連接不同的組件。ADB-400 的功能包括:
- 集成多個電源域 :當 SoC 設計需要將不同部件分隔在不同的電源域中時,ADB-400 允許這些部件在保持各自電源管理獨立性的同時,仍然能夠維持所需的連接和通信。
- 集成多個時鐘域 :對于運行在不同時鐘頻率的組件,ADB-400 提供了時鐘域之間的橋接,保證了即使在不同的時鐘速度下,組件之間依然可以保持正確的數據交換和一致性。
1.3.2 ACE-Lite 和 DVM 信號
- DVM (Distributed Virtual Memory) :DVM 協議是一種信號機制,用于在系統的內存管理單元(MMUs)之間傳遞虛擬內存相關的信息,比如地址轉換無效化消息。這些消息對于維護系統中不同處理器核心和設備的虛擬內存一致性至關重要。
1.3.2.1 GPU 和 MMU-500
CCI-500 的從設備接口 S0-S4 支持連接到需要 I/O 一致性的設備,例如 Mali-T860 或 Mali-T880 GPU。這些 GPU 使用 ACE-Lite 協議與 CCI-500 連接,能夠確保它們訪問內存時能夠獲取到最新的數據,而不必實現全緩存一致性。
可以使用 DVM 信號連接內存管理單元,如 ARM MMU-500。MMU-500 是一種高級的內存管理單元,它支持大規模的系統級虛擬化和一致性管理。通過 DVM 信號,MMU-500 可以與 CCI-500 和處理器核心交換關于虛擬地址空間更改的信息,這樣確保了在系統各部分之間維持虛擬內存一致性。
1.4 CCI operation

1.4.1 雙層請求通道(dual-layer request channels,)
CCI-500 使用了雙層請求通道設計,這意味著它能在每個周期處理兩個請求。具體來說:
- 雙層架構 :這種設計使得 CCI-500 能夠同時發送和接收兩個獨立的數據請求,從而提高了數據吞吐量。
- 周期效率 :每個周期處理兩個請求的能力意味著 CCI-500 可以更有效地利用系統資源,尤其是在高負載條件下。
1.4.2 中央事務追蹤器(central Transaction Tracker)
CCI-500 中包含一個中央事務追蹤器(TT),它是互聯內的關鍵組件,負責處理緩存一致性和事務順序。以下是它的主要功能:
- 一致性管理 :中央事務追蹤器監控所有通過互聯的事務,并確保它們遵守所需的緩存一致性協議。
- 順序處理 :TT 負責維持事務的正確順序,這對于保持數據的一致狀態和正確傳輸至關重要。
- 非阻塞 :TT 采用非阻塞設計,這意味著即使有些事務需要等待,其他事務也可以繼續執行,從而避免系統性能瓶頸。
- 重排序請求 :根據 QoS(Quality of Service)要求,TT 可以對事務進行重排序。這個特性允許互聯對高優先級的事務給予快速處理,同時對低優先級的事務進行緩和處理。
1.5 CCI Configurable options
ARM CCI-500(Cache Coherent Interconnect)是一種高度可配置的互聯解決方案,它為 系統集成 提供了靈活性,同時還允許在設計和運行時根據不同的應用需求進行配置。
1.5.1 設計時配置(Design-Time Configuration)
設計時配置提供了在 SoC 設計階段選擇的選項。這些選項允許設計師根據功能需求和系統資源約束來優化互聯的尺寸和功耗。具體來說,設計時配置可以包括:
1.5.1.1 ID Widths
- 定義 :ID 寬度配置選項允許設計者設置穿過互聯的事務 ID 的位寬。
- 作用 :這直接影響了可以在互聯中同時追蹤的唯一事務的數量,從而影響性能和復雜度。
1.5.1.2 Address Widths
- 定義 :地址寬度配置選項指定了互聯網絡處理的地址大小。
- 作用 :這個配置決定了系統可以尋址的內存范圍,以及地址映射的粒度。
1.5.1.3 User-Defined Signal Widths
- 定義 :用戶定義信號寬度允許設計者為特定的控制信號指定位寬。
- 作用 :這為設計者提供了在某些自定義信號傳輸上的靈活性,以便滿足特定的接口或控制需求。
1.5.1.4 Burst Splitting Option for Slave Interfaces
- 定義 :突發分割選項允許將大的突發傳輸分割為更小的塊。
- 作用 :這有助于平衡帶寬和延遲,特別是在處理大容量數據傳輸時。
1.5.1.5 Transport of Data Checksums
- 定義 :數據校驗和傳輸選項,如奇偶校驗或錯誤更正碼(ECC)。
- 作用 :這增加了數據傳輸過程的完整性和可靠性,對于緩解數據損壞至關重要。
1.5.1.6 Size of the Transaction Tracker (TT)
- 定義 :事務追蹤器的大小可以配置,以在性能和面積之間取得平衡。
- 作用 :TT 大小的選擇會影響能夠并行跟蹤和管理的事務數量,從而影響整體性能和硬件復雜性。
1.5.1.7 Write Buffering
- 定義 :寫緩沖配置允許設計者在面積和寫帶寬之間取得平衡。
- 作用 :寫緩沖可以暫存寫操作,從而提高寫帶寬,但也會增加硬件資源的占用。
1.5.1.8 Snoop Filter RAM Capacity
- 定義 :Snoop 過濾器 RAM 容量配置與連接的處理器緩存大小相匹配。
- 作用 :這有助于優化互聯的功耗和性能,通過減少不必要的 snoop 操作。
1.5.1.9 Number of Pipeline Stages on Interfaces
- 定義 :接口上的流水線階段數可以配置,以幫助實現大型設計的時序收斂。
- 作用 :增加流水線階段可以改善時序,但可能會增加延遲。
1.5.1.10 Low Latency Mode
- 定義 :低延遲模式允許設計者從從設備和主設備接口之間的請求路徑上移除一個周期的延遲。
- 作用 :這改善了互聯的響應時間,對于延遲敏感的應用來說非常有用。
1.5.2 復位時配置(Reset-Time Configuration)
復位時配置提供了在系統重置(或啟動)時可以改變的選項。這些配置允許在不同的運行環境或應用場景下調整互聯的功能。典型的復位時配置可能包括:
1.5.2.1 自定義地址解碼器(Custom Address Decoder)
自定義地址解碼器使得設計者可以實現任何特定的地址映射方案。這個功能的關鍵點包括:
- 靈活性 :設計者不限于使用預定義的地址映射方案,在特定的用例中,可以設計獨特的地址映射邏輯來滿足特殊的系統需求。
- 地址映射 :通過編程自定義解碼器,可以定義如何映射地址到不同的內存通道、緩存或其他資源,以優化性能、帶寬或其他關鍵參數。
1.5.2.2 QoS 閾值(QoS Threshold)
QoS 閾值用于定義在互聯網絡中視為高優先級的事務類型。這個配置影響系統中數據傳輸的優先權:
- 高優先級事務 :可以為關鍵的數據傳輸設置較高的 QoS 閾值,確保它們獲得更快的處理速度和更高的帶寬。
- 資源管理 :通過設置不同事務的 QoS 閾值,CCI-500 能夠有效地管理有限的資源,并保證高優先級的事務不會因為低優先級事務的擁堵而受到延遲。
1.5.2.3 QoS 調節器(QoS Regulators)
QoS 調節器負責根據事務分配的帶寬來調整讀寫請求的 QoS 值。這項功能有助于確保互聯網絡的流量管理更加精細化:
- 帶寬分配 :設計者可以為不同的數據流設置帶寬限制,QoS 調節器會根據這些限制來動態調整事務的 QoS 值。
- 流量平衡 :這種機制有助于平衡不同主設備的流量,防止某些主設備因為高流量的請求而影響到其他設備的性能。
1.6 Test features
在 ARM CCI-500(Cache Coherent Interconnect)的設計中,考慮到了測試性(Design for Test,簡稱 DFT)的策略,該策略對生產芯片的質量控制至關重要。CCI-500 支持以下兩種主要的 DFT 方法:
Scan Cell Insertion
- 概述 :掃描鏈測試是一種常用的 DFT 方法,它通過在設計中插入可測試的掃描單元(或掃描細胞)來實現。
- 功能 :這些掃描單元連成鏈條,允許測試人員將測試向量序列串行地加載進芯片,并在測試完成后讀取結果。
- 好處 :掃描鏈測試能夠高效地檢測出制造過程中可能出現的邏輯故障,提供高覆蓋率的測試。
MBIST (Memory Built-In Self Test)
- 概述 :MBIST 是一種用于測試內部存儲單元(如 RAM、ROM 等)的自我測試機制。
- 功能 :MBIST 生成測試模式并自動執行,不需要外部測試設備的干預,能夠檢測內存中的錯誤。
- 好處 :這種方法可以在生產線上快速且準確地驗證內存的完整性,并且可以在系統的正常使用周期內多次使用,以識別壽命期間可能出現的故障。
DFT control signals
在 ARM CCI-500(Cache Coherent Interconnect)設計中,DFT(Design for Test)控制信號提供了多個關鍵功能,以確保在生產測試階段可以對互聯進行徹底的檢測與驗證。以下是您所詢問的 DFT 控制信號能力的詳細介紹:
Disabling Internal Resets
- 功能 :允許測試人員關閉內部復位信號,這在進行某些測試模式時非常有用,例如當需要保持特定的內部狀態以進行測試時。
- 用途 :通過禁用內部復位,可以避免在測試過程中意外地清除寄存器或邏輯單元的狀態,從而確保測試的準確性。
Controlling Architectural Clock Gating
- 功能 :允許測試人員控制架構級的時鐘門控信號,這是一種動態省電技術,能夠在不需要時關閉部分電路的時鐘。
- 用途 :在測試模式下,可能需要保持所有的時鐘信號處于活動狀態,以確保測試向量可以完全穿過所有時鐘域,這有助于檢測時鐘門控相關的問題。
Controlling Internal RAM MBIST Signals
- 功能 :允許測試人員直接控制內存內建自測試(MBIST)相關信號。
- 用途 :通過控制這些信號,可以啟動和監控內存的自測試程序,以驗證其完整性和性能。
Limiting Multicycle Paths to Enable Delay Testing
- 功能 :在測試模式下限制多周期路徑,這是特定類型的設計路徑,可以在多個時鐘周期內完成。
- 用途 :這樣的控制對于延遲測試非常重要,因為它允許測試人員精確地測量路徑上信號的傳播時間,而不受多周期路徑的干擾。
Controlling Internal RAM Chip-Select, to Preserve State
- 功能 :允許測試人員控制內部 RAM 的芯片選通(chip-select)信號。
- 用途 :在部分測試期間,可能需要保持特定的內存狀態不變,控制芯片選通信號可以確保在測試過程中不會對這些內存進行寫操作,從而保留其狀態。
1.7 CCI-500 寄存器配置
可以使用 APB4 總線對 CCI-500 的配置寄存器。CCI-500 的寄存器列表如下:
| Offset | Name | Type | Reset | Description |
|---|---|---|---|---|
| 0x00000 | ctrl_ovr | RW | 0x0 | |
| 0x00008 | secr_acc | RW | 0x0 | |
| 0x0000C | status | RO | 0x0 | |
| 0x00010 | impr_err | RW | 0x0 | |
| 0x00014 | qos_threshold | RW | 0x00F00F0 | |
| 0x00100 | pmu_ctrl | - | 0x00004000 | |
| 0x00104 | debug_ctrl | RW | 0x0 | |
| 0x00FD0 | peripheral_id4 | RO | 0x00000084 | |
| 0x00FD4 | … | RO |
slave interface 0 registers
| Offset | Name | Type | Width | Description |
|---|---|---|---|---|
| 0x01000 | snoop_ctrl | - | 32 | |
| 0x01004 | share_ovr | RW | 32 | |
| 0x01100 | arqos_ovr | RW | 32 | |
| 0x01104 | awqos_ovr | RW | 32 | |
| 0x01110 | qos_max_ot | RW | 32 |
slave interface 1 registers


浙公網安備 33010602011771號