X86指令发展简介

来源:互联网 发布:仓库记账软件 编辑:程序博客网 时间:2024/05/29 16:11
x86指令集的发展历程&AMD与Intel的斗争史由Intel生产第一代x86处理器开始至今,在指令集争斗中AMD大多处于被动的局面,AMD别无他法只能选择追随Intel,AMD只有一次是赢家,在2003年AMD推出x86-64架构时Intel低头了。1. MMX指令: Intel在1996年推出的第一代SIMD(Single Instruction Multiple Data单指令多数据)指令集,使用在P5微架构的Pentium处理器上。随后AMD在1997年的K6处理器上加入了对MMX的支持。2. 3DNow!指令: 1998年AMD推出了21条自己的SIMD指令集,3DNow!的性能要优于MMX指令,使用在K6-2处理器上。随后AMD在1999年6月发布的Althon处理器上使用了增强版的3DNow!指令(3DNow!+)3. SSE指令: 1999年Intel推出了SSE(Streaming SIMD Extension流式SIMD扩展)指令以回击AMD的3DNow!指令,使用在Pentium III系列处理器上。随后,AMD在2001年10月发布的Althon XP系列处理器上首次加入了对SSE指令的支持。4. SSE2指令: Intel在2001年推出第2个版本的SSE指令,使用在Pentium 4处理器上,AMD在2003年推出的Althon 64和Opteron处理器上首度加入对SSE2指令的支持。5. x86-64指令: 2003年AMD推出了第8代名为K8的处理器架构,实现了x86-64架构,支持64位寻址的扩展技术。从Althon 64处理器开始使用x86-64扩展技术,AMD将自己的x86-64架构实现称为AMD64架构。Intel最终在2004年发布的Prescott核心的Pentium 4处理器上实现x86-64扩展技术,最初被称为IA32e或者EM64T技术,最后被统一为Intel64架构,Intel64是x86-64体系的Intel实现,完全兼容于AMD64架构,这是Intel唯一的一次追随AMD。6. SSE3指令: Intel在2004年推出了第3版SSE指令,使用在Prescott核心的Pentium 4处理器上,AMD在2005年将其加入到Althon64系列处理器的指令支持中。7. SSSE3指令: SSSE3指令是对SSE3指令的补充,新增了16条指令,在最后的一版Prescott核心代码为Tejas的Pentium 4处理器上加入SSSE3指令,接下来2006年的Core微架构的处理器上也延续了SSSE3指令。在AMD阵营中,目前已经发布的Bobcat微架构的APU处理器已经加入了对SSSE3的支持,即将发布的Bulldoer微架构的处理器也将提供对SSSE3指令的支持。8. SSE4.1指令: Intel在2007年11月发布的Penryn核心处理器上加入了SSE4.1指令,SSE4.1指令共47条。在AMD阵营中,目前发布的处理器都不支持SSE4.1指令,只有即将发布的Bulldozer微架构处理器预计提供对SSE4.1指令的支持。9. SSE4.2指令: Intel在2008年3月发布的Nehalem微架构的Core i7处理器上首度加入SSE4.2指令集,共7条微指令。在AMD阵营中,目前发布的处理器都不支持SSE4.2指令,还得等到Bulldozer微架构的处理器发布,才能提供对SSE4.2指令集的支持。10. SSE5指令: 在Intel频繁更新SSE指令的时代,被动的AMD曾抢先在2007年8月公布SSE5指令集规范,AMD最终没有在实际的产品中实现它。不过,在2009年5月AMD推出的XOP、FMA4以及CVT16指令集上,我们能看到被取代的SSE5的影子。11. AVX指令: 2008年3月Intel马不停蹄地发布了AVX(Advanced Vector Extensions)指令集,并在Sandy Bridge微架构的Core i7/i5/i3处理器上首次使用。除了AVX,Intel还在同一时间发布了AES(Advanced Encryption Standard)指令,使用在Westmere核心的Core i7/i5处理器上。而AMD也宣称将在Bulldozer微架构的处理器上加入对AVX、AES指令的兼容支持。12. XOP、FMA4以及CVT16指令: AMD在2009年5月发布了XOP、FMA4以及CVT16指令,这些指令集取代了SSE5指令集,并在SSE5原有的指令基础上,使用了兼容AVX指令的设计方案重新进行了设计。因此,XOP、FMA4以及CVT16在指令的编码方面是兼容于AVX的方案的。这使得XOP、FMA4以及CVT16指令能与AVX指令集并存,而不会产生冲突。这些指令计划将在Bulldozer微架构的处理器上使用,当前Intel暂时没有宣告要提供对它们的支持。