除了制程、工艺的改变,第四张谍照显示,新一代Sandy Bridge处理器还将使用一种名为AVX的新型指令集,AVX即英文Advanced Vector Extensions(高级矢量扩展指令集)的缩写。
所谓矢量,是指带有方向的标量。比如物理学中常见的速度就是一个矢量单位,谈及速度,必定同时表明了物体的运动方向和运动速率。目前的很多计算都需要矢量的参与。比如常见的有可以无限放大的矢量图,力学计算也需要矢量参与(物理加速就有大量的矢量计算),3D计算中也包含了大量的矢量运算等。
图4 新一代英特尔处理器将集成AVX指令集
传统的CPU只能依靠128位的浮点引擎来处理矢量计算,速度较慢,效率也不够高。而AVX指令集将计算位宽由128位升级至256位,一次计算就可以处理更多数据,理论上高可以将每秒浮点操作数提高一倍。另外,AVX还使用了新的256位元函数,在操作和排列中效率更高,存取数据速度更快。不过要使用AVX指令集,需要CPU在硬件上做出改变。为此英特尔为Sandy Bridge核心增加了多个256位端口,用于处理AVX指令,浮点寄存器也彻底更改为256位,保证AVX指令的全速运行,为处理器提升性能打下了基础。
兼容性方面,AVX完美兼容之前的SSE指令集,编程人员不需要任何改变就可以让传统的SSE命令运行在AVX架构上,系统会自动在高位(超出SSE指令集128位的部分)添加0,保证数据的平滑兼容性(和X86指令运行在X64架构上非常类似,都是在数据高位添加0补全)。不过这种兼容性也是有代价的,如果存在SSE的128位指令和AVX的256位指令混合编码的情况,指令需要不停地切换,寄存器也需要不停地做额外的高位保留操作,因此可能会损失性能。换句话来说,在AVX初引入并使用的一段时间,如果软件编程无法跟上,我们可能很难看到新的指令集带来的系统性能提升。
而从第4张谍照中的文字来看,该指令集将主要增强CPU在图形处理、视频、音频处理等方面的性能。不过笔者认为,由于具备物理运算特性,该指令集也很可能具备提升CPU物理运算性能的能力,对于NVIDIA PhysX来说,这并不是一个好消息。后需要补充的是,AMD也将在下一代处理器中加入AVX指令集,而Windows 7 SP1操作系统则将正式支持这种指令集,想要体验它的读者一定要升级操作系统。