3D Now!發佈一年後,Intel在MMX基础上发展出SSE(Streaming SIMD Extensions)指令集,用來取代MMX。現在,新開發的程式不再僅使用MMX來最佳化軟體執行效能,而是改使用如SSE、3DNOW!等更容易最佳化效能的新一代多媒體指令集,不過目前的處理器大多仍可以執行針對MMX最佳化的較早期軟體。
MMX的字面涵义
1997年,Intel公司起诉AMD公司与Cyrix公司非法使用(misuse)了商标MMX。随后这起诉讼庭外和解,AMD公司承认MMX为Intel的商标,Intel允许AMD公司使用MMX作为一项技术的名称。在这起诉讼中,AMD披露MMX是Intel命名的矩阵数学扩展(Matrix Math eXtensions)的字母缩写。
技术细节
MMX寄存器,称作MM0到MM7,实际上就是处理器内部80比特字长的浮点寄存器栈st(0)到st (7)的尾数部分(64比特长)的复用。由于浮点栈寄存器的高16位未被MMX技术使用,因此这16位都置为1,因此从栈寄存器的角度看,其浮点值为NaN或Infinities,这可用于区分寄存器是处于浮点栈状态还是MMX状态。作为MMX寄存器都是直接访问。利用了装配数据类型(packed data type)的概念,每个MMX寄存器的64比特字长可以看作是2个32位整数、或者4个16位整数、或者8个8位整数,从而可以执行整数SIMD运算。这对于1990年代中期的2D、3D计算的加速还是很有意义的,因为当时的计算机的图形处理器(GPU)还很不发达。但现在MMX整数SIMD运算对于图形运算来说是多余的技术了。不过MMX的饱和算术运算(saturation arithmetic operations)对于一些数字信号处理应用还是有用的。