Q. What is the 3DNow! Instruction Set?
A. 3DNow! adds an additional 21 instructions to the x86 instruction set. These instructions are geared primarily to improving the K6s ability to handle integer and floating point calculations and enhancing 3D graphics and multimedia applications (especially 3D gaming).
The big improvement is the ability of the processor to now handle SIMD (single instruction multiple data) instructions. This means that within a single clock cycle, up to 4 pieces of data can be operated upon simultaneously. This greatly speeds up having to go out and fetch a piece of data and operate on it and then go get another piece of data (a serial operation). Operating on multiple pieces of data (a parallel operation) turns out to benefit gaming applications where the processor is updating tons of geometry calculations all the time.
Another high powered instruction was the addition of reciprocal multiplication. Floating point division is one of the most taxing of the tasks asked from a processor. By allowing reciprocal multiplication (which is the same as division), the calculation time required is reduced significantly. Other additions include specific SIMD integer instruction for MPEG decoding, new PREFETCH instruction to eliminate extra data retrieval time and FEMMS (Fast Entry/Exit Multimedia State) instruction to reduce switching time between MMX and x87 code.
Q. What is the difference between MMX and the 3DNow! instruction set?
A. MMX was originally developed to improve 2D and 3D graphics and integer-intensive operations. Not many applications were written to take advantage of MMX and its value is debatable. 3DNow! was developed to improve floating point operations designed to boost 3D graphics and multimedia performance.
MMX has shown little support from SW developers and gives no noticeable improvement to gaming performance. Whereas, when SW developers have taken the time to properly utilize the instructions, 3DNow! has shown an amazing difference in gaming performance.
Q. Why are AMD, IDT and Cyrix all going to use 3DNow!?
A. AMD, IDT and Cyrix have standardized on embedding the 3DNow! technology in all their upcoming processors. The three major alternative cpu makers each had their own version of this technology, but banded together and standardized to allow for easier adoption by SW programmers. Because AMD was the closest one to actually prototyping the first silicon, they wielded great influence to get the other processor makers to adopt their version. IDT, for one, thought their version was superior to AMD, but cooler heads prevailed when all three decided to adopt a single version. The market did not need three separate versions of this technology and scattered support for all of them.
Q. Who will support 3DNow! technology?
A. This question remains to be seen. Recently, AMD released a 3DNow! patch for Quake2, but this new driver requires a Voodoo2 card. Microsoft has planned on DirectX 6.0 supporting 3DNow!, but the release date for this is unclear. It was originally going to be part of the first Windows98 Service Pack 1, but this may come before SP1 is released in September.
Its readily apparent that this technology is very elegant and with careful coding, it can provide significant improvements to many applications in the future. The real success in adopting this technology will be measured in the number of 3DNow! enabled processors that make it into computers around the world.