AMBA(Advanced Microcontroller Bus Architecture)是由ARM(Advanced RISC Machines)公司设计的一种高性能、高带宽的总线架构。AMBA总线广泛应用于各种嵌入式系统中,包括数字信号处理器、图形处理器、嵌入式处理器以及SoC(System-on-Chip)等。
AMBA包含一系列总线,包含AHB(Advanced High-Performance Bus,高级高性能总线)、APB(Advanced Peripheral Bus,高级外设总线)、AXI(Advanced Extensible Interface,高级可扩展总线接口)等。AMBA的演进如下
APB:低带宽总线协议,为了支持外围设备,在低功耗和低复杂性方面进行了特定的优化。读写操作共享同一组信号,不支持burst数据传输。用于外围设备的低成本接口,不需要大量的数据,低延迟的传输,因此不需要高性能的流水线总线接口。APB总线的任何传输至少需要2个周期。典型的含有APB总线的系统,在 AHB、AXI与连接外围设备接口的APB总线之间含有APB桥接器,通过它可以访问外围设备的可编程寄存器。
AHB:主要针对高性能、高时钟频率以及快速系统模块所设计的总线,可以充当高性能系统主干线,可以链接微处理器、芯片上或者芯片外的内存模块、DMA等高效率模块。支持多个总线主控,并支持高带宽操作。典型的AMBA系统设计包含 AHB主机、AHB从机、AHB仲裁器和AHB解码器。它用于在共享总线上连接需要高带宽的组件,如DMA、DSP和内存。AMBA AHB支持了如下特性:
- 突发传输
- 更宽的数据总线配置(64/128位)
- 单时钟边沿操作
- 单周期总线主切换
AHB-lite:是AHB的简化版本。简化之后只支持一个Master,消除了对任何仲裁、充实、分割事务等需求,通过简化设计,提高了传输性能。
AXI:是一种并行、高性能、高频率、同步的总线协议。适合于高带宽和低延迟互连。这是一个点对点的互连协议,支持乱序传输、读写通道分离,它克服了AHB、APB等共享总线协议在可连接的代理数量方面的限制。该协议支持多个outstanding 的数据传输(多组未完成事务共存)、burst数据传输、单独的读写通道和支持不同的总线宽度。它针对高性能和高频系统,具有以下主要特点:
- 多笔未完成Transaction
- 乱序数据补全
- 仅发布起始地址的基于突发的事务
- 支持使用选通的非对齐数据传输
- 同时读取和写入事务
- 用于高速操作的流水线互连
AXI-lite:简单低吞吐量的内存映射通信,是AXI总线协议的简化版本,简化后不支持突发数据传输,用于操作控制和状态寄存器。
AXI-stream:是AXI总线协议的另一种风格,它只支持数据流从master流到slave单向流动,用于高速流数据传输。与完整的AXI或AXI-lite不同,AXI-stream协议数据流只在一个方向流动,没有单独的读、写通道
典型应用场景:
基于amba的微控制器通常由一个高性能系统主干总线组成,能够维持CPU和其他直接内存访问(DMA)设备所在的外部存储器带宽,加上一个到较窄的APB总线的桥,低带宽外围设备位于APB总线上。下图显示了一个典型的AMBA系统中的APB。