2.5 axi总线2.5.1 axi总线简介
axi作为amba总线协议的一部分,第一次出现在amba 3.0中。后面amba 4.0发布,axi4出现了。axi4总线和别的总线一样,都用来传输bits信息(包含了数据或者地址)。axi是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易进行时序收敛。
axi特点是单向通道体系结构,信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
axi4总线有三种类型,分别是axi4、axi4-lite、axi4-stream。axi4是一种高性能memory-mapped总线,axi4-lite是一只简单的、低通量的memory-mapped 总线,而 axi4-stream 可以传输高速数据流。从字面意思去理解,axi4-lite是axi4的轻量版。这里保留了memory-mapped的写法,主要是为了与axi4-stream区分开。
可以这样去理解memory-mapped,假设有master a, 和 slave b,a与b通过axi4或者axi4-lite连接通讯,a可以把b这个外设看作a上的某个地址。当a向b传输数据时,就等同于a向这个地址传输数据。axi4-stream与axi4、axi4-lite不同, 它不需要地址通道。
2.5.2 axi总线读写框架
1)axi读写传输
axi4 和 axi4-lite接口包含5个不同的通道:两个读通道和三个写通道。每一个axi传输通道都是单方向的。每一个传输都有地址和控制信息在地址通道(address channel)中,用来描述被传输数据的性质。
两个读通道:读地址通道(read address channel)、读数据通道(read data channel)。三个写通道:写地址通道(write address channel)、写数据通道(write data channel)、写响应通道(write response channel)。
对于读操作,主模块通过地址通道发送读传输地址,从模块通过读数据通道返回给主模块所需要的数据。对于写操作,主模块通过写地址通道发送写传输地址,并通过写数据通道把数据发送给从模块。而从模块接受到数据后,需要通过写响应通道返回一个响应给主模块。
读通道和写通道是分开的,因此可以完成数据的双向传输。此外axi4能够实现burst传输,换句说就是,可以在一个地址后传输多个数据,最多可以达256 字节。axi4-lite不支持burst传输。axi4-stream 只有一个通道,不需要地址,可以burst 传输无限的数据。
这5条独立的通道都包含一个信息信号和一个双路的vald、ready握手机制。信息源通过valid信号来指示通道中的数据和控制信息什么时候有效。目地源用ready信号来表示何时能够接收数据。读数据和写数据通道都包括一个last信号,用来指明一个事物传输的最后一个数据。
读和写传输都有他们自己的地址通道,这地址通道携带着传输所必须的地址和信息。读数据通道传送着从模块到主模块的读数据和读响应信息。读响应信息指明读事务的完成状态。写数据通路传送着主模块向从模块的写数据。每八个数据都会有一个byte lane ,用来指明数据总线上面的哪些byte有效。写响应通道提供了设备响应写传输的一种方式。这完成信号每一次突发式读写会产生一个。
2)axi典型连接图
上图是一个典型的一系列主设备与一系列从设备的连接系统。这些主设备与从设备通过interconnect连接在一起。
axi协议提供单一的接口定义,主要包括:
manager和interconnect之间。subordinate和interconnect之间。manager和subordinate之间。
axi协议还提出了一个重要的概念,那就是 register slices,因为 上述五个通道之间没有固定的关系,而且通道中传输的信息是单方向的,那么可以可以在任意一个通道中任意节点 插入register slices,通过插入register slice来抵消长路径的延时,从而提高系统的性能。register slice的使用需要平衡 时钟延时和最大工作频率之间的关系。2.5.2 axi信号
2.5.3 握手信号
在了解axi每个通道的定义信号后,下面对读写机制中的握手机制进行说明。
五个独立的通道均使用valid/ready进行握手,valid由源端产生,用于指示源端发出的地址、数据、控制信息什么时候生效,ready则由目的端产生,用于指示源端发送信息什么时候被接收,只有当valid和ready同时为高时,才会表示本次传输完成。
valid和ready握手可以分为下面三种情况:
valid早于ready生效。ready早于valid生效。valid和ready同时生效。对于五个通道之间的关系,axi协议仅定义了下面的关系:
写响应必须跟随写操作的最后一个传输。读数据必须紧跟读地址数据。
除了上述两点定义,axi未定义其他任何通道间的关系,那么对于通道间的握手信号先后顺序,必须按照特定的顺序操作,不然很容易引起接口上的dead-lock。
具体的,读操作时,对应的读地址通道和读数据通道间握手信号的解释如下:arvalid和arready可以参考握手机制中的时序图所示关系;rvalid和rready可以参考握手机制中的时序图所示关系;rvalid必须在arvalid和arready同时生效后被使能;
写操作时,对应的写地址通道、写数据通道、写响应通道间的握手信号的解释如下:awvalid和awready之间的关系可以参考握手机制中的时序图。wvalid和wready之间的关系可以参考握手机制中的时序图。wvalid和awready之间也可以参考握手机制中的时序图。bavalid和bready之间的关系可以参考握手机制中的时序图。bvalid必须在wvalid和wready同时生效之后再被使能,同时必须是wlast之后。
上述写操作通道间握手顺序是基于axi3协议,axi4/5在axi3基础上有改进,具体如下:
axi4/5协议对于bvalid置位条件加强了,同时需要满足wvalid/wready和awvalid/awready生效之后,且是在wlast之后,才能被使能;
2.5.4 地址结构
axi协议传输数据时控制信息采用start_address+length形式,即manager发出start_address、length以及burst类型、每次传输的大小等,subordinate需要根据这些信息计算后续的地址,决定返回那些地址对应的数据给manager;那么如何根据manager发送的address、length、burst类型、每个传输的大小这些信息计算出manager需要访问的地址,需要先看一下axi协议所定义的地址结构;
2.5.5 burst length
axi协议定义 arlen、awlen分别表示读操作长度和写操作长度,后面统一使用axlen统一表示。
axlen的含义:axlen+1 个传输(transfer)。
如axlen=7,axsize=16byte(后面会讲到),那么本次burst传输的数据量为:8*16=128byte。
axi3协议定义axlen范围:1~16;对应的axlen使用4bit表示。
axi4协议定义axlen范围:1~256,对应的axlen使用8bit表示。
对于length还有如下几点限制条件:
对于warp类型的burst,burst length必须为2、4、8或者16。burst不能超过4kb地址边界。burst不支持提前结束。2.5.6 burst size
burst size表示每次传输(transfer)包含多少byte,分别定义了arsize、awsize分别表示读传输、写传输大小。
后面统一使用axsize表示,axsize使用3bit表示,具体的译码方式参见下图:
axsize指定的传输大小不能超过系统工作的数据位宽。
2.5.7 burst type
axi协议规定下面三种burst类型:
同理,axburst为arburst和awburst的统称,分别表示读操作、写操作burst类型。
fixed表示每次传输的地址是相同的地址,常用于对fifo的访问。incr表示每次地址都是按照递增类型,下次传输的地址=当前传输地址+当前传输的大小。wrap表示每次地址都是按照递增类型,只有在达到地址边界的时候,会卷绕到低位的地址边界开始,这种卷绕方式同ahb协议相同。2.5.8 响应类型
上面分析地址结构、数据结构,接下来介绍一下响应类型,bresp、rresp分别表示写响应、读响应,后面统一使用xresp表示,具体的译码规则如下:
2.6 axi、ahb、apb总线对比
ahb:针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如cpu、芯片上或芯片外的内存模块和dma等高效率模块。
apb:用在低速且低功耗的外围设备,针对外围设备作功率消耗及复杂接口的优化。apb在ahb和低带宽的外围设备之间提供了通信的桥梁,所以apb是ahb的二级拓展总线。
axi:高速度、高带宽、管道化互联、单向通道,只需要首地址、读写并行、支持乱序、支持非对齐操作,但连线非常多。
axi、ahb、apb总线的性能对比分析:
ahb是高级高性能总线,axi是高级可扩展接口,apb是高级外围总线。ahb和apb都是单通道总线,不支持读写并行。而axi是多通道总线,总共分为五个通道,能够实现读写并行。ahb和axi都是多主/从设备,且通过仲裁机制实现总线控制权的分配。而apb是单主设备多从设备,其主设备就是apb桥,不具有仲裁机制。在数据操作方面,ahb和axi支持突发传输,apb不支持。此外,axi支持数据的非对齐操作,ahb不支持。
PVA刷擦洗对CMP后清洗过程的影响报告
What?测量血糖含量可不使用针管刺破皮肤,直接用眼镜测量?
光耦的工作原理以及作用介绍
氧指数测定仪符合的标准是什么,它的原理又是怎样的
二次供水监测解决方案--供水水质监测微系统
深度分析AMBA总线工作原理4
关于国内外电力系统规划的对比
传感器和酒精点火联锁装置决定你适不适合驾驶
TCL多款重磅新品亮相CES,你最看好哪一款?
小米双口USB充电器拆解 均不能快充的设计有点非主流的感觉
谷歌在Pixel设备上新增“智能电池”功能,为用户预测手机续航时间
pcb抄板技巧
2017年我国计划发射6到8颗北斗导航卫星
消费者希望为智能家居提供更多安全保护?
泰瑞提出两个数字孪生的建设理念
什么是光刻机?一台上亿的ASML光刻机工作原理分享
通用汽车牵手LG化学 目标是将电池成本降低至行业领先水平
小米55英寸4K QLED智能电视印度零售包装曝光
NF01针型热通量和温度传感器的特点优势和应用场景
艾迈斯欧司朗携手珑璟光电,让智能眼镜更轻便