更新时间:2023-10-04 22:20
Netburst微处理器架构为英特尔的X86微处理器架构,P6微处理器制程的后继者。第一个使用这架构的是Willamette核心,于2000年推出。Willamette是第一代Pentium 4所用的核心,而全部的Pentium 4都是使用Netburst。2001年推出的Foster〔Xeon核心〕亦是使用本架构,同时基于Pentium 4的Celeron、Celeron D,以及双核心的Pentium D、Pentium Extreme Edition都是使用本架构。部份群组将Netburst称作Intel P7或Intel 80786,但都不是官方名称。
Intel NetBurst微结构是Intel Pentium 4处理器的基础。它包含几个重要的新特性和革新,这些革新与新特性能够让Intel P entium 4处理器和未来的IA-32处理器的性能在今后的数年中的处于工业领先的地位。这个文章介绍了Intel NetBurst微结构中的非常重要的特性和革新。
使用了NetBurst微结构的Pentium 4处理器是一个完全重新设计的处理器,它拥有很多改进了的革新特性的新技术和性能,比如在以前的Intel微结构中介绍的“乱序推测执行”和“超标量执行”。很多这种新的革新和改进使得处理器技术、处理技术和以前不能在高容量中实现的电路设计、可制造方法等方面的改进成为可能。新的微结构的特性和所带来的好处在下面的章节中定义。
一个受关注的结构的定义的成果被用来研究很多先进的处理器技术的益处和确定未来几年最接近的改进全部处理器的性能。这个定义成果的结果是构造了一个在保持平均大约是P6微结构的10%到20%的IPC的情况下将频率能力从P6的微结构显著地提高40%以上的微结构(在相同的制造处理下)。在这个设计中,尽管IPC比较低,增加了的频率能力弥补了这个(性能=频率×IPC),并将提供给最终用户全面的更高的执行能力。这一切NetBurst微结构利用超级管道技术得以实现,超级管道技术的管道深度是P6微结构的2倍。尽管这个较深的管道提供更高的频率,潜在的与较长的管道有关的性能影响在设计中被包含和克服。这个设计成果的关注点在于:
分支预测损失的解释:就象P6,NetBurst微结构利用乱序推测执行。处理器一般使用一种分支预测算法来预测程序代码中的分支结果,然后推测性地执行预测出的代码分支。尽管分支预测算法有很高的精确度,但还是不可能达到100%的准确。如果处理器错误预测一个分支,那么所有的推测执行的指令必须从处理器的流水线中清除出来以便重新启动程序正确分支的指令执行。更深的流水线设计中,更多的指令必须从流水线里清除出来,结果是造成分支错误预测出现时有了更长的恢复时间。综合考虑的结果是有更多更难预测的分支的应用程序将使得IPC的平均值更低。
错误预测损失的最小化:为了最小化分支错误预测的损失和最大化平均IPC,深深的流水线NetBurst微结构极大地减低了分支错误预测的数目并提供了从任何错误预测分支恢复的快速方法。为了最小化这个损失,NetBurst微结构实现了一个高级动态执行引擎和一个执行跟踪高速缓存。这些特性都将会在本文后面介绍。
尽管处理器有高频率能力,它必须提供一种方法来确保连续地将要执行的指令提供给执行单元(整数或浮点数)。这确保了这些高频单元执行指令能执行指令(而不是坐等)。用这些在NetBurst微结构中的高频以及快速执行引擎的执行,算术逻辑单元运行于2倍的核心频率,Intel实现了很多能确保这些执行单元获得连续指令流执行的特性。Intel实现了400-MHz系统总线、高级传输高速缓存、执行跟踪高速缓存、高级动态执行引擎和一个低等待1级数据高速缓存。这些特性一起工作为处理器的高性能执行单元提供指令和数据,从而使他们能够在高频小执行代码而不是空等待。
很多应用程序通常在大数据集上执行重复的操作。更进一步,卷入到这些操作中的数据集可以用小量的位来表示成为小的值。这两者的能够结合起来,利用简洁表示的数据集和执行能操作这些简洁的数据集的指令来改进应用程序的性能。这种操作类型称作为单指令多数据(SIMD)并能降低程序执行所需要的指令的整体数量。NetBurst微结构实现了被称作为流SIMD扩展2(SSE2)的144个新SIMD指令。SSE2指令集增强了以前那些利用MMX技术和SSE技术的SIMD指令。这些新指令支持128位的SIMD整数操作和128位SIMD双精度浮点操作。把所给的指令能操作的数据的数量加倍,则只有一半编码循环里的指令需要被执行。
超级管道技术:与P6微结构相比,NetBurst微结构的超级管道技术加倍了管道的深度。分支预测/恢复管道这个关键的管道在NetBurst微结构中是用20级的管道实现的,与此相比,在P6微结构中等同的管道只有10级管道。这个技术显著地提高了处理器的性能和基本微结构的频率伸缩性。
执行跟踪高速缓存:执行跟踪高速缓存是一个实现1级指令高速缓存的创新的方法。它存储解码的x86指令(微操作),因此消除了与从主执行循环到指令解码器有关的等待。另外,执行跟踪高速缓存存储这些在程序执行流程路径上的微操作,在代码中的分支结果被综合到高速缓存的相同的行。这增加了高速缓存中的指令流量和更好地使用全局高速缓存空间(12K微操作),因为高速缓存不再存储那些分支过的和永远不会执行的指令。其结果是得到一个传递大容量指令到处理器的执行单元和一个降低从错误预测的分支恢复的全部时间的方法。
快速执行引擎:通过将结构、物理和电路设计的结合,在处理器中的简单的算术逻辑单元(ALUs)运行在2倍的处理器核心频率下。这允许ALUs用核心时钟一半的延迟响应来执行特定的指令从而得到更高的执行吞吐量和降低执行响应延迟。
400MHz系统总线:通过在100MHz时钟系统总线上使用四倍数据传送的物理信号设计和一个允许持续400MHz数据传送的缓冲设计,Pentium 4处理器支持Intel的最高性能桌面系统总线传递每秒3.2GB的数据进出处理器,在Pentium III处理器的133MHz系统总线下传输是1.06GB/s。
高级动态执行:高级动态执行引擎是一个很深的保持执行单元执行指令的乱序推测执行引擎。它靠提供一个执行单元能选择的很大的指令窗口来实现。大的乱序指令窗口允许处理器消除发生在指令等待相关内容解决时产生的延迟。一个更通用的延迟形式时等待在高速缓存中没有选中的数据从存储器装入。这在高频率设计中时很重要的,因为到主存响应延迟的增加关系到核心频率。NetBurst微结构能有126个以上的指令在这个窗口中,相比较而言P6微结构的窗口就要小很多,它只能有42个指令。
高级动态执行引擎也提高分支预测能力,允许Pentium 4处理器更精确地预测程序分支。相对于P6的处理器分支预测能力,它将大约降低分支错误预测的数量33%以上。它是靠实现一个4KB分支目标缓冲来保存以前分支的更多细节,并实现更高级的分支预测算法来达到上述目标的。这个提高的分支预测的能力是全面降低NetBurst微结构的分支错误预测损失灵敏性的关键设计部件之一。
高级传送高速缓存:2级高级传送高速缓存有256KB大小,有一个在2级高速缓存和处理器核心之间的更高数据吞吐量的通道。高级传送高速缓存由每核心时钟传送数据的256位(32字节)接口组成。作为结果,一个1.4GHz Pentium 4处理器可以得到一个44.8GB/s(32字节×1(每时钟数据传送)×1.4GHz = 44.8GB/s)的数据传送速率。和1GHz Pentium III处理器的16GB/s数据传送率相比,它提供Pentium 4处理器保持高频执行单元执行指令而不是坐等。
流SIMD扩展2(SSE2):作为SSE2的介绍,NetBurst微结通过增加144条新指令扩展SIMD的MMX技术和SSE技术的能力,这144条新指令提供128位SIMD整数算法操作和128位SIMD双精度浮点。这些新的指令提供了降低执行特别程序任务所需要的全部指令数的能力,其结果是提供一个全面的性能提高。它们促进了程序的更广泛的应用范围,包括视频、语言、图象照片处理、加密、金融、工程和科学应用。