一、交易标识符ID

 AXI交易标识符ID,主机用这些ID来判别必须按顺序返回的交易。同一ID的交易必须按顺序返回,不同ID的交易可以乱序 。AXI通过使用ID,主机可以不等待一笔交易完成就发起多笔交易。起到提升系统性能的作用,实现多笔交易的并行处理。从机需要返回合适的BID或者RID来响应主机的ID。

二、AXI中的outstanding传输

outstanding传输: 也可以称为AXI超前传输,表示这次事务还没完成,可以先发起别的事务,即outstanding操作是不需要等待前一笔传输完成就可以发送下一笔操作

在不考虑乱序和交织的情况下,AXI事务都是顺序完成的,这时多事务在传输上不需要其他信号来实现,直接根据write channel或者read channel的last信号或者response channel的信号来判断分割事务就行。

超前传输需要master和slave都支持超前传输,其中outstanding depth表示了主机超前传输的性能,表示同一时刻最多支持多少个AXI 事务。

如果slave不支持outstanding如何响应?

AXI 从机可选地支持outstanding,假设从机不支持超前传输,只需要在接收到 第一个事务指令 后,置低 AxREADY 信号,阻止主机outstanding传输。在返回完成第一个事务传输数据后,再置高 AxREADY 信号,接收下一事务。

三、乱序 out of order传输

乱序传输:表示当有多个事务在传输时,有的事务可能先准备好,因此可以先发送在总线上,通过ID号来区分数据和响应来自哪一个事务,乱序指得是事务乱序,而不是说的master,即多个不同master可以发起多个不同的事务,单个master也可以发起多个不同的事务

说明:

不同事务的AxID如果一致,那么这些事务就不能实现out of order,只能进行顺序完成。(因此需要重排序模型,重排序模型包括了事务缓冲区和数据缓冲区,事务缓冲区存放在途需要完成的事务,对于slave来说,其可能对于不同事务完成的时间不同,因此事务准备好了与事务缓冲区的首个事务比较,如果匹配就输出,如果不匹配就进入数据缓冲区)如果不同事务AxID不同,那么这些事务之间可以乱序。那么不同AxID事务的数据,对于AXI读来说,如何判断返回的数据属于哪个事务呢,是通过RID来进行匹配的,也就是说,在完成乱序传输的时候,需要RID和ARID保持一致,以标识不同事务的数据那么对于实际情况来说,在实际传输中,可能有的事务AxID是不同的,有的是相同的,这是如何解决的?答:对于ID相同的就顺序完成,对于ID不同的可以乱序。在实际应用中,在slave的实现中,为每个ARID准备了一个事务缓冲区和数据缓冲区,以支持相同ID和不同ID的数据顺序传输和乱序传输。

特殊的写乱序:在AXI4中取消了WID,所以写地址和写数据的顺序必须一致

四、 交织interleaving 传输

交织传输:表示实现不同transaction中的beat的交替传输,但同一transaction的beat是需要按照顺序进行传输的, AXI4不再支持写交织。(依然需要根据ID号来判断数据属于哪个事务)

例如事务A指令为A,数据是a0,a1,a2,事务B指令是B,数据是b0,b1,b2,

支持交织数据总线数据顺序就可以是a0,b0,a1,b1,a2,b2(或者其他顺序)

不支持交织数据总线数据顺序就只能是a0,a1,a2,b0,b1,b2或者b0,b1,b2,a0,a1,a2

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: