扩展指令集是指
CPU增加的多媒体或3D处理指令,这些扩展指令可以提高CPU处理多媒体和3D图形的能力,著名的有MMX(多媒体扩展指令)、SSE(因特网数据流单指令扩展)和3D Now!指令集。
MMX(Multimedia Extensions,多媒体扩展指令集)是Intel在1996年推出的一项
多媒体指令增强技术,是
Intel公司第一次对x86 指令集进行的多媒体指令扩展,它增加了4个新的数据类型、8个64位寄存器和57条指令,并且采用了SIMD技术,同时保持了与现有软件的兼容。MMX指令集使CPU处理图像、动画、多媒体通信、语音识别以及音频
解压缩等方面的能力有了显著提高。
浮点运算能力是关系到CPU对多媒体、3D图形处理能力的一个重要指标,而MMX指令集没有大力加强浮点运算能力。在3D图形、Internet 3D网页应用日趋增多的情况下,MMX指令集难以完全满足需要。
SIMD(Single Instruction Multiple-Data,单指令多数据流)是Intel 为MMX技术设计的一组基本的、通用的指令集,以满足各种多媒体和通信应用的需要。该技术允许利用任何新增加的单个指令处理多组数据,以并行方式处理多个数据元素,从而提高了多媒体和通信软件的运行速率。
3D Now!是AMD公司开发的多媒体扩展指令集,共有 27条指令。与MMX技术侧重的整数运算不同,3DNow!主要针对三维建模、坐标变换、效果渲染等三维应用场合而设计,在软件的配合下,可以大幅度提高3D处理性能。但由于指令有限,该指令集主要应用于3D游戏,而对其他商业图形的应用处理支持不足。
SSE(Internet Streaming SIMD Extension)被 Intel公司首次应用于Pentium Ⅲ中。SSE共有近70条指令,其中包含50条SIMD浮点运算指令、12条MMX整数运算增强指令、8条优化内存连续数据块传输指令。它包括了原MMX和3D Now!指令集中的所有功能,特别加强了SIMD浮点处理能力,并针对Internet的发展,加强了处理3D网页的能力。SSE指令集与3D Now!指令集互不兼容,但SSE包含了3D Now!技术的绝大部分功能,只是实现的方法不同。SSE
兼容MMX指令。
SSE2是Intel在Pentium 4处理器中推出的扩展指令集。和SSE指令集相比,
SSE2指令集总共有144条指令,其中包括原有的68个SSE指令和新增加的76个SSE2指令。SSE2指令将传统整数MMX寄存器扩展成128位,还提供了128 位SIMD整数运算操作和128位双精密度浮点运算操作。