AMBA总线协议
1.AMBA总线协议
高级微控制器总线架构 (AMBA) 是一种开放标准的片上互连规范,用于连接和管理片上系统 (SoC) 设计中的功能块。 本质上,AMBA 协议定义了功能块如何相互通信。
下图显示了 SoC 设计的示例,使用了多个AMBA 协议(如 AXI)相互通信的功能块:
什么是AMBA协议
AMBA(Advanced Microcontroller Bus Architecture)是由ARM公司提出的一种片上系统(SoC)总线架构,旨在为嵌入式系统中的各个模块(如处理器、外设、内存等)提供高效的通信手段。AMBA协议定义了不同类型的总线和接口标准,用于在一个SoC内部的各个组件之间传递数据、控制信号和状态信息。
AMBA总线协议的主要特点包括高性能、可扩展性和灵活性。
AMBA总线协议的应用
AMBA总线协议被广泛应用于各种嵌入式系统,尤其是基于ARM架构的SoC设计。
AMBA总线的优点
- 高性能:AMBA协议支持高带宽和低延迟的数据传输,特别适合要求快速数据交换的应用。
- 可扩展性:AMBA架构支持多种总线协议,能够根据不同的需求扩展系统功能。
- 灵活性:不同的协议适用于不同的硬件组件,如APB用于外设通信,AXI用于高性能数据传输。
- 统一标准:AMBA为SoC内部各个组件提供了统一的接口标准,简化了设计和集成工作。
2.AMBA协议名称列表
版本 | 协议名称 | 中文注释 |
---|---|---|
AMBA 1.0 | ASB (Advanced System Bus) | 高级系统总线,支持高性能通信。 |
APB1 (Advanced Peripheral Bus) | 高级外设总线,面向低带宽、低功耗外围设备。 | |
AMBA 2.0 | AHB (Advanced High-performance Bus) | 高性能总线,支持突发传输和分层架构。 |
ASB (Advanced System Bus) | 高级系统总线,支持高性能通信(后被取代)。 | |
APB2 (Advanced Peripheral Bus) | 高级外设总线,面向低带宽、低功耗外围设备(改进版)。 | |
AMBA 3.0 | AXI3 (Advanced eXtensible Interface) | 高带宽、低延迟,支持独立读写通道和复杂缓存管理。 |
AHB-lite (Simplified AHB) | 简化版AHB,适用于单主控系统。 | |
APB3(Advanced Peripheral Bus) | 高级外设总线(继续用于低带宽外设设备)。 | |
ATB (Advanced Trace Bus) | 调试总线,用于追踪和调试数据。 | |
AMBA 4.0 | AXI4 (Advanced eXtensible Interface 4) | 高效片上互联,支持更高效的数据传输。 |
AXI4-Lite (Lite version of AXI4) | 简化版AXI,面向简单控制的应用。 | |
AXI4-Stream (AXI4 Stream) | 高效数据流传输协议,适用于音视频等应用。 | |
APB4(Advanced Peripheral Bus) | 高级外设总线(继续用于低带宽外设设备)。 | |
ACE (AXI Coherency Extensions) | 缓存一致性扩展,支持多核系统共享缓存。 | |
ATB (Advanced Trace Bus) | 调试总线,增强调试功能。 | |
AMBA CHI | CHI (Cache Coherent Interconnect) | 基于环形总线的缓存一致性协议,面向片上网络。 |
名称说明
-
ASB(Advanced System Bus):这是AMBA协议的早期版本,主要用于提供高性能的系统模块之间的通信。ASB支持多个主控设备和从设备的突发传输,是早期SoC中常用的总线协议,现已被取代。
-
APB(Advanced Peripheral Bus):APB是AMBA总线架构中的低带宽、低功耗外设总线,专门用于连接速度较慢的外围设备(如定时器、串口通信模块等)。APB不需要高速传输,因此其设计较为简单,适合嵌入式系统中的低功耗模块。
-
AHB(Advanced High-performance Bus):AHB是AMBA 2.0版本中引入的高性能总线,取代了ASB。AHB支持高带宽和高性能的传输,尤其适用于需要大量数据交换的系统。它支持突发传输、分层架构,适用于大规模、复杂的多核SoC系统。
-
AXI3(Advanced eXtensible Interface):AXI是AMBA 3.0版本中引入的一种高带宽、低延迟的总线协议。AXI支持独立的读写通道,能够实现数据传输的高效管理,特别适合处理高吞吐量、低延迟要求的复杂多核系统。AXI也提供缓存一致性支持,适用于多核处理器和大规模内存共享系统。
-
AHB-lite:AHB-lite是AHB的简化版本,通常用于对性能要求较低的单主控系统。它简化了AHB中的某些功能,减少了硬件复杂性,但仍能提供较高的传输性能。
-
AXI4、AXI4-Lite、AXI4-Stream:AXI4:为高带宽、高性能数据传输设计的协议,适用于复杂的应用,能够提供高效的片上互联。AXI4-Lite:是AXI的轻量化版本,适用于简单控制和低复杂度的接口。AXI4-Stream:优化了流数据传输,广泛应用于音视频流、网络传输等场景。
-
ACE(AXI Coherency Extensions):ACE是AXI协议的扩展,主要用于多核处理器系统中的缓存一致性管理。它确保多个处理器核心共享缓存时的数据一致性,是高效多核系统设计的关键协议。
-
CHI(Cache Coherent Interconnect):AMBA总线体系中的最新协议,是为大规模多核和片上网络设计的高端解决方案。它提供了缓存一致性和高效的系统互联,确保多核处理器和复杂计算系统中多个核心间的数据一致性。
3.AMBA 总线发展历程:
发展历程了解一下即可(主要使用APB和AXI4)
AMBA 1
Arm 在 1990 年代末推出了 AMBA。最初的 AMBA 总线包括高级系统总线(ASB)和高级外设总线(APB)。ASB 已被更新的协议所取代,而 APB 至今仍被广泛使用。
APB 设计用于低带宽控制访问,例如系统外设的寄存器接口。该总线具有简单的地址和数据阶段,以及低复杂度的信号列表。
AMBA 2
1999 年,AMBA 2 增加了 AMBA 高性能总线(AHB),这是一种单时钟边沿协议。在 AHB 中,一个简单的事务由一个地址阶段和随后的数据阶段组成。对目标设备的访问通过多路复用器(MUX)控制,每次只允许一个管理器访问。AHB 支持流水线操作以提高性能,而 APB 则没有流水线操作,旨在简化设计。
AMBA 3
2003 年,Arm 推出了第三代AMBA 3,包含 ATB 和 AHB-Lite、AXI、APB。
- ATB 是 CoreSight 片上调试和跟踪解决方案的一部分。
- AHB-Lite 是 AHB 的子集,简化了单管理器总线的设计。
AXI3(高级可扩展接口),是 AMBA 3规范中定义的第三代接口,旨在满足高性能、高时钟频率的系统设计需求。AXI 包含一些特性,使其适用于高速亚微米互连。
AMBA 4
2010 年,AMBA 4 规范发布,首先是 AMBA 4 AXI4,随后在 2011 年发布了 AMBA 4 AXI 连贯性扩展(ACE)。
- ACE 扩展了 AXI,增加了额外的信号,从而引入了系统级连贯性。系统级连贯性允许多个处理器共享内存。同时,ACE-Lite 协议启用了单向连贯性,使得网络接口可以从完全连贯的 ACE 处理器的缓存中读取数据。
AXI4-Stream 协议旨在实现从管理器到从属设备的单向数据传输,并减少信号路由,非常适合在 FPGA 中实现。
AMBA 5
2014 年,AMBA 5 连贯集线器接口(CHI)规范发布,具有重新设计的高速传输层和旨在减少拥塞的特性。CHI 协议已经有多个版本,每个新版本都增加了新的功能。
2016 年,AHB-Lite 协议更新为 AHB5,以补充 Armv8-M 架构,并将 TrustZone 安全功能从处理器扩展到整个系统。
2019 年,AMBA 自适应流量模型(ATP)发布。ATP 补充了现有的 AMBA 协议,用于以简洁、简单和可移植的方式建模高级内存访问行为。
AXI5、ACE5 和 ACE5-Lite 扩展了前几代协议,加入了一些性能和可扩展性特性,以与 AMBA CHI 相协调并进行补充。新增的功能和选项包括:
- 支持高频率、非阻塞的连贯数据传输,适用于多个处理器之间的通信。
- 层次化模型允许通信协议与传输协议的分离,支持灵活的拓扑结构,例如交叉条、环形、网状或自定义拓扑。
- 缓存存储功能,允许加速器或 I/O 设备在 CPU 缓存中存储关键数据,以便低延迟访问。
- 远程原子操作,允许互连进行高频率的共享数据更新。
- 端到端数据保护功能。
版本 | 发布时间 | 总线协议 | 新增协议 | 特性描述 | 应用场景 |
---|---|---|---|---|---|
AMBA 1.0 | 1996年 | ASB APB1 | - | ASB:高级系统总线,支持高性能通信。 APB:高级外设总线,面向低带宽、低功耗外围设备。 | 单核系统,低带宽外围设备 |
AMBA 2.0 | 1999年 | AHB APB2(改进版) | - | AHB:高性能总线,取代ASB,支持突发传输和分层架构。 APB:改进版,继续支持外设连接。 | 高性能系统,分层总线架构 |
AMBA 3.0 | 2004年 | AXI3 AHB-lite APB3(升级版) ATB | AXI:高带宽、低延迟,支持独立读写通道和复杂缓存管理。 AHB-lite:简化版AHB,适用于单主控设备。 APB(升级版):更灵活的低功耗控制。 ATB:用于调试和追踪数据。 | 强化高性能数据传输,支持多核嵌入式系统。 提供高效的调试追踪能力。 | 多核系统,嵌入式系统,调试与追踪 |
AMBA 4.0 | 2010年 | AXI4 AXI4-Lite AXI4-Stream ACE ATB4(改进版) | AXI4:支持更高效的片上互联。 AXI4-Lite:简化版AXI,面向简单控制。 AXI4-Stream:支持高效的数据流传输。 ACE:缓存一致性扩展,支持多核系统的共享缓存。 ATB(改进版):增强调试功能。 | 引入缓存一致性支持,面向复杂多核系统。 支持更高效的数据流和控制接口。 | 多核系统,高效计算,数据流处理 |
AMBA CHI | 2014年 | CHI(Cache Coherent Interconnect) | - | CHI:基于环形总线的缓存一致性协议,面向片上网络(NoC),提供高性能一致性通信,适用于大规模多核系统。 | 大规模多核系统、高性能计算(HPC) |
- AMBA 1.0 是基础设计,以 ASB 和 APB 为核心,面向早期嵌入式系统(ASB已被取代)。
- AMBA 2.0 引入了更高性能的 AHB,总线性能得到提升。
- AMBA 3.0 推出了 AXI,开始支持复杂的多核和高效数据传输。
- AMBA 4.0 强化了缓存一致性,扩展了数据流传输能力。
- AMBA CHI 是为大规模多核和片上网络设计的高端解决方案。
总结说明
- 从单核到多核:AMBA协议逐步加入缓存一致性、共享缓存支持,以及专门面向多核系统的优化(如ACE和CHI协议)。
- 从总线到片上网络:AMBA CHI协议代表了从传统总线结构向片上网络(NoC)的转变,满足大规模多核系统的需求。
- 灵活性提升:AXI4、AXI4-Lite和APB等协议的升级和轻量化版本为不同应用场景提供了更多灵活的选择,特别是在高性能计算和低功耗设计中。