SSE2扩展指令集是非常特殊的处理器指令,简单的SSE2指令可以在两个寄存器之间完成数据传输。例如,如果一个指令指令有4个字节,可是如果指令需要附加内存地址,那么他们的长度就会发生变化,可能至少需要6~8个字节才能完成操作。若是在64bit模式中,在一条指令的头部还要附加1个字节的前缀,处理器就要使用更多的寄存器来存储这些冗长的指令。因此在64bit模式中,SSE2指令的长度经常会高达7~9个字节。而SSE1指令的长度也并不低,某些矢量指令的长度甚至会小于1个字节,但是标量指令却可以达到7~9字节。

每个时钟周期内K8处理器可以取回一个长度为16个字节的代码块。处理器会从L1高速缓存中读取数据,将他们萃取成指令代码。此后将指令代码发送给解译器的通道进行处理。一般来说处理器中的指令长度为5字节,那么16字节长度的代码块可以包含3条指令。因此K8处理器每个时钟周期平均可以处理3条指令。不过我们也注意到,SSE指令集中很多指令长度也有可能大于5个字节。因此个时钟周期取回16个字节的处理效率并不高。

K10中每次将能取回32字节的代码块,处理器每个时钟周期能处理的指令数将大幅提高,若处理器一次能取回32字节的代码块,那么编译器就能得到5条指令。若处理器每次取回16自己代码块,那么必须使用2个时钟周期才能完成操作。
可见K8到K10的转变,微架构亦作出了优化调整,即使在微架构的改善中,AMD也贯穿了一个“宽”字,这就为K10实现更强的性能奠定了基础。优秀的连接架构加上改良的微架构,让法拉利跑车奔驰在高速公路之上,K10的成功是必然的,然而这些相对于AMD的真四核设计又不过是大餐前的茶点。
版权作品 未经许可 请勿转载
|