MMX (Multimedia extensions) is a SIMD instruction set designed by Intel, introduced in their Pentium MMX microprocessors. It developed out of a similar unit first introduced on the Intel i860.

In order to simplify the design, MMX re-used the FPUs registers. This rendered the CPU unable to work on both floating point data and SIMD data at the same time (at least not effectively). In order to get value from MMX, programmers had to use the processor exclusively in one mode or the other as long as possible, which was difficult to do as most customers were moving to one or another multitasking operating systems at the same time (newer versions of Microsoft Windows), removing this control from the programmer.

Another problem for MMX is that it operated on only two 32-bit integers, four 16-bit integers, or eight 8-bit integers at a time. When originally developed in the i860, the use of vectored-integer math made sense (both 2D and 3D setup required it), but as the systems moved to using graphics cards that did this, MMX became largely useless and vectored-floating point became much more important.

As a result, MMX was largely ignored. Intel later addressed both of these problems with a completely new set of SIMD instructions, SSE.

copyright 2004