常见的AXI总线仲裁器概述-AXI协议理解(一)

SoC 设计广泛采用共享总线式的片上通信,其中的仲裁器是共享总线的关键技术之一。AMBA AXI 总线协议以高性能、高频率的系统设计为目标,适合高带宽、低延迟的系统设计,可以达到高频率的操作而不需要复杂的总线桥,满足众多部件的接口要求,具备高度灵活的互联结构,并且向后兼容 AHB 和 APB 接口。

文章目录

        • 1.1 AXI 总线仲裁应用场景
        • 1.2 常见的仲裁机制
        • 1.3 AXI Interconnect简介
          • 1.3.1 N to 1 interconnect
          • 1.3.2 1 to N Interconnect
          • 1.3.3 N to N Interconnect
        • 参考文档

常见的AXI总线仲裁器概述-AXI协议理解(一)_第1张图片

AXI 协议中,五个通道都各自有一套使用 VALID 和 READY 信号的握手机制,使得master 和 slave 有效控制数据和控制信息的传输速率。源端生成 VALID 信号表明数据和控制信号有效,目的端生成 READY 信号表明可以接收相应的数据和控制信号。只有当 VALID和 READY 同时为高时,才开始传输。另外,读数据和写数据通道都包含一个 LAST 信号表示 burst 中最后一个数据项的传输。

1.1 AXI 总线仲裁应用场景
  • 多个主设备同时访问同一个从设备的读地址;

  • 多个主设备同时访问同一个从设备的写地址;

  • 多个写数据从不同的主设备而来,同时写向同一个从设备,在这种情况下,数据会发生间插,这时候需要判断数据是哪个主设备的;只适合AXI3,在AXI4中WID被设置为1;如果对应AXI4,一个从设备只允许接收一组写地址之后伴随对应的一组数据写完成之后,才允许接收别的写操作。

  • 从不同的从设备同时返回多个写回应信号;

  • 从不同的从设备同时返回多个读数据;

  • 多个通道源试图同时访问同一个共享层;

1.2 常见的仲裁机制
  • 优先级仲裁:每个端口都配置静态的优先级,当同一时刻多个不同优先级的到达时,优先级高的优先传输;当两个相同优先级的同时到达时,看哪个索引接在request[0]上;可以MASTER编号为优先级。

  • 先到先服务仲裁:没有优先级,等待时间最长的具有最高的优先级,当同时到达的,看索引最低的具有最高优先级;仲裁相对优先级仲裁,频率较低;需要记录请求到来时间,消耗资源且复杂。

  • 双层仲裁(平级公平仲裁):第一层相当于优先级仲裁,但是这个优先级是外部给予的,然后第二层仲裁是在具有相同的优先级的情况下,使用先到先服务的仲裁机制,并且每次传输时,都更新内部的优先级;

  • 动态仲裁:看QoS的值,当QoS值一致时,看索引值。应该较为复杂了,对MASTER设计要求较高。

如果上次传输还未完成,那么必须等待上次传输完成,才能进入下一次仲裁。

1.3 AXI Interconnect简介
1.3.1 N to 1 interconnect

如果有多个主设备,一个从设备。那中间需要一个仲裁器。某个主设备传输前请求总线,如果总线忙就等着。一般来讲,最简单的仲裁原理是轮换优先级。例如有三个主设备ABC。上次总线权限给了A。则下次的优先级变为BCA。

1.3.2 1 to N Interconnect

只需要简单判断一下地址确认要往哪个从设备里写,基本上就是多路选择器。不需要仲裁。总线也不会阻塞。

1.3.3 N to N Interconnect

常见的AXI总线仲裁器概述-AXI协议理解(一)_第2张图片

如上图所示,读写通道是分开的。各自有一个仲裁器(Arbiter),仲裁原理和N-to-1是一致的。仲裁器会从所有写请求和所有读请求中各选出来一个来执行。

参考文档

【1】常见的AXI总线仲裁器概述
【2】SOC中AXI总线是如何连接的

你可能感兴趣的:(接口与协议学习笔记,AXI,asic,仲裁器,AMBA,总线)