Intel's MMX Inside

The 57 instructions that make up MMX use a technique called Single Instruction, Multiple Data (SIMD) to deliver better performance by performing more tasks in parallel, or at the same time. Joanne Hasegawa, an Intel spokesperson, says MMX works because of the nature of most multimedia programming code.

"Multimedia and communications code tends to be small and repetitive," she says, "but there just seems to be so much of it." MMX lets the chip churn through more of these operations at once rather than serially, or one another. When the chip does more jobs at the same time, everything speeds up.

Intel says the performance boost will let its processors run several simultaneous, CPU-intensive multimedia tasks with more than enough power left over for additional applications. MMX is an attempt to keep the Intel-based PC in its position as the premier tool for running today's graphics-rich multimedia software and games. Other microprocessor companies such as Sun have added similar instructions to their architectures, but MMX appears to be the most ambitious such attempt to date.

MMX technology is based upon a careful analysis of multimedia applications. Intel engineers found that most video, music, image processing, and game applications shared several key features in the way they used a CPU's computing time. Chief among these was the large number of small, repetitive loops a program goes through to redraw screen elements or replay bits of sounds. MMX technology adds instructions to Intel chips to grant them special capabilities for dealing with these short, repetitive arithmetic operations.

In a graphics application, for instance, the individual pixels—the tiny dots that together make an image on a screen—usually are represented inside the computer as 8-bit numbers, or bytes. In a chip using MMX technology, eight of these bytes might be packed into one 64-bit number and moved together into the MMX area of the CPU. The necessary mathematical operations then are performed on all eight bytes at the same time.

The faster performance provided by this advanced number-crunching means developers can pump bigger data strings through the CPU in the time smaller strings now take. This ability leads not only to faster software, but to better software.

No comments:

Post a Comment