英特尔奔腾双核处理器T3400 英特尔奔腾双核处理器( 三 )


34.传统的静态分支预测使用两个表:分支历史表和分支地址表,这有这两个表而缺少间接分支地址表,让预测的结果正确率不超过75% 。
35.因此开发人员在Pentium M中,新添加了一个间接分支表,专门用来存储这类型的间接分支地址 。经过上面两方面的改进之后,由于预测精度大为提高,管线全速运行的情况比以前多了,执行单元空闲等待的情况也变少了 。
36.正因为这样,同频率下的Pentium M整体性能比Pentium III高了大约7% 。而且随着分支预测单元的改进,Pentium M也更新了硬件数据预取逻辑,用于从内存中将数据取到缓存中去 。
37.Pentium M采用了和prescott核心Pentium 4处理器相类似的硬件数据预取算法,这种算法要比Pentium III的算法效率更高Pentium M和Pentium III、Pentium 4都一样,是RISC处理器 。
38.这意味着执行单元在处理内部简化命令的时候,远比处理复杂的x86指令更有效率 。换句话说,也就是在执行RISC指令的时候,要比执行通常由三个甚至更多操作数所组成的x86架构更快捷流畅 。
39.因此,x86命令在经过解码器之后,通常会被分解成两个甚至三个微操作数 。例如:一个存储数据到内存或一个处理内存中数据的命令,被分别解码成两个指令 。
40.第一种情况,由计算地址和存储数据到缓冲器两个指令所组成;第二种情况,由从内存中读取数据和操作数据两个指令所组成 。
41.而现在的处理器都具备乱序执行微操作数的能力,因此一条x86指令被分解成多个微操作数之后,能够分别送到执行管线中被处理 。
42.如果这些微操作彼此之间无关,那么分开执行起来自然没有什么问题 。但如果一个指令的执行需要另外一个的执行结果,那么管线就会出现等待现象,等待执行单元将处理完成的结果发送过来,然后才能够继续处理 。
43.这种等待现象在NetBurst架构中并不明显,因为它有很多执行单元,不过对于Pentium M这类型的处理器而言,性能的影响就相当明显了,而且等待状态下的处理器继续浪费能源,这点对于移动处理器来说也是不可接受的 。
44.这也是为什么Pentium M处理器要加入微操作融合技术的原因,它能够尽可能避免出现执行单元处于空闲状态这一情形 。
45.这项技术的工作非常简单,就是根据相关性将x86指令划分成一些部分,然后通过解码器将所有的微操作都集中到一起,然后通过之前确定的相关性划分微操作,从而形成x86指令的子集,有相关性的微操作被划分在一起,由同一个执行单元执行,而不同执行单元所执行的微操作彼此是无关的 。
46.因此不会再出现等待某执行单元的执行结果的情况 。虽然微操作融合需要多做一些工作,不过这对于性能提升是有好处的 。
47.通过测试,使用这项技术能够让整数数据的处理速度提升5%,浮点数据的处理速度提升9% 。Pentium M中的另一项改进就是堆栈管理器 。
48.由于软件使用堆栈非常频繁,有其是当其调用子程序时更是如此 。让执行单元频繁处理PUSH,POP,CALL和RET这样的关于堆栈操作的指令,让执行单元时钟处于运行状态,这不利于处理器控制发热量和能耗 。
49.因此Pentium M中的专用堆栈管理器和堆栈指针寄存器一起工作,堆栈管理器能够识别,像PUSH,POP,CALL和RET这样的指令,在它们经过解码器,网赚但到达执行单元以前预处理它们,从而降低执行单元的负载 。
50.能够在提升性能的同时,进一步控制发热量和能耗 。根据测试表明,使用专用堆栈管理器能够减少整数执行单元5%的指令执行数量 。

推荐阅读