Not being able to rely on a powerful Floating Point Unit (FPU) for its gaming performance, the sales pitch for the K6 was that it was a high performing business alternative to the Pentium II. If you wanted a powerful gaming platform you were shyly pointed in the direction of Intel's massive Slot-1. Luckily AMD's aim to please attitude emerged when they went to revamp the K6 for what was officially intended to be AMD's answer to the Celeron, this processor attained the code-name K6-3D.
Sounding much like a new video card, very few people really understood the face behind the mask the name K6-3D covered. What AMD knew, something the rest of the world assumed to be another try at a MMX-like stunt, was that this time around they were prepared to do much more than compete with a crippled cacheless Pentium II. Instead of focusing on improving the already outstanding Business Application performance of the K6 processor, and instead of simply increasing the clock speed of the processor, AMD decided to confront their weakness head on. As discussed earlier, this weakness was obviously its poor 3D performance, the market demanded faster 3D performance and in return, AMD provided just that, 3D-Now! Surprisingly enough, 3DNow! also happens to be the title of AMD's new instruction set incorporated into their highly anticipated sequel to the original K6 microprocessor, rightfully entitled, the K6-2.
You have probably heard many "techno-geeks" complain about how we don't really need all of this power in our computers today, ever wonder why that topic comes up so frequently? Consider this, your CPU has the power to process millions of commands in a single second, but how much of your CPU's full potential do you imagine is being completely utilized by simply clicking on the Start Menu? Or in a more related sense, how much of your CPU's full potential is being used every time you run Quake 2? The answer is obviously a very limited portion, while there are many interactions taking place between your CPU and on-board cache subsystems, system memory, your video bus, and other such things, your CPU itself, more specifically the FPU is only performing a limited amount of tasks in a highly repetitive manner.
On the hardware side of things, the FPU of a processor is designed to basically handle anything that comes its way, in contrast, on the software side, a 3D game is designed to take all it needs from your system to run and leave it at that. Whether or not your computer has a FPU capable of calculating a trip to Mars does not matter to a game that simply requires the execution of a few relatively simple FPU instructions. This is where AMD saw a chance to make an impression that would definitely last, and more importantly a chance to make an impression that would open a window of opportunity for future generations of AMD processors to come. Instead of concentrating on re-designing the FPU of the K6, why not simply offset the weakness by using a separate set of hard-coded instructions (instructions built into the CPU itself vs software based instructions) to perform common tasks used in 3D games. This was the hand AMD brought to the table with the K6-2, a winning hand, that is if AMD could pull it off.
The AMD 3DNow! Instructions often fall into the MMX ditch as far as comparisons go, and it should be mentioned here that unlike Intel's 57 MMX Instructions, the 3DNow! instructions actually serve a real world, noticeable, gaming purpose. It is true that MMX instructions do help in some cases, however the hype surrounding the integration of MMX instructions into the Pentium line of processors blew the realistic impact of the instructions completely out of proportion. 3DNow! exploits a technology known as Single Instruction Multiple Data execution, or SIMD for short. What this technology does is, as the name implies, it applies a single command (or instruction) to multiple sets of data simultaneously. A real life example of something like SIMD execution would be much like picking berries. Instead of picking a berry off of a bush, washing it, then returning to the bush to collect more you could simply collect a handful of berries at once and retrieve them simultaneously. The key to understanding SIMD is the simultaneous execution of the instruction, therefore saving time. SIMD is not the only benefit the K6-2 receives from AMD's 3DNow! instructions, however it is definitely a plus. If you have ever written any code that requires heavy floating point calculations you will know that floating point division is an extremely slow process from the perspective of the CPU. AMD saw this as a major problem and integrated a reciprocal multiplication function into their 3DNow! instruction set. For example, instead of dividing a number by 4, using reciprocal multiplication you can achieve the same result by simply multiplying by the fraction 1/4. While this may not seem like much, you must understand that a processor can multiply faster than it can divide, in this case, instead of dividing by 4 you are multiplying by 1/4, which can make a world of difference in terms of performance on a more complex level. Since the reciprocal multiplication function is hard-coded on the K6-2 it actually provides a healthy performance increase in many situations. It is instructions like these that make the 3DNow! instruction set different from the old MMX instructions that drove the market wild what seems like so long ago.