ARM Neoverse V1 (代号 Zeus) 的 BTB 结构分析

ARM Neoverse V1 (代号 Zeus) 的 BTB 结构分析

💡 原文中文,约7900字,阅读约需19分钟。
📝

内容提要

ARM Neoverse V1的BTB结构分析显示,具有96条入口的nano BTB和8K条入口的主BTB。测试表明,nano BTB在无条件分支时每周期可预测两条分支,但在条件分支时容量减半,无法同时预测。主BTB在特定条件下存在延迟和性能瓶颈。整体来看,Neoverse V1在不同分支类型下表现复杂,存在遗留问题。

🎯

关键要点

  • ARM Neoverse V1的BTB结构包含96条入口的nano BTB和8K条入口的主BTB。
  • nano BTB在无条件分支时每周期可预测两条分支,但在条件分支时容量减半,无法同时预测。
  • 主BTB在特定条件下存在延迟和性能瓶颈。
  • 在stride=4B无条件分支情况下,nano BTB未能表现出完整的96条容量。
  • 在stride=4B条件分支情况下,nano BTB只表现出48条容量,未观察到每周期预测两条分支。
  • 在stride=8B无条件分支情况下,nano BTB完整表现出96条容量,且实现了CPI=0.5。
  • 在stride=8B条件分支情况下,nano BTB容量减半,未观察到每周期预测两条分支。
  • 在stride=16B无条件分支情况下,nano BTB表现出96条容量,且实现了每周期预测两条分支。
  • 在stride=32B无条件分支情况下,性能在1024条分支后略微下降。
  • 在条件分支情况下,nano BTB的容量减半,且未能实现每周期预测两条分支。
  • 在stride=4B无条件/条件情况下,主BTB未能如预期工作,导致性能问题。
  • Neoverse V1的BTB设计在某些条件下能够实现每周期预测两条分支,但在条件分支情况下受限于带宽问题。

延伸问答

ARM Neoverse V1的BTB结构有什么特点?

ARM Neoverse V1的BTB结构包含96条入口的nano BTB和8K条入口的主BTB。

nano BTB在无条件分支情况下的表现如何?

在无条件分支情况下,nano BTB每周期可预测两条分支,但在条件分支时容量减半,无法同时预测。

主BTB在特定条件下存在哪些问题?

主BTB在特定条件下存在延迟和性能瓶颈,尤其是在高分支密度时。

在stride=4B条件分支情况下,nano BTB的表现如何?

在stride=4B条件分支情况下,nano BTB只表现出48条容量,未观察到每周期预测两条分支。

ARM Neoverse V1的BTB设计有什么遗留问题?

在某些情况下,nano BTB未能如预期工作,导致性能问题,尤其是在条件分支情况下。

如何实现每周期预测两条分支?

当遇到uncond + uncond或cond + uncond时,BTB可以实现每周期预测两条分支。

➡️

继续阅读