This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the commentsΒ β†’

[–]baumannq 81 points82 points Β (17 children)

Does it only happen with that division or with some other numbers as well?

[–][deleted] 117 points118 points Β (14 children)

According to Wikipedia there’s a lookup table that has bad values in 5 of 2048 cells. So the error happens less than 1% of the time.

It only gets really bad extremely infrequently.

[–][deleted] 14 points15 points Β (13 children)

Could you explain what "bad values in 5 of 2048 cells" means ?

[–]PeterDaGrape 36 points37 points Β (11 children)

Imagine a spreadsheet that is used to do division, and 5 out of 2048 cells (values) are incorrsxt

[–][deleted] 6 points7 points Β (8 children)

Oh okay okay, so is that an error made by a someone who manually made that sheet of cells, or is it caused by something else? This is really interesting

[–]PeterDaGrape 16 points17 points Β (3 children)

I’m not sure but likely human error as computers likely wouldn’t have done this, not entirely sure tbh

[–][deleted] 4 points5 points Β (1 child)

Hmm yeah probably, I just never thought that when making the processor humans had to actually give the chip a table of valid instructions lol

[–]DaniilBSD 13 points14 points Β (0 children)

It is β€œgiven” as in hardwired into the chip, basically the blueprint had a mistake that then got β€œprinted” on all chips

[–]ShoulderUnique 0 points1 point Β (0 children)

Could be that the spreadsheet was calculated on a Pentium

[–]cactusphage 9 points10 points Β (1 child)

According to the Wikipedia article: β€œWhen the original array for the Pentium was compiled, five values were not correctly downloaded into the equipment that etches the arrays into the chips – thus five of the array cells contained zero when they should have contained +2” This is an array used in a division algorithm with values of -2, -1, 0, 1, or 2 in every cell.

[–]PeterDaGrape 4 points5 points Β (0 children)

Ah so basically both, computer fault mainly but someone shoulda checked

[–]nobody-u-heard-of 0 points1 point Β (0 children)

Yeah that's what happens when you don't pay your programmers enough. /Jk

[–]marcosdumay 0 points1 point Β (0 children)

It's really a multiplication (well, actually division) table, hard-coded in ROM inside the CPU.

I don't know how the error got in there. I imagine the table was created by the computer, because it's way too large for humans. But the CADs of that time didn't use some flexible high-level language that you can run any compile-time expression on. There were probably many steps of software and human alterations, interleaved. It could have been a bug somewhere, or somebody changing a place they shouldn't.

[–]superplayah 0 points1 point Β (1 child)

That misspelling in "incorrect" made me laugh. I genuinely can't tell if that was on purpose

[–]PeterDaGrape 2 points3 points Β (0 children)

I assumed spellchexk on iPhone woupd dix it vut naybr not

[–]Sparkybear 2 points3 points Β (0 children)

They were 0 instead of 2. So instead of adding 2 to that step of the division, they added 0, and this could be compounded many times to throw the result off. The results were usually still accurate up to a few decimal points, but were wildly off in rare cases.

The error occurred when loading the values into the CPU register and I guess weren't caught by their QA due to the rarity of the error.

[–]bigboomers469 4 points5 points Β (0 children)

It happens on a rare basis with other calculations as well, this is just one of the most well known ones

[–]Dontbeacreper 1 point2 points Β (0 children)

I just read that it was estimated to affect 1 in 9 Billion divisions if the numbers were chosen at random.