Intel 80387

This chip was the first generation of coprocessors designed specifically for the Intel 80386 CPU. It was introduced in 1986, about one year after the 80386 was brought to market. Early 386 system were therefore equipped with both a 80287 and a 80387 socket. The 80386 does work with an 80287, but the numerical performance is hardly adequate for such a system. The 80387 has itself since been superseded by the Intel 387DX introduced by a quiet change in 1989 (see below). You might find it when acquiring an older 386 machine, though. The old 80387 is about 20% slower than the newer 387DX. The 80387 is packaged in a 68-pin ceramic PGA, and was manufactured using Intel's older 1.5 micron CHMOS III technology, giving it moderate power requirements. Power consumption at 16 MHz is max. 1250 mW (750 mW typical), at 20 MHz max. 1550 mW (950 mW typical), and at 25 MHz max. 1950 mW (1250 mW typical) [60].

Intel 387DX

The 387DX is the second-generation Intel 387; it was quietly introduced to replace the original 80387 in 1989. This version is done in a more advanced CMOS process which enables the coprocessor to run at a maximum frequency of 33 MHz (the 80387 was limited to a maximum frequency of 25 MHz). The 387DX is also about 20% faster than the 80387 on the average for the same clock frequency. For a 386/387 system operating at 29 MHz the Whetstone benchmark (compiled with the highly optimizing Metaware High-C V1.6) runs at 2377 kWhetstones/sec for the 80387 and at 2693 kWhetstones/sec for the 387DX, a 13% increase. In a fractal calculation programmed in assembly language, the 387DX performance was 28% higher than the performance of the 80387. The transcendental functions have also sped up from the 80387 to the 387DX. In the Savage benchmark (again, compiled with Metaware High-C V1.6 and running on a 29 MHz system), the 80387 evaluated 77600 function calls/second, while the 387DX evaluated 97800 function calls/second, a 26% increase [7]. Some instructions have been sped up a lot more than the average 20%. For example, the performance of the FBSTP instruction has increased by a factor of 3.64. The Intel 387DX (and its predecessor 80387) are the only 387 coprocessors that support asynchronous operation of CPU and coprocessor. The 387 consists of a bus interface unit and a numerical execution unit. The bus interface unit always runs at the speed of the CPU clock (CPUCLK2). If the CKM (ClocK Mode) pin of the 387 is strapped to Vcc, the numerical execution unit runs at the same speed as the bus interface unit. If CKM is tied to ground, the numerical execution unit runs at the speed provided by the NUMCLK2 input. The ratio of NUMCLK2 (coprocessor clock) to CPUCLK2 (CPU clock) must lie within the range 10:16 to 14:10. For example, for a 20 MHz 386, the Intel 387DX could be clocked from 12.5 MHz to 28 MHz via the NUMCLK2 input. (On the Cyrix 83D87, Cyrix 387+, ULSI 83C87, ULSI DX/DLC, and the IIT 387, the CKM pin is not connected. These coprocessors are therefore not capable of asynchronous operation and always run at the speed of the CPU.) The Intel 387DX is manufactured using Intel's advanced low power CHMOS IV technology. Power consumption at 20 MHz is max. 900 mW (525 mW typical), at 25 MHz max. 1050 mW (625 mW typical), and at 33 MHz max. 1250 mW (750 mW typical) [59].