Remix.run Logo
kens 8 hours ago

Author here for your 8087 questions...

bonzini 6 hours ago | parent | next [-]

That's a really vertical microcode. It looks more like a specialized assembly than microcode. I guess it makes sense, since the algorithms are so complex and executing one microinstruction per cycle (is that correct?) already provides almost an order of magnitude performance improvement.

kens 5 hours ago | parent [-]

Yes, it's one microinstruction per cycle, except there is a 1-cycle delay for branches, adds, and shifts. And some micro-instructions loop, so they can take a bunch of cycles.

pechay 5 hours ago | parent | prev | next [-]

Great work! I love to read your articles.

I'm curious to know - you say Intel's 8087 emulation code was a bit of a lump at 16KB, do you know if it emulated the 8087 microcode state machine or did it use a different strategy?

kens 5 hours ago | parent [-]

I think the emulation code was a rewrite in 8086 assembly language. An 8087 microcode emulator would be slow and difficult. One of the Opcode Collective people is looking at the emulator now, so there may be more details later. Intel claimed that the emulator completely and exactly duplicated the 8087 functionality, so it would be interesting to see if it is 100% accurate or if they missed any corner cases.

agumonkey 5 hours ago | parent | prev | next [-]

no questions, just thanks

7 hours ago | parent | prev [-]
[deleted]