COMBATSIM.COM: The Ultimate Combat Simulation and Strategy Gamers' Resource.
 
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.

3d Accelerators
Main    Back

© 2014 COMBATSIM.COM - All Rights Reserved