应。如果事务被指定为non-bufferable,那么写响应必须有最终目的源提供。 2、AWPROT或者ARPROT信号提供三种级别的存取保护: (1) 正常存取或者特权存取, ARPROT[0] 和 AWPROT[0] (2) 安全性存取或者没有安全性存取, ARPROT[1] 和 AWPROT[1] (3) 指令存取或者数据存取 ARPROT[2] 和 AWPROT[2] 信号ARPROT[2:0] 和 信号AWPROT[2:0]的编码如下图:
第六章
本章描述了AXI协议工具的独占式存取和锁存取机制。
1、当对自动存取时能之后,可以通过信号ARLOCK[1:0]或信号AWLOCK[1:0]来配置独占式存取和锁存取。编码如下图:
我们通过信号ARLOCK[1:0]或AWLOCK[1:0]来选择独占式存取,用信号RRESP[1:0]或BRESP[1:0]来指明独占式存取的成功与否。
2、主机在请求独占式存取时,设备会返回两个响应分别是EXOKAY和OKAY。EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。、 3、如果一个设备不支持独占式存取,可以忽略信号ARLOCK[1:0]和
AWLOCK[1:0]。他必须提供OKAY响应对正常式存取和独占式存取。如果一个设备要支持独占式存取则必须有硬件监视器。
4、通过信号ARLOCK[1:0]或信号AWLOCK[1:0]对事务加锁,需要确定只允许主机存取设备区域直到一个未加锁的事务从同一个主机完成。此处推荐锁存取只用来支持legacy devices。
5、推荐遵循下面两天建议,但是不强制:
(1) 保持所有锁事务序列都在相同的4KB地址区域内。 (2) 限制用琐事务序列对两个事务加锁。
第七章
本章描述了AXI读写事务的四个设备响应。
1、AXI协议对读事务和写事务都有响应。对于读事务,读响应与读数据一起发送给主机,而写事务将写响应通过写响应通道传送。AXI协议的响应类型有OKAY、EXOKAY、SLVERR、DECERR。
2、通过信号RRESP[1:0]和BRESP[1:0]来编码响应信号,具体如下图:
协议规定请求的需要传输的数据数量必须被执行,即使有错误报告。在一次突发式读写的剩余数据不会被取消传输,即使有单个错误报告。
3、AXI协议的四种响应类型:正常存取成功、独占式存取、设备错误、译码错误。AXI协议要求,在一个传输事务中的所有数据必须传输完成,即使有错误状态发生。
第八章
本章描述AXI协议用事务ID tags来处理多地址和乱序传输。 1、下面介绍5中事务IDs:
(1)AWID 这个ID tag是写地址群组信号。
(2)WID 这个是写ID tag在写事务中,与写数据在一起,主机传送一个WID去匹配与地址相一致的AWID。
(3)BID 这个ID tag是写响应事务中。设备会传送BID去匹配与AWID和WID相一致的事务。
(4)ARID 这个ID tag是读地址群组信号。
(5)RID 这个ID tag是在读事务中。设备传送RID去匹配与ARID相一致的事务。
2、主机可以使用一个事务的ARID或者AWID段提供的附加信息排序主机的需要。事务序列规则如下:
(1) 从不同主机传输的事务没有先后顺序限制。他们可以以任意顺序完成。 (2) 从同一个主机传输的不同ID事务,也没有先后顺序限制。他们可以以任
意顺序完成。
(3) 相同数值的AWID写事务数据序列必须按照顺序依次写入主机发送的地址内。
(4) 相同数值的ARID读事务数据序列必须遵循下面的顺序:
1当从相同设备读相同的ARID时,◇设备必须确保读数据按照相同的地址顺序接
受。
2当从不同的设备读相同的ARID时,◇接口处必须确保读数据按照主机发送的相
同的地址顺序。
(5) 在相同的AWID和ARID的读事务和写事务之间没有先后顺序限制。如果主机要求有顺序限制,那么必须确保第一次事务完全完成后才开始执行第二个事务。
3、当一个主机接口与interconnect相连时,interconnect会在信号ARID、AWID、WID段添加一位,每一个主机端口都是独一无二的。 这样做有两个影响:
(1)主机不需要去知道其他主机的ID数值,因为interconnect是ID值是唯一的,当将主机number添加到段中。
(2)在设备接口处的ID段的宽度要比主机接口处的ID段宽。
对于读数据,interconnect附加一位到RID段中,用来判断哪个主机端口读取数据。Interconnect会移除RID段中的这一位在将RID的值送往正确的主机端口之前。
第九章
本章描述了AXI读写数据总线传输的不同大小和接口如何用字节不变endian去握手混合endian传输。
1、Narrow传输,当主机产生的数据宽度小于数据总线宽度时,地址和控制信息决定哪一个byte lanes为有效的数据。下面是两个应用byte lanes的例子:
Example 1:
Example 2:
2、下面是一个数据不变性存取需求的数据结构的例子。他包含头信息,例如source、destination identifiers这些信息是采用little-endian格式,但是payload是big-endian 字节流,具体情况如下图: