Comment by 20k

5 days ago

I always wonder how hardware bugs like this happen with the sheer amount of hardware validation that's done. It'd be fascinating to know how it slipped through the cracks, though I know almost nothing about this side of the industry sadly

Validation can't be better than the quality of the specification. Humans don't create comprehensive, unambiguous specifications for the same reasons that we don't write bug-free code, and need formal validation.

Brooks talks about this in _Mythical_Man-Month_... if you really could "just implement the specification", then the specification itself would be complete enough to serve as your code. There will always be bugs in both.

That "sheer amount of hardware validation" is always less-than-perfectly spread across a whole lotta billions of transistors, and combinatorics is a harsh mistress.

Me too. Hardware bugs that arise out of unanticipated module interactions are understandable. But this is a "you had one job" moment.

  • It's most likely a quick patch for a previous bug where the RNG would fail but misreport it as a success with all 0 bits. The quick patch is to make all 0s a failure.