微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > AXI协议的问题

AXI协议的问题

时间:12-12 整理:3721RD 点击:
在AXI3协议中ordering model一节中有这样两句话,是什么意思?
The ability to issue multiple outstanding addresses means that masters can issue transaction addresses without waiting for earlier transactions to complete.
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ability to complete transactions out of order means that transactions to faster memory regions can complete without waiting for earlier transactions to slower memory regions.
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
还有Write data interleaving是什么意思?能举个例子吗?
谢谢

AXI的特点是request+response。
第一句的意思是说,前一个transaction的response (response代表transaction complete)还没有回来就可以发下一个transaction的request。这样在一定时间内AXI总线上就存在多个transaction,这个就是所谓的multiple outstanding。
第二句是说,先发A的request,再发B的request,允许B的response先于A的response回来。这是response乱序。
Write操作的时候,address channel的顺序是先A然后B,在data channel允许先B然后A,当然了,这两个transaction的ID是不同的。这就是write data interleaving。因为write data interleaving对硬件实现要求比较高,在AXI4里取消了这个feature。在AXI4里,如果address channel的顺序是先A然后B,那么data channel就必须也是先A然后B,即使ID不同。

看了你的解释,还存在几个问题:
1 write-read(或read-write)之间是否也存在乱序?还是乱序仅存在与write-write,read-read之间?
2 在AXI3协议中,仅有write data interleaving这一小节,难道就不存在read data interleaving?write data和read data之间会不会存在interleaving?
谢谢解答

首先,这里有一个大原则,你误解了。Read和Write channle是彼此独立没有任何关系的channel。
1 读写是独立的channel,因此read和write之间是没有order可言的。如果master需要read和write之间in order,那么就必须在一个transaction收到response之后再发下一个transaction。比如,写A然后读B,这样先在write channel发出write A request,等到收到A的write response之后,再发B的read request。
2 按照字面的意思,read data interleaving是存在的,在read channel,这个和out of order是一个意思了。至于read data和write data之间的interleaving,就没必要考虑了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top