Intel 80287 is a co-processor for 80286
family of processors, and it could also work with
microprocessors. The 80287 has
architecture similar to Intel 8087
it's completely object-code compatible with the 8087 (but not
pin-compatible). The number of instructions and execution time of
instructions for both co-processors is about the same. Main
difference between the 80287 and 8087 co-processors is the way how
the CPU interfaces with the co-processor:
- The memory and protection unit of main processor validates all
floating-point instructions before passing them to the co-processor.
This extra step introduces small delay to execution of FP
instructions. As a result the 80287 runs slightly slower than the
8087 at the same frequency.
- When the main processor executes the floating-point instructions it now
checks if the co-processor is busy, and, if necessary, will wait
for the co-processor to become available. As a result, it's no longer
necessary to add WAIT (FWAIT) instruction before most of the 80287
- The 80287 may run asynchronously from the main processor. The 80286 processor
divides external clock by 2, while the co-processor divides it by 3. If both
the 80286 and 80287 use the same external clock it results in the
co-processor running at the 2/3 speed of the main processor.
Nevertheless, the ability to run asynchronously can be used to its
advantage. Using dedicated external clock for the Intel 80287 it's
possible to run the co-processor at higher frequency than the main
The Intel 80287 was produced at speeds ranging from 5 to 12 MHz.
Other companies produced 16 MHz and 20 MHz versions of the FPU.