第一、先来看SSE处理单元翻倍。这点主要是针对K8处理器来说,由于目前K8处理器仅支持64位SSE处理单元,而通常单个指令为128位长度,因此这就需要先拆分再处理,处理完毕后还要再组装成128位长度,显然延迟会大幅增加。而在K10平台,巴塞罗那处理器也开始引入128位SSE处理单元。这样以前要两个周期完成的任务,现在只需要一个周期就可以完成,效率大幅提升。
|
特性 |
当前CPU |
巴塞罗那核心 |
| SSE执行宽度 | 64位 | 128位 |
| 指令预取带宽 | 16字节/周期 | 32字节/周期 |
| 数据缓存带宽 | 2 x 64位加载/周期 | 2 x 128位加载/周期 |
| L2缓存/内存控制器带宽 | 64位/周期 | 128位/周期 |
| 浮点调度深度 |
36 dedicated x 64-bit ops | 36 dedicated x 128-bit ops |
SSE事实上就是英特尔提出的单指令多数据流扩展技术,对各种多媒体计算及应用都可以起到强化作用。当然对提高通用处理器的浮点运算能力也很有帮助,毕竟目前多数应用软件已经过渡到SIMD时代(单指令多数据流),SSE处理单元翻倍将会显着提升软件执行效率。
随着浮点运算能力的增强,K10核心的巴塞罗那处理器将在高性能科学运算以及多媒体编解压缩等方面拥有更出色的表现,值得期待。
第二、分支预测技术改进。CPU所具备的分支预测技术的精准性,会决定该CPU构架最适合的流水线宽度和级数,对提升CPU核心效能很有帮助。K8架构之所以拥有出色的性能表现,全赖于其分支预测技术与架构的搭配达到了非常和谐的效果。不过其并没进一切可能缩小预测数据的范围,这也就意味着有些即将用到的数据可能没有被提前预读取,后果是还要从内存或硬盘中调取数据。可想而知延迟会增加不少,从而无法更好发挥出CPU的核心效能。
那么怎样才能进一步缩小未预测数据的范围呢(即进一步提升核心效能)?其实英特尔在Pentium M构架中就已经做到了这一点,就是加入间接分支预测器,也就是所谓的乱序执行能力。早在英特尔NetBurst构架中,就已经见识到间接分支预测技术带来的好处,其帮助NetBurst构架的错误率降低12%,而在一些特殊应用中(253.perlbmk专项性能),错误率更是降低了55%,当然这也使英特尔在当时延续了其在多媒体性能方面的优势。
正因为间接分支预测能够进一步提升CPU的核心效能,因此AMD也将在K10架构的巴塞罗那处理器中引入该优化技术。不过AMD赋予这项技术更多、更新的理念,相信这也将是K10处理器制胜的关键所在。具体改进细则如下:
1.更高级的分支预测功能:AMD新架构增加了一倍返回堆栈容量,添加了更多分支历史比特数据,并且内建了一个512项的间接分支预测器(indirect branch predictor)。
2.32字节的指令预取。通过减少预取指令的分拆来大幅提升处理效率。
3.边带堆栈优化器(Sideband stack optimizer),堆栈优化将减少对单位带宽的占用。
其它改进还包括对转换旁视缓冲器(TLB) 的优化、附加的Fastpath指令、比特操作扩展和SSE指令集等等。

