SSE3(Streaming SIMD Extensions 3),又称PNI(Prescott New Instructions)[1],它指的是:在原有架构的处理器中,所第三次额外新增、添加的多媒体指令集,之前的两次分别是SSE、SSE2。
SSE3是Intel公司所其原有IA-32架构的处理器所研创,并在2004年初的新款Pentium 4(P4E,Prescott核心)处理器[2]中使用,之后2005年4月AMD公司也发表具备部分SSE3功效的处理器:Athlon 64(E3步进核心)[3],此后的x86处理器也几乎都具备SSE3的新指令集功能。
此外,在SSE3提出之前,x86架构的处理器先后已有多种多媒体指令集被提创与使用,先后顺序大致是Intel MMX、AMD 3DNow![4]、Intel SSE、Intel SSE2等。
附带一提的是,SSE3比在它之前的SSE2增加13条新指令。
新指令所带来的改变
SSE3最值得一提的新功效特点,是水平式的暂存器整数运算,而在此之前的SSE、SSE2则仅能垂直运算。更进一步的特点是,指令执行时对多笔数值的同时加法运算、减法运算等,之后将结果进行储存等,都可以在单一个暂存器完成,因此SSE3可以用更简单的方式来实现同时间的多笔、大量DSP、3D性质的运算。
此外,有个新指令可将浮点数数值转换成整数数值,且进行此种转换不需要将运算切换到rounding模式,过去此类转换必须先切换至rounding模式,完成转换后再退出rounding模式,此新指令可省去此模式切换程式,使整体运算更为加速,也因此可避免邻近执行管线(Instruction pipeline)因此而停缓、等待(模式切换会使后续执行暂停,进而减损运算效能)。
另外,新增设的LDDQU指令能够在交替载入长度不一的整数向量值时获得更佳的效能,此指令可以让Intel NetBurst架构的执行核心跨越快取线的界线而进行数值载入。
具备SSE3硬体支援功效的处理器
以下表列依据业者英文名称的字母顺序:
- AMD公司:
- Athlon 64 - 从Stepping E3的Venice(威尼斯,研发代号)以及Stepping E4的San Diego(圣地牙哥,研发代号)开始具备。
- Athlon 64 X2
- Athlon 64 FX - 从Stepping E4的San Diego(圣地牙哥,研发代号)开始具备。
- Opteron - 从Stepping E4的San Diego(圣地牙哥,研发代号)开始具备。
- Sempron - 从Stepping E3的Palermo(研发代号)开始具备。
- Turion 64
- Turion 64 X2
- Phenom
- Phenom II
- Intel公司:
- Celeron D
- Pentium 4 - 从Prescott(研发代号)开始具备。
- Pentium D
- Intel Core
- Intel Core 2
- Intel Core i7
- Xeon - 从Nocona(研发代号)开始具备。
- 全美达公司(Transmeta):
- Efficeon TM88xx(不包含型款编号为TM86xx系列的处理器)
- 威盛电子(VIA)[5]:
- VIA Isaiah
- C7-M
- C7-D
新增的指令
算术指令(Arithmetic)
- ADDSUBPD - (Add-Subtract-Packed-Double)
- 输入: - { A0, A1 }, { B0, B1 }
- 输出: - { A0 - B0, A1 + B1 }
- ADDSUBPS - (Add-Subtract-Packed-Single)
- 输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- 输出: { A0 - B0, A1 + B1, A2 - B2, A3 + B3 }
阵列结构指令(Array Of Structures;AOS)
- HADDPD - (Horizontal-Add-Packed-Double)
- 输入: { A0, A1 }, { B0, B1 }
- 输出: { B0 + B1, A0 + A1 }
- HADDPS (Horizontal-Add-Packed-Single)
- 输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- 输出: { B0 + B1, B2 + B3, A0 + A1, A2 + A3 }
- HSUBPD - (Horizontal-Subtract-Packed-Double)
- 输入: { A0, A1 }, { B0, B1 }
- 输出: { A0 - A1, B0 - B1 }
- HSUBPS - (Horizontal-Subtract-Packed-Single)
- 输入: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- 输出: { A0 - A1, A2 - A3, B0 - B1, B2 - B3 }
- LDDQU - 如上所述,这是有交替需求时所用的指令,可以载入(load)不整齐排列的整数向量值,此指令对视讯压缩的运算工作有帮助。
- MOVDDUP、MOVSHDUP、MOVSLDUP - 此三个指令是针对复杂数目需求时所用,对波形信号的运算有帮助,例如音讯的声波波形处理。
- MONITOR、MWAIT - 此二个指令能针对多执行绪的应用程式进行执行最佳化,使处理器原有的超执行绪功效获得更佳的发挥。
附注说明
参考引据
关连条目
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.