How does it work?

The concept behind MMX is to be able to do operations on multiple data in parallel, using a single instruction. That way, it takes less time to do the same amount of work. This is called the Single Instruction, Multiple Data (SIMD) Technique.

So lets say your working with 16-bit audio data, and you want to raise the volume by 25%. If you didn't have MMX, you'd have to read a word into the registers one at a time, multiply by 1.25, check if you have an overflow, and then fix the overflow. With MMX, you just pack four 16-bit words into the new quadword datatype, and multiply all four words with one instruction. You don't even have to worry about overflows or underflows, because the MMX instructions handles them for you.

But what if your not working with sound? What if you have to process some 8-bit video? No problem. You can cram 8 of these guys into 1 quadword. The MMX technology supports parallel operations on byte, word, and doubleword data elements, and the new quadword (64-bit) integer data type.

These new instructions can help improve performance on just about any multi-media application. Some examples are: motion video, combined graphics with video, image processing, audio synthesis, speech synthesis and compression, telephony, video conferencing, 2D graphics, and 3D graphics.