首先还是让我们回顾一下英特尔处理器集成指令的历史,之后再引出SSE4指令集的诞生。自英特尔奔腾MMX处理器开始,处理器新加入了SIMD(Single Instruction Multiple Data)多媒体指令集。该指令集可以把多批次的指令组编辑成为一条单一的指令,从而达到提升数据处理的能力。集成MMX指令的奔腾处理器主要用作提升多媒体数据的处理能力,共有57条指令。
后来,英特尔于1999年发布了基于MMX指令的SSE指令集,全名Streaming SIMD Extensions。首颗支持SSE产品Pentium III处理器,除新增70条指令之外,还进一步提升了多媒体数据的处理能力,最重要的是解决了MMX指令与浮点指令不能同时处理的问题。而随后在2001年发布的SSE2指令集,又在原来的基础上增加了144条新指令。其中除了主要负责64位双精度浮点数及整型运算和对Cache控制延迟降低两部分之外,更重要的是完全解决了SSE指令集需要占用浮点数据暂存器问题。
时间前进至2004年,以Prescott为核心的英特尔奔腾4处理器加入了SSE3指令集,新增指令仅13条,主要是对水平式暂存器整数的运算,可对多笔数值同时进行加法或减法运算,令处理器能大量执行DSP及3D性质的运算。此外, SSE3更针对多线程应用进行最佳化,使处理器原有的Hyper-Theading功能获得更佳的发挥。
不过与以往不同,英特尔将SSE4分为了4.1和4.2两个版本,因此现在所看到的45纳米Penryn核心处理器中,只集成了SSE 4.1版本。而至于SSE4.2,英特尔公司应该也会在不长的时间里为我们带出。那么新的SSE 4.1指令集拥有哪些特别之处呢?一起来看看吧!
SSE 4.1版本的指令集新增加了47条指令,主要针对向量绘图运算、3D游戏加速、视频编码加速及协同处理的加速。英特尔方面指出,在应用SSE4指令集后,45纳米Penryn核心额外提供了2个不同的32位向量整数乘法运算支持,并且在此基础上还引入了8位无符号最小值和最大值以及16位、32位有符号和无符号的运算,能够有效地改善编译器编译效率,同时提高向量化整数和单精度运算地能力。另外,SSE4.1还改良了插入、提取、寻找、离散、跨步负载及存储等动作,保证了向量运算地专一化。
SSE4.1还加入了6条浮点型运算指令,支援单、双精度地浮点运算及浮点产生操作。其中IEEE 754指令可实现立即转换运算路径模式,大大减少延迟,保证数据运算通道的畅通。而这些改变,对于进行3D游戏和相关的图形制作是具有相当深远的意义。除此之外,SSE4.1指令集还加入了串流式负载指令,可提高图形帧缓冲区的读取数据频宽,理论上可获取完整的缓存行,即单次性读取64位而非原来的8位 ,并可保持在临时缓冲区内让指令最多带来8倍的读取频宽效能提升。对于图形处理器与中央处理器之间的数据共享起到重要作用。