💡
原文中文,约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可以实现每周期预测两条分支。
🏷️
标签
➡️