内容提要
AMD Zen 3 的 BTB 结构经过优化,采用两级设计,降低了延迟。L1 BTB 容量为 1024,延迟为 1 周期;L2 BTB 容量为 6656,延迟为 4 周期。通过利用之前的 fetch block,提升了性能和容量。
延伸解读
BTB 结构的演变
AMD Zen 3 的 BTB 结构相较于前代产品进行了显著优化,采用了两级设计,去掉了 L0 BTB。这种设计不仅提升了 L1 BTB 的容量,还将延迟降低到一个周期,增强了处理器在高负载下的性能表现。
性能与延迟的权衡
Zen 3 的 L2 BTB 虽然容量较大,但在预测不准确时会产生三个气泡,导致延迟增加到四个周期。这意味着在设计时需要权衡容量与延迟,尤其是在高密度分支的场景下,可能会影响整体性能。
与竞争对手的比较
在与 ARM Neoverse V1 的比较中,Zen 3 在 L1 BTB 的容量上占优,但在 L2 BTB 的延迟和容量方面则不及对手。这显示出 AMD 在微架构设计上的进步,但也提醒我们关注竞争对手的技术进步。
Q&A
AMD Zen 3 的 BTB 结构有什么优化?
AMD Zen 3 的 BTB 结构经过优化,采用两级设计,降低了延迟。
Zen 3 的 L1 和 L2 BTB 的容量和延迟分别是多少?
L1 BTB 容量为 1024,延迟为 1 周期;L2 BTB 容量为 6656,延迟为 4 周期。
Zen 3 的 BTB entry 有什么特点?
Zen 3 的 BTB entry 具有压缩能力,一个 entry 最多保存两条分支。
Zen 3 的 BTB 在不同分支模式下表现如何?
在不同的分支模式下,L1 BTB 和 L2 BTB 的性能表现有所不同,主要依赖 L2 BTB。
AMD Zen 3 和 Zen 2 的 BTB 有什么主要区别?
Zen 3 去掉了 L0 BTB,扩大了 L1 BTB,缩短了延迟,而 L2 BTB 的容量有所调整。
AMD Zen 3 的 BTB 与 ARM Neoverse V1 的 BTB 有何不同?
Zen 3 在 L1 BTB 容量上有优势,但在 L2 BTB 上不及 Neoverse V1,后者的延迟和容量更优。