























Arm 的 CCI-500 与 NI-700,实际上代表了 Arm SoC interconnect 演进中的“两条线”:
CCI-500 = coherent interconnect(缓存一致性)
NI-700 = scalable NoC(片上网络)
它们不是简单前后代关系。
而是:
“缓存一致性层”
+
“系统传输层”
的关系。
这个一定要从 ARM SoC 的演进过程理解。
先理解最原始问题。
早期 SoC:
单CPU
时:
后来出现:
big.LITTLE
例如:
问题来了:
例如:
x = 1;
数据还在:
L1 cache
里。
CPU1:
read(x)
如果:
CPU1 可能读到旧值。
因此 ARM 搞出了:
CCI
Cache Coherent Interconnect
CCI-500 的核心:
维护多个master之间的cache一致性
包括:
CCI-500 本质是:
带ACE协议的coherent crossbar
内部:
典型:
+-----------+
A53 ----| |
| |
A57 ----| CCI-500 |---- DDR
| |
GPU ----| |
+-----------+
其中:
| 模块 | 功能 |
|---|---|
| CPU cluster | fully coherent |
| GPU | ACE-Lite coherent |
| DDR | memory backend |
这是关键。
CCI-500 的核心基础:
ACE
AXI Coherency Extensions
ACE = AXI + cache coherency。
它增加:
| Channel | 作用 |
|---|---|
| AC | snoop request |
| CR | snoop response |
| CD | snoop data |
因此:
CPU 可以:
互相snoop cache
到这里都还好。
但现代 SoC 出现了:
traffic 爆炸。
CCI-500 是:
中心化crossbar
所有流量:
汇聚到中央
像:
高速公路收费站
很容易堵。
ACE/AXI 信号极宽:
例如:
先进工艺下:
布线困难
7nm/5nm 后:
global wire delay 巨大。
central crossbar:
频率越来越难拉高
于是 ARM 进入:
NoC时代
即:
Network-on-Chip
理念:
不要再搞“大总线”
而是搞“片上网络”
NI-700:
Network Interconnect
核心:
packetized NoC
传统 AXI:
信号线直接传输transaction
例如:
AWADDR
WDATA
BRESP
全部一路传。
NI-700:
会把 transaction:
封装成packet
类似:
网络数据包
然后:
router hop-by-hop转发
结构像:
CPU -- Router -- Router -- DDR
|
GPU
内部:
已经非常像:
on-chip Ethernet network
这里最关键。
很多人误解:
NI-700替代CCI
实际上:
NI-700 不负责复杂CPU coherency
它主要负责:
transport
而:
coherency
后来交给:
这些 coherent mesh。
现代 ARM SoC:
不是:
一个大CCI
而是:
Coherent Mesh
+
System NoC
例如:
CMN-700
(CPU coherent mesh)
/ | \
CPU LLC DSU
|
NI-700
/ | \
GPU NPU ISP
|
DDR
因为:
需要:
两者优化目标完全不同。
| 特性 | CCI-500 | NI-700 |
|---|---|---|
| 类型 | coherent interconnect | packetized NoC |
| 目标 | cache coherency | scalable transport |
| 核心协议 | ACE | packet routing |
| 架构 | centralized crossbar | distributed router |
| 重点 | snoop | bandwidth |
| CPU cache一致性 | 强 | 不负责 |
| 扩展性 | 一般 | 极强 |
| wire scalability | 差 | 好 |
| AI/GPU适合度 | 一般 | 极强 |
| 时代 | ARMv8早期 | ARMv9时代 |
因为:
现代:
centralized coherent crossbar:
根本撑不住
现代视角看:
CCI-500 更像:
CPU coherency island
而不是:
全SoC backbone
像:
银行总账系统
重点:
所有账户数据必须一致
像:
城市交通网
重点:
如何让海量车辆高效流动
CCI-400
↓
CCI-500
↓
CCN-5xx
↓
CMN-600
↓
CMN-700
NIC-400
↓
NIC-450
↓
NI-700
最本质关系:
CCI-500:
解决 “谁的数据是最新的”
NI-700:
解决 “数据怎么高效运过去”
或者:
CCI-500 = coherency
NI-700 = transportation
现代 SoC 已经把:
“缓存一致性”
和
“全芯片数据运输”
彻底拆成两层架构。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。