前言
2023.3.25
2023.4.23
一、AXI4(Advanced eXtensible Interface)
1、定义
AXI
:高级可拓展接口
- 高性能、高带宽、低延迟
- 单向通道体系结构
- 独立的地址和数据通道
- 支持多项数据交换。通过并行执行burst操作,极大地提高了数据吞吐能力。
2、AXI4、AXI4-Lite、AXI4-Stream协议对比
AXI4
:高性能内存映射需求(如读写DDR、使用BRAM控制器读写BRAM等),为了区别,有时候也叫这个为 AXI4-Full;
- 支持最多256个burst长度
- 支持多个区域接口
- 支持数据位宽 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024 bits
AXI4-Lite
:用于简单、低吞吐量的内存映射通信(例如,与控制寄存器和状态寄存器之间的通信);
- burst length的长度恒定1,不支持burst传输
- 数据的访问或读取操作需要使用数据总线的全部,数据位宽为32/64位,
- 所有的操作都是Non-modifiable和Non-bufferable的
- 不支持独占访问
AXI4-Stream
:高速流数据(视频、图像等流式数据);
- 在同一互连中支持多数据宽度
- 使用相同的共享线集支持单数据流和多数据流
- 可以实现突发无限数量的数据
相同点:
- AXI4、AXI4-Lite和AXI4-Stream均使用
Ready、Valid
握手机制进行通信 - AXI4 总线和 AXI4-Lite 总线都有 5 个通道(AXI4-Stream 取消了通道)
3、信号
下面介绍的是AXI4的信号
3.1 全局信号——时钟和复位信号
ACLK
:时钟ARESETn
:低电平复位信号
复位要求:
- ARVALID、AWVALID、WVALID、RVALID、BVALID都必须为低电平,其他信号可以为任意值
- 主机接口必须开始将ARVALID、AWVLAID或WVALID置高仅仅在ARESETn 信号变高后的ACK的第一个上升沿
3.2 写数据通路
3.2 写地址通道
——主要是busrt
传输
AWVALID:握手信号
AWREADY:握手信号
AWADDR[12:0]:写地址
AWPROT:传输的特权等级和安全等级
AWSIZE[2:0]:数据大小
AWLEN[7:0]:burst的长度
AWID[3:0]:写地址ID
AWBURST[1:0]:burst类型,FIXED——用于FIFO访问(每次burst的地址不变),INCR——1~256,WRAP——回环突发,支持2/4/8/16
AWLOCK[1:0]:锁定类型,用BRESP或者RRESP来指示独占存取是否成功
主机在请求独占式存取时,设备可能返回的两个响应分别是EXOKAY
和OKAY
。EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。
AWCACHE[3:0]:Cache类型,指明事务的bufferable、cacheable、write-through或者write-back等信息
3.3 写数据通道
——主要涉及到窄传输
和非对齐传输
窄传输:传输数据宽度小于数据总线宽度,使用WSTRB来进行指示
WVALID:写有效,主机发送,握手信号
WREADY:写就绪,从机响应,握手信号,为1表示设备已经准备好接收数据
WDATA[31:0]:数据
WSTRB[3:0]:字节通道有效信号,WSTRB[n]
对应 WDATA[8n+7 : 8n]
WLAST:用来指示每个事务传输过程中的最后一个数据,表示当前事务传输结束
WID[3:0]:写ID tag,要和AWID的值匹配
3.4 写响应通道
BVALID:握手信号
BREADY:握手信号
BID[3:0]:响应ID,要和AWID的值匹配
BRESP[1:0]:反馈信号,OKAY
指示正常传输,EXOKAY
指示独占访问成功,SLVERR
指示slave发生错误,DECERR
指示译码错误,没有地址对应的slave
3.5 读地址通道
ARVALID:握手信号
ARREADY:握手信号
ARADDR[12:0]:读地址信号
ARPROT[2:0]:传输的特权等级和安全等级
ARID[3:0]:读地址ID
ARCACHE[3:0]:
ARLEN[7:0]:burst的长度
ARLOCK:
ARBURST[3:0]:
ARSIZE[3:0]:
3.6 读数据通道
RVALID:握手信号
RREDAY:握手信号
RDATA[31:0]:读数据
RRESP[1:0]:反馈信号
RLAST:用来指示每个事务传输过程中的最后一个数据,表示当前事务传输结束
RID[3:0]:读ID,必须和ARID匹配
3.7 低功耗接口信号
3.8 数据通道信号总结
- valid和ready在每个通道是成对出现的
- 相比于写数据通道,读数据通道中多出了读响应信号,因而省去了单独的读响应通道。也就是说,读传输的响应信息是附加在读数据通道上的,写传输的写响应有专门的写响应通道
- 如果是AXI4-lite版本,则信号只有最基本的valid、ready、addr、data、resp、strb
- 突发式读写的地址不能超过4KB,防止一次burst跨越多个slave的情况
4、读写时序图
全部 5 个通道使用相同的 VALID/READY
握手机制传输数据及控制信息。
- 传输源产生 VLAID 信号来指明何时数据或控制信息有效。
- 目地源产生 READY信号来指明已经准备好接受数据或控制信息。
- 传输发生在 VALID 和 READY 信号同时为高的时候。
对于master来说,写数据
、写地址
、读地址
这三个是传输源,valid由master产生,并且等待slave端给出ready信号。
对于slave来说,写响应
、读数据
这两个是传输源,他们先产生valid,等待master给出ready信号。
4.1 读burst
只发送一个地址,后面数据的地址在此基础上进行自增
4.2 读重叠burst
主机一开始传送了两个地址给设备。设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。
4.3 写burst
主机把地址和控制信号发送到写地址通道,然后主机发送数据到写数据通道,发送完WLAST拉高一个周期。
当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成
5、握手信号
-
valid和ready同时为高的时候进行数据传输
-
VALID信号一旦拉高,除非READY信号拉高接收数据完成,不会主动变低,否则的话表面此次传输失败了
5.1 VALID 先变高 READY 后变高
主机数据先有效,后从机可以接收数据时,拉高ready
5.2 READY 先变高 VALID 后变高
从机先准备好接收数据了,后主机数据才有效
5.3 VALID 和 READY 信号同时变高
表明数据有效的同时也可以进行采样
6、不同数据通道的约束关系
单箭头表示两者的先后顺序没有要求,双箭头表示前者必须先于后者
- 写数据可以先于相应的写地址,也可以和写地址在同一个周期出现,但写响应必须在写事务的最后才出现
- 读数据必须在读地址之后出现
6.1 读操作约束
6.2 写操作约束
写回复通路的信号传递一定晚于写数据通路
7、AXI outstanding
AXI outstanding:具有outstanding的能力,也就是发送出去的地址,不等数据响应,就可以发送下一次的地址。 可以把地址都发出去,再等待所有数据的响应,这是AHB和APB协议所不具有的。
8、乱序传输 Out of order
相同ID tag的事务必须有序完成,而不同ID tag可以乱序完成。
在AXI4协议中发现写乱序提升性能效果不大,因此去除了WID,即去除了写乱序的操作,但保留了读乱序操作。 (做过选择题,AXI4是没有WID的)
- 不同主机的传输事务没有顺序要求
- 同一个主机的不同ID事务,没有顺序要求
-
相同的AWID和ARID
的读写事务之间没有顺序要求,除非主机有顺序要求 -
相同AWID
的写事务必须按照顺序依次写入主机发送的地址内 -
相同ARID
分情况讨论:当从相同设备读相同的ARID时,设备必须确保读数据按照相同的地址顺序接受;当从不同的设备读相同的ARID时,接口处必须确保读数据按照主机发送的相同的地址顺序。
9、原子操作
如果有多个master对同一个地址进行读写操作时,可能会造成数据的错误读写
ID扩展操作:master给出数据到总线时,总线会对ID进行扩展,扩展内容目的是为了标记是由哪个master发出来的;因而slave返回数据或响应时总线可以根据扩展内容知道是哪个master发出来的并返还给他
9.1 锁存传输 Locked access
在某个master和slave传输期间,总线不会去响应其他master的读写请求。
等所有的lock操作结束之后,发送一个unlock的传输就行解锁。
-
优点
:可以解决访存冲突问题 -
缺点
:传输效率较低,阻碍其他master对其他slave的访问
9.2 独占传输 Exclusive access
目的:解决lock锁死效率较低的问题,由slave来反馈传输是否成功,master的访问是自由的
主机在请求独占式存取时,设备会返回两个响应分别是EXOKAY和OKAY。
- EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。
- 如果一个设备不支持独占式存取,可以忽略信号ARLOCK[1:0]和AWLOCK[1:0]。他必须提供
OKAY
响应对正常式存取和独占式存取。 - exclusive传输要求burst传输的起始地址要对齐
10、非对齐传输
AHB:对齐传输,例如32bit,按照0-4-8-c传输
AXI:对齐和不对齐传输都存在
非对齐传输:32bit的起始地址可以是7,但是后面的地址必须对齐,也就是AXI只允许一个burst的第一笔数据地址不对齐。
要和WSRTB信号搭配使用。文章来源:https://www.toymoban.com/news/detail-422721.html
文章来源地址https://www.toymoban.com/news/detail-422721.html
到了这里,关于AMBA总线协议AXI——学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!