Computing in The Fast Lane is how Stewart Cheifet presented the Intel 80386 on Computer Chronicles in 1987. And indeed, the 386 was a fast chip. But as powerful and innovative this microprocessor was, users would inevitably find it slow at some time. And when floating-point math is involved, that time came even faster. Besides cranking up the clock frequency, Intel introduced the 80387 math co-processor to ease the user’s pain. Years later, Intel will invent the overdrive, a drop-in replacement chip altogether.
But between the co-processor and the overdrive, there is a missing link that few know about: the RapidCAD engineering co-processor! Intel filed the trademark application on December 1991 (1760622, defunct in 1999), and released only one RapidCAD processor in 1992 clocked at 33 MHz max.
I should have written processors. Indeed, RapidCAD is composed of two chips, both are drop-in replacements for the 386 (RapidCAD-1, a.k.a. SZ624) and the 387 (RapidCAD-2, a.k.a. SZ625). Physically, both chips look identical to their replacement except for the marking. To detect if a RapidCAD executes it, software should look for the following signature: type=0000, family=0011, and major stepping=0100.
Few authors qualify the RapidCAD chip as a 486 in disguise, but that is not quite right. True, RapidCAD-1 has at its core an improved 386 and a 387, but it doesn’t have any of the new 486 instructions or integrated caches. In particular, the bus interfaces remain identical to the 386’s, and all memory accesses are carried out at the clock speed. However, the magic happens when 387 instructions – each of them requiring many clock cycles – are executed. With a 386 + 387 configuration, the execution of a 387 instruction takes the following steps. When the MSB of an opcode contains the bit 11011 pattern, the decoder marks the instruction as escaped. Escaped instructions’ opcodes are then transferred to the 387 writing them at the 0x8000F8 address. The 387 executes the instructions and signals back to the 386 its state via several signals (busy, error, exception, interrupt, etc.). One of them, ERROR# (pin 35), is also used during the initialization of the processor and the math co-processor. The 386 detects the presence of the 387 when it asserts ERROR# after RESET.
The attentive reader may wonder why did Intel introduce RapidCAD-2? After all, doesn’t the RapidCAD-1 have a 387? Well, it turns out that the RapidCAD-2 is nothing more than a PAL that maintains the control signals discussed earlier. That’s all it does. But, without this chip, RapidCAD doesn’t work. So, if you decide to test-drive RapidCAD, buy both chips at the same time! Unaware eBayers may sell RapidCAD as two lots.
Intel claimed up to 70% performance gain for CAD/Engineering applications. Hence the Engineering Co-Processor name. For integer operations, users could expect between 10 and 35%. But in practice, the lower the memory bandwidth requirement of an application, the higher the performance boost. If you never heard about RapidCAD, it is expected since it was only sold through PC retailers, dealers, and distributors, targeting a niche market using technical applications like CAD, 3-D modeling, math/statistical analysis, etc. Very few publications reviewed RapidCAD, and I found only one Intel advertisement!
As a test and demonstration, I decided to upgrade the Toshiba T5200 luggable I presented here with a RapidCAD. If you plan to perform similar surgery, arrange for a quality chip extraction tool. Indeed, distributors of RapidCAD had access to tools and procedures provided by Intel to extract safely the 386 – and maybe the 387. Unfortunately, we don’t have access to these tools today, so I recommend great caution. You could destroy the chips themselves, as well as the motherboard. Last but not least, of course, your 386 must be socketed and not soldered to the motherboard. If the surgery goes well, you will see no difference until you run an FP-heavy code. Enjoy!