Intel汇编指令集SSE4

简介: 1、引言 Intel SSE 4指令集是当前使用广泛的汇编指令集,最初在45nm的Intel 64位处理器和AMD的K10处理器中提供。SSE4的含义是Streaming SIMD Extension 4,SIMD即单指令多数据技术(Single Instruction Multiple Data)。

1、引言

Intel SSE 4指令集是当前使用广泛的汇编指令集,最初在45nm的Intel 64位处理器和AMD的K10处理器中提供。SSE4的含义是Streaming SIMD Extension 4,SIMD即单指令多数据技术(Single Instruction Multiple Data)。SSE4指令集共包含了54条指令,其中子集SSE 4.1包含了47条指令,另一个子集SSE 4.2包含剩余7条指令。


2、SSE 4概览

SSE4旨在提升Intel处理器在多媒体、图像处理、3D处理应用中的性能。SSE4.1添加了增强编译器矢量化的指令,·极大地提升了对打包双字型数据的计算能力。SSE4.2利用SIMD技术提升了字符串和文本处理方面的性能,增加了针对应用加速器(ATA)的指令,以及比SSE4.1中的128位整数SIMD指令更强的SIMD整数指令。

SSE4不需要新的操作系统的支持,以保存和恢复超出了SIMD流指令扩展(SSE)要求的寄存器状态。SSE4.1中存在6个指令可能产生多种SIMD浮点型异常值,因此要求操作系统提供兼容IEEE-745的事件处理器来进行计算后处理(与SSE~SSE3指令集类似)。而SSE4.2的指令将不会产生SIMD浮点异常。

SSE4与基于前几代处理器开发的程序完全兼容,旧的程序可以不经任何改动直接在支持SSE4的新处理器上运行。


3、SSE4指令集

重点学习整数计算指令。


(1)、SSE 4.1指令集

  • MPSADBW指令:计算8个4字节宽整数的绝对差值和(SAD)。
  • PHMINPOSUW指令:在源操作数(即第二个操作数)中按照无符号word型数据查找最小值,并将该值保存到目标操作数(即第一个操作数)中最低的word位置,并在前面的3个bit保存该值的索引值,其他位置为0。
  • PMULDQ指令:有符号乘法指令,针对目标操作数和源操作数中第一个和第三个打包有符号双字型整数。64位的乘积保存于目标操作数中。
  • PMULLD指令:有符号乘法指令,计算源操作数和目标操作数对应的打包有符号双字型整数的乘积,并把得到的64位乘积的低32位诸葛保存到目标操作数中。
  • PMINSB指令和PMAXSB指令:比较源操作数和目标操作数中有符号字节型(signed byte)整数的大小,前者将较小的字节保存到目标操作数中,后者将较大的字节保存到目标操作数中。
  • PMINUW指令和PMAXUW指令比较源操作数和目标操作数中无符号字型(unsigned word)整数的大小,前者将较小的字节保存到目标操作数中,后者将较大的字节保存到目标操作数中。
  • PMINUD指令和PMAXUD指令:比较源操作数和目标操作数中无符号双字型(unsigned dword)整数的大小,前者将较小的字节保存到目标操作数中,后者将较大的字节保存到目标操作数中。
  • PMINSD指令和PMAXSD指令:比较源操作数和目标操作数中有符号双字型(signed dword)整数的大小,前者将较小的字节保存到目标操作数中,后者将较大的字节保存到目标操作数中。
  • PMOVSX指令和PMOVZX指令:数据扩展指令集,分别按照有符号扩展和0扩展。两个指令集合都包含多个指令,用于字节型、字形和双字型到更大的数据类型的扩展。
  • PTEST指令:实现逻辑比较。当源操作数和目标操作数按位与的结果为0时,标识位ZF设为1否则设为0;当源操作数和目标操作数按位取反的结果再进行按位与得到0时,CF设为1,否则CF设为0。该指令不改变目标操作数的值,AF/OF/PF/SF四个标识位都将设为0。
  • PCMPEQQ指令:实现QWORD型数据的相等比较。源操作数和目标操作数的两个64位QWORD数据分别进行比较,目标操作数等同的部分全部置1,否则置0。
  • PACKUSDW指令:依据无符号饱和模式,将有符号双字型整数转换为无符号的字形整数。
  • MOVNTDQA指令:从write-combining内存区高效率地将数据读入SSE寄存器。


