在芯片设计领域,AXI总线协议已经成为SoC互连的事实标准。而其中最为重要的概念之一——Outstanding能力,对系统性能有着至关重要的影响。那么,什么是Outstanding?它为何如此重要?又该如何合理配置呢?
  
一、什么是Outstanding?
  从字面意思理解,Outstanding表示"正在进行的、未完成的"操作。在AXI总线中,它指的是主设备(Master)能够在从设备(Slave)未返回响应的情况下,连续发送多个请求的能力。
  想象一个简单的请求-响应模型:主设备发出读请求,从设备处理请求后返回数据。如果从设备的Outstanding能力为1,那么主设备必须等待第一个请求的响应返回后,才能发送下一个请求。
  但当从设备的Outstanding能力为N(N>1)时,主设备可以连续发出N个请求,而无需等待响应。只有当从设备返回了m个响应后,主设备才能继续发送m个新的请求。
在这里插入图片描述

二、为什么需要Outstanding能力?
  在没有Outstanding能力的系统中,主设备每次发送请求后都必须等待响应,这会造成总线利用率低下。尤其是在现代SoC中,访问延迟可能很大(如访问DDR存储器),这种等待会导致性能瓶颈。
  Outstanding能力通过允许"在路上"的多个请求,有效地隐藏了访问延迟,提高了总线利用率和系统整体性能。这就好比在中国高铁网络中,如果只有一列高铁往返于上海和北京,效率极低;而多列高铁首尾相接同时运行,就能极大提高运输效率。
在这里插入图片描述

三、如何计算Outstanding值?
  Outstanding能力并非越大越好。过小的Outstanding会导致性能不佳,过大的Outstanding则会增加硬件开销和系统复杂度,甚至可能导致总线拥塞。
  计算 optimal Outstanding值的公式为:
​  O > (DL × f) / L​
  其中:
  O:Outstanding能力
  DL:平均延迟(秒)
  f:总线频率(Hz)
  L:最大burst长度
  这个公式保证了数据通道能够保持连续传输,避免出现"气泡"(空闲周期)。
  读写通道的差异
  需要注意的是,AXI总线的读写通道是独立的,因此需要分别考虑读写Outstanding能力:
  写操作:主设备可以连续发出N组写地址和写数据命令,路上未完成的写响应最多为N个
  读操作:主设备可以连续发出N个读地址命令,路上未完成的读数据最多为N个
  实际设计中的考量
在这里插入图片描述

在SoC系统设计中,确定Outstanding值是一个迭代的过程:
  分析每个主设备的数据特性(如CPU是延迟敏感型,ISP是规则访问型)
  根据流量特点构造传输模型,估算平均延迟
  使用公式计算理论Outstanding值
  通过系统仿真验证和调整
  保留配置灵活性,以便芯片生产后能进行调节
  
结语
  Outstanding能力是AXI总线设计中至关重要的性能优化手段。通过合理配置Outstanding值,芯片设计者可以在硬件开销和系统性能之间找到最佳平衡点,从而实现高效的数据传输和最优的系统性能。
  正如中国高铁网络需要合理规划列车数量以最大化运输效率一样,SoC设计也需要精心配置Outstanding能力以确保数据高效流动。掌握这一概念,对于任何从事芯片设计的工程师来说都是必不可少的技能。

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