学习:AXI协议

AXI 是 ARM AMBA 体系里的高性能片上总线,核心演进是:AXI3 → AXI4(含 Lite / Stream / ACE)→ AXI5(含 AXI5-Lite / ACE5)。整体方向是"更高带宽、更简单互连、更强一致性/可靠性/原子能力"。


一、AXI3(AMBA 3,2003)

第一代 AXI,已经具备现代 AXI 的骨架:

  • 5 通道:AR / R / AW / W / B
  • 支持 outstanding(多发未完事务)
  • 支持 out-of-order(不同 ID 乱序完成)
  • 支持突发:FIXED / INCR / WRAP
  • 最大突发长度:16
  • 写数据可交错(write interleaving),有 WID
  • 支持 Locked + Exclusive 访问
  • AxLOCK 为 2 bit
  • 没有 QoS / Region / User 信号体系

适合早期 Cortex-A8/A9、ARM11 等 SoC。


二、AXI4(AMBA 4,2010)

对 AXI3 做"工程化精简 + 带宽增强":

项目 AXI3 AXI4
最大突发长度 16 INCR 最大 256,WRAP/FIXED 仍 16
AWLEN/ARLEN 4 bit 8 bit
WID / 写数据交错 有 移除​
Locked 访问 支持 移除,只保留 Exclusive
AxLOCK 2 bit 1 bit
QoS 无 新增 AWQOS/ARQOS
Region 无 新增 AWREGION/ARREGION
User 信号 基本无 各通道可选 *USER
地址空间 32 位为主 明确支持更大系统

关键思想:

去掉 WID 和写数据交错,虽然牺牲一点灵活度,但互连/NIC 实现大幅简化,对高频大带宽 SoC 更友好。

同时 AMBA 4 还推出三个重要变体:

  • AXI4-Lite:寄存器访问,无突发,单笔传输,32/64 位
  • AXI4-Stream:无地址通道,纯数据流,适合视频/音频/DMA/网络包
  • ACE / ACE-Lite:在 AXI4 上加 snoop 通道,支持多核缓存一致性

三、AXI5(AMBA 5,2019 左右)

在 AXI4 基础上向"服务器 / 车载 / AI / Chiplet 级系统"扩展:

新增/增强能力:

  • 原子事务(Atomic operations):CAS、Swap、Fetch-add 等,通过 AWATOP/ARATOP
  • 数据完整性:Poison、Check、Parity 等 RAS 类信号
  • Trace / Debug 属性:TraceTag 等
  • 低功耗唤醒:AWAKEUP / ARWAKEUP
  • User 信号标准化更完整
  • ID 宽度可更大,系统并发能力更强
  • 与 CHI / ACE5 生态对齐,面向多核、多簇、一致性系统

ACE 也演进为 ACE5 / ACE5-Lite / ACE5-LiteDVM,更适合大规模一致性互连。


四、一句话看版本区别

  • AXI3:能跑,支持写交错和 Locked,突发短
  • AXI4:现代 SoC 主流,长突发、QoS、去掉写交错和 Locked
  • AXI4-Lite:外设寄存器
  • AXI4-Stream:数据流
  • AXI5:AXI4 + 原子操作 + RAS + 低功耗 + 面向一致性和大系统

五、工程选型建议

  • CPU / DDR / DMA / NPU 高速口:AXI4 或 AXI5
  • UART / GPIO / 定时器 / 配置寄存器:AXI4-Lite
  • 视频、音频、MAC、DSP 流水线:AXI4-Stream
  • 多核缓存一致:ACE / ACE5
  • 新项目默认按 AXI4 起步;服务器/车规/AI 大系统再上 AXI5
相关推荐
xxwl5851 小时前
vue3的入门学习
前端·vue.js·学习
Joe_Wang51 小时前
【从0到1学习JVM · 21】既不浪费空间又没有碎片,标记整理算法到底慢在哪
jvm·学习·算法·垃圾回收·标记整理算法
个 人 练 习 生1 小时前
C++:模板初阶详解
开发语言·c++·经验分享·学习
辣知2 小时前
辣知·化智69 西周青铜器何尊的宅兹中国
学习
AOI小白新手上路2 小时前
韦东山 3-5 I.MX6ULL 的 LED 编程 · 学习笔记
arm开发·笔记·单片机·学习·架构·硬件架构
知识分享小能手2 小时前
C++ 学习教程,从入门到精通,C++类继承 — 完整知识点详解(13)
开发语言·c++·学习
Joe_Wang52 小时前
【从0到1学习JVM · 25】同样都要停顿所有线程,Parallel比Serial到底强在哪
java·jvm·学习·垃圾回收
M78佐菲2 小时前
ARM学习笔记(9)
linux·arm开发·笔记·嵌入式硬件·学习
阳光九叶草LXGZXJ3 小时前
达梦数据库-学习-67-SSL加密认证
linux·运维·数据库·sql·学习·ssl