intel历代架构演进6—— SIMD指令集
从奔腾2和带有英特尔MMX技术的处理器家族开始。6个扩展被引入到英特尔64和IA-32架构中扮演单指令多数据(SIMD)操作。这些扩展包括MMX技术,SSE扩展,SSE2扩展,SSE3扩展,补充流式SIMD扩展3,和SSE4.每种扩展提供了一组指令集扮演基于封装过的integer and/or 封装过的浮点数据元素的SIMD操作。
SIMD整型操作可以使用64位MMX或者128位XMM寄存器。SIMD浮点操作可以使用128位XMM寄存器。下图显示了多种SIMD扩展(MMX technology, SSE, SSE2,SSE3, SSSE3, and SSE4)的摘要信息,比如哪些数据可以直接操作,哪些数据类型需要被封装到MMX和XMM寄存器中。
文章图片
英特尔MMX技术被引入到了奔腾2和奔腾使用了MMX技术的处理器家族中。MMX指令集在位于MMX寄存器中被包装过的byte,word或double word integers扮演了SIMD的操作。这些指令集在应用中操作整型数组和可以使他们到SIMD操作中的整型数据非常有用。
SSE扩展被引入到了奔腾3处理器家族中。SSE指令集操作基于封装过的单精度额浮点数据值被包含在XMM寄存器中和封装过的整型被包含在MMX寄存器中。多数SSE指令提供了状态管理,缓存控制和内存排序操作。其他SSE指令集被定位在应用中用于操作单精度浮点数据元素的数组(3D几何,3D渲染和视频编解码应用)
SSE2扩展被映入到了奔腾4和志强处理器重。SSE2指令集操作封装过的双境地浮点值被包含在XMM寄存器中,和封装过的整型包含在MMX和XMM寄存器中。SSE2整型指令集通过新的128位SIMD整型操作和扩大了现存的64位SIMD整型操作到128位XMM的能力来扩展了IA-32 SIMD操作。
SSE3扩展被引入到了支持超线程技术的奔腾4处理器(构建在90nm处理技术)。SSE3提供了13条指令他们可以加速流SIMD扩展技术,流SIMD扩展技术2,和X87-FP计算能力的性能。
SSSE3扩展被引入到了英特尔志强处理器5100系列和酷睿2处理器家族中。SSSE3提供了32条指令来加速处理SIMD整型数据。
SSE4扩展提供了54条指令。47条和SSE4.1有关。SSE4.1在志强5400系列和酷睿2 Extreme processor QX9650被使用。另外7条SSE指令和SSE4.2指令相关。
AESNI 和 PCLMULQDQ 引入了7条新的指令。6条为加速基于AES经典加解密算法,以及和AESNI相关的原始指令。
PCLMULQDQ指令加速了通用目的的块加密,他们扮演了一条单独的无进位乘法指令(Carry-less Multiplication)为2个二进制数字提升到64位宽。
英特尔64位架构允许4代128位SIMD扩展可以访问16个XMM寄存器。IA-32架构提供了8个XMM寄存器。英特尔高级向量扩展在流SIMD扩展上比前代带来架构上的增强。英特尔AVX引入了下面的架构增强。
- 【intel历代架构演进6—— SIMD指令集】支持256位宽向量和SIMD寄存器几何。
- 256位浮点指令集增强,相对128位流SIMD扩展提升了2倍性能。
- 指令语法支持传统的3元操作语法来提升指令编码的灵活性和和新指令扩展的搞笑编码。
- 增强的遗留的128位SIMD指令扩展来支持3元操作语法和为高级语言表达式提供简单编译向量。
- 支持灵活部署256位AVX代码,128位AVX代码遗留的128位代码和标准代码。
推荐阅读
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- 年薪30万的Java架构师必会的springboot面试题
- EdgeDB 架构简析
- 【SpringBoot】Intellij开发微服务的正确姿势
- 大众点评(redux架构)
- IntelliJ IDEA 永久破解激活教程(亲测有效)
- 架构的架构基础
- 从0开始学架构|从0开始学架构 - 高可用计算架构、异地多活架构、如何应对接口级故障
- Intellij|Intellij Idea 配置Web项目
- (基础+优化+架构)太厉害了!华为大牛终于把MySQL讲的明明白白