集智达——为您详解Pentium M处理器 点击:610 | 回复:0



山高水长

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 5回
  • 年度积分:0
  • 历史总积分:123
  • 注册:2006年6月14日
发表于:2006-06-22 09:34:00
楼主
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处理器要加入微操作融合


热门招聘
相关主题

官方公众号

智造工程师