目录
AXI协议简介
通道结构
基本传输
读burst示例
连续读burst示例
写burst示例
传输顺序
握手过程
写地址通道
写数据通道
写响应通道
读地址通道
读数据通道
通道之间的关系
通道握手信号的依赖关系
关于寻址选择
burst长度
burst大小
burst类型
地址固定的burst
地址递增的burst
地址卷回的burst
响应信号简介
响应类型
正常访问成功
独占访问
从设备错误
译码错误
AXI协议简介
AMBA-AXI协议以高性能,高频系统设计为目标,提供了很多适合高速亚微型系统互连的特征。
最新的AMBA接口的目标是:
适合高带宽、低延迟的设计
不使用复杂桥的情况下能够进行高频的操作适应多部件的接口要求
适合高初始访问延迟的访问控制器为互联结构实现提供灵活性
后向兼容现存的AHB和APB接口AXI协议的关键特征有:
分离的地址/控制和数据通道
采用字节选通的方式支持不对齐数据的传输基于burst交易的数据传输,主机只需提供首地址分离的读写数据通道,能支持低功耗的DMA支持outstanding交易
支持乱序交易
易于通过添加寄存器达到时序收敛
除了数据传输协议,AXI协议还提供可选扩展支持低功耗操作。
通道结构
AXI 协议是基于burst 的,每个交易都包括一些地址和控制信息描述了需要传输的数据的特征,这些地址和控制信息被放在地址通道上。数据在主设备和从设备之间传输,主设备通过写数据通道写数据到从设备,通过读数据通道从从设备读取数据。写交易中,所有数据流从主设备流向从设备,AXI协议提供一个额外的写响应通道,用于从设备通知主设备写交易完成。
AXI协议可以实现:
在实际的数据传输之前发出地址信息支持多个outstanding 交易
支持乱序交易
五个独立的通道都包含一组标记信息的信号,并且使用双向的VALID和 READY信号实现握手机制。
源设备使用VALID信号标志通道上的数据合法和控制信息可用,目的设备使用READY信号标志可以接收数据。读数据和写数据通道都包含一个LAST信号标志一次交易中最后一个数据传输。
读地址和写地址通道
读交易和写交易都有各自的地址通道,地址通道包含了所有一次交易的所需地址和控制信息。AXI协议支持以下机制:
可变长度burst,每个burst的长度可以为1-16拍
每拍数据宽度支持8-1024bits
地址卷回、地址递增和地址固定的burst
通过独占交易和锁定交易实现原子操作
系统级的缓存和缓冲控制
安全访问和特权访问
读数据通道
读数据通道用于传输从从设备返回给主设备的读数据和读响应信息。读数据通道包含:
数据总线,宽度可以为8,16,32,64,128,256,512或1024bits
读响应标志了读交易完成的信息
写数据通道
写数据通道负责从主设备向从设备传输写数据,其包含:
数据总线,宽度可以为8,16,32,64,128,256,512或1024bits
每8个bit一个字节选通位,标志总线上的哪个字节可用
写数据通道的信息通常要加缓冲器,以使主设备可以在没有得到从设备先前写交易确认的情况下继续进行新的写交易。
写响应通道
写响应通道为从设备返回写交易响应的通道。所有的写交易结束都返回完成信号。
不是每个beat返回一个完成信号,而是每个burst完成后一起返回一个完成信号。
基本传输
本部分给出基于AXI协议的基本交易的示例。每个示例都使用了VALID和READY握手机制。地址信息及数据的传输都是在VALID和READY信号同时为高的时候传输。
读burst示例
图1-4为一个4拍的读burst交易的时序图。在这个例子中,主设备发送地址,一个周期后从设备接收。
主设备在发送地址的同时也发送了一些控制信息标志了burst的程度和类型,为了保持图的清晰性,在此省略这些信号。
地址总线上出现地址之后,在读数据通道上发生数据的传输。从设备一直保持VALID信号为低,直到读数据准备好。从设备发送RLAST信号标志此次 burst交易中最后一个数据的传输。
连续读burst示例
图1-5为主设备在从设备接收第一个burst交易的地址后发送另一个burst交易的地址的时序图。这样可以保证一个从设备在完成第一个burst交易的同时可以开始处理第二个burst交易的数据。
写burst示例
图1-6为一次写交易的时序图。当主设备发送地址和控制信息到写地址通道之后,交易过程开始。然后主设备通过写数据通道发送每一个写数据,当为最后一个需要发送的数据时,主设备将WLAST信号置高。当从设备接收完所有的数据时,从设备返回给主设备一个写响应标志本次写交易的结束。
传输顺序
AXI 协议支持交易乱序完成。它给通过AXI总线发送的交易分配一个ID标签。协议要求相同ID的交易按顺序完成,而对不同ID的交易没有顺序限制,可以乱序完成。
乱序交易可以在两个方面提高系统系能:
互连设备可以使快速响应的从设备交易完成早于较慢速度的从设备
复杂的从设备可以乱序返回读数据。例如,较晚访问的数据可能因为来自内部缓冲器而比先前访问的数据更早获得。
如果以个主设备要求交易完成的顺序要按照发送的顺序,则那些交易要使用相同的ID标签。但是若主设备不要求按顺序完成交易,则可以为不同的交易分配不同的ID,可以按任何顺序完成交易。
在一个多主设备的系统中,互连设备负责给ID添加额外信息保证从所有主设备而来的ID标签是唯一的。ID就像一个主设备号码,但通过扩展可以使得每个主设备可以通过提供ID,访问同一个接口,就像是好多虚拟的主设备一样。
虽然复杂的装置可以利用乱序,但是简单的装置不要求使用。简单的主设备可以为每个交易分配相同的ID,简单的从设备可以按序响应交易,不用管ID。
握手过程
所有五个通道使用相同的VALID/READY握手来传输数据和控制信息。这中双向的流控制机制可以使得主设备和从设备都可以控制数据和控制信息的传输速率。源设备产生VALID信号标志数据和控制信息有效。目的设备产生READY信号标志可以接收数据和控制信息。只有当VALID和READY同时为高时,传输进行。
不管主设备接口还是从设备接口,在输入和输出信号之间不允许有组合路径。图3-1到图3-3为握手时序图。图3-1中,源设备发出数据和控制信息同时将VALID信号拉高,数据和控制信息一直稳定,直到目的设备可以接收数据和控制信息将READY信号拉高时。箭头指示了传输开始的时刻。
图3-2中,目的设备将READY信号拉高早于数据和控制信号有效。这表示目的设备可以在VALID信号有效后的一个周期内接收数据和控制信息。箭头指示了传输开始的时刻。
图3-3中,源设备和目的设备恰好在同一个周期内可以进行数据和控制信息的传输。这种情况下,传输会立即进行。箭头指示了传输开始的时刻。
写地址通道
主设备只有当它发送合法的地址和控制信息的情况下将AWVALID信号置为有效,并且必须保持有效直到从设备接收了地址和控制信息并且返回AWREADY信号。
AWREADY的默认值可以为高,也可以为低。推荐设置为高,尽管这样从设备必须能在任何合法地址发来的时候予以接收。
AWREADY的默认值可以为低,但不推荐,因为这样传输至少花费两个周期,一个置高AWVALID,一个置高AWREADY。
写数据通道
在一个写burst交易中,主设备只有当发送合法地址的时候将WVALID信号置为有效,并且必须保持有效知道从设备接收了写数据并且返回WREADY信号。
只有从设备总能在一个周期内接收写数据,WREADY的默认值可以设置为高。主设备必须发送 WLAST信号标志一次写burst交易中最后一拍数据传输。
当WVALID为低时,WSTRB[3:0]信号可以为任何值,但推荐这个信号置为低或保持原值。
写响应通道
当写响应有效时,从设备将BVALID信号置为有效,并且保持有效直到主设备接收响应并且返回BREADY信号。
只有主设备总能在一个周期内接收写响应,BREADY的默认值可以设置为高。
读地址通道
主设备只有当它发送合法的地址和控制信息的情况下将ARVALID信号置为有效,并且必须保持有效直到从设备接收了地址和控制信息并且返回ARREADY信号。
ARREADY的默认值可以为高,也可以为低。推荐设置为高,尽管这样从设备必须能在任何合法地址发来的时候予以接收。
ARREADY的默认值可以为低,但不推荐,因为这样传输至少花费两个周期,一个置高ARVALID,一个置高ARREADY。
读数据通道
在一次读交易中,只有当从设备数据有效时,从设备将RVALID信号置为有效,并且一直保持有效直到主设备接收数据并且返回RREADY信号。即使一个从设备只有一个读数据,它也必须响应对此数据的访问,将RVALID信号置为有效。
主设备使用RREADY信号标志可以接收数据。RREADY的默认值可以设置为高,但是只有在主设备无论何时进行读交易时都可以立即接收数据的情况下。
从设备必须发送RLAST信号标志一次读burst交易中最后一拍数据的传输。
通道之间的关系
地址通道、读数据通道、写数据通道和写响应通道的关系是灵活的。
例如,写数据可以在相关的写地址之前出现在总线接口上。当写地址通道包含较多的寄存器级数多于写地址通道时,会出现这种情况。写数据也可以与相关的写地址同时有效。
当必须确定目的地址空间或者从设备空间时,互连设备必须重新对齐地址和写数据。为了确保写数据只相对于其要写入的从设备是有效的,这样做是必要的。
两种关系必须满足:
读数据必须在其相关的地址之后
写响应必须在其相关写交易最后一拍数据写完之后
通道握手信号的依赖关系
为了防止发生死锁,必须重视握手信号之间的依赖关系。
任何交易中:
一个AXI模块的VALID信号不能依赖于另一个模块的READY信号
READY信号可以等VALID信号
可以在发送VALID信号之后发送 READY,也可以在发送VALID信号之前将READY信号置为默认值,这样做可以得到更高效的设计。.
图3-4和图3-5为各握手信号之间的依赖关系图。一个箭头表示箭头两端的信号先后没有规定。双箭头表示箭头指向的信号只能在箭头前的信号之后。
图3-4为一次读交易中:
从设备可以在ARVALID之后发送ARREADY
从设备在置RVALID信号有效返回读数据之前必须等待ARVALID 和ARREADY信号有效之后。
图3-5为一次写交易中:
主设备发送AWVALID和WVALID信号前不等从设备发送AWREADY和WREADY
从设备可以在发送AWREADY信号之前等AWVALID或者 WVALID,或两者一起
从设备可以在发送WREADY信号之前等AWVALID或者WVALID,或两者一起
从设备发送BVALID之前必须等待WVALID和WREADY信号之后
注意在一次写交易中,主设备在发送WVALID之前不要等AWREADY有效,这一点是很重要的。如果主设备等AWREADY信号有效之后在发送WVALID信号,并且从设备恰好是接收到WVALID信号之后才发送AWREADY,则这样就会造成死锁状况。
关于寻址选择
AXI总线协议是基于burst的,并且主设备通过发送一次传输中第一个字节的地址和控制信息开始一次 burst交易。Burst交易进行过程中,从设备负责计算 burst 中所有数据的地址。
Burst不能超过4KB的范围,防止在从设备之间超过范围,也限制从设备内地址增量的大小。
burst长度
AWLEN和ARLEN信号标志了一个burst中有多少拍的数据。如表4-1所示,每个burst长度可以为1-16拍。
对于地址卷回的 burst,其长度必须为2,4,8,16拍。
每个交易必须制定ARLEN和AWLEN信号指示其中有多少拍数据。没有部件可以终止一个burst交易来减少其长度。在一次写交易中,主设备可以通过禁止所有的字节选通位来终止进一步的写操作,但是也必须完成剩下的数据传输。一次读交易中,主设备可以抛弃读到的数据,但是也必须完成剩下数据的传输。
注意当访问一个读敏感设备例如FIFO时,抛弃不需要的读数据会导致丢失数据。主设备永远不要以长于要求长度的burst来访问这种设备。
burst大小
表4-2为burst大小译码表,ARSIZE和AWSIZE信号标志了在一次交易一拍数据中最大的字节数。
AXI通过每拍的地址确定数据总线中使用那个字节通道。
对于地址递增和地址卷回而且每拍数据宽度窄于数据总线的 burst传输,每次数据传输都在总线的不同的字节通道上。地址固定的 burst交易由于地址固定不变,每拍数据传输都使用相同的字节通道。
任何数据传输的宽度都不能超过交易中部件数据总线的宽度。
burst类型
AXI协议定义了三种 burst类型:
地址固定的burst
地址递增的burst
地址卷回的burst
表4-3为ARBURST or AWBURST的译码表
地址固定的burst
一次地址固定的burst交易中,burst中每拍数据的地址保持不变。这种 burst类型适用于对同一位置进行重复访问的操作,如装载和清空FIFO。
地址递增的burst
一次地址递增的交易中,一次 burst交易中每拍的地址是以前数据拍的地址基础上加增量。增量的大小由每拍数据的大小决定。例如,一次 burst交易中每拍包含四个字节,则其地址为先前地址加四。
地址卷回的burst
地址卷回的交易与地址递增的交易类似,每拍数据的地址都是先前地址加一个增量。但在地址卷回的交易中,当地址到达一个边界,地址会卷回到一个较小的地址。边界为burst中每拍数据的大小乘以burst中数据拍的个数。
对于地址卷回的burst有两个限制:
开始的地址必须与数据拍的大小对齐
Burst的长度必须为2,4,8或16
响应信号简介
AXI 协议对读交易和交易都有响应信号。对于读交易,从设备的响应信息通过读数据一起返回,而写交易的响应信息通过写响应通道返回。
AXI协议的相应包括:
对于一次写交易,不是每拍数据传输完毕都有一个响应,而是对整个burst 只有一个响应。
一次读交易中,从设备可以对一个 burst中不同的数据拍返回不同的响应。例如,在一个16拍的burst 中,从设备可能会对其中的15个数据拍返回OKAY响应,而对其中的一个数据拍返回SLVERR响应。
协议规定要求的数据拍都必须被执行完毕,甚至在出现错误的情况下也不能终止。例如,一次8拍的读burst 传输中从设备发生了错误,这时从设备也必须完成8个数据拍的传输,每个数据拍返回一个错误响应。从设备返回一个错误响应,一个burst 中剩余的数据拍并不会被取消。
本协议限制支持乱序交易的主设备必须同时支持精确地错误报告功能。这样的主设备必须能够在较后的数据传输正在进行的情况下,处理较先的数据拍的错误响应。
响应类型
本部分介绍四种AXI协议的响应类型;
正常访问成功
OKAY响应表示:
一次正常访问的成功
一次独占访问的失败
对不支持独占访问的设备进行了独占访问操作
OKAY是大多数交易的响应信号。
独占访问
EXOKAY 响应表示一次独占访问的成功。
从设备错误
SLVERR响应表示一次不成功的交易。从设备出错的情况有:
FIFO/buffer 上溢出和下溢出
不支持的数据拍大小
对只读的地址执行写操作
从设备访问超时
试图访问没有可用寄存器的地址
试图访问不使能或断电的设备
为了简化系统监视和调试,推荐错误响应只用于错误的情况而不要用于正常的和可预测的事物。
译码错误
在一个没有进行全译码地址变换的系统中,可能出现某写地址没有从设备,因此无法响应对此地址的交易。这种系统中,互连设备必须提供一个合适的错误响应来标记此访问非法并且阻止系统因为访问了一个不存在的从设备而锁住。
当互联设备不能成功对一个从设备访问解码时,它可以有效地将访问转向一个默认的从设备,并且默认设备返回DECERR响应。
一种实现的选择是使默认的从设备也记录下解码错误的细节,以确定错误是如何发生的。用这种方法,默认的从设备可以很显著的简化调试过程。
AXI协议要求一次交易中所有的数据拍都必须完成,即使发生错误也不能停止。所以每个能返回DECERR的部件也要求都必须能满足这个要求。文章来源:https://www.toymoban.com/news/detail-607983.html
参考内容来源于网络。文章来源地址https://www.toymoban.com/news/detail-607983.html
到了这里,关于AXI总线协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!