DOS Days

Math Coprocessors

Until the arrival of the Intel 80486 microprocessor, PC CPUs only contained integer calculation instructions. Floating-point calculations had to be done in software, which was much slower.

To address this shortfall, Intel designed a separate math coprocessor, also commonly called a Floating Point Unit (FPU). Before very long, competing chip designers came out with their own versions of Intel's FPUs that were fully pin- and instruction-compatible.

However, unlike with their CPU range, Intel had little choice in the manufacturing and sale of FPUs by third parties from companies including IIT, ULSI, Cyrix, Chips & Technologies and Weitek. This was because the 8087 brought in an IEEE standard for handling floating-point arithmetic, and these third parties made sure theirs would in compliance with this. They continued to produce these well into the 486 era.

The design of Intel's CPUs meant that they did not come with floating-point instructions built-in, so with the arrival of FPUs, software had to detect an FPU and make use of the special additional instructions they provided. If the CPUs had been designed to offload floating-point math from 'Day 1' to a coprocessor if one was installed, they would have been much more useful. For this reason, the real-world value of purchasing an FPU was actually rather limited. AutoCAD and other complex design and math tools made great use of the vastly superior performance an FPU could provide, but beyond that, very little PC software used them.

The table below shows the various math coprocessors that were available to DOS PC owners:

Microprocessor Supporting Math Coprocessor
Intel 8088/8086 Intel 8087
Intel 80286 Intel 80287
IIT/ULSI 2C87
Intel 80386SX Intel 80387SX
Cyrix CX-83S87, IIT 3C87SX ULSI SX/SLC
Intel 80386DX Intel 80387DX
Chips & Technologies Super MATH
Cyrix 387DX
Cyrix CX-83D87 FasMath
IIT/ULSI 3C87
Intel RapidCAD
LC 4C87DX Green Math
Xtend 83S87
Weitek 3167 (not pin-compatible)
Intel 80486SX IIT XC87SLC
Cyrix Cx486DLC Cyrix 487DLC
IIT 4C87DLC
IIT XC87DLC
Weitek 4167 (not pin-compatible)

The Weitek chips are not specified in the list below, as there was little support for them. They were not pin-compatible with their Intel counterparts, so a special motherboard design needed to be implemented. Their first, the 3167 for 386DX CPUs was a poor performer, but the 4167 for 486DX systems was the fastest you could get.

Intel 8087

The original Intel 8087 was the only coprocessor available for 8088- and 8086-based PCs. In fact it arrived 2 years before the IBM 5150 even went on the market, but up to that time, initial take-up of the chip had been very low. It came in three versions: 8087-5 (5 MHz), 8087-2 (8 MHz) and 8087-1 (10 MHz).

The 10 MHz version could also work alongside the Intel 80186 and 80188 CPU.

8087 was able to support integer, BCD (Binary Coded Decimal), single-, and double-precision floating point numbers, with 60 new instructions in all. When installed in a PC, it implicitly converted any numbers to extended precision (80-bit) floating-point numbers and worked on them from that number.

The Intel 8087 was also manufactured by authorized chip fabricators, including AMD and Cyrix.

Intel 80287

The Intel 80287 could work alongside an 80286 CPU to provide floating point operations. One advantage to the 80287 over the 8087 was its ability to run asynchronously from the main CPU - this means the clock speed the coprocessor runs at can be different to the CPU.

Available in 5 MHz, 6 MHz, 8 MHz, 10 MHz and 12 MHz versions.Other fabricators such as AMD, IIT and Cyrix produced 80287 coprocessors with 16 and 20 MHz clock speeds. Cyrix first coined the term 'FasMath' with their 80287 chip.

Later variants of the 80287 were the 80287XL and 80287XLT. The 80287XL was actually an '80387SX (with 387 micro-architecture) but in a 80287 DIP package for use on fast 80286 and 80386DX motherboards. These had an internal 3/2 clock multiplier to allow the copro to run not at the default 2/3rd speed of the CPU, but at the same speed. It basically took the incoming clock signal from the mainboard's crystal oscillator for the FPU and multiplied it by 1.5x.

The 80287XLT was a low-power version of the 80287XL designed for use on laptop computers. Another variant that had 387 performance was the 80C287 which was built on Intel's later CMOS manufacturing process.

All these later 80287 coprocessors filled the gap for the early 386 market from 1985 before the arrival of the 80387 math coprocessors in 1987.

IIT/ULSI 2C87

The 2C87 was a clone of the Intel 80287 introduced in 1989. It contained the full 387 instruction set.

