AMBA4 AXI 多主机多传输


1. 多主机 AXI 架构

2. 不同主机间的事务独立

  • 如何实现多主机间事务独立
    • (1)各主机保证自己的ID与其它主机不同。
      • 协议并没有在主机之间设立消息共享机制,也就是各个主机都不知道其它主机使用的是什么ID,也就没办法避免。
    • (2)使用AXI Interconnect组件对不同主机的ID进行调整,即使各个主机发出的ID相同,经过AXI Interconnect之后,从机拿到的ID也是不同的。
      • 如上图所示,主机连接到Interconnect组件有对应的Sx端口,x值即表示了传输事务来自哪个主机,所以Interconnect可以在主机发过来的ARID号前面加上附加值x,再发送给从机。
      • 对于从机返回的RID,Interconnect需要剥掉附加值再返回数据给主机。
      • 虽然需要剥离,但是可以根据从机返回的RID和BID的附加值直接将其转发至对应的主机。
      • 参考文献中有图片解释,更为清晰。
      • 考虑到要加附值信号,而赋值信号的位宽取决于主机的个数。
        • 协议建议:主机端ID位宽不超过4bit,从机端ID位宽不超过8bit。

3. Interconnect 功能

3.1 转发功能

  • AXI 本是一个单对单的协议,需要借助Interconnect组件才能实现多对多的通信。
  • Interconnect使用交叉总线连接每一个主机和从机端口,而交差总线的选通是由Interconnect内部的switch fabric或称crossbar来控制的。
    • 选通实现:Interconnect接收到主机发送过来的AxADDR,将其进行译码,选择对应的从机,这个过程相当于把哪根交叉线选通。
  • 写传输事务中,Interconnect需要保证写数据的保序性。
    • (1)写数据的顺序需要与写事务的顺序保持一致。
    • (2)在一个写事务的写数据期间,不能插入其它事务的数据。

3.2 多机仲裁功能

  • 需求:考虑到主机传输事务独立性,可能同时多个主机提出使用总线进行传输。Interconnect 也需为多个从机提供仲裁。
  • Interconnect中每个主机/从机接口有对应的缓冲通道Buff,而仲裁就是决定从哪个缓冲通道中读取事务,输入crossbar。
  • 仲裁策略
    • (1)轮询(round-robin),轮流从各个主机的缓存通道读取事务。
    • (2)优先级仲裁(priority),先读高优先级的缓存通道。

3.3 读数据重排序功能

  • 这篇博客中介绍,单主机的读事务中,由从机负责(相同ID传输事务的)保序性。
  • 在多主机通信中,主机可能向多个从机发出ID一致的传输事务,此时需要Interconnect来保证从机返回主机数据的顺序要与主机发出的事务顺序一致。重排序电路设计与从机内的相似。

4. AXI的交织(interleave)

4.1 interleave & out of order

  • 两者的粒度不同,前者的粒度是transfer,后者的粒度是transaction。
  • 读交织下,会出现在一个transaction中插入了其它transaction的transfer。如下图所示:
    • 读交织也是通过RID和ARID进行不同事务识别的。
  • 而下图为读乱序:
  • AXI手册中有三个概念
    • transfer
    • burst
    • transaction(传输事务)
    • 在每个传输事务中,数据突发传输(burst),而突发传输可以有多个Beat(transfer)。

4.2 AXI4为什么不支持写交织

  • 写交织
    • 例子:有两个写事务,Trans0/1,每个事务有两个写数据:A/B。
      • 当不支持写交织时,只有第一个写事务的数据完成传输后才可以传输下一个事务的数据。即0A,0B,1A,1B.
      • 当支持写交织时,可以在事务中插入另一个事务的数据,即可以是0A,1A,0B,1B;或0A,1A,1B,0B.
    • 可以提高系统的效率,如下图,事务0每两个周期写一个数据,事务1每个周期写一个数据,采用写交织可以减少总线传输中的气泡。
  • 应用场景有限
    • 写交织只对多主机有效,而对于单主机来说,主机可以将Trans0拆分成两个事务,可以实现和写交织一样的传输效率。
  • 使用起来复杂
    • 写交织设计较为复杂,ARM需要施加很多约束,以避免出现死锁的现象。

如有问题,请多指正!!

posted @ 2023-06-11 23:18  可达达鸭  阅读(576)  评论(0编辑  收藏  举报