奔腾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前端总线全部用来弥补超长管线对处理器效能的负面影响了。

奔腾IV处理器架构剖析相关推荐

  1. 【GPGPU编程】GPGPU架构剖析之谓词寄存器

    文章目录 概念 作用 架构设计 如何使用?How 条件执行 为奇数和偶数线程分别执行不同操作 条件赋值 对数组执行不同操作 分类 注意事项(编程时) 我们知道CPU可以控制程序的条件执行,GPGPU也 ...

  2. 实时 Linux 架构剖析

    转自@https://www.ibm.com/developerworks/cn/linux/l-real-time-linux/#resources 本文探索了一些支持实时特性的 Linux 架构, ...

  3. 华为昇腾 AI 处理器架构大揭秘! | 华为昇腾师资培训沙龙武汉场

    「无 AI,不科技」.在AI 产业逐步落地成熟的今天,AI 人才的争夺战已打响,甚至有不少网友预测,未来AI 开发将成为人人必备的技能之一.不过,现实来看,无论是 AI 三驾马车中的数据.算力.算法, ...

  4. 【免费福利】零AI基础,如何搭建聊天机器人:技术架构剖析

    作为人工智能领域最为重要的技术,自然语言处理的应用在工业界无处不在.从网页公开数据的分析和抽取.情感分析.机器翻译.智能客服.问答系统到聊天机器人,它的重要性不言而喻. 今天我们来探讨一下自然语言处理 ...

  5. 为智能手机VR体验而生,ARM公布最新处理器架构

    芯片巨头ARM发布最新CPU GPU架构,预言明年移动VR体验将成为日常. 移动芯片巨头ARM最近公布了其最新的处理器架构,ARM Cortex-A73 中央处理器(CPU)和 ARM Mali-G7 ...

  6. CPU处理器架构和工作原理浅析

    汇编语言是学习计算机如何工作的很好的工具,它需要我们具备计算机硬件的工作知识. 基本微机设计 下图给出了假想机的基本设计.中央处理单元(CPU)是进行算术和逻辑操作的部件,包含了有限数量的存储位置-- ...

  7. 32位x86处理器架构

    本节重点讲解了 32 位 x86 处理器的基本架构特点.这些处理器包括了 Intel IA-32 系列中的成员和所有 32 位 AMD 处理器. 操作模式 x86 处理器有三个主要的操作模式:保护模式 ...

  8. 64位x86-64处理器架构

    本节重点关注所有使用 x86-64 指令集的 64 位处理器的基本架构细节.这些处理器包括 Intel 64 和 AMD64 处理器系列.指令集是已讨论的 x86 指令集的 64 位扩展.以下为一些基 ...

  9. 重磅公开课推荐 | 如何搭建聊天机器人:技术架构剖析

    作为人工智能领域最为重要的技术,自然语言处理的应用在工业界无处不在.从网页公开数据的分析和抽取.情感分析.机器翻译.智能客服.问答系统到聊天机器人,它的重要性不言而喻. 在本次公开课中我们来探讨自然语 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十九) - 全卷积网络(FCN)
  2. python程序保存_初识python 文件读取 保存
  3. mysql duplicateentry_[MySQL]mysqldump出来数据再导入回去,为什么会出现Duplicate entry?...
  4. JZOJ 3806. 【NOIP2014模拟8.24】小X 的道路修建
  5. 第三次学JAVA再学不好就吃翔(part51)--String类的转换功能
  6. 洛谷P3270:成绩比较(容斥、组合数学)
  7. web应用程序并发测试_测试并发应用
  8. mysql的字段长度_【mysql】字段类型和长度的解释
  9. 30道MySQL基础面试题
  10. [转载] python数据类型转换
  11. Libnet核心数据结构
  12. STM32的选型参考
  13. MyScript 手写识别数学公式、图形 自动计算
  14. 计算机及格率用什么函数,excel计算及格率函数的使用教程
  15. 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
  16. 应付模块的R12 TRACE 和 FND Debug 文件 / FND 日志 调试
  17. R语言Circos图可视化
  18. Cocoapods 黑魔法
  19. 在线淘礼金免单采集网网站源码
  20. C - Justice

热门文章

  1. C++继承的构造函数、多重继承、虚继承
  2. 纯函数是什么?怎么合理运用纯函数?
  3. vscode python flake8 报错怎么办
  4. Node.js | 使用 zlib 内置模块进行 gzip 压缩
  5. requests手动添加cookies
  6. Ensemble几种方式原理
  7. 苹果x屏幕出现一条绿线_部分用户反映苹果iPhone 12屏幕出现划痕
  8. java微信小程序太阳码中间logo变成成想要的图片
  9. Latex中Beamer幻灯片技巧(一)——幻灯片theme设置
  10. Docker容器设置端口映射的方法