Technology
 

MMX

From Computing Knowledgebase

Wikipedia
This page uses content from the English Wikipedia. The original article was at MMX. The list of authors can be seen in the page history. As with All articles on the Computing Knowledgebase Wikia, the text of Wikipedia is available under the GNU Free Documentation License.

MMX Stands for MultiMedia eXtensions, and was a set of Multimedia instructions that would speed up applications that supported them.

Implemented in all Intel Processors since the Pentium MMX

MMX is an 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. It has been supported on most subsequent IA-32 processors by Intel, and other vendors, such as AMD.

MMX is rumoured to stand for MultiMedia eXtensions or Multiple Math eXtension, but officially it is a meaningless initialism trademarked by Intel.

To simplify the design, and to avoid modifying the operating system to preserve additional state through context switches, MMX re-uses the existing eight IA-32 FPU registers. This made it difficult to work with floating point and SIMD data at the same time. To maximize performance, programmers must use the processor exclusively in one mode or the other, deferring the relatively slow switch between them as long as possible.

Another problem for MMX is that it only provides integer operations. Each of the eight 64-Bit MMX vector registers, aliased on the eight existing floating point registers, could represent two 32-Bit integers, four 16-Bit short integers, or eight 8-Bit chars. 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 fell out of favor and vectored-floating point became much more important.

Intel later addressed these shortcomings with SSE, a greatly expanded set of SIMD instructions with 32-Bit floating point support and an additional set of 128-Bit vector registers that made it easy to perform SIMD and FPU operations at the same time. SSE was in turn expanded with SSE2 and then SSE3. Support for any of these later instruction sets implies support for MMX.

Intel's main competitor, AMD, copied and enhanced Intel's MMX with the 3DNow! instruction set. Also, Cyrix developed their own version of MMX, but, instead of directly copying Intel's MMX, they Reverse Engineered the MMX instructions, with then intention of extending it, much like AMD did. The end result was called Cyrix MMX.

With the advent of SSE2, MMX is now redundant.

Facts about MMXRDF feed
Rate this article: