ARM AMBA总线之AXI系

概览

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

从最初我们熟知的APB AHB演变到
image

本文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协议是点对点协议,而非总线协议。只传输信号和时序。

单主机管理
image

多主机管理
image

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

AXI Channels

在FPGA的blockdiaram中可以看到AXI主从之间由五路channels构成:地址R&数据W,数据R&数据W,写响应B
image
这里B是用于W的completed通知

Channel的传输有源和目的,分别由Valid信号 Ready信号来握手,依靠的是时钟上升沿
image

Channel例子

Channel-传输
image

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

写-事务
image
并发写-事务
image

AXI协议的主要特性

  • 读写通道是独立的,可同时进行,大大提高了带宽性能。
  • 支持多个未完成地址,支持并行事务
  • 地址和数据没有严格的时序关系
  • 支持非对齐数据传输,不像系统那样必须对齐到地址上的32位格子。
  • 乱序事务,AXI协议包含了食物ID。
  • 基于起始地址的突发处理,只需要在第一次传输时发送起始地址,后续都会自动计算下个地址。

AXI会有一个响应超时时间,在做IP设计时要考虑这个,避免挂死整个链路
有些SOC上会有AXI超时模块来处理这个问题。

signals-保护级别

AWPROT 和 ARPROT 这两个保护信号用于访问保护和安全事务,如Arm TrustZone

AxPROT位有三位,
image

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

Signals-Cache缓存支持

image

  • 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)
    • image
  • Exclusive 独占访问
    • Normal/Exclusive 只一个位表示AxLock信号(AXI4)
    • image

signals-QoS

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

Signals-略

还有很多信号,这里主要了解AXI的主要功能,所以省略。

Refer

资料来自ARM

posted @ 2026-04-20 11:51  蓝天上的云℡  阅读(86)  评论(0)    收藏  举报