arm AMBA
釜底谛听
AMBA(Advanced Microcontroller Bus Architecutre,高级微控制器总线架构)协议由arm公司开发,是一组芯片通信协议的规范,广泛用于SoC设计中。
主要包括以下3个部分:
APB: advanced peripheral bus 高级外设总线
AHB: advanced high-performance bus 高级高性能总线
AXI: advanced extensible interface 高级扩展接口
这三种协议在带宽、性能、特性、能耗、复杂性和应用方面有一些关键差异:
带宽: --是最大带宽吗?
| Name | Bandwidth |
|---|---|
| AXI | 256bit |
| AHB | 64bit |
| APB | 32bit |
| 性能: | |
| AXI > AHB > APB |
AXI
AXI协议支持high-performance high-frequency系统设计,以支持master和slave组件之间的通信
特性
- 适合于高带宽、低延时设计
- 提供high-frequency操作,无需complex bridge
- 满足相当多种类?组件的接口需求
- 适用于高初始访问延迟的内存控制器
- 提供互联结构灵活实现
- 后向兼容AHP APB
关键特性 - 地址/控制与数据相位分离
- 支持非对齐数据传输,使用byte strobe
- 使用burst-based传输,只需要提供起始地址就可以
- 读 写数据通道独立,因此能提供低成本的DMA
- 支持发布多个outstanding address
- 支持乱序传输completion
- Permits easy addition of register stages to provide timing closure.
AXI协议包括 - AXI4-LITE axi4的子集,用于和组件中 比较简单的寄存器控制类型接口通信
- AXI5-LITE axi5的子集,用于和组件中 比较简单的寄存器控制类型接口通信
AXI架构
burst-based 定义了5种独立的传输信道transaction channel
-
读地址,信号以AR开头
-
读数据,信号以R开头
-
写地址,信号以AW开头
-
写数据,信号以W开头
-
写响应,信号以B开头
地址信道提供控制信息,控制信息描述传输数据的nature.数据在master和slave之间传输。
使用写数据通道,传输数据从master到slave;传输完成,slave使用写响应通道知会master。
使用读数据通道,传输数据从slave到master。 -
允许在数据传输时,在数据前先发送地址/控制信息
-
支持多个outstanding 传输/事务/transaction
-
支持transaction乱序完成
![]()
![]()
信道定义
信道由一组信息信号information signal和VALID READY signal组成。valid ready信号提供一种双向握手机制。
信息源使用valid signal表明信道上合法的地址、数据或控制信息可用。目的使用ready signal表明他可以接收信息。除此之外,读和写数据信道包含一个last signal,指示一个transaction数据传输结束
读写地址信道
读写transaction有各自的地址信道。地址信道承载了完成一次transaction所需的所有地址和控制信息。
read data channle
carry ①read data ②read response
dir slave 2 master
include-
data bus, 8 16 32 64 128 256 512 1024bits wide
read response signal, indicate the completion status of the read transaction.
write data channel
write data from master to salve
data bus, 8 16 32 64 128 256 512 1024bits wide
每8bits数据,发送1字节strobe signal,指示数据byte是合法
该channel是buffer的,所以master完成write transaction后不需要slave ack
write response channel
写事务中,slave使用该信道响应写事务。所有写事务都需要在该信道发送completion signal。
interface和interconnect
典型的系统由几个master和slave设备组成,通过某种形式的interconnect连接到一起。

AXI协议提供接口定义,between
- a master and the interconnect
- a slave and the interconnect
- a master and a slave
接口定义支持多种不同的interconnect实现
设备之间的interconnect等价于另一个具有对称的master port和slave port的设备,将master设备和slave设备连接
典型地系统拓扑
大多数系统使用如下三种系统中的一种
- 共享地址和数据总线
- 共享地址总线,多个数据总线
- 多层,具有多个地址和数据总线
在大多数系统中,地址总线带宽需求明细小于数据总线带宽需求。这样的系统可以很好的实现系统性能和interconnect复杂性的平衡。方法是使用共享的地址总线和多条数据总线实现并行数据传输。
寄存器切片
每个AXI 通道传输信息都是单方向的,架构上并不需要在通道之间有任何固定的关系。该特性意味着寄存器切片可以插入在任何信道的几乎任何点,当然会有latency。
这些特性有如何可能的作用
- 在latency和最大的操作频率之间权衡
- 在处理器和高性能内存之间进行直接、快速的连接,但是对于不太关注性能的外设使用简单的寄存器切片形成一条较长的路径 --指和外设之间的路径会有寄存器切片,latency也会增加,相对于cpu和mem之间的连接路径而言
术语
component
master component
slave component memory slave component peripheral slave master
interconnect component
upstream downstream 指拓扑图中各个组件之间的相对位置
当一个AXI master初始化了 一个AXI操作,即选定一个AXI slave为目标?
- 完整的总线上操作的集合形成AXI transaction
- 任何需要的负载数据被传输,称为burst
- burst可以由多个数据传输组成,称为beats



浙公网安备 33010602011771号