NetBurst: The Microarchitecture of the Pentium 4 Processor

本文更新于 2018.10.23

参考: http://www.ecs.umass.edu/ece/koren/ece568/papers/Pentium4.pdf

引言

Intel Pentium 4处理器是Intel在2000年11月发布的旗舰处理器, 它基于Intel NetBurst微架构, 时钟频率1.5GHz, 在当时具有世界领先的性能.

Pentium 4处理器使用130nm CMOS制程, 含有4200万个晶体管, 在1.5GHz频率下功率为55瓦. 它添加了144条128位的SSE2指令.

NetBurst微架构概述

NetBurst微架构的基本框图如下所示:

../../_images/p4_1.png

可见其由4个主要部分组成:

  • in-order front-end
  • out-of-order execution engine
  • 整数与浮点执行单元
  • 内存子系统

In-Order Front End

In-Order front end用于取得(fetch)接下来要执行的指令, 并为稍后将它们送入pipeline做好准备. 它的目标是为out-of-order execution core提供高带宽的解码指令流, 而execution core真正完成指令的执行. front end具有高度精确的分支预测逻辑, 可根据程序执行历史推断(speculate)接下来要执行哪条指令. 预测的指令地址从L2 Cache取得, 然后被解码成名为uops(micro-operations)的可被execution core执行的基本操作.

NetBurst的L1指令Cache称为Execution Trace Cache, 位于指令解码逻辑与execution core之间, 可存储解码后的指令即uops. 仅在所需指令在此发生cache miss时才需要从L2 Cache中取原始指令并交给decoder解码.

Out-of-Order Execution Logic

out-of-order execution logic有多个buffer, 用于平滑和排序指令流, 使其放入pipeline及安排执行时性能更优. out-of-order execution允许不依赖前面指令的后续指令先被执行, 以使得ALU和cache等资源免于空闲.

retirement logic用于将被out-of-order执行的指令重新排序为原始顺序. 它从执行后的指令接收completion status并使architectural state根据程序顺序进行提交(或retired). Pentium 4可以在一个时钟周期内retire 3条uops. This retirement logic ensures that exceptions occur only if the operation causing the exception is the oldest, non-retired operation in the machine. This logic also reports branch history information to the branch predictors at the front end of the machine so they can train with the latest known-good branch-history information.

整数与浮点执行单元

内存子系统

时钟频率

处理器时钟频率的历史趋势

NetBurst微架构

Front End

Out-of-Order Execution Logic

整数与浮点执行单元

内存子系统

性能

结论

作者

本文原文由以下作者完成, 在此表示感谢:

  • Glenn Hinton, Desktop Platforms Group, Intel Corp.
  • Dave Sager, Desktop Platforms Group, Intel Corp.
  • Mike Upton, Desktop Platforms Group, Intel Corp.
  • Darrell Boggs, Desktop Platforms Group, Intel Corp.
  • Doug Carmean, Desktop Platforms Group, Intel Corp.
  • Alan Kyker, Desktop Platforms Group, Intel Corp.
  • Patrice Roussel, Desktop Platforms Group, Intel Corp.