Learn about the technologies behind the Internet with The TCP/IP Guide!|
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
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.
Note: It is possible to
emulate the MMX instructions using software. Bear in mind that the whole point of MMX is
to provide performance improvements by doing functions in hardware that used to be done
using less-efficient "regular" x86 instructions. However, for processors that
don't support MMX, it is likely that MMX emulators will be written to allow support for
MMX software, if and when this becomes prevalent in the marketplace. (They will just run
slower on non-MMX machines).