Pentium 4 微架构的设计思想

http://com.6to23.com/
http://www.cnhack.org/

前言

  Intel NetBus微架构是Pentium 4处理机的基石,它包括几个重要的新特点和创新,将允许Intel公司在今后几年交付工业领先性能的Pentium 4处理机和IA-32处理机,本文描述这些最重要的特点和创新。

  处理机的架构与微架构

  处理机的架构指的是指令集、寄存器和程序员公用的内存驻留的数据结构,它们从一代架构到下一代架构得到维持和增强。处理机的微架构指的是处理机架构在硅片上的实现。在系列的处理机中,典型的象IA-32处理机,从一代处理机到下一代处理机微架构改变,而实现相同公用的处理机架构。IA-32架构是以x86指令集和寄存器为基础的,通过一代代IA-32处理机得到加强和扩充,而依然维持为运行最早的IA-32处理机所写的代码的向后兼容性。

  为推动特定处理机架构处理机性能的增长,历史上一直需要新的微架构,每一代微架构生命周期初期都提供了比过去巨大的性能增长。然而,随着微架构设计的成熟,所提供的性能开始变小。为了维持市场对性能轨线的期望,需要新的微架构提升。Intel公司NetBus微架构是自实现IA-32架构以来真正的最新一代微架构,与对IA-32架构的几个扩充一起,其设计不仅仅是增加IA-32处理机单纯的指令处理速度,而是释放了丰富的视听化的internet资源。NetBus微架构允许Pentium 4处理机交付这种下一代的性能,使用户能得到充分的体验和欣赏,而不是仅盯着加快如文字处理和电子表处理这类的应用,不象多媒体应用对性能有几乎无限制的要求,这类应用只需要保持与人类响应时间水平一致的速度就可以了。



  Intel公司微架构和总性能轨迹的历史性观察

  是什么决定真正的处理机性能

  真实性能的唯一测量是执行给定应用程序所用的时间量。与流行的误解相反,既不是单独的时钟频率(MHZ),也不是单独的每周期执行的指令数(IPC),真正的性能是时钟频率(MHz)与IPC的结合:

  性能=MHz x IPC

  这表明性能可通过增加时钟频率,IPC来改进,最好使两者都增加。时钟频率是制造工艺(制程)和微架构的函数,在给定的时钟频率下,IPC是处理机微架构和被执行的特定应用的函数。虽然同时改进时钟频率和IPC并不总是可行的,增加一个并保持另一个与前一代接近不变仍然可达到值得注目的更高的性能水平。除上述两种方法外,通过减少执行特定任务所用的指令数也能增加性能,单指令多数据(SIMD)就是用于实现这个目标的一种技术。Intel公司1996年在采用MMX技术的Pentium 2处理机上首次实现了64位的整数SIMD指令,其后在Pentium 3处理机上引入128位的SIMD单精度浮点(SSE)指令。

  应用大致可分为两类:整数/基本的办公生产力应用和浮点/多媒体应用。这些不同种类应用可达到的IPC变化极大,这种变化典型的受到应用代码分支数量和这些分支的可预测性的严重影响。难以预测的分支越多,误预测和进行非生产性工作的可能性越高。

  整数和办公生产力应用,如文字处理和电子表,在代码中往往有许多难以预测的分支,从而减少了的总的IPC潜力。结果,在以微架构手段如更深的流水线增加这些应用的性能时就遇到更多的阻力。另外,显著提升这一类应用的性能水平对增加用户的体验并不是必要的,因为这一类应用仅需要保持与人类读写响应时间水平一致就可以了,如今的高档Pentium 3处理机完全满足这种要求。

  浮点和多媒体应用,往往有完全可预测的分支,因而自然有更高的平均IPC潜力,结果,这种类型的应用通常随时钟频率增加而提高性能,并倾向于从更深流水线中获取更大的好处。另外,这些应用所需的处理能力往往是无限制的,可用的性能越高,用户的体验越好。

  NetBurst 微架构

  采用NetBurst微架构的Pentium 4处理机是一个完全重新设计的处理机,它交付了许多具有创新特点的新技术和能力,虽然有些是在前一代微架构上引入的,如“乱序推测执行”和“超标量执行”。这许多新的创新和进步,使在大批量、可制造解决中改进处理机技术、工艺技术和电路设计成为可能,而在以前是不可能实现的。下面详细说明新架构的特点和随之而来的好处。

  为性能而设计

  架构定义的努力一直是集中在研究许多先进处理机技术的好处,确定改进未来多年处理机全面性能的最佳途径。这种定义努力的结果是:显著增加频率能力,在相同的制造工艺上比P6微架构高40%以上的时钟频率,保持在10%到20%内平均IPC水平。在这个设计中,虽然IPC低了,增加频率能力得多失少(性能=频率xIPC),因而给最终用户交付了整体更高的性能能力。这是在NetBurst微架构中通过实现超流水线完成的,P6微架构的流水线深度加倍。虽然更深的流水线交付了显著高的频率水平,设计中综合及克服了与更长流水线有关的潜在性能影响。设计努力集中如下几方面:

  最小化与分支误预测有关的惩罚

  分支误预测惩罚的解释:与P6微架构一样,NetBurst微架构也利用乱序执行、推测执行的好处。这里处理机例常使用内部分支预测算法来预测分支代码中分支结果,然后推测执行下面预测的代码分支。虽然分支预测算法是高度精确的,但并非100%精确。如果处理机误预测了一个分支,必须冲掉处理机中所有推测执行的指令,以重新启动下面正确程序分支的指令执行。对深度流水线设计,必须从流水线中冲掉的指令越多,导致从分支误预测的恢复时间就越长,难以预测的分支往往有较低的平均IPC。

  最小化误预测惩罚

  为最小化分支误预测惩罚和最大化平均IPC,深度流水线的NetBurst微架构大大减少了分支误预测的数量,并提供了从任意已误预测的分支快速恢复的方法。为最小化这种惩罚,NetBurst微架构已实现了一种先进的动态执行引擎(ADE)和执行追踪Cache。这两种特点在本文后面描述。

  保持高频率执行单元忙

  虽然处理机有高频率的能力,但必须提供一种手段确保给执行单元(整数和浮点)连续供应用于执行的指令,已确保这些高频率执行单元始终执行指令(不空闲)。对NetBurst微架构中这些高频率执行单元和快速执行引擎(REE),这里算术逻辑单元ALU运行在双倍CPU核心频率,Intel公司已实现了400-Mhz的系统总线,先进传输Cache(ATC),执行追踪Cache,先进的动态执行引擎(ADE),以及低时延的L1数据Cache,这些特点协同工作,给处理机的高频率执行单元快速提供指令和数据,使它们一直执行代码而不是在高频率下闲置。

  减少完成任务或程序所需的指令数

  许多应用常对大数据集执行重复性操作,此外,这些操作涉及的数据集往往是可用小数量的二进制位表示的小数值。据此,可通过紧凑表示的数据集,和实现可对这些紧凑数据集操作的指令,来改进应用的性能。这种类型的操作称为单指令多数据(SIMD),它可减少程序需要执行的指令总数。NetBurst微架构实现了144条新的SIMD指令,称为流式SIMD扩充2(SSE2)。SSE2指令增强了以前随MMX技术和SIMD技术交付的SIMD指令,这些新指令支持128位SIMD整数操作和128位SIMD双精度浮点操作。通过加倍给定指令可操作的数据量,在代码循环中仅需执行一半数量的指令。

  NetBurst微架构特点细节

  超流水线技术:与P6微架构10段流水线相比,NetBurst微架构超流水线技术加倍了流水线深度,关键的一条流水线-分支预测/恢复流水线是用20段实现的。这种技术显著增加了已微架构为基础的处理机性能和频率扩展能力。

  执行追踪Cache:执行追踪Cache是实现L1指令Cache的一种创新方法。它缓存已译码的x86指令(micro-ops微操作码),因而从主要执行回路中消除了与指令译码有关的时延。另外,执行追踪Cache以程序执行流路径的次序保存这些微操作码,这里代码中的分支结果结合在同一Cache行中。由于追踪Cache不再保存已分支结束和再不执行的指令,这就增加了来自追踪Cache的指令流,更好地利用了追踪Cache全部的存储空间(12K micro-ops微操作码)。这个结果意味着,可以交付给处理机执行单元更高流量的指令,并且减少了从已发生误预测分支中恢复所需的全部时间。

  快速执行引擎REE:通过架构、物理和电路设计的配合,处理机中简单的算术逻辑单元ALU可运行于两倍处理机核心频率。这就允许ALU用1/2核心时钟宽度的时延执行某些指令,除减少执行时延外,可产生更高的执行吞吐量。

  400-MHz 系统总线: 通过一种四泵(quad pumping)的物理信号发送和缓冲方案,允许在100-MHz时钟的系统总线上持续不变的400-MHz的数据传输。Pentium 4处理机支持Inetel最高性能台式系统总线,处理机内部和外部每秒可传输3.2GB数据。这可与Pentium III 处理机133-MHz系统总线上1.06GB/s的数据传输相比较。

  先进的动态执行:先进的动态执行引擎是一个很深的乱序推测执行引擎,它照管执行单元执行指令,通过提供很大的指令窗口,执行单元可从中选取指令。大的乱序指令窗口可避免由于等待解决相关问题的指令引起的流水线停滞。随着主存相对于核心频率时延的增加,这方面在高频率设计中非常重要。NetBurst微架构的指令窗口可达126条指令(飞行),相比之下P6微架构42条的指令窗口就小的多了。先进的动态执行引擎还交付一种增强的分支预测能力,它允许Pentium 4 处理机更精确地预测程序分支,这对相当于将P6处理机分支误预测数减少了33%有实实在在的影响。这是通过一个可保存更详细的过去分支历史的4KB分支目标缓冲器,以及更先进的分支预测算法实现的。这种增强的分支预测能力是一个关键设计元素,它降低了NetBurst微架构对分支误预测惩罚的整个敏感度。

  先进的传输Cache: L2 Cache(ATC)容量为256KB,它交付了L2 Cache和处理机核心通道间高的多的数据吞吐量。先进的传输Cache 组成了256位(32字节)的接口,在每个核心时钟传输数据。结果,1.4-GHz的Pentium 4 处理机可交付44.8GB/秒 的数据传输率(32 字节 x 1 (每时钟数据传输) x 1.4 GHz = 44.8GB/秒)。与1GHz 的Pentium III 处理机16GB/秒的传输率比较,它给Pentinim 4处理机维持高频率执行单元执行指令作出了贡献。

  流式SIMD扩充2(SSE2):SSE2的引入使NetBurst微架构扩充了MMX技术和SSE技术的SIMD能力,144条新指令,128位SIMD整数运算操作,128位SIMD双精度浮点操作。这些新指令提供了减少执行特定程序任务所需的指令总数的能力, 最终对性能增加作出贡献。它们促进了范围广泛的应用,包括视频,语音,图象,图片处理,加密,财政,工程和科学应用。

  综合性能展望

  Pentium 4处理机对当今可用的大多数现有软件应用显示出直接的性能改进,由于性能水平变化取决于应用类别类型,执行指令和指令序列的应用趋向于在新的微架构上优化执行。随着时间的推移,更多的应用要优化,或是专门对微架构进行汇编级优化,或是使用最新NetBurst优化的编译器和库进行修改,当软件运行在Pentium 4处理机上时,我们将继续看到更大程度的性能扩展。总而言之,以NetBurst微架构为基础的Pentium 4处理机给应用和用法提供了性能加速,使用户能真正体验和欣赏它。这些用法包括3D可视化,游戏,视频.,语音,和图象图片处理,加密,财政,工程和科学应用。

译者:注意 Pentium 和 Seraph Chutium 是不是有些许的相似……呵呵

 

转载请保持原文完整