Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(1) - 概述/历史/新数据类型/XMM寄存器组
SSE Instructions
SSE Overview & History
Intel SSE技术的全称是Streaming SIMD Extension,中文译作流式单指令多数据指令扩展。1999年,Intel在Pentium III处理器上引入了SSE指令集,包括了70条新指令,主要操作单精度浮点数据类型,用于增强浮点计算性能,面向于数字信号处理与图形处理市场。SSE完整的支持IEEE 754 二进制浮点体系结构标准,而且SSE可以在各种处理器工作模式下运行:保护模式,实地址模式和虚拟8086模式。
MMX指令集是Intel的第一代SIMD技术,有两个主要的问题:MMX重用了x87浮点寄存器,这样导致处理器无法同时处理SIMD数据与浮点数据;MMX指令集只能操作整型数据类型。
而SSE引入了独立的新的XMM寄存器组,而且新增加了几条操作MMX寄存器的整型指令,可以看作是对MMX指令集的扩展。由于SSE支持浮点数计算,所以具有更广阔的应用范围,也更受欢迎。
SSE Data Types
SSE指令集将整型数据类型扩展到了128位,包括组合的字节,单字,或双字;还新增了128位的组合单精度浮点数据类型,即4个32位的单精度浮点数据。
SSE New Registers
在IA-32处理器架构上,SSE提供了8个128位的通用寄存器,每个寄存器都可以直接寻址,可以使用寄存器名XMM0~XMM7直接引用这些寄存器。XMM寄存器组是新的架构状态,使用它们需要操作系统的支持。在Intel 64处理器上,当处理器运行在64位模式下时,SSE指令可以使用16个128位的通用寄存器XMM0~XMM15。
新增加的MXCSR寄存器在下节讲述。
Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(1) - 概述/历史/新数据类型/XMM寄存器组相关推荐
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(9) - 64位整型指令(MMX指令集扩展)
SSE 64-Bit SIMD Integer Instructions SSE扩展增加了几条64位组合的整型指令,这些指令操作MMX寄存器和64位的存储器操作数,这些指令可以看作是对MMX指令集的扩 ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
SSE Instruction Set SSE指令集大致可以分为4个功能组: 组合的与标量的单精度浮点指令 数据传输指令 算术指令 逻辑指令 比较指令 混洗shuffle指令 转换指令 64位SIMD ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(3) - MXCSR寄存器详解
MXCSR Control and Status Register 32位宽的MXCSR寄存器(参看下图)包含了控制与状态标志位,适用于SSE,SSE2和SSE3 SIMD浮点操作.这些标志位包括: ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(2) - SSE程序设计环境概述
SSE Programming Environment 下图是IA-32处理器上的SSE程序设计环境,所有的SSE指令操作XMM寄存器,MMX寄存器,和/或存储器. XMM寄存器,8个,128位宽,存 ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(13/E) - FXSAVE/FXRSTOR指令
FXSAVE and FXRSTOR instructions FXSAVE与FXRSTOR指令是从Pentium II处理器引入到IA-32架构上的,早于SSE指令集的引入.这两条指令的最初版本是用 ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(7) - 混洗指令 解组合指令
SSE Shuffle and Unpack Instructions SSE的混洗指令与解组合指令混洗shuffle或交错interleave单精度浮点操作数,并将结果保存到目标操作数. 指令 描述 ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(11) - 数据可缓存性控制指令
Cacheability Control Instructions 下面的3条指令允许使用"非时效存储提示non-tempral hint"将MMX/XMM寄存器中的数据写入到存储 ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(10) - MXCSR状态控制指令
MXCSR State Management Instructions MXCSR状态管理指令,LDMXCSR与STMXCSR,用于控制MXCSR寄存器状态.LDMXCSR指令从存储器中加载MXCSR ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(6) - 逻辑指令 比较指令
SSE Logical Instructions SSE的逻辑指令执行与,或,非,以及与非操作.操作数是组合的单精度浮点数. 指令 描述 ANDPS 格式:xmm1, xmm2/m128 对操作数执行 ...
最新文章
- 万能android调用webservice方法——参数类型不受限制
- DateTime.Ticks 属性
- Flash XSS 漏洞详解 根治的好办法
- 理解AngularJS中的依赖注入
- 将数据文件附加到数据库
- 三、开发调试应用程序
- memcache nginx
- Python中:re的match和search区别?
- Tp框架中模板中if条件如何使用?
- 学习大数据看门的几本书
- opencv 图像访问索引
- 疑问:当流量被封禁之后(论资本之力):防流量被恶意盗挖(抛砖篇)
- 高级政工师具备的能力_北京市高级政工师评审条件
- 利用MFC Picture Control控件 加载bmp,png
- 21.UNIX 环境高级编程--与网络打印机通信
- Linux 杀死stuck线程,如何中断weblogic中stuck thread
- 1085 Perfect Sequence(25 分)
- 预检请求会让服务器性能,如何避免“预检请求”?
- 职场:迈过职业生涯中的5个坎
- 软件开发人才级别的划分
热门文章
- 加载resnet18的代码
- Python内置模块---random
- c++编写手机小游戏代码_玩过自己开发的贪吃蛇吗?点这里,教你用Python写一个贪吃蛇小游戏!(附源代码)...
- 弹簧触摸开关原理图_电梯弹簧抱闸调整
- Collections.sort()和Arrays.sort()排序算法选择
- 两个线程能在cpu中同时运行吗_多核和多线程那些事
- 弹射王服务器正在维护中,《弹射王》IOS版合服公告-1.7
- 计算机系应用,近距离看专业 计算机专业应用篇
- mysql 列合并_实战讲解MySQL执行计划,面试官当场“要了我”
- mysql备份到带库_备份离线就必须上物理带库?