服务器 频道

SNB跨入双路时代 至强E5服务器4大猜想

  至强E3处理器规格介绍:至强E3另外一个重大改进要算是增加了全新的AVX指令集——Advanced Vector Extensions,高级矢量扩展。这个指令集的增加是X86处理器中的重要内容,不仅仅是提供了更为良好的性能,同时也是对现有指令集的整合与优化。

新加入AVX指令集,256位向量计算

  介绍AVX指令集之前,先要引入一个向量的概念。所谓向量,就是多个标量的组合,通常意味着SIMD(单指令多数据),就是一个指令同时对多个数据进行处理,达到很大的吞吐量。早在1996年,Intel就在X86架构上应用了MMX(多媒体扩展)指令集,那时候还仅仅是64位向量。到了1999年,SSE(流式SIMD扩展)指令集出现了,这时候的向量提升到了128位。

新加入AVX指令集,256位向量计算

  随着E3处理器的出现,Sandy Bridge的AVX将向量化宽度扩展到了256位,原有的16个128位XMM寄存器扩充为256位的YMM寄存器,可以同时处理8个单精度浮点数和4个双精度浮点数。换句话说,Sandy Bridge的浮点吞吐能力可以达到前代的两倍。不过现在,AVX的256位向量还仅仅能够支持浮点运算。不过AVX的特别之处在于,它可以应用128位的SIMD整数和SIMD浮点路径。

新加入AVX指令集,256位向量计算

   AVX指令集是和Sandy Bridge微架构紧密结合的,因此,微架构的浮点寄存器也要从128位扩展到256位,此外,Load单元也要适应一次载入256位的能力,Sandy Bridge没有直接扩展原有Load单元的位宽,而是通过增加了一个Load单元来达到256bit Load的能力。

新加入AVX指令集,256位向量计算
新加入AVX指令集,256位向量计算

   在进行新性能扩展的同时,AVX指令集的出现对于原有的X86指令集也进行了优化与重新组合——这主要源于AVX指令集新的操作码编码方式。AVX指令集的编码方式叫做VEX(Vector Extension),其主要用途是缩短指令长度,降低无谓的代码冗余,并且也降低了对解码器的压力,实现的方式也很特别——压缩各式各样的Prefix前缀,集中到一个比较固定的字段中,从而达到了精简指令集的目的。

  至强E5平台猜想:AVX指令集是一个非常重要的内容,同时也是SandyBridge的精华所在。在提升到256bit之后,增加的向量位宽能够更好的帮助处理器运行。因此在新一代的至强E5当中,这部分指令集或许还会得到进一步的优化,比如推出V2.0版本之类。

1
相关文章