The 2C87 by IIT (also sold by ULSI) was available in these versions: 8, 10, 12, 16, 20 and 25 MHz. Performance-wise, the 2C87 is about the same as an Intel 80287XL clock for clock. The 2C87 initially sold for between $299 (10 MHz) and $379 (20 MHz).

"Jumping into the tiny numeric coprocessor market that's currently composed of Intel's mainstream products and expensive, powerful coprocessors from Weitek, Integrated Information Technology now provides users with 80287 and 80387 coprocessors that offer faster performance than their Intel equivalents, for the same price.

The IIT-2C87 and the IIT-3C87, both CMOS devices, are plug and code compatible with the Intel 80287 and 80387 respectively. Since they require fewer clock cycles to perform the same operations, the IIT-2C87 is almost 200 percent faster, and the IIT-3C87 is 50 percent faster than the competition, according to the company.

In addition, the IIT-2C87 includes extra functions from the 80387 instruction set, such as IEEE COMPARE, IEEE REMAINDER, and a larger range for transcendental functions. It can operate at clock speeds of 10 or 20 MHz; the IIT-3C87 comes in 16-, 20- and 25-MHz versions. "
     PC Magazine, August 1989

 

 

Intel 80387

The original math coprocessor for 80386DX CPUs. Performance benchmarks indicate this is between 10% and 25% slower than the competing 386DX-compatible coprocessors from Cyrix, ULSI and IIT.

The 80387DX could happily run beside any 386DX from the original 16 MHz up to 33 MHz.

Intel's own 80387-33 cost $994 in 1989.

 

 

Cyrix 387DX

The 387DX was Cyrix' first coprocessor for 80386 systems. It was pin-compatible with the Intel 80387 math coprocessor, and was soon replaced with the more advanced CX-83D87.

It was released in 25 MHz, 33 and 40 MHz versions.

Cyrix FasMath CX-83S87

The CX-83S87 was designed to complement 386SX-based systems and was available in 16, 20, 25, and 33 MHz variants. Like its big brother, CX-83D87, these were the fastest co-processors you could buy for 386 systems. Any CX-83S87s manufactured after 1991 got the 387+ internals.

The CX-83S87 is designed to be used alongside the Cx486SLC CPU.

Cyrix FasMath CX-83D87 / 387DX+

The CX-83D87 (called 387DX+ in Europe) was introduced in 1989. It is the fastest 387-compatible coprocessor, available in 25, 33, and 40 MHz variants, and provides up to 50% more performance than the Intel 387DX clock for clock.

The 83D87 also offers the most accurate transcendental functions of all coprocessors. It is the 387 clone with the highest degree of compatibility to the Intel 387DX.

Unlike the Intel 387DX, the 83D87 (and all other 387-compatible chips as well) does not support asynchronous operation of CPU and coprocessor.

To reduce power consumption the 83D87 features advanced power saving features. Those portions of the coprocessor that are not needed are automatically shut down. If no coprocessor instructions are being executed, all parts except the bus interface unit are shut down.

Benchmark tests have shown that FasMath chips with a grey top run slightly faster than those with a black top, and also faster than the DLC versions of this chip.



These Cyrix math coprocessors cost from $647 for the 20 MHz version up to $994 for a 33 MHz version.

 

IIT 3C87SX

The 3C87SX math coprocessor from IIT was designed to sit alongside a 386SX CPU, and came in 16, 20, 25, 33 and 40 MHz versions. They cost $439 for a 16 MHz version up to $779 for a 33 MHz version.

IIT/ULSI 3C87

The 3C87 math coprocessor from IIT was designed to sit alongside a 386DX CPU, and came in 20, 25, 33 and 40 MHz versions. Performance-wise, the 3C87 is faster than the Intel 80387DX coprocessor.

The 3C87 initially sold for between $499 (16 MHz) and $799 (25 MHz) at launch in August 1989.

IIT XC87SLC

The XC87SLC math coprocessor from IIT was designed to sit alongside a 486SX CPU, and came in 33 MHz version only.

 

Cyrix 487DLC

Because the Cyrix Cx486SLC/DLC CPUs didn't come with an internal FPU (floating-point unit), motherboards that supported these Cyrix CPUs sometimes also provided a Cyrix math coprocessor socket. These were designed to accommodate the 487DLC coprocessor. These came in 33 and 40 MHz variants.

 

IIT 4C87DLC

The 4C87DLC math coprocessor from IIT was designed to sit alongside a 486DX CPU, and came in 33 and 40 MHz versions.

IIT XC87DLC

The XC87DLC math coprocessor from IIT was designed to sit alongside a 486DX CPU, and came in 33 MHz version only.