资料来源:ARM AMBA5 AXI Protocol Spec(500页)、AMBA5 CHI Architecture Spec(508页)、AMBA5 DTI/CXS/ATP/GFB/LTI协议规范。
一、AXI5增强特性:不只是改个名
术语规范化
先说一个容易被忽略的细节:AMBA5把术语改了——Master→Manager,Slave→Subordinate。这是ARM的包容性承诺,技术含义没变,但你在看AMBA5规范时会看到新术语,面试时提到这个能体现你的持续学习。
四个关键新特性
Poison用于标记数据是否有效,典型场景是ECC纠错。当存储器检测到不可纠正的错误时,可以在数据上打Poison标记,接收方看到Poison就知道这拍数据有问题,不会盲目使用。避免错误数据污染系统。
Cache Stashing允许Master在传输数据时附带一个"建议":这份数据你Cache一下。接收方(通常是CPU)可以把数据直接塞进自己的Cache,减少后续访问的Cache miss。对AI芯片特别有用——NPU算完的结果直接"stash"到CPU Cache,CPU马上就能用。
AXI5增强了QoS(服务质量)机制,允许按优先级管理请求。高优先级事务(如实时性要求高的视频流)可以插队,低优先级事务(如后台DMA)让路。ATP协议(后面讲)在此基础上更进一步。
AXI5-Lite:控制寄存器接口增强版
AXI5-Lite是AXI4-Lite的增强版,依然用于控制寄存器访问——突发长度固定1,数据宽度32/64位,信号最少。新增了Protection和Exclusive访问支持。
二、AMBA5新协议矩阵:5个新成员
AMBA5除了升级AXI/AHB/APB/ATB/Stream/CHI,还引入了5个全新协议:
分布式地址翻译接口,连接TBU(Translation Buffer Unit,翻译缓冲单元)和TCU(Translation Control Unit,翻译控制单元)。PCIe Root Port可以通过DTI连接到SMMU(系统内存管理单元),实现地址翻译的分布式部署——TBU放在各设备附近做快速翻译,TCU集中管理页表。
一致性流式协议,基于CHI架构的大块数据传输。结合了CHI的一致性管理和AXI4-Stream的流式传输特点,用于CHI一致性域内的大数据流传输。
遗留翻译接口,用于与旧版SMMU兼容。提供从旧版地址翻译接口到DTI的桥接,平滑迁移。
自适应流量配置,允许运行时动态调整QoS策略。定义流量Profile(延迟敏感、带宽优先等),系统根据实时负载动态切换策略,提升多主控系统的整体效率。
五个新协议在SoC中的位置
│
──DTI──→ SMMU(TCU+TBU) ←──DTI── PCIe Root Port
│
──CXS──→ NPU(一致性大块数据传输)
│
──ATP──→ QoS调度器(动态流量管理)
│
──GFB──→ Flash存储器
──LTI──→ 旧版SMMU(兼容)
优先关注DTI、CXS、ATP三个:DTI解决多设备地址翻译的分布式部署(AI芯片外设多);CXS做一致性域内大块数据传输(NPU权重加载);ATP做动态QoS(多主控流量调度)。GFB和LTI在AI芯片里相对边缘。
三、AI芯片SoC总线实战
AI芯片的总线需求
AI芯片和传统SoC最大的区别:数据搬运量巨大。一个大模型推理可能要搬几十GB的权重,多核NPU并行计算时还要频繁交换中间结果。总线设计直接影响性能:
高带宽:DDR带宽要喂饱所有计算核心
低延迟:核间同步、Cache一致性查询要快
多核并行:几十个核心同时访问,不能互相阻塞
QoS调度:不同流量优先级不同(控制流vs数据流)
典型AI芯片SoC总线架构
│ CPU集群(4-8核,带L1/L2 Cache) │
└──────────────────┬───────────────────────────┘
│ CHI(一致性互连)
┌────────────▼────────────┐
│ HN / L3 Cache / 互连 │
└──┬─────────┬────────┬───┘
│CHI │AXI4 │AXI4
┌────▼───┐ ┌───▼────┐ ┌▼──────────┐
│DDR Ctrl│ │NPU/GPU│ │DMA引擎 │
│(SN节点)│ │ 集群 │ │ │
└────────┘ └────────┘ └──┬─────────┘
│ │ │AXI4-Stream
│ │ ┌─────▼─────┐
│ │ │NPU SRAM │
│ │ │(权重缓冲) │
│ │ └───────────┘
│ ┌────▼────────┐
│ │AXI-to-APB桥 │
│ └──┬───┬───┬──┘
│ │ │ │ APB
│ ┌──▼┐┌▼──┐┌▼──┐
│ │UART││SPI││I2C│
│ └───┘└───┘└───┘
┌────▼──────────────────────┐
│ Flash存储器(GFB) │
└───────────────────────────┘
互连设计要点
Crossbar vs NoC:核数少(<8)用Crossbar(全互联,延迟低但面积随核数平方增长);核数多(>16)用NoC(网络片上,路由式,面积友好但延迟略高)
QoS流量调度:用ATP动态配置,控制流(低延迟)优先,数据流(高带宽)排队
死锁避免:确保不同优先级通道间不会形成循环依赖。常见做法是物理通道分离或严格优先级排序
DDR带宽优化
突发长度对齐DDR页面:AXI突发长度选16或256,让一次突发正好覆盖DDR一个页面(Page),减少页面miss带来的预充电开销。
事务重排与突发合并:互连器把多个小事务合并成大突发,提高DDR页面命中率。把地址连续的事务排在一起执行,减少随机访问。
一致性域设计
CPU参与全一致性:CPU核通过CHI/RN接入,参与完整的Cache一致性。CPU改的数据,其他CPU立即可见。
NPU通过ACE-Lite做IO一致性:NPU通常
- ——原因有二:一是NPU数据量大,进一致性域会引发大量Snoop流量;二是NPU访问模式可预测(批量加载权重),不需要细粒度一致性。用ACE-Lite保证NPU写完的数据对CPU可见即可。
低功耗与安全性
Q/P-Channel关时钟:空闲的NPU/GPU模块用Q-Channel关时钟,SoC级用P-Channel做DVFS
TrustZone + PROT信号隔离:安全世界和非安全世界通过AXI的PROT信号隔离,防止非安全Master访问安全内存
SMMU地址翻译
- :通过DTI连接的SMMU做地址翻译和访问权限检查,外设虚拟化地址翻译
- AXI5相比AXI4新增了哪些特性?Cache Stashing如何提升性能?DTI解决什么问题?TBU和TCU分别是什么?AI芯片SoC中,为什么NPU通常不参与全Cache一致性?AXI突发传输如何优化DDR带宽利用率?
341