(2)、SSE 4.2指令集

SSE 4.2增加了如下指令:

  • CRC32用于计算循环冗余校验码;
  • PCMPESTRI、PCMPESTRM、PCMPISTRI、PCMPISTRM用于字符串处理;
  • PCMPGTQ用于比较QWORD型数据,如果目标操作数大于源操作数则目标操作数的对应部分置0,否则源操作数的部分置0。

目录
相关文章
|
11月前
|
存储 弹性计算 编解码
阿里云CPU服务器c7、g7和r7处理器Intel Xeon(Ice Lake) Platinum 8369B
阿里云第七代云服务器ECS计算型c7、通用型g7和内存型r7实例,CPU处理器采用2.7 GHz主频的Intel Xeon(Ice Lake) Platinum 8369B,全核睿频3.5 GHz,计算性能稳定。c7、g7和r7区别CPU内存比,阿里云服务器网来详细说下阿里云第七代云服务器c7、g7和r7实例CPU性能评测:
220 0
|
11月前
|
存储 弹性计算 编解码
阿里云ECS服务器g7、c7和r7处理器CPU采用Intel Xeon(Ice Lake) Platinum 8369B
阿里云第七代云服务器ECS计算型c7、通用型g7和内存型r7实例,CPU处理器采用2.7 GHz主频的Intel Xeon(Ice Lake) Platinum 8369B,全核睿频3.5 GHz,计算性能稳定。c7、g7和r7区别CPU内存比,阿里云服务器网来详细说下阿里云第七代云服务器c7、g7和r7实例CPU性能评测:
202 0
|
11月前
|
安全 数据安全/隐私保护 iOS开发
Intel 处理器 macOS降级到Big Sur
将移动硬盘作安装 Mac 操作系统的启动磁盘。
3919 0
|
11月前
|
存储 弹性计算 安全
阿里云CPU处理器Intel Xeon(Ice Lake) Platinum 8369B
阿里云服务器CPU处理器Intel Xeon(Ice Lake) Platinum 8369B,基频2.7 GHz,全核睿频3.5 GHz,计算性能稳定。目前阿里云第七代云服务器ECS计算型c7、ECS通用型g7、内存型r7等规格均采用该款CPU
238 0
|
12月前
|
存储 弹性计算 安全
阿里云服务器CPU处理器Intel Xeon(Ice Lake) Platinum 8369B
阿里云服务器CPU处理器Intel Xeon(Ice Lake) Platinum 8369B,基频2.7 GHz,全核睿频3.5 GHz,计算性能稳定。目前阿里云第七代云服务器ECS计算型c7、ECS通用型g7、内存型r7等规格均采用该款CPU
|
12月前
|
弹性计算 缓存 网络协议
阿里云u1服务器CPU采用Intel(R) Xeon(R) Platinum处理器
阿里云u1服务器CPU采用Intel(R) Xeon(R) Platinum处理器,云服务器U1实例的基准vCPU算力与5代企业级实例持平,最高vCPU算力与6代企业级实例持平,提供2c-32c规格和1:1/2/4/8丰富配比,阿里云服务器u1适用于Web应用及网站,企业办公类应用,数据分析和计算等大多数通用的对vCPU算力和性能要求不高的应用场景
222 0
|
12月前
|
存储 弹性计算 缓存
阿里云g8i服务器ECS处理器Intel Xeon(Sapphire Rapids) Platinum 8475B
阿里云g8i服务器ECS处理器Intel Xeon(Sapphire Rapids) Platinum 8475B,阿里云服务器ECS通用型实例规格族g8i采用2.7 GHz主频的Intel Xeon(Sapphire Rapids) Platinum 8475B处理器,3.2 GHz睿频,g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固
303 0
|
机器学习/深度学习 人工智能 安全
龙蜥白皮书精选:龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台
EROFSEROFS是为高性能只读场景量身打造的内核文件系统,提供了多层镜像、透明压缩等特性,于Linux 5.4正式合入Linux主线。
龙蜥白皮书精选:龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台

热门文章

最新文章