ARM AMBA总线之AXI系
概览
AMBA(The Advanced Microcontroller Bus Architecture) 是一种开放标准的片上互联规范,用于SOC设计。AMBA协议定义了功能模块之间的通信方式,简化了多处理器、大量控制器和外设的设计,被认可之后广泛应绿色与ASIC和SoC部件上,其良好的设计大大超出了原本只为微控制器设计的范畴并不断演变。
从最初我们熟知的APB AHB演变到

本文AMBA 以AXI4为主介绍,
AXI协议包含了非常多的标准和版本,包括AXI3 AXI4 AXI5 AXI-ST AXI-MM等等
AXI是IP间的高速主从通信总线
在有主处理器体系中,ARM核心是核心数据的处理中枢,所以在AXI总线中一般担任主机角色做控制端,ARM-FPGA混合架构中,如ZYNQMP由于ARM有系统层控制力强,FPGA数据能力强,所以也一般是ARM作为FPGA的主机。
在纯FPGA IP的架构中,FPGA IP和IP之间会根据需求选择一个做主机,一个做葱鸡。
AXI协议是点对点协议,而非总线协议。只传输信号和时序。
单主机管理

多主机管理

从ARM的system diagram可以看到AXI,并且这里AXI3和AXi4不同接口之间会进行协议转换

AXI Channels
在FPGA的blockdiaram中可以看到AXI主从之间由五路channels构成:地址R&数据W,数据R&数据W,写响应B

这里B是用于W的completed通知
Channel的传输有源和目的,分别由Valid信号 Ready信号来握手,依靠的是时钟上升沿

Channel例子
Channel-传输

如我们常在FPGA核心中看到的BVALID,就是B的有效信号
写-事务

并发写-事务

AXI协议的主要特性
- 读写通道是独立的,可同时进行,大大提高了带宽性能。
- 支持多个未完成地址,支持并行事务
- 地址和数据没有严格的时序关系
- 支持非对齐数据传输,不像系统那样必须对齐到地址上的32位格子。
- 乱序事务,AXI协议包含了食物ID。
- 基于起始地址的突发处理,只需要在第一次传输时发送起始地址,后续都会自动计算下个地址。
AXI会有一个响应超时时间,在做IP设计时要考虑这个,避免挂死整个链路
有些SOC上会有AXI超时模块来处理这个问题。
signals-保护级别
AWPROT 和 ARPROT 这两个保护信号用于访问保护和安全事务,如Arm TrustZone
AxPROT位有三位,

- P,值1授权访问,0无权限
- NS,值1非安全事务,0安全事务
- I,值1指令类型,0数据类型(这种可以有效防范数据携带指令攻击)
Signals-Cache缓存支持

- B 可缓冲bufferable标志位,RA/WA依赖这个标识
- C/M 是AXI3的Cacheable位,AXI4的Modifiable位
- RA 表示读取推荐使用事务,但不强制
- WA 表示写入推荐使用事务,但不强制
RA或WA生效时,事务必须在缓存中查找。
signals-AxLock
AXI提供两种原子访问的机制
- Locked 锁定事务访问,这是历史淘汰设计,仅AXI3支持,AXI4已移除。
- Normal/Exclusive/Locked/Reserved 共两个位表示AxLock信号(AXI3)

- Exclusive 独占访问
- Normal/Exclusive 只一个位表示AxLock信号(AXI4)

signals-QoS
AXI4引入了服务质量,用于优先处理较高优先级的事务

Signals-略
还有很多信号,这里主要了解AXI的主要功能,所以省略。
Refer
资料来自ARM
本文来自博客园,作者:蓝天上的云℡,采用 BY-NC-SA 许可协议,转载请注明:转载自作者蓝天上的云℡ 原文链接 https://www.cnblogs.com/yucloud/p/19893169/Arm_AMBA-AXI

浙公网安备 33010602011771号