奔腾IV处理器架构剖析
Intel于美国西部时间20日上午(北京时间20日晚间)发布了Pentium4 1.4GHz 和Pentium4 1.5GHz处理器。我们在Intel发布Pentium4处理器的同时,抢先完成了他们的全面测试。Pentium 4 1.4/1.5 GHz的发布表明Intel开始收复失地,从AMD 手中抢回速度之冠。大家回忆一下,就可以发现,在1999年8月AMD发布Athlon处理器之前,Intel的Pentium II和赛扬处理器主宰了高性能桌面处理器市场,Intel在其间取得了巨大的成功,攫取了大部分的处理器市场份额。但是在过去的6个月间,Intel在处理器研发的道路上步履蹒跚,让人不禁怀疑Intel时代是否就要很快结束。尽管Intel在半年内犯下了种种错误,丧失了处理器市场的大半江山,但还是有许多Intel处理器的支持者,希望Intel推出新型处理器来挽回面子,当然Intel也意识到自己四面楚歌的境地,于是把精力和希望全部投入在了今后5年的主打产品-Pentium 4处理器!下面我们就来全面剖析一下Pentium 4处理器。 P4 处理器设计架构 1.超长计算管线Intel在P4处理器中第一次引入了真正全新的IA-32 x86架构,并称其为Netburst(网际爆发)微架构。Intel的PIII处理器是12层计算管线的超标量设计,而P4处理器是20层计算管线的超标量设计,其中集成了多管线并行计算。AMD的Atlon则是10层计算管线,15层浮点管线的超标量设计。 Intel之前回收的1.13GHz的PIII处理器,其Bug原因肯定来自于设计架构和制造工艺之间的冲突,而由于AMD早已转向了铜制程,因此在主频提高的同时,没有类似于Intel遇到的问题。因此这次Intel在制造工艺不变的前提下只能重新设计P4处理器的微架构了。Intel今天发布的P4处理器,内核集成了8KB的一级缓存、12KB的追踪缓存和256KB的二级缓存,三者的工作频率全部和处理器的主频相同。PIII处理器采用的0.18微米制程的速度上限就在1.1-1.2GHz左右,P4处理器的起跳速度是1.4GHz, 这是相同制造工艺,不同架构的PIII处理器所无法达到的。Intel今天发布的1.4GHz、1.5GHz P4处理器还是采用了了0.18微米制造工艺,铝互联制程。那么Intel是如何让不能制造出1.13GHz PIII处理器的工艺来制造1.4、1.5GHz的P4处理器呢?答案就在于架构设计,P4 Netburst(网际爆发)微架构的设计特点就是处理器的主频速度和每个时钟周期内单位计算管线完成指令的数目成反比,单位计算管线的完成的指令越少,处理器的主频越高,但是单位计算管线效能的下降必要影响到处理器的整体计算能力,所以说P4处理器主频的提高,是在牺牲部分效能的前提下达成的。Intel宣称P4处理器所采用的Netburst(网际爆发)微架构设计可以让P4处理器的主频速度比PIII的速度上限提高40%左右,也就是说Netburst(网际爆发)微架构设计的处理器速度上限在1.55-1.7GHz之间。这样的上限速度,就目前来看足以对抗目前AMD铜制程100MHZ DDR外频的雷鸟处理器了。另外明年下半年0.13微米铜制程的启用,也对P4处理器的效能有推波助澜之功效。 2.超长计算管线的不足和弥补Intel这次在P4处理器中采用的Netburst微架构设计,可以说是一个缓兵之计,在不改造现有0.18微米铝制程的前提下,提升处理器的速度。但是这种缓兵之计的缺点也是显而易见的。第一,由于P4处理器采用了20层的超长计算管线,每层计算管线每层分配到工作量的减小,每个时钟周期内获得的指令也相应减少,也就是IPC(Instructions Per Clock)的减少。这种减少意味着Pentium 4处理器每个时钟周期内效率的降低,这也是在许多先期测试中,Pentium 4处理器效能要差于Pentium III处理器和Athlon处理器的主要原因之一。第二,由于目前处理器都使用了分支预测功能来提高内核计算管线的指令处理效能,因此有一个预测错误,整个任务都得从计算管线头部重新开始执行,显然Pentium III处理器中12层计算管线由于预测错误而重新开始执行微操作的时间要短于具有20层计算管线的P4处理器。对于上述2个问题,Intel在P4架构内采用了一系列手段和技术来进行了弥补。首先,对于P4处理器内置的分支预测运算单元效能下降问题, Intel在P4处理器内部集成了4KB大小的BTB(预测目标缓存,branch target buffer)来存储分支预测运算单元前几次所做的分支预测的跳转操作结果,而普通的PIII处理器,在BTB的容量上就逊色P4处理器不少,PIII处理器的BTB容量只有512byte。另外Intel也在P4处理器架构中加入了“高级分支预测运算单元”,希望将分支预测的能力提升到93-94%正确,超过PIII处理器分支预测能力33%。 其次Intel采用了追踪缓存(Trace Cache)来存储p4解码单元送出来的微操作,来解决一旦预测错误后的微操作重新获取问题。追踪缓存(Trace Cache)位于指令解码器和内核第一层计算管线之间,指令在解码单元内获取和解码之后,微操作首先要经过追踪缓存的存储和输出,才能到达内核第一层计算管线并被执行,追踪缓存最多可以存储1200条微操作,其容量是12KB。在之前的P6架构体系中,如PIII处理器在运行的时候,许多程序反复执行相同的操作,耗费了大量的数据,这些数据对于执行效能的意义却不大,因此有必要将重复数据紧密压缩并设计专门的操作来执行这些数据,因此这些操作就被称作SIMD(单指令,多数据流)。 奔腾IV处理器架构剖析(二) Intel这次在P4处理器中加入了SSE2指令集。和之前PIII处理器采用的SSE指令集相比,目前P4的整个SEE2指令集总共有144个,其中包括原来旧有的68组SEE指令及新增加76组SEE2的指令。全新的SEE2指令除了将传统整数MMX寄存器也扩展成128位(128bit MMX),另外还提供了128位SIMD整数运算操作和128位双精密度浮点运算操作。SSE2指令集的引入在一定程度上弥补了P4处理器单位计算管线效能的不足。 Intel这次还在P4处理器的算术逻辑单元(ALU)中添加了快速执行引擎(REE,Rapid Execution Engine),Intel声称REE的运行速度是处理器主频速度的两倍,这样1.5GHzPentium 4处理器的ALU单元运行速度就是3.0GHz,ALU单元利用了类似DDR内存的工作原理,ALU部分电路在一个处理器时种周期的上沿和下沿都可以进行同频运算,0.5个时钟周期内,ALU就可以完成一条算术逻辑指令。由于ALU具体负责处理器的整数运算,因此REE的引入,让P4处理器的整数运算效能比PIII处理器提高了一倍,在半个时钟周期内就可以完成一个整数运算操作。图中金色部分的处理器单元的运行速度全部加倍。 在Pentium 4的前端总线架构上,Intel采用了采用了QDR(Quad Data Rate)技术,在100MHz的系统总线上通过同时传输4条不同的64位数据流达到了400MHz的传输效能(类似ATA-100、DDR采用上下波形传输资料的原理所衍伸出来的技术),因此这次intel称Pentium 4的前端总线速度跑在了400MHz,其实还是在100MHz。400MHz前端总线传输速度的实现,使得P4处理器二级缓存和系统内存界面之间的数据带宽达到了3.2GB/s, 而之前133外频的PIII处理器在这方面的带宽只有1.06GB/s。由于P4处理器的二级缓存是8way,256位全速缓存,因此和一级缓存之间的数据带宽达到了45GB/s,而一级缓存则是4way,256位全速缓存,和处理器内核界面之间的数据带宽也达到了22GB/s之巨。 总得来看12KB的追踪缓存、双倍计算速度的快速执行引擎、SSE2指令集和400MHz前端总线全部用来弥补超长管线对处理器效能的负面影响了。 http://pophard.yeah.net奔腾IV处理器架构剖析(一) Intel于美国西部时间20日上午(北京时间20日晚间)发布了Pentium4 1.4GHz 和Pentium4 1.5GHz处理器。我们在Intel发布Pentium4处理器的同时,抢先完成了他们的全面测试。Pentium 4 1.4/1.5 GHz的发布表明Intel开始收复失地,从AMD 手中抢回速度之冠。大家回忆一下,就可以发现,在1999年8月AMD发布Athlon处理器之前,Intel的Pentium II和赛扬处理器主宰了高性能桌面处理器市场,Intel在其间取得了巨大的成功,攫取了大部分的处理器市场份额。但是在过去的6个月间,Intel在处理器研发的道路上步履蹒跚,让人不禁怀疑Intel时代是否就要很快结束。尽管Intel在半年内犯下了种种错误,丧失了处理器市场的大半江山,但还是有许多Intel处理器的支持者,希望Intel推出新型处理器来挽回面子,当然Intel也意识到自己四面楚歌的境地,于是把精力和希望全部投入在了今后5年的主打产品-Pentium 4处理器!下面我们就来全面剖析一下Pentium 4处理器。 P4 处理器设计架构 1.超长计算管线Intel在P4处理器中第一次引入了真正全新的IA-32 x86架构,并称其为Netburst(网际爆发)微架构。Intel的PIII处理器是12层计算管线的超标量设计,而P4处理器是20层计算管线的超标量设计,其中集成了多管线并行计算。AMD的Atlon则是10层计算管线,15层浮点管线的超标量设计。 Intel之前回收的1.13GHz的PIII处理器,其Bug原因肯定来自于设计架构和制造工艺之间的冲突,而由于AMD早已转向了铜制程,因此在主频提高的同时,没有类似于Intel遇到的问题。因此这次Intel在制造工艺不变的前提下只能重新设计P4处理器的微架构了。Intel今天发布的P4处理器,内核集成了8KB的一级缓存、12KB的追踪缓存和256KB的二级缓存,三者的工作频率全部和处理器的主频相同。PIII处理器采用的0.18微米制程的速度上限就在1.1-1.2GHz左右,P4处理器的起跳速度是1.4GHz, 这是相同制造工艺,不同架构的PIII处理器所无法达到的。Intel今天发布的1.4GHz、1.5GHz P4处理器还是采用了了0.18微米制造工艺,铝互联制程。那么Intel是如何让不能制造出1.13GHz PIII处理器的工艺来制造1.4、1.5GHz的P4处理器呢?答案就在于架构设计,P4 Netburst(网际爆发)微架构的设计特点就是处理器的主频速度和每个时钟周期内单位计算管线完成指令的数目成反比,单位计算管线的完成的指令越少,处理器的主频越高,但是单位计算管线效能的下降必要影响到处理器的整体计算能力,所以说P4处理器主频的提高,是在牺牲部分效能的前提下达成的。Intel宣称P4处理器所采用的Netburst(网际爆发)微架构设计可以让P4处理器的主频速度比PIII的速度上限提高40%左右,也就是说Netburst(网际爆发)微架构设计的处理器速度上限在1.55-1.7GHz之间。这样的上限速度,就目前来看足以对抗目前AMD铜制程100MHZ DDR外频的雷鸟处理器了。另外明年下半年0.13微米铜制程的启用,也对P4处理器的效能有推波助澜之功效。 2.超长计算管线的不足和弥补Intel这次在P4处理器中采用的Netburst微架构设计,可以说是一个缓兵之计,在不改造现有0.18微米铝制程的前提下,提升处理器的速度。但是这种缓兵之计的缺点也是显而易见的。第一,由于P4处理器采用了20层的超长计算管线,每层计算管线每层分配到工作量的减小,每个时钟周期内获得的指令也相应减少,也就是IPC(Instructions Per Clock)的减少。这种减少意味着Pentium 4处理器每个时钟周期内效率的降低,这也是在许多先期测试中,Pentium 4处理器效能要差于Pentium III处理器和Athlon处理器的主要原因之一。第二,由于目前处理器都使用了分支预测功能来提高内核计算管线的指令处理效能,因此有一个预测错误,整个任务都得从计算管线头部重新开始执行,显然Pentium III处理器中12层计算管线由于预测错误而重新开始执行微操作的时间要短于具有20层计算管线的P4处理器。对于上述2个问题,Intel在P4架构内采用了一系列手段和技术来进行了弥补。首先,对于P4处理器内置的分支预测运算单元效能下降问题, Intel在P4处理器内部集成了4KB大小的BTB(预测目标缓存,branch target buffer)来存储分支预测运算单元前几次所做的分支预测的跳转操作结果,而普通的PIII处理器,在BTB的容量上就逊色P4处理器不少,PIII处理器的BTB容量只有512byte。另外Intel也在P4处理器架构中加入了“高级分支预测运算单元”,希望将分支预测的能力提升到93-94%正确,超过PIII处理器分支预测能力33%。 其次Intel采用了追踪缓存(Trace Cache)来存储p4解码单元送出来的微操作,来解决一旦预测错误后的微操作重新获取问题。追踪缓存(Trace Cache)位于指令解码器和内核第一层计算管线之间,指令在解码单元内获取和解码之后,微操作首先要经过追踪缓存的存储和输出,才能到达内核第一层计算管线并被执行,追踪缓存最多可以存储1200条微操作,其容量是12KB。在之前的P6架构体系中,如PIII处理器在运行的时候,许多程序反复执行相同的操作,耗费了大量的数据,这些数据对于执行效能的意义却不大,因此有必要将重复数据紧密压缩并设计专门的操作来执行这些数据,因此这些操作就被称作SIMD(单指令,多数据流)。 奔腾IV处理器架构剖析(二) Intel这次在P4处理器中加入了SSE2指令集。和之前PIII处理器采用的SSE指令集相比,目前P4的整个SEE2指令集总共有144个,其中包括原来旧有的68组SEE指令及新增加76组SEE2的指令。全新的SEE2指令除了将传统整数MMX寄存器也扩展成128位(128bit MMX),另外还提供了128位SIMD整数运算操作和128位双精密度浮点运算操作。SSE2指令集的引入在一定程度上弥补了P4处理器单位计算管线效能的不足。 Intel这次还在P4处理器的算术逻辑单元(ALU)中添加了快速执行引擎(REE,Rapid Execution Engine),Intel声称REE的运行速度是处理器主频速度的两倍,这样1.5GHzPentium 4处理器的ALU单元运行速度就是3.0GHz,ALU单元利用了类似DDR内存的工作原理,ALU部分电路在一个处理器时种周期的上沿和下沿都可以进行同频运算,0.5个时钟周期内,ALU就可以完成一条算术逻辑指令。由于ALU具体负责处理器的整数运算,因此REE的引入,让P4处理器的整数运算效能比PIII处理器提高了一倍,在半个时钟周期内就可以完成一个整数运算操作。图中金色部分的处理器单元的运行速度全部加倍。 在Pentium 4的前端总线架构上,Intel采用了采用了QDR(Quad Data Rate)技术,在100MHz的系统总线上通过同时传输4条不同的64位数据流达到了400MHz的传输效能(类似ATA-100、DDR采用上下波形传输资料的原理所衍伸出来的技术),因此这次intel称Pentium 4的前端总线速度跑在了400MHz,其实还是在100MHz。400MHz前端总线传输速度的实现,使得P4处理器二级缓存和系统内存界面之间的数据带宽达到了3.2GB/s, 而之前133外频的PIII处理器在这方面的带宽只有1.06GB/s。由于P4处理器的二级缓存是8way,256位全速缓存,因此和一级缓存之间的数据带宽达到了45GB/s,而一级缓存则是4way,256位全速缓存,和处理器内核界面之间的数据带宽也达到了22GB/s之巨。
总得来看12KB的追踪缓存、双倍计算速度的快速执行引擎、SSE2指令集和400MHz前端总线全部用来弥补超长管线对处理器效能的负面影响了。