AXI4基础知识(1)
什么是AXI4
AXI (Advanced eXtensible Interface, 高级可拓展接口协议)是由ARM最早在AMBA 3.0架构中提出的。在AMBA 4.0中,AXI3升级为AXI4。AXI协议支持高性能、高频的系统设计,可用于多个主从机之间的通信。在ZYNQ 7000系列中,PS和PL端之间的通信就是通过AXI4。
AXI4的分类
AXI4分为三类:
- AXI4:面向高性能内存映射需求。
- AXI4-Lite:面向简单的低吞吐量内存映射通信(例如,进出控制寄存器和状态寄存器)。
- AXI4-Stream:面向高速数据流。
内存映射:映射就是一一对应。内存映射指的是在存储系统中,使用内存管理单元(MMU)实现虚拟地址到
实际物理地址的映射。
AXI4的主要特点
- 独立的地址/控制和数据阶段。
- 支持不对齐数据传输,使用字节选通(byte strobes)的方式。
- 使用突发传输。
- 独立的写和读数据通道,可以提供低成本的直接内存访问(DMA)。
- 支持发送多个“outstanding”的地址。
- 支持乱序传输。
- 允许添加寄存器,以实现定时关闭。
如何理解“outstanding”的地址?
outstanding是指主机在没有收到response时可以发起多个读写transaction的能力。
Outstanding可以大大提高数据传输的效率。Outstanding可以翻译成未完成的,意为还没有传输完成的地址(因为还没有接收到response)。
突发传输、突发长度、突发大小
AXI4使用burst(突发传输)的模式来组织数据传输,这是一种传输效率很高的模式。
突发传输:即突发模式下的数据传输。而突发是指在同一行中相邻的存储单元连续进行数据传输的方式。
突发长度(Burst Length):指在一次突发传输中数据连续传输的周期数就是突发长度,用AxLEN字段标识。由于标识值是从0开始的,实际的突发长度应为标识值+1,即BL=AxLEN + 1。
突发大小(Burst Size):指突发传输中的每次数据传输的字节数,用AxSIZE字段标识,BS=2^AxSIZE。
Transfers、burst、和Transactions(传输事务)之间关系的理解
Transfer: 单个传输周期。
Burst: 突发传输
Transaction(传输事务): 一次AXI主机和从机之间的包含多个transfers的传输过程,例如一次读操作包含一个请求transfer和一个/多个读数据transfer(也可以说是一个请求burst和一个读数据burst)
摘一个知乎博主的讲解,感觉很清晰:
AXI 是一个 burst-based 协议,AXI 传输事务中的数据传输以 burst 形式组织,称为 AXI Burst。每个传输事务包括一至多个 Burst。每个 Burst 中传输一至多个数据,每个数据传输称为 AXI Transfer。我们 通过深入AXI4总线(一)了解到,双方握手信号就绪后,每个周期完成一次数据传输,因此 AXI Transfer 又被称为 AXI beat,一拍数据。
原文链接