词条 | SSE4.2 |
释义 | SSE4.2是英特尔在Nehalem-EP中引入的指令集,比SSE4.1增加了7条新的指令。 SSE4.2的7条新指令面向了两大领域,分别是字串与字符处理用的新指令STTNI和面向具体应用的加速处理ATA。STTNI是一个重要的改进,包含了4条指令,针对XML进行了优化,据英特尔表示,新指令可以在XML分析方面取得3.8倍的性能提升。ATA是面向应用的加速指令,包括计算缓存器中非零位数目的POPCNT、用来加速错误侦测码的计算的CRC32指令和对于打包的64位算术运算的SIMD指令,ATA指令集对大规模数据集中处理中具有重要意义。 简介SSE是英特尔提出的即MMX之后新一代(当然是几年前了)CPU指令集,最早应用在PIII系列CPU上。现在已经得到了Intel PIII、P4、Celeon、Xeon、AMD Athlon、duron等系列CPU的支持。而更新的SSE2指令集仅得到了P4系列CPU的支持,这也是为什么这篇文章是讲SSE而不是SSE2的原因之一。另一个原因就是SSE和SSE2的指令系统是非常相似的,SSE2比SSE多的仅是少量的额外浮点处理功能、64位浮点数运算支持和64位整数运算支持。 SSE为什么会比传统的浮点运算更快呢?因为它使用了128位的存储单元,这对于32位的浮点数来讲,是可以存下4个的,也就是说,SSE中的所有计算都是一次性针对4个浮点数来完成的,这种批处理当然就会带来效率的提升。我们再来回顾一下SSE的全称:Stream SIMD Extentions(流SIMD扩展)。SIMD就是single instruction multiple data,连起来就是“数据流单指令多数据扩展”,从名字我们就可以更好的理解SSE是如何工作的了。 提升的SSE4.2 SSE4指令集被认为是2001年以来Intel最重要的指令集扩展,包含54条指令。 Intel在Penryn处理器中加入了对SSE4.1的支持,共增加了47条新指令,提升了处理器在图形、3D图像与游戏、视频编码与影音处理等方面的性能表现。本次在Nehalem处理器中,进一步支持了SSE4.2指令集。SSE4.2完整的实现了SSE4指令集,相对于SSE4.1加入了7条新指令。 SSE4.2新加入的几条新指令有两类。第一类是字符串与文本新指令STTNI,STTNI包含了四条具体的指令。STTNI指令可以对两个16位的数据进行匹配操作,以加速在XML分析方面的性能。据Intel表示,新指令可以在XML分析方面取得3.8倍的性能提升。第二类指令是面向应用的加速指令ATA。ATA包括冗余校验的CRC32指令、计算源操作数中非0位个数的POPCNT指令,以及对于打包的64位算术运算的SIMD指令。CRC32指令可以取代上层数据协议中经常用到的循环冗余校验,据Intel表示其加速比可以达到6.5~18.6倍;POPCNT用于提高在DNA基因配对、声音识别等包含大数据集中进行模式识别和搜索等操作的应用程序性能。 Intel也公布了支持新指令集的开发工具。这些工具涵盖了主流的编译开发环境。目前已明确支持SSE4.2的开发环境包括:Intel C++ Compiler 10.X、微软的Visual Studio 2008 VC++、GCC 4.3.1、Sun Studio Express等。程序员可以直接使用高级编程语言编程,编译器会自动生成优化结果。当然程序员也可以用内嵌汇编的方式来达到目的。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。