我们具体地分别来看下读写事务中的 AxCACHE[3:0] 信号,首先是写事务。 AWCACHE[3] 信号置高表示本主机先前的写事务可能已经将该位置上的数据缓冲于 cache,首先在 cache 中查找对应表项。当 AWCACHE[3] 信号置低,但 AWCACHE[2] 置高时,该位置上的数据可能因为其他主机的操作、或者本机的读事务缓存于 cach...
AxCACHE[3:2] - cache allocate 表示传输事务访问地址的数据是否在cache中。 AxCACHE[3] allocate,AxCACHE[2] other allocate; allocate:强调是本主机之前的相同事务导致cache已经缓存好数据。 other allocate:强调是其它主机的操作或本机的其它事务将数据缓存好。
AXI对不同种类的memory使用不同的策略,比如prefetch, cache,write buffer等, 通过AxCACHE信号决定了这些策略。 1 AxCACHE信号 In AXI3, the AxCACHE[3:0] signals specify theBufferable, Cacheable, and Allocate attributes of the transaction. AxCACHE一共有4bit信号。 AxCACHE[0] - Bufferable 首先复习一下...
AXI3 中AWCACHE[3:0] 和ARCACHE[3:0]的含义如下图所示: AXI3中cache=0,对数据不做处理。cache=1,矩阵会对读写数据进行合并或拆分处理。一般是矩阵的downsize/upsize对数据进行处理。cache[0],Bufferable,一般针对写操作,表示interconnect,或者其他类似component,可以先返回resp,之后再写向final distination。cache...
1. AXI接口和信号:axi的axcache协议定义了一组用于数据传输的标准接口和信号。这些接口和信号包括地址线、数据线、控制线、读写信号等,用于控制和传输数据。 2. 数据传输类型:axi的axcache协议支持多种数据传输类型,包括读取、写入和突发传输。读取操作允许外设从处理器中读取数据,写入操作允许外设向处理器中写入数据...
1. AXCache的基本用法: AXCache的主要功能是读写临时数据和文件缓存。使用AXCache时,我们需要先创建一个全局的实例来访问缓存。以下是创建AXCache实例的示例代码: ```swift let cache = AXCache.shared ``` 在创建AXCache实例后,我们可以使用以下方法来读写数据: -存储数据: ```swift cache.setObject(value, ...
AXI协议用AxCACHE来控制事务属性。如果不清楚cache基本知识,可以翻前面的文章,《CPU设计之Cache -- 基础》。简单了解一下。在AXI3中,AxCACHE信号的含义如下图: 从上图可以看出,AxCACHE信号的4bit有各自的含义,比如AxCACHE[1]就是表示该事务是不是cacheable的。
(1)AXI3内存属性 (2)AXI4/5内存属性 AXI4/5内存属性进行了以下更改: AxCACHE[1]位被改名为Modifiable位。(改名是为更好地描述所需的功能,实际的功能没有改变) 排序需求是为Non-modifiable事务定义的。 Read-allocate和Write-allocate的含义被更新。 更多详细描述见原版AXI4/5数据手册。 (3)Memory类型 AxCACHE...
AXI4可支持不同的存储类型,AxCACHE[3:0]用于描述不同的存储类型,如下图所示 4.2.数据通道数据结构 (1).数据选通(WSTRB) WSTRB的每一位对应数据中的8位(1字节),用于标志数据中的对应字节是否有效。即当WSTRB[n] = 1时,标志数据中WDATA[(8n)+7: (8n)]部分有效。
当AxCACHE[1] 置高时,表示传输过程中,该写传输事务的传输特性可以改变。 协议列举了一些传输事务改变的情形: 单个传输事务可以被分解为多个传输事务 同理,多个传输事务也可被聚合为一个(上节描述的现象) 读传输事务中,可以预取相邻地址上的读数据,要求目的地址返回比主机需求更多的数据 ...