您的位置:控制工程论坛网论坛 » 嵌入式系统 » 详解Pentium M处理器

zhang1003

zhang1003   |   当前状态:离线

总积分:293  2024年可用积分:0

注册时间: 2007-04-01

最后登录时间: 2007-07-04

空间 发短消息加为好友

详解Pentium M处理器

zhang1003  发表于 2007/4/2 12:08:49      932 查看 2 回复  [上一主题]  [下一主题]

手机阅读

Intel的NetBurst并不是一个成功的架构,尽管Intel在设计Pentium 4之初,目标是10GHz核心频率。但事实证明目标难以完成。工程师难以在提升频率的同时,将发热量控制到一个合理的范围。因此,Intel宣称NetBurst产品频率不提升到4GHz以上。毕竟谁都不想坐在一个“火炉”旁边,谁都不想听到嗡嗡作响的风扇声音。 

  Intel为桌面处理器找到了一条新的开发方法,不提升时钟频率,而是集成多个计算核心。但先天的缺陷难以回避,如果不作任何改变的话,Pentium 4难以和其竞争对手相抗,在当前的处理器测试中,Pentium 4在大多数的测试项目中都落后于AMD。

  NetBurst架构的高发热量和高能耗,不仅让Intel手足无措,也给一些希望购买Intel产品的消费者当头一击。但Intel现在产品线中还是有好产品。尽管Pentium III早已退出了桌面市场,但它在移动市场很快又找到了新的位置,而现在移动市场中的Intel处理器就都是基于和Pentium III相似的架构,只不过采用了更先进的生产工艺和其他一些改进,实现了比Pentium III更小的发热量和更高的总体性能,Pentium III在移动市场获得重生,被命名为—Pentium M。
尽管采用了Pentium III相关的架构,不过Pentium M使用的却是QPB 4倍前端总线,这个总线和Pentium 4的总线是一样的,同时也为Pentium M通过转接卡在Pentium 4普通主板上面使用提供了理论基础。华硕的工程师所开发出来的专用于Pentium M的转接卡就实现了这个功能。
Pentium M处理器到底和其他的处理器架构上面有何不同?Intel一直都没有过多的谈论这款产品的架构。在所有发布的官方文档中,对其性能指标和命名方法的描述也只是只言片语,如:为移动电脑设计的架构,专用的堆栈管理,微操作融合技术(micro-ops fusion),以及增强的Intel SpeedStep技术(EIST)。但是这些描述并不能够将Pentium M的内部架构表述清楚。看来Intel好像并不想透露太过关于Pentium M的细节信息,这里面一定是有原因的,是什么呢?

  其实Pentium M根本就是根据P6架构作出的小幅修改而成的产品,P6架构是Intel很早以前所开发出来的架构,最早曾被用于Pentium Pro,后来Pentium II,Pentium III都使用的是这个架构。那么Pentium M看起来更像是广告铺天盖地的NetBurst架构的一种倒退哦?当然不是,你不能仅将Pentium M看作是一款过时的,已经不合时宜老架构。

  其实在实际的评测中,Pentium M在很多项目上得分都超过了Pentium 4。而P6架构也是Intel开发的最优秀,最成功的一款架构,仅仅从它在市场中存在的时间,以及所衍生出来的产品数量就可知一二。既然如此,同样使用此架构的Pentium M为什么就不能够继续实现其辉煌呢?现在就让我们来看看,相比于Pentium III,Pentium M所作出的具体改进有哪些?

管线和执行核心:

  Pentium M和Pentium III一样,都是基于RISC架构(精简指令集架构)的处理器,不过两款处理器的执行核心有稍有不同。例如:虽然两款处理器都只有5个执行单元,但是两款处理器的执行管线长度是不一样的。Pentium III的整数管线长度为10级,而Pentium M的管线要更长些。当然Pentium M的管线长度尚远远不及Pentium 4,毕竟需要保证Pentium M处理器的执行效率,但是为了今后能够进一步提升处理器的频率,Intel的工程师还是增加了管线长度。

  管线长度决定频率提升的潜力,同时会为处理器带来更多的能耗和发热量,因此管线长度的选定,对移动处理器来说尤其重要。因此通过一些使用经验数据判断,该处理器的管线大约在12-14级左右,也就是说要比Pentium III的管线长一点点。新增加的管线级数,除了用来推升处理器的时钟频率外,在Pentium M处理器中的微操作融合技术也需要更长的管线。这一点将在后文中提及。

  较长管线的缺点还颇多,在带来了更高能耗和更多发热量的同时,还会带来因为分支预测失败后的更多花销。尤其对于现在的超标量体系结构且拥有乱序执行能力的处理器而言,分支预测失败所带来的负面影响不容忽视,而且已经成为影响处理器性能的重要因素。在研发过程中,开发人员都会尽可能降低因为增加执行管线级数而带来的这种影响,那么现在就让我们来看看,Pentium M中是如何改进分支预测单元的。
