AMBA三种总线详解并比较
AMBA(Advanced Microcontroller Bus Architecture)是 ARM 公司推出的片上总线标准,旨在为 SoC(片上系统)提供高效、灵活的通信架构。
一、总线详解
1. AHB(Advanced High-performance Bus)
- 技术特性:
- 高性能设计:支持流水线操作和突发传输(Burst Transfer),可连续传输多笔数据(如 INCR、WRAP 等模式),显著提升总线利用率。
- 多主设备仲裁:支持多个主设备(如 CPU、DMA)共享总线,通过仲裁机制分配总线控制权,确保高带宽需求。
- 信号定义:包含 32 位地址总线(HADDR)、数据总线(HWDATA/HRDATA)及控制信号(如 HBURST、HREADY),支持 32/64/128/256 位数据宽度。
- 应用场景:
- 连接处理器、片内外存控制器、高速外设(如 GPU、DSP)等对带宽要求高的模块。
- 作为系统主干总线,通过桥接器连接低速 APB 总线。
2. APB(Advanced Peripheral Bus)
- 技术特性:
- 低功耗与简化设计:非流水线架构,每笔传输固定 2 个时钟周期完成,无需复杂控制信号(仅 PADDR、PWDATA 等 4-6 个信号),降低功耗和设计复杂度。
- 单主设备架构:唯一主设备为 APB 桥(连接 AHB/AXI),无需仲裁逻辑,适合低速外设。
- 协议演进:APB3.0 引入 PREADY 信号支持传输延时,APB4.0 增加 PSTRB 信号实现稀疏数据传输。
- 应用场景:
- 连接 UART、I2C、GPIO 等低速外设,满足低带宽、低功耗需求。
- 作为二级总线,通过 APB 桥与 AHB/AXI 实现通信。
3. AXI(Advanced eXtensible Interface)
- 技术特性:
- 高带宽与灵活性:支持 1024 位数据宽度,独立读写通道(地址、数据、控制分离),允许读写并行操作,显著提升吞吐量。
- 乱序传输与多事务处理:支持未完成事务(Outstanding Transactions)和乱序完成,有效利用总线带宽,尤其适合高初始延迟设备(如 DDR 内存)。
- 协议分层:
- AXI4:完整协议,支持突发传输(最多 256 笔)和非对齐访问,用于高性能的存储器映射需求。
- 注:存储器映射:主机在对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作。
- AXI4-Lite:简化版,仅支持单数据传输,用于寄存器访问。
- AXI4-Stream:单向数据流传输(突发笔数不受限制),适用于视频、音频等流数据场景。
- 应用场景:
- 替代 AHB 成为新一代 SoC 主干总线,连接 CPU、高速缓存、PCIe 等高性能模块。
- 通过桥接器兼容 AHB 和 APB 设备,提升系统扩展性。
二、性能对比
维度 | AHB | APB | AXI |
数据宽度 | 32/64/128/256位 | 8/16/32位 | 2-1024位 |
传输类型 | 突发传输 | 单周期传输 | 突发传输,乱序传输,多事务并行 |
仲裁机制 | 多主设备仲裁 | 单主设备(桥) | 多主设备仲裁,支持优先级配置 |
功耗 | 较高(高性能设计) | 极低(设计简单) | 中高(灵活性带来复杂度) |
设计复杂度 | 中等(需仲裁和流水线逻辑) | 低(无仲裁,简单协议) | 高(多通道,乱序控制) |
典型延迟 | 低(流水线优化) | 高(固定两周期) | 低(乱序和并行优化) |
兼容性 | 向后兼容ASB | 兼容AMBA 2+版本 | 需桥接兼容AHB/APB |
注:ASB 即高级系统总线(Advanced System Bus),是 AMBA片上总线协议中的第一代系统总线
三、总结与应用
- AHB:适合需要高带宽但复杂度适中的场景,如传统 SoC 中的高速模块互联。
- APB:专为低速外设设计,以低功耗和低成本为核心优势,是 UART 等设备的首选。
- AXI:代表 AMBA 总线的未来方向,通过高度灵活的架构满足高性能计算、异构计算等复杂需求,成为现代 SoC 的主流选择。
在实际设计中,通常采用 AXI 为主总线,AHB/APB 为子总线 的混合架构:AXI 连接 CPU、内存等高性能模块,AHB 作为过渡层,APB 连接低速外设,通过桥接器实现无缝通信136。这种分层设计在性能、功耗和成本之间取得了平衡,广泛应用于智能手机、汽车电子、工业控制等领域56。
四、AXI总线详解
AXI(Advanced eXtensible Interface)是 ARM 公司推出的AMBA 4.0 及以上版本的核心总线协议,专为高性能、高带宽、低延迟的片上系统(SoC)设计。作为 AMBA 总线的第三代标准(前两代是 ASB 和 AHB),AXI 通过多通道并行架构、灵活的事务处理机制和可扩展的数据宽度,成为现代 SoC 中连接 CPU、内存控制器、高速外设等模块的主流选择。
一、AXI 技术架构与核心特性
1. 五通道独立设计(关键)
AXI 将地址、数据和控制信号分离为5 个独立通道,支持并行操作,显著提升总线利用率:
- 读地址通道(Read Address Channel)
- 主设备发送读地址和控制信号,从设备响应读数据。
- 写地址通道(Write Address Channel)
- 主设备发送写地址和控制信号,从设备接收写数据后返回写响应。
- 写数据通道(Write Data Channel)
- 主设备传输写数据和字节选通信号。
- 写响应通道(Write Response Channel)
- 从设备向主设备反馈写操作状态。
- 读数据通道(Read Data Channel)
- 从设备向主设备返回读数据和响应信号。
优势:独立通道允许读写操作并行进行,未完成的事务可缓存(Outstanding Transactions),避免总线等待,尤其适合高延迟设备(如 DDR 内存)。
2. 突发传输(Burst Transfer)与灵活寻址
- 突发类型:支持固定长度(FIXED)、递增地址(INCR)、回环地址(WRAP,用于 Cache 行填充)三种突发模式,单次突发可传输 1~256 笔数据。
- 非对齐访问:允许数据传输起始地址不按数据宽度对齐(如 32 位数据从地址 1 开始传输),传统总线(如 AHB)需软件拆分,AXI 硬件直接支持。
3. 乱序完成与事务标识
- 乱序机制:从设备可按任意顺序完成多个未完成的事务(需主设备支持乱序),例如先处理后发起的读事务,提升总线效率。
- ID 标签:每个通道包含唯一标识符(ARID/AWID 等),用于关联请求与响应,确保乱序传输时数据不混淆。
二、AXI 协议版本与功能差异
AXI4 标准包含三种子协议,针对不同应用场景优化:
1. AXI4(Full Feature)
- 定位:高性能内存映射(Memory-Mapped)总线,替代 AHB 成为 SoC 主干。
- 特性:
- 支持突发传输(最大 256 笔)、非对齐访问、乱序完成。
- 64 位地址空间,适合连接 CPU、DMA 控制器、DDR 内存控制器等。
- 典型应用:处理器与片外内存、高速缓存(Cache)、PCIe 控制器的通信。
2. AXI4-Lite
- 定位:轻量级内存映射总线,用于寄存器访问。
- 特性:
- 仅支持单数据传输(突发长度固定为 1),无乱序和突发功能。
- 简化控制信号,适合低带宽场景(如 APB 桥、外设寄存器配置)。
- 优势:降低设计复杂度,功耗低于 AXI4,替代传统 APB 用于高速寄存器访问。
3. AXI4-Stream
- 定位:单向数据流总线,无地址通道,用于流数据传输。
- 特性:
- 支持连续数据传输(如视频像素、音频采样),通过 VALID/READY 握手信号控制流量。
- 数据可包含用户自定义标签(USER 字段),用于元数据传递(如数据流起始 / 结束标识)。
- 典型应用:FPGA 加速器、图像处理单元(ISP)、USB / 以太网控制器的数据通路。
三、AXI 设计挑战与最佳实践
1. 设计复杂度
- 挑战:多通道同步、乱序控制逻辑增加 RTL 设计与验证难度。
- 解决方案:
- 使用成熟的 IP 核(如 ARM CoreLink AXI Interconnect)减少底层开发。
- 采用断言(Assertion)和覆盖分析(Coverage Analysis)确保协议合规性。
2. 功耗优化
- 挑战:并行架构可能导致动态功耗增加。
- 解决方案:
- 对非活跃通道进行时钟门控(Clock Gating)。
- 利用 AXI 的低功耗扩展(如 AXI5 的 LPAUX 信号)实现电源状态管理。
3. 系统集成
- 挑战:多主设备仲裁与延迟均衡。
- 解决方案:
- 通过 QoS 机制为关键设备(如 CPU)分配更高仲裁优先级。
- 使用缓冲器(Buffer)和流水线寄存器(Pipeline Register)优化路径延迟。
注:握手信号通俗讲解(好多人问)
具体流程
-
发送方发起请求
- 发送方将数据放到总线上,置 REQ 为高(“我要发数据了”)。
-
接收方响应应答
- 接收方检测到 REQ 高后,读取数据,置 ACK 为高(“数据收到了”)。
-
双方复位信号
- 发送方检测到 ACK 高后,拉低 REQ(“知道你收到了”)。
- 接收方检测到 REQ 低后,拉低 ACK(“准备好下一次”)。