从奔腾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引入了下面的架构增强。

  • 支持256位宽向量和SIMD寄存器几何。

  • 256位浮点指令集增强,相对128位流SIMD扩展提升了2倍性能。

  • 指令语法支持传统的3元操作语法来提升指令编码的灵活性和和新指令扩展的搞笑编码。

  • 增强的遗留的128位SIMD指令扩展来支持3元操作语法和为高级语言表达式提供简单编译向量。

  • 支持灵活部署256位AVX代码,128位AVX代码遗留的128位代码和标准代码。

除了性能考虑外,程序员可能被要求认识到VEX-encode,AVX指令集,通过预期的系统软件组件的影响,他们通过状态组件XCR0来打开。更多信息可以查看 inIntel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A.

intel历代架构演进6—— SIMD指令集相关推荐

  1. SIMD指令集——一条指令操作多个数,SSE,AVX都是,例如:乘累加,Shuffle等

    SIMD指令集 from:https://zhuanlan.zhihu.com/p/31271788 SIMD,即Single Instruction, Multiple Data,一条指令操作多个数 ...

  2. 一文读懂SIMD指令集 目前最全SSE/AVX介绍

    SIMD指令集 SSE/AVX 概述 参考手册 Intel® Intrinsics Guide Tommesani.com Docs Intel® 64 and IA-32 Architectures ...

  3. OpenCV算法加速(2)使用SIMD指令集(MMX、SSE、AVX)和MIPP实现视觉算法优化

    一.概述 很多人觉得OpenCV速度比较慢,其实提升OpenCV运行速度,最常见的就是重新编译OpenCV,添加各种指令集优化支持. SIMD(Single Instruction Multiple ...

  4. ARM SIMD 指令集:NEON 简介

    ARM SIMD 指令集:NEON 简介 一.NEON 简介 1.1.NEON 简介 1.2.NEON 使用方式 1.3.编译器自动向量化的编译选项 1.3.1 Arm Compiler 中使能自动向 ...

  5. 【长文】从三十年前说起,最全FPGA架构演进史介绍!

    摘要:自三十多年前问世以来,现场可编程门阵列(FPGAs)已被广泛用于实现来自不同领域的无数应用.由于其底层的硬件可重新配置性,与定制设计的芯片相比,FPGAs具有更快的设计周期和更低的开发成本.FP ...

  6. SIMD指令集分析(C/C++)

    阅读代码的时候遇到了__m128i._mm_set1_epi8._mm_loadu_si128._mm_max_epu8._mm_min_epu8._mm_store_si128._mm_unpack ...

  7. 亿级商品详情页架构演进技术解密 | 高可用架构系列

    亿级商品详情页架构演进技术解密 | 高可用架构系列 --http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&i ...

  8. clickhouse hbase性能对比_QQ音乐PB级ClickHouse实时数据平台架构演进之路

    OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过QQ音乐与腾 ...

  9. Intel 64/x86_64/IA-32/x86处理器指令集 - CPUID (2) - 起源

    CPUID Origination 随着Intel处理器架构的演进与更新换代(8086,8088,Intel286,Intel386™,Intel486™和Pentium™处理器),提供一套完善的方法 ...

最新文章

  1. .net Core+Dapper MySQL增删改查
  2. ClickHouse之访问权限控制
  3. 中国爬虫违法违规案例汇总
  4. linux db2创建存储过程语法,EF基础一-db2存储过程中循环语句while do...-oracle 创建DBLINK_169IT.COM...
  5. 不具有继承关系的Delegate如何进行类型转换?
  6. 不止音箱,百度还发布了这些AI产品,还有参会者的10个小建议
  7. 服务器共享文件监控,服务器共享文件监控
  8. 基于 Hive 的文件格式:RCFile 简介及其应用
  9. matlab 曲面拟合,matlab曲面拟合
  10. yii2 smarty php,YII2 整合smarty
  11. 学习笔记(4):思科CCNA模拟器Packet Tracer使用入门-路由器的使用(2811、2911)
  12. Django视图模板_004
  13. JDK8各个历史版本下载方法
  14. 正二十面体的各个面位置点
  15. Python 快速设置 Excel 表格边框
  16. Prometheus+Grafana监控系统
  17. 机器人运动控制-水下机器人
  18. win10系统用激活码激活,用dos命令来激活,只能激活半年时间,暂时没找到永久的。
  19. MySQL按照汉字拼音A-Z排序或者汉字拼音和英文字母混合A-Z排序
  20. 开源的悲哀——袁萌100天变身实录[3]

热门文章

  1. 看这一篇就够了:写简历、面试、谈薪酬的技巧和防坑指南
  2. 代码大全(Code Complete)-- 目录和关键点
  3. 生鲜超市 学习进阶第三天 xadmin的后台管理
  4. OpenCV打开相机,调整窗口大小位置
  5. Excel办公常用函数:6大类型,共计64个!
  6. bzoj 3944: Sum 杜教筛
  7. 7-3 学习打卡(12.19)
  8. 推荐几个奇葩的技术公众号
  9. 华硕飞行堡垒无线网卡9462黄色感叹号
  10. 电脑声卡驱动、服务启动正常,但却没有声音的解决方案