改进分支预测和硬件数据预取:

  当处理器中的管线开始全速运转,突然发生执行了一个错误的程序分支,那么处理器就要重新查找执行正确的分支,这个过程中,一部分执行单元会出于空闲状态,执行的延迟增加,进一步影响了最终的性能。分支预测逻辑的目的就是为了将这种情况出现的几率最小化。在Pentium M中,分支预测逻辑是主要的改进部分。事实上,Pentium M的分支运测和Pentium 4的很相象。

  准确的说,Pentium M的分支预测单元应该和Prescott核心的Pentium 4处理器相似。它增加了两个部分:一个是识别循环,另一个是预测间接分支。正因为如此,Pentium M中的分支预测和Prescott之前的Pentium 4有明显的不同,而且要比它们更加先进。当然,要想进一步将原本基于使用分支历史表的传统静态分支预测方式改进的更好,难度非常大。但是通过下面几个方面的分支预测单元的改进,Intel的工程师将Pentium M的预测精度整整提高了20%,当然这是和Pentium III相比。

  第一个改进就是增加了循环识别逻辑。传统的静态分支预测方式,分支预测的循环结束条件老是出错。当然能够通过扩大存储分支信息的缓存器容量,使其存储更多的分支信息,然后分析其中的数据来解决问题。但是这样一一的分析数据会造成很长的延迟。所以Pentium M使用了稍微不同的方法,将代码中的循环识别逻辑和循环结论信息独立开来。这样能够极大的提升结束循环的条件预测精度。

  第二个就是改进间接分支预测。所谓间接分支就是一个分支的分支地址,这个地址在程序编译时是不知道的,而且是程序执行时,由相关寄存器的状态来决定的。传统的静态分支预测使用两个表:分支历史表和分支地址表,这有这两个表而缺少间接分支地址表,让预测的结果正确率不超过75%。因此开发人员在Pentium M中,新添加了一个间接分支表,专门用来存储这类型的间接分支地址。

  经过上面两方面的改进之后,由于预测精度大为提高,管线全速运行的情况比以前多了,执行单元空闲等待的情况也变少了。正因为这样,同频率下的Pentium M整体性能比Pentium III高了大约7%。而且随着分支预测单元的改进,Pentium M也更新了硬件数据预取逻辑,用于从内存中将数据取到缓存中去。Pentium M采用了和prescott核心Pentium 4处理器相类似的硬件数据预取算法,这种算法要比Pentium III的算法效率更高

  Pentium M和Pentium III、Pentium 4都一样,是RISC处理器。这意味着执行单元在处理内部简化命令的时候,远比处理复杂的x86指令更有效率。换句话说,也就是在执行RISC指令的时候,要比执行通常由三个甚至更多操作数所组成的x86架构更快捷流畅。因此,x86命令在经过解码器之后,通常会被分解成两个甚至三个微操作数。

  例如:一个存储数据到内存或一个处理内存中数据的命令,被分别解码成两个指令。第一种情况,由计算地址和存储数据到缓冲器两个指令所组成;第二种情况,由从内存中读取数据和操作数据两个指令所组成。而现在的处理器都具备乱序执行微操作数的能力,因此一条x86指令被分解成多个微操作数之后,能够分别送到执行管线中被处理。

  如果这些微操作彼此之间无关,那么分开执行起来自然没有什么问题。但如果一个指令的执行需要另外一个的执行结果,那么管线就会出现等待现象,等待执行单元将处理完成的结果发送过来,然后才能够继续处理。这种等待现象在NetBurst架构中并不明显,因为它有很多执行单元,不过对于Pentium M这类型的处理器而言,性能的影响就相当明显了,而且等待状态下的处理器继续浪费能源,这点对于移动处理器来说也是不可接受的。这也是为什么Pentium M处理器要加入微操作融合技术的原因,它能够尽可能避免出现执行单元处于空闲状态这一情形。

  这项技术的工作非常简单,就是根据相关性将x86指令划分成一些部分,然后通过解码器将所有的微操作都集中到一起,然后通过之前确定的相关性划分微操作,从而形成x86指令的子集,有相关性的微操作被划分在一起,由同一个执行单元执行,而不同执行单元所执行的微操作彼此是无关的。因此不会再出现等待某执行单元的执行结果的情况。虽然微操作融合需要多做一些工作,不过这对于性能提升是有好处的。通过测试,使用这项技术能够让整数数据的处理速度提升5%,浮点数据的处理速度提升9%。

