在至强E5中,还沿用了SandyBridge架构的256位指令集。这部分其实在单路至强E3中就已经谈过,相比原来的128位指令集来说,256位指令集在性能上更为出色。有关这部分的内容我们可以看看E3处理器中是如何介绍的。
256bit指令集,让好事变得更好
Sandy Bridge的AVX将向量化宽度扩展到了256位,原有的16个128位XMM寄存器扩充为256位的YMM寄存 器,可以同时处理8个单精度浮点数和4个双精度浮点数。换句话说,Sandy Bridge的浮点吞吐能力可以达到前代的两倍。不过现在,AVX的256位向量还仅仅能够支持浮点运算。不过AVX的特别之处在于,它可以应用128位的SIMD整数和SIMD浮点路径。
AVX指令集是和Sandy Bridge微架构紧密结合的,因此,微架构的浮点寄存器也要从128位扩展到256位,此外,Load单元也要适应一次载入256位的能力,Sandy Bridge没有直接扩展原有Load单元的位宽,而是通过增加了一个Load单元来达到256bit Load的能力。
在进行新性能扩展的同时,AVX指令集的出现对于原有的X86指令集也进行了优化与重新组合——这主要源于AVX指令集新的操作码编码方式。AVX指令集的编码方式叫做VEX(Vector Extension),其主要用途是缩短指令长度,降低无谓的代码冗余,并且也降低了对解码器的压力,实现的方式也很特别——压缩各式各样的Prefix前缀,集中到一个比较固定的字段中,从而达到了精简指令集的目的。