最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

x86 指令集发展历程

IT圈 admin 23浏览 0评论

2024年6月3日发(作者:司寇莺莺)

x86 指令集发展历程

从 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 暂时没宣告支

持。

目前资料显示,Bulldozer 微架构将集大成,支持上面的所有指令集(FMA 指令中

的 FMA4 指令)。

2024年6月3日发(作者:司寇莺莺)

x86 指令集发展历程

从 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 暂时没宣告支

持。

目前资料显示,Bulldozer 微架构将集大成,支持上面的所有指令集(FMA 指令中

的 FMA4 指令)。

发布评论

评论列表 (0)

  1. 暂无评论