专用堆栈管理器:

  Pentium M中的另一项改进就是堆栈管理器。由于软件使用堆栈非常频繁,有其是当其调用子程序时更是如此。让执行单元频繁处理PUSH,POP,CALL和RET这样的关于堆栈操作的指令,让执行单元时钟处于运行状态,这不利于处理器控制发热量和能耗。因此Pentium M中的专用堆栈管理器和堆栈指针寄存器一起工作,堆栈管理器能够识别,像PUSH,POP,CALL和RET这样的指令,在它们经过解码器,但到达执行单元以前预处理它们,从而降低执行单元的负载。能够在提升性能的同时,进一步控制发热量和能耗。根据测试表明,使用专用堆栈管理器能够减少整数执行单元5%的指令执行数量。

处理器总线:

  尽管Pentium M使用基于Pentium III的架构,但Pentium M采用了完全不同的总线。P6架构的系统总线峰值带宽仅为1GB/s,这对于现在的标准来说太小了。同样考虑到可能传统的总线不太适合现在的应用,因此Intel工程师决定让Pentium M使用Quad Pumped Bus总线。这种总线正是Pentium 4的总线标准。

  事实上,QPB总线也是Pentium M和Pentium 4唯一的相似之处。如果细加分析的话,两者的总线架构还是有一些细微的区别,Pentium M的QPB总线缺少一些功能。例如:最显著的特点就是Pentium 4的系统总线时800MHz,而Pentium M之后533MHz;然后Pentium M的系统总线只支持32位寻址,也就是说最多仅支持4GB的内存空间。最后Pentium M的总线不支持多处理器配置。不过这些差异之处都不太重要,反而是Pentium M和Pentium 4在总线之间的兼容,才奠定了移动处理器在桌面电脑中应用的基础。

SSE2指令集:

  所有的Pentium M处理器都支持SSE和SSE2扩展指令集。因此这也是Pentium M针对Pentium III的一次升级。不过Pentium M并不支持SSE3指令集,毕竟这是在Prescott核心处理器上第一次采用的指令,推出的时间要比Pentium M处理器更晚。

L2缓存的节能措施:

  Pentium M配备有非常大的L2缓存,容量达到2MB。使用大缓存有许多好处,例如能够减少系统总线和内存总线的负荷,达到降低能耗的作用。不过更为特别的一点是,Intel为Pentium M处理器本身也使用了特殊的节省能耗的方法。和Intel其他的处理器一样,Pentium M中的缓存是8路相关,并且将L2缓存被进一步细分为4个部分,每一个部分都可以被独自访问。

  也就是说,处理器在工作时,不需要读取一个缓存也运转整个缓存。因此这样节省的L2能耗大约为4倍。不过采用这种方式L2缓存的延迟会增加1个周期,如果于Pentium III相比的话。另外Pentium M的L1缓存为64KB,其中代码和数据容量各为32KB,是Pentium III L1缓存容量的两倍。

SpeedStep III节能技术:

  因为Pentium M是移动处理器,那么自然会有专门的节能技术,Pentium M中的节能技术是speedstep III。根据使用中的经验来看,处理器的能耗和处理器的频率,处理器的工作量,以及处理器大电压息息相关。换句话说,要想降低处理器的能耗,就要从这三个方面入手。

  因此开发人员设定在处理器工作量较小的时候,通过降低工作频率和电压就可以减少处理器能耗。例如:处理器在处理办公软件的时候,就不是100%负载,而这也是大多数笔记本电脑最常见的应用。因此处理器能够自动下调频率和电压,这一过程十分平滑,不会让使用者有丝毫察觉。这就是speedstep技术的主要任务。

  在Pentium III-M的第一代speedstep中,只提供了两个处理器模式:全速模式和节能模式。当电池电量低于某一个级别或处理器空闲时,就会进入节能模式。在Pentium 4-M处理器中,采用了第二代speedstep,能够自动在三种模式中转化。在这一代中,节能模式和全速模式之间的性能差异巨大,这依赖于处理器的工作量。

  而且工作在节能模式下的处理器,一旦CPU的工作量突然加大或者用户执行了一个大型程序,那么处理器难以快速的提升性能和转换状态,从而使CPU的整体性能收到影响。在Pentium M处理器中的speedstep技术已历三代,能够提供7种不同的状态,能够根据处理器的工作量自动降低频率和电压,而且不同模式之间的转化迅速,不会给用户带来丝毫察觉
现在市面上的Pentium M处理器都基于Dothan核心。处理器核心采用90纳米制造工艺和“应变硅”技术,Dothan核心的制造工艺和Prescott核心Pentium 4处理器是一样的。处理器核心面积为83.6平方毫米,内部含有1亿4千万个晶体管。

1楼 0 0 回复