Live data from Hacker News

Conditions in the Intel 8087 floating-point chip's microcode

righto.com

11–20 of 47 posts

Re: Conditions in the Intel 8087 floating-point chip's microcode

#11
post #9
post #8

Earlier quoted context omitted.

ah, i see, thanks for the insight! do you have any advice on how one might get started with IC reverse-engineering? i think it would be interesting to reimplement these chips in a way that's at least inspired by the original design

How to get started reverse engineering? That's a big topic for a HN comment, but in brief... Either get a metallurgical microscope and start opening up chips, or look at chip photos from a site like Zeptobars. Then start tracing out simple chips and see how transistors are constructed, and then learn how larger circuits are built up. This works well for chips from the 1970s, but due to Moore's Law, it gets exponentia…

Do you have any good tips on what to look out for when buying a used metallurgical microscope for looking at decapped chips? Even if not a complete set constraints, I'd appreciate some off the cuff thoughts if you have the time.

Re: Conditions in the Intel 8087 floating-point chip's microcode

#12
post #3

Until I read this I did not know that 1970s microprocessors had register renaming. Feel a little cheated, thinking for all those years that they were actually moving the bits.

How do you think the EXX and EX AF,AF' instructions work on the Z80?

Re: Conditions in the Intel 8087 floating-point chip's microcode

#13
post #9

Earlier quoted context omitted.

How to get started reverse engineering? That's a big topic for a HN comment, but in brief... Either get a metallurgical microscope and start opening up chips, or look at chip photos from a site like Zeptobars. Then start tracing out simple chips and see how transistors are constructed, and then learn how larger circuits are built up. This works well for chips from the 1970s, but due to Moore's Law, it gets exponentia…

Do you have any good tips on what to look out for when buying a used metallurgical microscope for looking at decapped chips? Even if not a complete set constraints, I'd appreciate some off the cuff thoughts if you have the time.

I use a basic metallurgical microscope (AmScope ME300TZB). An X-Y stage is very useful for taking photos of chips and stitching them together. A camera is also important; my scope has a 10MP camera. I'm not into optics, so I don't know what lens characteristics to look for.

Re: Conditions in the Intel 8087 floating-point chip's microcode

#14
post #3

Until I read this I did not know that 1970s microprocessors had register renaming. Feel a little cheated, thinking for all those years that they were actually moving the bits.

How do you think the EXX and EX AF,AF' instructions work on the Z80?

And EX DE, HL

Re: Conditions in the Intel 8087 floating-point chip's microcode

#15
post #2

Author here if anyone has questions...

Hi kens, thanks for the knowledge sharing all these years. Can you please confirm this one? From Wikipedia, it says that 8087 uses CORDIC algorithm. Does that mean that it's the same (but different speed) as what I'd implement the functions in software, except in microcode (which has more granularity than usual assembly code)?

I found it a bit surprising that as a 45-year old chip, there is no public information of its microcode. I guess hardware is indeed much more secret than software.

Re: Conditions in the Intel 8087 floating-point chip's microcode

#16
post #2

Author here if anyone has questions...

Hi kens, thanks for the knowledge sharing all these years. Can you please confirm this one? From Wikipedia, it says that 8087 uses CORDIC algorithm. Does that mean that it's the same (but different speed) as what I'd implement the functions in software, except in microcode (which has more granularity than usual assembly code)? I found it a bit surprising that as a 45-year old chip, there is no public information of i…

Yes, the 8087 uses CORDIC. I extracted the constants from the 8087's internal constant ROM and they are arctangent and log values for the CORDIC algorithm. You can implement the same functions in software, which is what floating-point emulation libraries did back then.

There's almost no public information on the 8087 microcode, but I'm working on that :-)

Re: Conditions in the Intel 8087 floating-point chip's microcode

#17
post #3

Until I read this I did not know that 1970s microprocessors had register renaming. Feel a little cheated, thinking for all those years that they were actually moving the bits.

If you feel cheated now, wait until you find out that the ALU in the 8-bit Z80 was just 4 bits. :-)

Re: Conditions in the Intel 8087 floating-point chip's microcode

#18
post #16

Earlier quoted context omitted.

Hi kens, thanks for the knowledge sharing all these years. Can you please confirm this one? From Wikipedia, it says that 8087 uses CORDIC algorithm. Does that mean that it's the same (but different speed) as what I'd implement the functions in software, except in microcode (which has more granularity than usual assembly code)? I found it a bit surprising that as a 45-year old chip, there is no public information of i…

Yes, the 8087 uses CORDIC. I extracted the constants from the 8087's internal constant ROM and they are arctangent and log values for the CORDIC algorithm. You can implement the same functions in software, which is what floating-point emulation libraries did back then. There's almost no public information on the 8087 microcode, but I'm working on that :-)

Thanks Ken, appreciate the work!

Re: Conditions in the Intel 8087 floating-point chip's microcode

#20
post #3

Until I read this I did not know that 1970s microprocessors had register renaming. Feel a little cheated, thinking for all those years that they were actually moving the bits.

If you work through a math problem with pen and paper or nand2tetris or nandgame.com then it becomes obvious that changing indexes into a register file (a.k.a. pointers) are way faster and easier than wires to move stuff around.
Post reply on HN