AMBA三种总线详解并比较

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)优化路径延迟。


    注:握手信号通俗讲解(好多人问)

    具体流程

    1. 发送方发起请求

      • 发送方将数据放到总线上,置 REQ 为高(“我要发数据了”)。
    2. 接收方响应应答

      • 接收方检测到 REQ 高后,读取数据,置 ACK 为高(“数据收到了”)。
    3. 双方复位信号

      • 发送方检测到 ACK 高后,拉低 REQ(“知道你收到了”)。
      • 接收方检测到 REQ 低后,拉低 ACK(“准备好下一次”)。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值