这篇博客简单介绍两个概念:流水线深度 和 频率。

基本概念

  • 流水线深度:一条指令流经 CPU 的过程被切分出来的步骤数量
  • 频率:每秒钟流水线向前推进多少个步骤

现代流水线设计

现代教学用的 CPU 模拟器一般是 5 级流水线,比如 gem5 中的一个 CPU 模型:O3CPU - 5 级乱序流水线

1
Fetch → Decode → Rename → IEW → Commit

以本机的性能核 Golden Cove(2021 年推出)为例,根据 μops cache 是否命中、指令复杂度等因素,流水线深度在 14~19 级。


历史教训:Pentium 4 的 NetBurst 架构

在历史上,CPU 流水线深度并不是稳步增长的。

20 多年前,英特尔曾两次尝试用完全不同的东西来取代其坚固但陈旧的 P6 微架构:

  • 安腾 (Itanium):避免与乱序执行和可变长度解码相关的复杂性,提供非常宽的顺序执行
  • 奔腾 4 (Pentium 4):基于 90nm(”Prescott”)工艺,于 2004 年推出,流水线深度达到了惊人的 31 级

10 GHz 的梦想破灭

Pentium 4 发布时,英特尔表示基于 NetBurst 架构的处理器预计在经过几代制造工艺后能够达到 10 GHz。

然而,采用 NetBurst 微架构处理器的时钟速度最高仅达到 3.8 GHz。

英特尔没有预料到:随着芯片达到 90nm 光刻及更小尺寸时,晶体管功耗泄漏会迅速上升。这种新的功耗泄漏现象加上标准的热输出,在时钟速度增加时造成了冷却和时钟扩展问题。

分支预测错误的巨大惩罚

超长流水线带来的另一个问题是 分支预测错误的巨大惩罚。

在一次 BTB 未命中后,分支延迟飙升,达到了惊人的 每分支 36 个周期。这种极端的惩罚很可能就是 CPU 需要如此大的 4096 条目主 BTB 的原因。此时,NetBurst 可能正在从 L2 获取指令,并使用分支地址计算器来解析目标。


NetBurst 的遗产

Pentium 4 的失败来源于对时钟频率的过度追求,但将 NetBurst 仅仅视为一次失败是错误的。

该架构背后的一些基本理念确实存在缺陷——以牺牲对实际上并不罕见的”边缘情况”的极端惩罚为代价来强调时钟速度,最终证明是一种相当糟糕的策略。

但 NetBurst 为英特尔提供了一个学习平台。该公司首次实现了多种新的微架构技术,并观察它们在实际中的表现。

基于 NetBurst 的这次经验,当相应功能被应用到 Sandy Bridge 上时,英特尔内部并没有重新发明轮子。相反,Sandy Bridge 一上市就表现不俗。这款架构取得了巨大成功,在接下来的几年里,彻底摧毁了 AMD 在所有 CPU 市场领域的地位。

随后,他们通过稳步但保守的进步来巩固这一优势,在微架构演进和工艺节点端口之间交替进行,以降低风险。

而这次成功的基石正是臭名昭著的 NetBurst 架构。


整理自: