4 ms·
The 8087's microcode ROM is very unusual because it stores two bits per transistor for higher density. The ROM uses four transistor sizes so each position outpu
by kens 6y ago
The 8087's microcode ROM is very unusual because it stores two bits per transistor for higher density. The ROM uses four transistor sizes so each position outputs one of four voltages, which are converted to two bits.
(This is separate from the constant ROM, which is a normal one-bit-per-transistor ROM.)
- klelatti 6y agoThank you for this tremendous piece of silicon detective work. Really hope that that there are further instalments to come, for example covering the microcode. Just to highlight too that footnote 1, describing the lengths that the Intel engineers had to go to ensure that interaction between the 8086 and the 8087 worked, is fascinating.
- mbroncano 6y agoThanks for the article Ken. I’d like to remark the small refresher on how transistors works, it makes up for a really pleasant read. Also the footnotes are actually useful in decluttering the articles but amenable and clear to read.
- bonzini 6y agoKen, could the two 10^18 constants have two different signs? The signs must be stored somewhere like the exponents. Since most bits are zero for both signs and exponents, does it make sense for them to be coded as Boolean functions instead of being stored in a ROM?
- kens 6y agoI actually wrote that idea (two different signs) in the post but took it out :-) My thinking is that the hardware must support negation, so it would save space to have one constant and negate it instead of two constants with different signs. I'm still investigating the chip, so I hope to find the exponent ROM (or Boolean logic as you suggest) and solve this puzzle.
- ilugaslifk 6y agoThank you for reminding me of the magic of all of this stuff. For whatever reason it's been lost to me for a long time. This is history that deserves to be remembered.