【ARM AMBA AXI 入门 8 - AXI 协议中 RID/ARID/AWID/WID 信号】

文章目录

    • 背景介绍
      • 1.1.1 AXI3 信号列表
      • 1.1.2 AXI3 信号列表
    • 1.2 传输顺序
      • 1.2.1 读顺序
      • 1.2.2 写顺序
      • 1.2.3 互连线中ID信号的扩展

背景介绍

如果 SoC 中是多主机多从机的结构,支持 AIX OutstandingAXI out-of-order 传输特性(见前文介绍) 会极大的提高总线互连的利用率,主机可以对不同地址或从机进行连续访问,而从机返回数据的先后可以不按照主机的发出事务顺序。

有时当多笔传输发生时,就需要保证每一笔都能按照预期的顺序来完成操作,如下:

  • 同时进行访问 normal memory 的多笔传输的地址(address)一样或有重叠(overlap);
  • 访问同一个 peripheral device 空间时。

因为如果多笔传输的 memory 读,不按照顺序来进行,可能会出现下面问题:

  • 后发的读请求读到之前的数据;
  • 先发送的读请求读到之后的数据,造成数据紊乱;

此外,对于 peripheral device空间必须全部保序是因为device memory 是带有"黏连"属性的,即对device memory的读写操作,可能会影响该空间其他地址的数据变化,因此需要严格保序,否则数据一致性难以保证。

一、AXI 通过何种方式来告知各个 Component 是否是需要保证的 Transactions 呢
:一般从机的数据准备时间不由主机控制,数据就绪顺序与事务到达顺序不一致是可能的。因此需要相应的机制来标识数据所属的事务。而这,就是通过Transaction ID信号来实现的。

Transaction ID 这组信号在AXI3与AXI4中的区别也很大。

二、多个 Master 之间传输的如何保序呢
:可以通过软件来保证,比如,内核中的各种锁机制(spinloc/mutex…)

1.1.1 AXI3 信号列表

Transaction通道 来源 Transaction ID
写地址通路 Master AWID
写数据通路 Master WID
写回复通路 Slave BID
读地址通路 Master ARID
读数据通路 Slave RID

1.1.2 AXI3 信号列表

Transaction通道 来源 Transaction ID
写地址通路 Master AWID
写回复通路 Slave BID
读地址通路 Master ARID
读数据通路 Slave RID

在AXI4中,比较AXI3和AXI4中我们可以发现ARM 取消了写数据通路的ID信号WID

1.2 传输顺序

AXI 保序要求所有相同方向且带有相同 ID的 transactions 必须按顺序返回 response,顺序就是他们发送的顺序。由于读通道和写通道是两个不同的方向,如果两个不同方向的 Transactions 带有相同的ID需要保序,Master必须接收到第一笔transaction的response信号后,才能发送第二笔transaction。如果不遵循这个约束,保序无法得到保证

1.2.1 读顺序

AXI 的读顺序涉及到的信号为 ARIDRIDARID 来自主设备,RID 来自从设备,遵循的原则如下:

  • 对于主设备而言, 同一个ARID序号需要按照发射顺序返回读取的值,不同的ARID序号可以以任意顺序返回值,允许read interleaving
  • 对于从设备而言,同样执行 “相同 ARID 顺序返回,不同 ARID 乱序返回的”原则
  • 从设备控制的 RID 需要和主设备控制的 ARID 值相匹配
  • 衡量从设备乱序能力的参数为“read data reordering depth”,这个参数代表从设备可以储存多少未执行待排序的命令,若从设备永远按顺序执行(非乱序),read data reordering depth 的值为 1

1.2.2 写顺序

AXI 的读顺序涉及到的信号为 AWIDBIDAWID 来自主设备,BID 来自从设备,遵循的原则如下:

  • 对于主设备而言, 同一个AWID序号需要按照发射顺序返回读取的值,不同的AWID序号可以以任意顺序返回值,不允许write interleaving;
  • 对于从设备而言,同样遵循相同 AWID 顺序,不同 AWID 乱序的原则;
  • 从设备BID需要匹配主设备的AWID。

1.2.3 互连线中ID信号的扩展

当一个主设备连接到 AXI Interconnect 时,互联可以额外标记 “ARID,AWID,WID(AXI4中WID取消)”,interconnect 会在ARID、AWID 和 WID上增加(append) 额外的bits,用于区别不同masters。

这种设置有以下影响:

  • 主设备就不需要知道有哪些 ID 值被其他主设备使用(即主设备之间不需要沟通ID号的使用问题),互联可以独一无二的标记从不同主设备送出的Transaction ID号;
  • 从设备同理,RID和BID也可以在互联(Interconnect)中也可以拥有一些额外的bits,interconnect 使用 RID 的额外 bits 去决定读数据该返回给哪个 master 端口,并在最终到达 master 端口时,interconnect会移除掉(remove)RID的额外bits;
  • 在写响应时,BID的处理方式和RID一致。

推荐阅读
http://www.tlcement.com/39644.html

你可能感兴趣的:(#,ARM,Bus,Introduction,arm开发,嵌入式硬件,fpga开发,arm)