老文章档案 · 2010 年

CPU扩展指令集简介

软件教程 · CPU相关 · 2010-04-08

Intel和AMD的桌面级处理器在X86指令集的基础上,为了提升处理器各方面的性能,又各自开发新的指令集。指令集中包含了处理器对多媒体、3D处理等方面的支持,但是需要软件的支持。

MMX指令集

MMX(Multi Media eXtension 多媒体扩展指令)指令集是Intel公司在1996年为旗下的Pentium系列处理器所开发的一项多媒体指令增强技术。MMX指令集中包括了57条多媒体指令,通过这些指令可以一次性处理多个数据,在处理结果超过实际处理能力的时候仍能够进行正常处理,如果在软件的配合下,可以得到更强的处理性能。使用MMX指令集的好处就是当时所使用的操作系统可以在不做任何改变的情况下执行MMX指令。但是,MMX指令集的问题也是比较明显的,MMX指令集不能与X86的浮点运算指令同时执行,必须做密集式的交错切换才可以正常执行,但是这样一来,就会造成整个系统运行速度的下降。

SSE指令集

SSE是Streaming SIMD Extension(SIMD扩展指令集)的缩写,而其中SIMD的为含意为Single Istruction Multiple Data(单指令多数据),所以SSE指令集也叫单指令多数据流扩展。该指令集最先运用于Intel的Pentium III系列处理器,其实在Pentium III推出之前,Intel方面就已经泄漏过关于KNI(Katmai New Instruction)指令集的消息。这个KNI指令集也就是SSE指令集的前身,当时也有不少的媒体将该指令集称之为MMX2指令集,但是Intel方面却从没有发布有关MMX2指令集的消息。

最后在Intel推出Pentium III处理器的时候,SSE指令集也终于水落石出。SSE指令集是为提高处理器浮点性能而开发的扩展指令集,它共有70条指令,其中包含提高3D图形运算效率的50条SIMD浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中的连续数据块传输指令。理论上这些指令对当时流行的图像处理、浮点运算、3D运算、多媒体处理等众多多媒体的应用能力起到全面提升的作用。SSE指令与AMD公司的3DNow!指令彼此互不兼容,但SSE包含了3DNow!中的绝大部分功能,只是实现的方法不同而已。SSE也向下兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

3DNow!指令集

3DNow!指令集最由AMD公司所推出的,该指令集应该是在SSE指令之前推出的,被广泛运用于AMD的K6、K6-2和K7系列处理器上,拥有21条扩展指令集。在整体上3DNow!的SSE非常相相似,它们都拥有8个新的寄存器,但是3DNow!是64位的,而SSE是128位。所以3DNow!它只能存储两个浮点数据,而不是四个。但是它和SSE的侧重点有所不同,3DNow!指令集主要针对三维建模、坐标变换和效果渲染等3D数据的处理,在相应的软件配合下,可以大幅度提高处理器的3D处理性能。AMD公司后来又在Athlon系列处理器上开发了新的Enhanced 3DNow!指令集,新的增强指令数达了52个。

SSE2指令集

在PentiumIII发布的时候,SSE指令集就已经集成在了处理器的内部,但因为各种原因一直没有得到充分的发展。直到Pentium 4发布之后,开发人员看到使用SSE指令之后,程序执行性能将得到极大的提升,于是Intel又在SSE的基础上推出了更先进的SSE2指令集。

SSE2包含了144条指令,由两个部分组:SSE部分和MMX部分。SSE部分主要负责处理浮点数,而MMX部分则专门计算整数。SSE2的寄存器容量是MMX寄存器的两倍,寄存器存储数据也增加了两倍。在指令处理速度保持不变的情况下,通过SSE2优化后的程序和软件运行速度也能够提高两倍。由于SSE2指令集与MMX指令集相兼容,因此被MMX优化过的程序很容易被SSE2再进行更深层次的优化,达到更好的运行效果。SSE2对于处理器的性能的提升是十分明显的,虽然在同频率的情况下,Pentium 4和性能不如Athlon XP,但由于Athlon XP不支持SSE2,所以经过SSE2优化后的程序Pentium 4的运行速度要明显高于Athlon XP。而AMD方面也注意到了这一情况,在随后的K-8系列处理器中,都加入SSE2指令集。

SSE3指令集

SSE3指令是目前规模最小的指令集,它只有13条指令。它共划分为五个应运层,分别为数据传输命令、数据处理命令、特殊处理命令、优化命令、超线程性能增强五个部分,其中超线程性能增强是一种全新的指令集,它可以提升处理器的超线程的处理能力,大大简化了超线程的数据处理过程,使处理器能够更加快速的进行并行数据处理。

上面介绍的基本上就是Intel和AMD公司在X86架构处理器上主要的扩展指令集,虽然它们对于处理器的性能提升有着一定程度的帮助,但是由于受到IA-32体系的限制,X86架构基本上不会再有具有革命性意义的指令集出现,而双方都已经把重心转向了64位体系架构的处理器指令集开发上。

