处理器指令查看源代码讨论查看历史
处理器指令 |
处理器指令,是指计算机处理命令的指令。
简介
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和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。
评价
SSE3:SSE3指令是规模最小的指令集,它只有13条指令。它共划分为五个应运层,分别为数据传输命令、数据处理命令、特殊处理命令、优化命令、超线程性能增强五个部分,其中超线程性能增强是一种全新的指令集,它可以提升处理器的超线程的处理能力,大大简化了超线程的数据处理过程,使处理器能够更加快速的进行并行数据处理。 上面介绍的基本上就是Intel和AMD公司在X86架构处理器上主要的扩展指令集,虽然它们对于处理器的性能提升有着一定程度的帮助,但是由于受到IA-32体系的限制,X86架构基本上不会再有具有革命性意义的指令集出现,而双方都已经把重心转向了64位体系架构的处理器指令集开发上。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标准生产的处理器可以更有效率的处理数据,在一个时钟周期内能够传输更多的信息。[1]