💡
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
AMD Zen 2 的 BTB 结构与 Zen 1 相似,但容量有所增加,具有三级 BTB(L0、L1 和 L2),容量分别为 8+8、512 和 7168 条分支。与 ARM Neoverse N1 相比,Zen 2 在 BTB 容量上占优,但延迟更长,且两者均未实现单周期预测两条分支。
🎯
关键要点
- AMD Zen 2 的 BTB 结构与 Zen 1 相似,但容量有所增加,具有三级 BTB(L0、L1 和 L2)。
- Zen 2 的 L0 BTB 可以保存 8 条前向分支和 8 条后向分支,预测不会带来流水线气泡。
- Zen 2 的 L1 BTB 可以保存 512 个 entry,预测会产生单个气泡,意味着延迟是两个周期。
- Zen 2 的 L2 BTB 可以保存 7168 个 entry,预测会产生四个气泡,意味着延迟是五个周期。
- Zen 2 的 BTB entry 有压缩能力,一个 entry 最多保存两条分支,但未实现单周期预测两条分支。
- 在不同的分支模式下,Zen 2 的 L1 BTB 显示出不同的容量表现,原因尚不明确。
- Zen 2 的 L2 BTB 依然具有压缩特性,只有在特定模式下才能充分利用其容量。
- 与 Zen 1 相比,Zen 2 在 BTB 容量上有所扩展,但机制上保持一致。
- AMD Zen 2 在 BTB 容量上优于 ARM Neoverse N1,但延迟更长。
- 两者均未实现单周期预测两条分支,需等待后续的处理器版本。
❓
延伸问答
AMD Zen 2 的 BTB 结构有什么特点?
AMD Zen 2 的 BTB 结构具有三级,分别是 L0、L1 和 L2,容量分别为 8+8、512 和 7168 条分支,且与 Zen 1 相似,但容量有所增加。
Zen 2 的 L0 BTB 和 L1 BTB 的延迟分别是多少?
Zen 2 的 L0 BTB 延迟为 1 个周期,L1 BTB 延迟为 2 个周期。
Zen 2 的 L2 BTB 有什么压缩特性?
Zen 2 的 L2 BTB 具有压缩特性,最多可以保存两条分支,但仅在特定模式下才能充分利用其容量。
AMD Zen 2 和 ARM Neoverse N1 的 BTB 有什么比较?
AMD Zen 2 在 BTB 容量上优于 ARM Neoverse N1,但延迟更长,两者均未实现单周期预测两条分支。
Zen 2 的 L1 BTB 在不同分支模式下表现如何?
Zen 2 的 L1 BTB 在不同分支模式下显示出不同的容量表现,具体原因尚不明确。
Zen 2 的 BTB entry 有什么压缩能力?
Zen 2 的 BTB entry 可以保存最多两条分支,前提是两条分支在同一个 64B 缓存行中,并且第一条是条件分支。
🏷️
标签
➡️