Author here for your 8087 questions. I find adders and ALUs interesting because they are key to the performance of a system and every system implements them differently.
Do you know about how many transistors are needed to implement the adder (or the FPU as a whole)? And how it scales with the width of the numbers (16 bit, 32 bit, etc)?
I've been curious about transistor counts for floating point units for a while, but it's hard to find information about them.
Do you have any insights on how power was delivered to these circuits? Maybe it's done in the metal layers that were dissolved? Also, is it correct that there is no on die capacitance surrounding these circuits?
The 8087 has one metal layer, which makes power distribution more challenging. You want to keep power distribution in the metal, so for the most part the pattern is two interdigitated trees for power and ground. There are a few places where the lines need to cross, which is accomplished with a short polysilicon connection underneath. The two clock lines are also kept in metal whenever possible.
The die photo at the start of the article shows some of the power distribution (the thick white lines around the edge and through the die). I have a close-up shot of the adder's metal layer in the article, showing the thick power and ground metal lines that run next to the adder.
As far as capacitors, there are some capacitors for specific things, but no decoupling capacitors. I think the capacitors are mostly to tweak the timing, if a signal needs to be delayed slightly.
It is interesting that over the years people have produced synthesizable RTL HDL for the 8086/8088 and later, with varying degrees of fidelity, but no-one seems to have produced similar for the 8087.
personally I would like to see a compare and contrast between the Intel 8087 (built around an full width adder), 287 and the Weitek 1167 (built around a full width mac and barrel shifter)
as you note, all these parts were pushing the transistor limits of their day
PS. and the Inmos T800 had a log shifter … so a compromise between those extremes
Wonder if this was one of the inspirations for naming "Python" language too.
One of the first implementations of the interpreter must have tackled the "add" operation, so maybe the interpreter was just an adder in a prototype version.
I know that Monty Python is officially cited as the inspiration behind the name.
11 comments
[ 4.7 ms ] story [ 31.5 ms ] threadI've been curious about transistor counts for floating point units for a while, but it's hard to find information about them.
Thanks for the great article.
The die photo at the start of the article shows some of the power distribution (the thick white lines around the edge and through the die). I have a close-up shot of the adder's metal layer in the article, showing the thick power and ground metal lines that run next to the adder.
As far as capacitors, there are some capacitors for specific things, but no decoupling capacitors. I think the capacitors are mostly to tweak the timing, if a signal needs to be delayed slightly.
Turns out what he needed to do was saw up some tree trunks to make rough platforms for them, and they bred like crazy.
Adders can multiply really efficiently with log tables.
personally I would like to see a compare and contrast between the Intel 8087 (built around an full width adder), 287 and the Weitek 1167 (built around a full width mac and barrel shifter)
as you note, all these parts were pushing the transistor limits of their day
PS. and the Inmos T800 had a log shifter … so a compromise between those extremes
"Adder" is also a name for a snake.
Wonder if this was one of the inspirations for naming "Python" language too.
One of the first implementations of the interpreter must have tackled the "add" operation, so maybe the interpreter was just an adder in a prototype version.
I know that Monty Python is officially cited as the inspiration behind the name.