AMBA4 AXI AxCACHE


1. 从机类型

  • AXI中主要有两类从机:存储从机、外设从机。
  • 存储从机必须支持所有的事务属性信号。对于外设从机没有该要求。
  • 对于所有的从机要求即使不支持事务属性或传输发生错误,也要完成整个传输事务。

2. 系统级缓存

  • 目的:提高整个系统访问外部存储的速度。
  • 处理器核、系统缓存、外部存储控制器通过AXI总线接口互联。
  • 当处理器想要访问外部存储的数据,首先查找L1 cache,如果缺失,则向外部缓存发起传输事务。如果该事务命中了外部缓存,那么就通过总线返回数据给处理器核。如果缺失,还需要到外部存储找到数据返回,并将数据载入外部缓存中。
  • 具体cache相关知识可以看Cache分类专题

3. AxCACHE信号

  • AxCACHE一共有4bit信号。
  • AxCACHE[0] - Bufferable
    • 首先复习一下cache的写回策略,在cache命中的情况下,将数据写回至cache中,而不用立即更新到主存中,直到cache line的数据可能会被替换时才会写回主存。
    • 从AXI信号交互角度看,如果没有cache或是写通策略,那么当主存收到写入的数据之后再返回CPU一个写回复信号,表示传输任务已经完成。但是对于写回策略,数据写入cache中后就立即向CPU返回一个写回复信号。
    • 而Bufferable就是描述传输事务在传输到目的地(上面的描述可以认为目的地是主存)之前,被其它组件缓存,延迟若干个周期。一般用于写传输事务。
    • 将该bit拉低,则不支持缓存这种特性。
  • AxCACHE[1] - Modifiable
    • 该bit置高,表示传输过程,该传输事务的传输特性可以改变。举例如下
      • (1)单个传输事务可以分解为多个传输事务。
      • (2)多个传输事务可以聚合为一个传输事务。
      • (3)读传输事务,可以预取相邻地址的读数据。
      • (4)写传输事务,可以访问比需求地址跨度更大的区域,配合WSTRB信号防止更新不相关的信号。
    • 配合上面的传输事务,信号也需要更改。
      • 传输地址 AxADDR
      • 突发传输位宽和长度 AxSIZE AxLEN
      • 突发传输类型 AxBURST
      • 还有一些信号也可更改,用时再查。
    • 不可以更改的信号
      • AxLOCK、AxPROT
      • 修改之后,传输事务的地址超过4KB地址边界,修改不被允许。
      • 原子操作,不可修改。
        • 简要介绍:不可中断的操作,不会被线程调度机制打断。AHB中也有原子操作,见这篇博客
    • 该bit置为低,表示传输特性不可更改。
  • AxCACHE[3:2] - cache allocate
    • 表示传输事务访问地址的数据是否在cache中。
    • AxCACHE[3] allocate,AxCACHE[2] other allocate;
      • allocate:强调是本主机之前的相同事务导致cache已经缓存好数据。
      • other allocate:强调是其它主机的操作或本机的其它事务将数据缓存好。
      • 具体为什么要声明两个信号来做区别,我也不是很懂。
      • 注意读写事务两个bit位置不同。
    • 两bit=2'b00,指示主机无需在cache中查找,直接对主存进行读写操作。
    • 两bit≠2'b00,表示数据可能已经被缓存到cache中,需要主机首先到cache中查找,缺失的情况下再访问主存。

4. AxCACHE 与 存储类型

  • 存储类型可分为4种
    • Device 访问
      • AxCACHE[3:1] = 3'b000。
      • 访问非存储外设时,读写的是寄存器的值,没必要预读取或聚合。
    • Normal Non-cacheable 访问
      • AxCACHE[3:1] = 3'b001。
      • 直接访问存储介质,而不会查找cache。
    • Wirte-through 访问
      • AxCACHE[1:0] = 2'b10.
      • 对于allocate一共有四种组合,都不分配、读事务分配、写事务分配、以及都分配。
      • 下表中对于不分配高两bit的组合,还不是很理解。
    • Write-back 访问
      • AxCACHE[1:0] = 2'b11.
      • 与写通相比,不是每次写事务都需要更新主存,所以可以打开Bufferable。

如有错误,请指正!!

posted @ 2023-06-09 09:49  可达达鸭  阅读(666)  评论(0编辑  收藏  举报