一、前言
在之前的文章中,我们介绍的主要内容是AXI协议的数据读写结构和读写响应结构,主要讲述了当遇到各种特殊情况时,AXI如何完成数据的读写操作,最后介绍了读写响应的4种类型。
在本文中,我们将介绍AXI协议的传输属性。
二、传输类型与属性
AXI传输中,从机可以被定义成以下的两种:(1)内存型从机(2)外设型从机
1、内存型从机(Memory Slave )
内存型的从机要求能够正确处理所有的传输类型。
2、外设型从机(Peripheral Slave )
外设型的从机具有 实现定义(IMPLEMENTATION DEFINED)的访问方式。通常,这在元件的数据表中被定义,它描述了从设备能够正确处理的传输类型。对不属于实现定义(IMPLEMENTATION DEFINED)访问方法的外设型从设备的任何访问都必须按照协议完成。要注意的是,一旦进行了这样的访问(不属于实现方法的),外设型从设备就不一定会继续正确操作,它只需要继续以符合协议要求的方式完成进一步的传输即可。
AXI协议定义了一组支持内存和外设从设备的事务属性。ARCACHE 和 AWCACHE信号定义了传输属性,它们控制:
- 传输如何通过系统进行
- 系统级缓存如何处理传输
三、AXI3内存属性信号
在AXI3协议中,AxCACHE[3:0]中每一位都有着不同的特性,具体的特性编码方式如上图所示,我们来简单介绍以下各个位所代表特性的具体含义:
1、AxCACHE[0], Bufferable (B) bit
当生效这个位时,互连(或任何元件)都可以把传输到达目的地的时间延迟任意个时钟周期。(注意:通常,可缓冲的属性只与写操作相关。)
本质上来说,就是代表是否可缓存,AWCACHE[0]当为低时,表示写响应由终端设备发出;否则,可以由中间设备发出。ARCACHE[0]表示读数据由终端设备发出或所写的目的设备发出。
2、AxCACHE[1], Cacheable (C) bit
当这个位失效时,将禁止对传输的分配。
生效此位时:
- 允许参数的分配。RA和WA提供了额外的提示信息。
- 在最终目的地处的传输的特征不必与原始传输的特征相匹配。对于写操作,这意味着许多不同的写操作可以合并在一起。对于读取,这意味着可以预取一个位置的内容,或者来自单个读取的值可以用于多个读取事务。
3、AxCACHE[2], Read-allocate (RA) bit
当生效此位时,建议对传输进行读分配,但不是强制性的。如果已失效C位,则不能生效RA位。
4、AxCACHE[3], Write-allocate (WA) bit
当失效此位时,建议对传输进行写分配,但不是强制性的。如果已失效C位,则不能生效WA位。
四、AXI4内存属性信号
AXI4协议是在AXI3协议的基础上发展而来的,在内存属性信号的部分,AXI4对于AXI3进行了如下的更改:
- AxCACHE[1]位被重命名为可修改位(这样的更改是为了更好地描述所需的功能。实际的功能没有改变。)
- 为不可修改的传输处理定义了ordering requirements
- 更新了读分配和写分配的意义。
1、AxCACHE[1], Modifiable
在AXI4中,AxCACHE[1]位是可修改位。当HIGH时,可修改表示可以修改传输的特征。当可修改为低时,参数为不可修改。
1.1 不可修改的传输
对于不可修改的交易来说,不能将其分割成多个传输或者其他传输的合并。当传输为不可修改的传输时,下面的参数是不可修改的,即传输地址(AWADDR、ARADDR、AWREGION、ARREGION)、猝发大小(AWSIZE、ARSIZE)、猝发长度(AWLEN、ARLEN)、猝发类型(AWBURST、ARBURST)、锁类型(AWLOCK、ARLOCK)和保护类型(AWPROT、ARPROT)。
只能修改AxCACHE属性,以便将事务从可缓冲转换为不可缓冲。不允许对AxCACHE进行其他更改。 传输的ID和QoS是可以修改的,对于猝发长度大于16的不可修改的传输来说,允许分割成多个传输。每个传输的传输都满足上面的要求,但减少猝发长度,所产生的猝发地址也相应进行修改。
1.2 可修改的传输
可修改的传输可以通过下面的方式进行操作:
- 传输可以分割成多个传输
- 多个传输可以合并成一个传输
- 读传输能够读取出比要求多的数据
- 写传输可以访问比要求更大的地址范围,使用写选通信号以保证只更新正确的地址空间
- 可以修改每个传输的传输地址,猝发大小,猝发长度。但是,不能修改锁类型和保护类型。
五、保护类型
AWPROT或者ARPROT信号提供三种级别的存取保护:
- 正常存取或者特权存取, ARPROT[0] 和 AWPROT[0]安
- 全性存取或者没有安全性存取, ARPROT[1] 和 AWPROT[1]
- 指令存取或者数据存取 ,ARPROT[2] 和 AWPROT[2]
信号ARPROT[2:0] 和 信号AWPROT[2:0]的编码如下图:
六、总结
本文中我们介绍了AXI协议的传输属性,主要介绍了AxCACHE信号不同位对应的不同含义以及使用方式,最后简单介绍了保护类型相关的信号。