https://www.righto.com/2026/05/microcode-inside-intel-8087-floating.html
In 1980, Intel introduced the 8087 floating-point chip, a co-processor that made floating-point operations up to 100 times faster. This chip was highly influential, and today most processors use the floating-point standard introduced by the 8087.
The 8087 uses complicated algorithms to accurately compute functions such as square roots, tangents, and exponentials. These algorithms are implemented inside the chip in low-level code called microcode. I'm part of a group, the Opcode Collective, that is reverse-engineering this microcode. In this post, I take a close look at the microcode for one of the 8087's instructions—FXCH—and explain how the microcode works. The FXCH (Floating-point Exchange) instruction exchanges two floating-point registers. You might expect this instruction to be trivial, but there's more going on than you might expect; the microcode uses 14 micro-instructions to implement the exchange instruction.
To explore the microcode, I opened up an 8087 chip and created a high-resolution image with a microscope. The large microcode ROM occupies a central position, holding the micro-instructions that control the chip. The microcode engine on the left steps through the microcode, handling jumps and subroutine calls. The bottom half of the chip is the "datapath", the circuitry that performs floating-point calculations; it is split into a 16-bit datapath for the number's exponent and a 64-bit datapath for the number's fractional part (also known as the significand).
(Score: 3, Informative) by Deep Blue on Monday June 01, @04:44PM (4 children)
https://thechipletter.substack.com/p/amds-early-math-innovation [substack.com]
I don't know what standard 8087 introduced, but AM9512 brought IEEE 754 compliance and first double precision floating point in hardware. If it means the "standard" of math processor, then AM9511 was before that. I don't know if there was one before AM9511, could be a similar situation like with the F-14 processor being before intel 4004. Too lazy to research more and i am not an expert on this.
As a side note:
I happen to have some 8085 CPU boards with AM9512 or intel 8232's. I don't know what system it was, i can't find anything about it (like who can anymore, search engines suck). It has a double backplane and i'm not sure if i have the other backplane board. I also have like 4 other board types for the system and modem cards. Would be nice to get it running, but it's like half as complicated of Usagi Elecric projects with only the PCB to go hardware wise. Also i have no idea what the software does, what is it supposed to be connected to etc. These boards are why i know about AM9512 at all.
(Score: 4, Informative) by VLM on Monday June 01, @05:55PM
There are always problems with "first".
DEC was shilling the 11/34a back in '76 ('75? earlier press releases?) and delivered in '77 so they win by at least two years over your examples. I know this for a fact without even looking it up.
IBM was shipping hardware double precision in ye olde 7094 in 1962, almost two decades before Intel and AMD. The newfangled system360 also had hardware double precision floating point because it was IBM's first "360" does it all business and science computing system and if the 7094 did it, the 360 surely had to do it as a minimum for the 360. From what I've read the vacuum tube 709 had to use software libraries to do double precision so MAYBE IBM's first hardware double precision machine was delivered in 1962. I have not done a ton of retrocomputing with 709 emulator. I think I have a decent FORTRAN II for it somewhere. This was back in the IBSYS days, pre-MVS era on the 360. Old mainframes are so weird and so cool yet still very approachable by hobbyists .... at least on the software side, the hardware would be a bit beyond the scope of my basement LOL. My wife would be pissed if I installed a 7094 in the basement although on the bright side I wouldn't have to run the furnace in the winter.
I'm SURE other people shipped hardware double precision before the 7094. That couldn't have been an IBM patent or something, no.
Contemporary with the 8087. What does "first" mean, first press release or first delivered engineering sample that worked or first retail system shipped or ... It doesn't really mean anything when they were at most mere months apart from each other.
I will admit the 8232 thing is just before my time, right when I eas getting started in computers, and I don't understand why Intel licensed it to begin with. Some kind of avoidance of single sourcing I'd guess. If you throw enough money at a chip fab they will fab anything including a competitors product, assuming its legally licensed. Analog chips are similar. It seems like half the world fabbed National Semidesctructors chips at one time or another, but they originally invented the cool stuff...
(Score: 3, Informative) by owl on Tuesday June 02, @01:25AM (2 children)
It introduced an early version (very early) of IEEE 754. And the popularity of the IBM PC and clones then helped solidify IEEE 754 as the single binary floating point standard.
(Score: 2) by Deep Blue on Tuesday June 02, @02:01PM (1 child)
The same IEEE 754 that was already in AM9512 ( and so also in 8232) from few years earlier?
(Score: 2) by Deep Blue on Tuesday June 02, @02:18PM
I mean from the link i posted, the AM9512 was not a huge success, so in a way 8087 brought it to bigger masses.
(Score: 5, Interesting) by VLM on Monday June 01, @06:10PM (2 children)
All of Ken's blog posts make it to front page of SN. They're all good. Sometimes they don't have much commentary here on SN but they're all worth reading.
For this one I have an interesting meta comment thats too high level for Ken and his analysis of individual transistors etc.
The 8087 and friends isn't "really" hardware floating point, its a CPU optimized for FP that runs a ROM full of code that does software floating point faster than the main processor does software floating point using its architecture.
Essentially an 8087 is one of these but using a different microcontroller, obviously:
https://micromegacorp.com/umfpu-v3.html [micromegacorp.com]
I played around with their products in the pre-ARM era. Like in the "PIC era" back when if you wanted floating point you had to write your own or link in someone elses library assuming you had the flash and ram space, so the above was a legit workaround. Seeing as they're I2C attached I always wanted to build a system of like 64 of them in parallel and calculate mandelbrot fractals the hard way, really fast. Oh well.
However, there does exist "real" hardware floating point like the CRAY-I which is extremely inefficient for silicon and power use but instead of taking "hundreds of clock cycles instead of thousands" on the 8086/8087, the cray design does it all in genuine hardware, like a FP add is only 6 machine clock cycles mostly feeding the data in and out and letting the carry generator settle. It can do a FP reciprocal almost in real time, like ten clock cycles, and for some reason multiplies take 7 cycles.
I wonder if anyone ever made real hardware floating point of the more obscure floating point stuff like an arctangent in hardware (not in software, not in software on a FP optimized microcode architecture... real hardware). In my infinite spare time I think it would be interesting to make "real" hardware floating point VHDL/Verilog on a FPGA.
Anyway the point of my ramble is I think I made a fair case that a 8087 is not hardware floating point, its just a microcontroller with embedded ROM and an architecture ideal for FP software, whereas it WAS possible to buy genuine real floating point hardware that did FP using enormous piles of simple logic gates.
(Score: 3, Insightful) by owl on Tuesday June 02, @01:33AM (1 child)
That's a fair assessment, given that the rom microcode is in fact a little program to use a small set of somewhat generic hardware elements to perform floating point math.
However, you can also think of it as "hardware floating point" in much the same way as GNU defines "hardware". Everything's etched in silicon and you can't change any of the programming inside, no matter how hard you try, so yeah, it is "hardware". But agreed, it is not a Weitek FPU chip [wikipedia.org].
(Score: 2) by lars_stefan_axelsson on Tuesday June 02, @07:49AM
Yes, it becomes a peculiar game of semantics pretty quickly: With that, strict, definition, then the CPU that came with the FPU wasn't a "hardware" CPU either. It also used microcode.
In fact, which that definition then Intel hasn't sold a "hardware" CPU since the 8085... And what about state machines in general? I can't build my Mealy/Moore machines using 7400-logic anymore, because that's not hardware, but software? I was programming all those years ago at university? Yes, that's perhaps making too fine a point, but it still points to something. Memory and states are not "forbidden" as such in a hardware implementation, it doesn't magically make it software. In fact memory/state, takes up most of the class in digital design courses.
Now, the actual implementation details with uops and more, or less, direct decoding is actually interesting when we come to more modern architectures with Intel being much more RISC-like internally, it's just that it doesn't run x86 instructions as such.
So, of course, the interesting discussion lies beyond what "hardware" means; it's a summary word at best, but I'd still say it's a meaningful distinction to make when we're talking about hardware vs software floating point. In that case the 8087 is hardware floating point as opposed to the 8086 implementing the same instructions via traps in software.
Stefan Axelsson