PicoBlog

Inside Intel's 8087 - by Babbage

I was about to write a post on the Intel 8087, following up on the AMD 9511, when I realised that Ken Sheriff had done not just one but four already!

The 8087 was the optional floating point co-processor that accompanied the 8088 microprocessor in the original IBM PC.

Ken’s posts look in detail at the 8087’s die and decode the 8087’s ROM. The four posts are:

Inside the die of Intel's 8087 coprocessor chip, root of modern floating point

Extracting ROM constants from the 8087 math coprocessor's die

Die analysis of the 8087 math coprocessor's fast bit shifter

Two bits per transistor: high-density ROM in Intel's 8087 floating point chip

As with all Ken’s posts, these are all tremendous pieces of work and highly recommended. A couple of highlights:

  • The ROMs stored two bits per transistor instead of the usual single bit giving the 8087 more memory than would otherwise have been possible on a die this size. As far as I’m aware only one other Intel chip (in the iAPX 432 series) also used this approach.

  • The 8087 included a ‘barrel shifter’. Quoting from the blog post:

    “Since shifts are so essential to performance, the 8087 uses a "barrel shifter", which can shift a number by any number of bits in a single step. Intel used a two-stage shifter design that kept its size manageable while still providing high performance. The first stage shifts the value by 0 to 7 bits, while the second stage shifts by 0 to 7 bytes. In combination, the two stages shift a value by any amount from 0 to 63 bits.”

    Interestingly a barrel shifter would soon feature in the very first ARM microprocessor.

Overall the 8087 had at least 40,000 transistors (45,000 according to some estimates) compared to 29,000 for an 8086. The complexity of the 8087 meant that it was initially quite expensive (up to $700 according to some accounts). Adoption was helped though by having a spare socket for the 8087 in the original IBM PC motherboard.

As with the AM9511 the 8087 had a large ‘microcode’ program ROM. Unlike the AM9511 it had hardware for 64 bit-wide arithmetic. Before long AMD was acting as a ‘second source’ for the 8087.

It’s strange to see something that we take for granted now as an expensive optional extra.

The importance of floating point hardware would become clear over a decade later when a bug in the floating point code in the Pentium processor would cost Intel $475 million dollars.

By Pauli Rautakorpi - Own work,

CC BY 3.0,

https://commons.wikimedia.org/w/index.php?curid=28386938

ncG1vNJzZmismJqwqbXPpZytrJWne7TBwayrmpubY7CwuY6pZqKmo56xpnnIp6uepKNihXGElg%3D%3D

Christie Applegate

Update: 2024-12-03