分享

x86指令集发展历程

 生命中的真实 2018-08-08

从 1976 年第 1 代 x86 processor 算起,x86 指令发展经过了 35 年,这里回顾一下 x86 指令集的历程以及 AMD 与 Intel 的指令斗争史:

  • 8086 指令:伴随着第 1 代的 x86 processor 推出第 1 代的 x86 指令集,之后发展的处理器都兼容于第 1 代的指令。
  • MMX 指令:Intel 在 1996 年推出的第 1 代 SIMD(Single Instruction Multiple Data)指令集,使用在 p5 microarchitecture(微架构)上的 Pentium 处理器。随后 AMD 在 1997 年的 K6 处理器上加入了 MMX 指令的支持。
  • 3DNow!指令:1998 年 AMD 首发推出了 21 条自己的 SIMD 指令集,3DNow! 的性能要优于 MMX 指令,使用在 AMD K6-2 处理器上。随后 AMD 在 1999 年 6 月发布的 Athlon 处理器上使用了增强版的 3DNow! 指令(3DNow!+)。
  • SSE 指令:1999 年 Intel 推出了第 1 代的 SSE(Streaming SIMD Extensions)指令以回击 AMD 的 3DNow! 指令,使用在 Pentium III 处理器上。随后 AMD 在 2001 年 10 月 发布 的 Athlon XP 处理器上首次加入了 SSE 指令集。
  • SSE2 指令:Intel 在 2001 年推出第 2 个版本的 SSE 指令,使用在 Pentium 4 处理器上,AMD 在 2003 年推出的 Athlon 64 和 Opteron 处理器上加入对 SSE2 指令的支持。
  • x86-64 指令:2003 年 AMD 推出了第 8 代名为 K8 的 microarchitecture,实现了 x86-64 架构,支持 64位 的扩展技术。从Athlon 64 处理器开始使用 x86-64 扩展技术,AMD 将自己的 x86-64 架构实现称为 AMD64 架构。Intel 最终在 2004 年发布的 Prescott 微架构的 Pentium 4 处理器上实现 x86-64 扩展技术,最初被称为 IA-32e 或者 EM64T 技术,最终被统一为 Intel64 架构,Intel64 是 x86-64 体系的 Intel 实现,完全兼容于 AMD64 架构。这是 Intel 唯一的一次追随 AMD
  • SSE3 指令:Intel 在 2004 年推出了第 3 版 SSE 指令,使用在 Prescott 微架构的 Pentium 4 处理器上,在 2005 年 AMD 在对 Athlon 64 处理器上加入了 SSE3 的支持。
  • SSSE3 指令:SSSE3 指令是对 SSE3 指令的补充,新增了 16 条指令,在最后的一版 Prescott 微架构代号为 Tejas 的 Pentium 4 处理器上首次加入 SSSE3 指令,以及 2006 年的 Core 微架构的处理器上开始加入 SSSE3 指令。在 AMD 阵营中,目前已经发布的 Bobcat 微架构的 APU 处理器上加入了对 SSSE3 的支持,以及在即将发布的 Bulldozer 微架构的处理器上支持。
  • SSE4.1 指令:Intel 在 2007 年 11 月发布的 Penryn 微架构的处理器上加入了 SSE4.1 指令,SSE4.1 指令共 47 条。在AMD阵营中,目前发布的处理器不支持 SSE4.1 指令,即将发布的 Bulldozer 微架构的处理器将支持 SSE4.1 指令。
  • SSE4a 指令:AMD 在 2007 年在 K10 微架构的处理器加入了 SSE4A 指令集,SSE4A 只有 4 条。在 K10 微架构处理器上还加入 POPCNT 与 LZCNT 指令
  • SSE4.2 指令:Intel 在 2008 年 11 月发布的 Nehalem 微架构的 Core i7 处理器上加入 SSE4.2 指令共 7 条。在 AMD 阵营中,目前发布的处理器不支持 SSE4.2 指令,即将发布的 Bulldozer 微架构的处理器将支持 SSE4.2 指令
  • SSE5 指令:SSE5 是一个纸面上的指令集,并没有最终实现,AMD 在 2007 年 8 月公布 SSE5 指令集规范,在 2009 年 5 月 AMD 推出了 XOP,FMA4 以及 CVT16 来取代 SSE5 指令。
  • AVX 指令:2008 年 3 月 Intel 发布了 AVX(Advanced Vector Extensions)指令集,首次在 Sandy Bridge 微架构的 Core i7/i5/i3 处理器上使用。AMD 将在 Bulldozer 微架构的处理器上加入 AVX 指令的支持。
  • AES 指令:2008 年 3 月 Intel 发布了 AES(Advanced Encryption Standard)指令,使用在 Westmere 微架构的 Core i7/i5 处理器上。AMD 将在 Bulldozer 微架构的处理器上使用。
  • FMA 指令:FMA 指令是 AVX 指令集中的一部分,Intel 将在 2013 年的 Haswell 微架构处理器上使用。
  • XOP,FMA4 以及 CVT16 指令:AMD 在 2009 年 5 月发布了 XOP,FMA4 以及 CVT16 指令,这些指令集取代了 SSE5 指令,在原有的 SSE5 指令基础上,使用了兼容 AVX 指令的设计方案重新进行了设计,因此,XOP,FMA4 以及 CVT16 在指令的编码方面是兼容于 AVX 的方案。这使得 AVX/FAM4/CVT16 指令与 AVX 指令同时存在,而不会产生冲突,这些指令将在 Bulldozer 微架构的处理器上使用,Intel 暂时没宣告支持。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多