AMD和Intel芯片所用的指令集有一些小差别,Intel不支3Dnow图形指令,Intel采用了超线程技术而AMD没有采用。这样的技术以及芯片设计上的差别相信也对微软开发出兼容性的64位Windows操作系统提出了挑战。相信Vista会解决这个问题。

AMD64位技术

AMD的athlon 64系列处理器的64位技术是在X86指令集的基础上加入了X86-64的64位扩展X86指令集,这就使得athlon 64系列处理器可兼容原来的32位的X86软件,并同时支持X86-64的扩展64位计算,并且具有64位的寻址能力,使得它成为真正的64位X86构架处理器。在采用X86-64架构的Athlon 64处理器中,X86-64指令集中新增了几组处理器寄存器,它能够提供更加快速的执行效率。寄存器是处理器用来创建和储存CPU运算结果和其他运算结果的地方,标准的X86构架中包括8组通用寄存器,而在AMD的X86-64架构中又增加了8组,将通过寄存器的数目提高到了16组。在这基础之上,X86-64指令集还另外增加了8组128位的XMM寄存器,也叫做SSE寄存器。它能够给单指令多数据流技术(SIMD)运算提供更多的存储空间,这些128位的寄存器能够提供在矢量和标量计算模式下进行128位双精度处理,这也为3D数据处理、矢量分析和虚拟技术提供了良好的硬件基础。由于提供了更多的寄存器,按照X86-64标准生产的处理器可以更有效率的处理数据,在一个时钟周期内能够传输更多的信息。

EM64T技术

EM64T(Extended Memory 64 Technology)也就是Intel公司开发的64位内存扩展技术。它实际上就是Intel IA-32构架体系的扩展,既IA-32E(Intel Architectur-32 Extension)。Intel的IA-32处理器通过加入EM64T技术便可在兼容IA-32软件的情况下,允许软件程序利用更多的内存地址空间,并且允许程序进行32 位线性地址写入。Intel的EM64T所强调的是32位技术与64位技术的兼容性,为采用EM64T的处理器增加了8个64位通用寄存器,并将原有的32位通用寄存器全部扩展为64位,这样也提高了处理器的整数运算能力。另外增加的8个SEE寄存器也提供了对SSE、SSE2和SSE3指令的支持。

目前Intel的主流桌面处理器共有两个模式,传统的IA-32模式和IA-32E模式。在可支持EM64T指令的处理器内有一个扩展功能激活寄存器(Extended Feature Enable Register),称为IA-32_EFER的部件,它控制处理器的EM64T是否被激活。在普通情况下,处理器会作为一颗标准的IA-32处理器,如果在运行64位的软件或程序时,EM64T就会被激活,那么处理器便会在IA-32E扩展模式下运行。

64位Windows只认AMD,当前广泛流行的beta版的64位Windows XP只能安装在AMD Opteron和Athlon64处理器平台上。系统在安装过程中会检查该电脑是否为AMD的系统,若不是,安装过程将会被终止。

到现在为至,Intel和AMD在桌面处理器市场的竞争愈发的激烈,而产品的性能与新技术的运用将会是两家厂商取胜的要点之一。虽然Intel已经开始了IA-64体系架构的研发,而且已经运用到了高端的服务器领域,但是要渗入到民用桌面市场相信还是需要相当长的时间才行。而IA-32构架的X86处理器产品在一段时间内仍然将是市面上的主流。但是受到了X86构架的限制,Intel和AMD也都会将重心放在扩展性和并行处理上,而不是一味的提高处理器的主频。现在两家的公司的双核心处理器也都已经上市,所以其扩展指令集的开发相信也会是朝这个方向发展。虽然真正的64位体系构架才是处理器的方向,但是在这之前,X86构架仍然没有走到尽头,所以想要全面进行64位时代,Intel和AMD仍然还有很长的一段路要走。

现在Intel和AMD都已经推出各自的双核心CPU,用户们关心的自然是它们的性能问题。Extremetech及时地为我们带来了AMD Opteron 875 2.2GHz和Intel Pentium Extreme Edition 840 3.2GHz的对比测试,当然还有一块单核心P4 EE 3.73GHz作陪衬。

(测试,略)

“AMD取得巨大胜利。我们期望Opteron 875在多线程程序和多任务测试中取得较大进步,但是由于其主频只有2.2GHz,我们不确定它能否比主频为3.2GHz的Intel双核心Pentium Extreme Edition 840跑的更快。在某些测试中——多为单线程测试——Opteron 875没有速度优势,但是在大多数测试中,AMD保持领先。”

“在3D模型和渲染、视频编码、游戏等项目中,双核心Opteron遥遥领先。在目前并未为双核心优化的游戏中,我们发现Opteron的表现甚至比单核心的3.73GHz P4EE还要好,而在任务繁重的多任务测试中,Opteron 875的性能也和双核心Pentium相当或者略有胜出。”

2008-2010 年,国内网民破亿,装机、优化、数据恢复类教程是下载站流量的中坚。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

同类老文章:CPU相关

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史