[ The PC Guide | Systems and Components Reference Guide | The Processor | Processor Architecture and Operation | Internal Processor Interfaces and Operation | Processor Instruction Sets ] MMX Instructions The first major change to the x86 instruction set in a decade, MMX defines 57 new instructions and the first significant break with forward compatibility since the introduction of the 386. MMX sometimes stands for Multimedia Extensions, Matrix Math Extensions, or nothing at all, depending on whom you ask. :^) They were first made available in Intel's Pentium with MMX Technology, codenamed the P55C and just called the "Pentium with MMX" on this site. The newest processors from Intel, AMD and Cyrix all incorporate support for these instructions. The purpose of the MMX instruction set extension is to provide a hardware performance boost for certain types of multimedia programming. In particular, MMX instructions are designed to allow processing of large amounts of similar data at once, using a single instruction. This is sometimes called single instruction multiple data, or SIMD. This is the origin of the name "matrix math extensions", since these instructions operate on a matrix of data. These types of instructions are especially useful for computations needed in processing graphics, video and audio, which leads to its other name ("multimedia extensions"). Since MMX is an instruction set extension, this means that processors that support it will run all the software that ran on early processors, but not the other way around; MMX processors are backward compatible. In order to gain the performance benefits of the MMX instructions, software must be specifically written to take advantage of them. This software must detect whether or not the processor supports MMX, because non-MMX processors cannot process the MMX instructions at all. It is possible for software to be written that will handle both MMX and non-MMX processors, just using different code for each in the areas where MMX instructions are used. Just how much performance improvement you get by using the MMX instruction set depends on what you use it for, as well as whom you ask. :^) The increase in performance can be significant in multimedia applications, but other applications will get very little benefit from MMX. Video streaming, audio file editing, graphics manipulation, games and similar software are most likely to benefit from increased performance under MMX. Standard business applications will get either very little or zero benefit.
|