MMX Explained
The MMX set simplifies certain mathematical operations that are generally
used in multimedia applications, such things as matrix multiplication,
chroma keying (blue screening), alpha blending and a wide variety of other
operations. This means that your next generation Pentiums, while probably
running at higher speeds anyway, will probably run circles around current
models on games and other multimedia.
More or less these MMX instructions operate using the floating point
register to perform a series of mathematical instructions that use variable
sized integers and operate on blocks of them simultaneously. So for
example, instead of a normal instruction which can add two 32, 16, or 8-bit
numbers at once, one could add four 16 bit integer in pairs, or eight 8 bit
integers, etc. These seemingly simple instructions allow for very powerful
operation to be performed very quickly. Since today's highly graphical
games consist of long series of repetative mathematical instructions, if you
can speed up these basic operations, you can spend more CPU time on game AI
and other power hungry gameplay features.
For a good example of a good potential use of the MMX instruction set, we
can look at 3D graphics. For every 3D coordinate we wish to convert into a
2D coordinate (a monitor needs 2D coordinates to display graphics), we must
multiply our point in 3D space by a transformation matrix that describes our
viewing transformation. This, on its own, usually isn't that expensive, but
in games we often have to transform hundreds to thousands of vertices for
each viewed frame, with 30 or more frames per second, so this simple
operation quickly becomes very costly. This is where MMX comes in. Using
the MMX instructions for multiplication and addition in the place of
ordinary methods can speed up our transformation by nearly three times.
The 3D transformation is just one illustration of how MMX can be applied.
In fact, the MMX set can be applied to any code requiring repetitive integer
calculations. This means that MMX won't only be able to accelerate 3D, but
also sound and video compression, encryption, 2D video, platform style
games, voice and image recognition, and the list goes on and on. Almost any
multimedia application that relies on heavy calculations, which almost all
do, will benefit.
While virtually every game to come out in the years to come will benefit from
the use of the MMX instruction set, it probably still won't hurt sales of
stand alone multimedia accelerators. Such peripherals as the up-coming wave
of 3D accelerators, and MPEG decoders will most likely still outperform the
MMX set, simply due to the fact that they offload these jobs from the CPU
altogether, freeing it up to perform other duties. Of course, MMX certainly
won't hurt the performance of these cards, and at the very least will be
used to accelerate other features in high-end multimedia games. Since
processors utilizing the MMX set won't even be out till late next year, it
will hardly hurt initial sales of 3D acclerators as anyone putting off the
purchase of a 3D accelerator, or MPEG decoder to pick up a fresh next
generation Pentium chip will have quite a wait on their hands.
Lots of hardware and software manufacturers seem excited by the introduction
of this new set of opcodes, and already considering how their products might
benefit from them. Among the notable supporters of the new offering are
Microsoft, QSound, Creative Labs, ATI, S3, and IBM. All seem to agree that
MMX can enhance their products significantly, and for varying reasons.
Microsoft has announced that they will support MMX in the next major release
of Visual C++, and will be utilizing it in both ActiveMovie (a new MPEG
based movie codec that Microsoft will be using instead of AVI's) and
Direct3D (Direct3D is of course a subset of the DirectX graphics library
used in the creation of Win95, and soon Windows NT 4.0, games). The
inclusion of MMX in Visual C++ libraries and DirectX means that to make
existing Win95 game code MMX enabled should require a minimal modification
of existing code and then recompiling it.
Okay, okay. Let's cut to the chase. What does MMX really mean for games?
Well, as I've said already, MMX should speed up games, assuming programmers
make use of it, which they most certainly will. Virtually every genre of
game should benefit from MMX. Full Motion Video games will be able to use
more complicated codecs, and thus save space. Scrollers will be able to
afford yet even more levels of parallax for unparalelled gaming action.
Adventure games will be able to afford larger sprites, and more complicated
animation and effects. The list is basically endless, and the applications
of MMX are limited only by the imaginations of game coders and designers.
MMX is so powerful that adoption of the MMX instruction set is inevitable
and eventually it will permeate everything to the point where it is a
standard and required by applications.
This doesn't mean that you should throw out your current
systems. While the 486 family will probably only be able to handle high-end
games for another year or so, any current Pentium with a 3D accelerator
should be able to handle anything you throw at it for quite a while. Plus,
as stated before, the use of various hardware accelerators, such as MPEG
decoders, 3D accelerators and next generation sound and video cards will
probably provide a comparible if not better performance by offloading much
of the processing from the CPU.
Yet while we'll probably always be able to
get faster computation by offloading the processing problems from the CPU,
the cost of separate peripherals for each feature would be quite ridiculous
when compared to the cost of a new processor after its been on the market
for a little while. Regardless of the fact that individual peripherals may
perform better than MMX alone, they will perform even better when MMX
enhanced.
However it is achieved though, speeding up the graphics will allow time
for more complicated gaming environments, and smarter computer generated
opponents. The whole MMX thing is most likely Intel's answer to compete in
the 'multimedia processor' market. Currently, many other workstation level
microprocessor manufacturers produce these so called multimedia processors,
including Sun Microsystems' UltraSparc.
The MMX instruction set is a powerful add-on to an already formidable
processor family. The addition of these instructions will further enhance
game performance and thus the degrees of player immersion and enjoyment.
MMX will be the next major leapfrog in taking PC gaming to the next level,
and beyond.
Main Back
|