Live data from Hacker News

Reverse Engineering the Constants in the Pentium FPU

righto.com

1–10 of 24 posts

Re: Reverse Engineering the Constants in the Pentium FPU

#4
post #2

Author here for your Pentium questions...

Hello! In your view, did the move to IEEE 754 floating-point make things easier or harder for CPU designers?

My guess is that it made things both easier and harder. Harder in the sense that you couldn't just throw together floating point circuits; you had to deal with lots of special cases. But easier in the sense that the tricky design decisions were already made for you. And easier to test against a known standard.

Re: Reverse Engineering the Constants in the Pentium FPU

#5
post #2

Author here for your Pentium questions...

Hello! In your view, did the move to IEEE 754 floating-point make things easier or harder for CPU designers?

For what its worth, Intel was one of the major contributors to IEEE 754. In a lot of ways the original 8087 behavior became an early IEEE 754 draft.

Re: Reverse Engineering the Constants in the Pentium FPU

#6
post #2

Author here for your Pentium questions...

Do I understand it right that excluding the two metal layers, there's only a single "layer" of "logic" inside? I reckon newer CPUs have multiple, making imaging based reversing more difficult?

Re: Reverse Engineering the Constants in the Pentium FPU

#8
I guess the unused entries spell "bad FC" (for floating constant). Also I think constants 6 through 10 are relevant for the decimal-to-binary conversion or vice versa, as evident from the following observation:

    0x5c3bd5191b525a249 ~= 2^123 / 10^17
    0x470de4df820000000  = 2^13 * 10^16

Re: Reverse Engineering the Constants in the Pentium FPU

#9
post #2

Author here for your Pentium questions...

Do I understand it right that excluding the two metal layers, there's only a single "layer" of "logic" inside? I reckon newer CPUs have multiple, making imaging based reversing more difficult?

Even modern chips have a single layer of transistors, although there is research into 3D transistor stacking. (Flash memory stacks dies for more density.) Modern CPUs have much, much smaller transistors as well as constructing them more vertically (FinFET) but it is still a single layer. Modern processors can have over a dozen layers of metal, while the Pentium I examined has just 3 metal layers. I'm not going to be reverse-engineering a modern chip since you need an electron microscope to see the features; the features are orders of magnitude smaller than the wavelength of light.

Re: Reverse Engineering the Constants in the Pentium FPU

#10

I guess the unused entries spell "bad FC" (for floating constant). Also I think constants 6 through 10 are relevant for the decimal-to-binary conversion or vice versa, as evident from the following observation: 0x5c3bd5191b525a249 ~= 2^123 / 10^17 0x470de4df820000000 = 2^13 * 10^16

Thanks! I think you've figured out those mystery constants. How did you recognize them?
Post reply on HN