Pentium M处理器是Intel开发的一款处理器,采用了不同于以往提升时钟频率的方法,而是通过集成多个计算核心来提高性能。
产品介绍
Intel的NetBurst并不是一个成功的架构,尽管Intel在设计Pentium 4之初,目标是10GHz核心频率。但事实证明目标难以完成。工程师难以在提升频率的同时,将发热量控制到一个合理的范围。因此,Intel宣称NetBurst产品频率不提升到4GHz以上。毕竟谁都不想坐在一个“火炉”旁边,谁都不想听到嗡嗡作响的风扇声音。
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在
总线之间的兼容,才奠定了
移动处理器在桌面电脑中应用的基础。
指令集
所有的Pentium M处理器都支持SSE和SSE2
扩展指令集。因此这也是Pentium M针对Pentium III的一次升级。不过Pentium M并不支持
SSE3指令集,毕竟这是在Prescott核心处理器上第一次采用的指令,推出的时间要比Pentium M处理器更晚。
节能措施
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缓存容量的两倍。
节能技术
因为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千万个晶体管。
通过下表能够直观的比较Dothan核心的Pentium M处理器和Pentium 4的差别: