Jiggy -
Generally speaking, IF a software vendor wants his multimedia software to run on BOTH the old Pentium and the MMX enhanced Pentium AND take advantage of the MMX instructions, and therfore speed for MMX-type applications, the writers of the software will incorporate software algorithms to perform the multimedia operations (example MPEG-1 decoding) using the "old" Pentium instructions IN ADDITION to new software procedures employing the MMX instructions to perform the same functions but using the speedier MMX instructions .
How does all this work?
When the software is first started, certain instructions in the application software will interrogate the Pentium CPU to detect an embedded code that Intel will provide (built right into the Pentium/Pentium Pro hardware). This code will tell the software if the CPU is the old type or the new type with MMX extensions.
If the application code detects the old type, any multimedia-type operation will be passed to a software procedure employing the original Pentium instruction set - and will execute at the "old" speed.
If the application code identifies the new CPU as "MMX enhanced", it will invoke new (and different) procedures for executing these operations employing the new MMX instructions, and the performance of these operations will be enhanced (i.e., speeded up) accordingly.
For a Windows/Windows NT applications, my guess is that the software vendors will provide two sets of DLL (Dynamic Link Libraries) procedures - one for the old Pentium, one for the new Pentium. After the application code detects which CPU is in place, it will load/link the appropriate DLL modules.
If you use an Intel-type computer (Wow - I remember when we called these "IBM Compatible " - how times have changed!) and Windows 3.1/95/NT software, check your hard disk for files with the extension .DLL under your application directories. You will find many such files, most of them large. The new software will include more .DLL files to handle the new MMX-type instructions (Assuming they keep the old .DLL files to work with the old Pentium.)
An indirect effect will be that more hard disk space will be consumed, requiring ever larger hard disks! (You may want to look at Seagate, Quantum, etc.)
This "dual" software approach is not new. Many years ago (pre-486), "IBM compatible" machines had a socket for a Math Coprocessor - first an 8087 (for 8086/88 machines), 80287 for 80286 machines, and 80387 for 80386 machines. Some people added the math coprocssor, some didn't. So, software vendors such as Lotus, Autodesk, etc.) had to detect the CPU and load the appropriate algorithms to perfrom floating point operations in software (Algorithms) or hardware (via the x87 coprocessor).
The 80486 and succeeding x86 processors incorporate the floating point math co-processor on the same chip as the integer processor - so the math hardware is "built-in" on these chips.
As Yogi Berra said it - it's Deja Vu all over again.
Paul Engel |