Intel 8087 family
Intel 8087 is a numeric co-processor for Intel 8086, 8088, 80186 and 80188 processors. The 8087 has 8 80-bit general registers implemented as a stack. All floating point operations are performed with data from the stack (usually the data at the top of the stack) and data from external memory. Effective address calculation for external memory accesses is performed by the main processor. Both the main processor and the 8087 decode floating-point instructions (they all start from ESCAPE bit pattern). If the decoded instruction references the memory then the main processor calculates memory effective address and performs "dummy read" of memory. The Intel 8087 captures the memory address and, possibly, data, and uses the captured address to read more data or write data to memory. After that the main processor may continue to execute integer instructions without waiting until the 8087 completes execution of the FP instruction. To synchronize execution of multiple FP instructions the main processor used WAIT (FWAIT) instruction to wait until the co-processor becomes available. Because the integer instructions and floating-point instructions could be executed in parallel, it was common to see integer and FP instructions intermixed in x86 programs.
Intel 8087 co-processor supports integer, BCD, single and double precision floating-point numbers, as well as extended precision (80-bit) floating-point numbers. When the 8087 loads data from memory it always converts it internally to extended-precision number, and all further calculations are performed with this number. This is why switching from double to single-precision number or from 64-bit integer to 32-bit or 16-bit integer numbers doesn't provide any significant performance boost.
Intel was not the only manufacturer of this co-processor. AMD and Cyrix Corporation both produced 8087 co-processors. Soviet Union produced clones of 8087 FPU. There are 8087 co-processors stamped "IBM", but it seems that IBM Corporation didn't manufacture the chips and only re-branded Intel chips.
List of 8087 manufacturers
AMD made 5 MHz version of the 8087 FPU. Only a small number of these co-processors was produced. We don't know for sure if AMD ever manufactured faster 8087 co-processors.
There is even less known information about Cyrix 8087, than AMD 8087. Cyrix 8087 was released in 1988 - 1988, it was one of company's first products. It is rumored that the Cyrix Corporation also released 80C87 - CMOS version of 8087.
These are not strictly speaking IBM 8087 co-processors. All of these co-processors were manufactured by Intel and have "IBM" name stamped on it.
Picture of: IBM C8087-6
40-pin ceramic DIP
Picture of: Intel C8087 4MHZ ES
At a glance
16-bit floating-point unit
5 - 10