Email or username:

Password:

Forgot your password?
Top-level
Ken Shirriff

The circuit is a Programmable Logic Array (PLA) holding a lookup table for the floating-point division unit (FDIV). The circuit is a small part of the Pentium chip, visible in the lower right.

7 comments
Ken Shirriff

This closeup of the PLA shows the individual transistors that define the contents of the lookup table. Five entries were missing from the table, causing very rare errors in division.

penguin42

@kenshirriff Oh great - you found it! Nice! I did have my P90 replaced!

J. Peterson

@kenshirriff If the PLA bits are defined in the long thin structures on the right, I wonder if the missing bits are at the bottom? That section is suspiciously devoid of the various marks the rest of the structure has.

Amazing find!

Ken Shirriff

@isonno Good eye to spot the unused entries at the bottom! Those aren't the missing entries, though. The mathematical table got encoded into Boolean equations, which are stored in the PLA. There is not easy mapping between the table and what you see on the die. In fact, the fixed Pentiums have *fewer* entries in the PLA due to the way the equations work out.

Tommy Thorn

@kenshirriff "Rare" is a bizarre phrasing (clearly one Intel liked to use). It's trivial to reproduce this a few million times a second and indeed, it was original found on a real-world application.

Teknikal_Domain

@kenshirriff As stated by Wikipedia:

In order to improve the speed of floating-point division calculations [...] Intel opted to replace the shift-and-subtract division algorithm with the Sweeney, Robertson, and Tocher (SRT) algorithm. [...] It is implemented using a programmable logic array with 2,048 cells, [...] When the original array for the Pentium was compiled, five values were not correctly sent to the equipment that etches the arrays into the chips – thus five of the array cells contained zero when they should have contained +2.

As a result, calculations that rely on these five cells acquire errors; these errors can accumulate repeatedly owing to the recursive nature of the SRT algorithm.

--

First time I've actually seen pictures of the relevant parts of the die though. Amazing!

@kenshirriff As stated by Wikipedia:

In order to improve the speed of floating-point division calculations [...] Intel opted to replace the shift-and-subtract division algorithm with the Sweeney, Robertson, and Tocher (SRT) algorithm. [...] It is implemented using a programmable logic array with 2,048 cells, [...] When the original array for the Pentium was compiled, five values were not correctly sent to the equipment that etches the arrays into the chips – thus five of the array cells contained...

Go Up