The article also mention EDIV, which caused the most hilarious bug explanation I ever heard.
I worked on a VMS device driver in 1990. We had to resolve every single crash, because DEC support tracked the outcome of each crash dump file.
Our driver was crashing a VAX 9000 at Abbot Labs, a nightmare because it was a mainframe-class machine. In every crash dump I could show that the registers contained impossible values for the code sequence, always traced back to code involving an EDIV instruction (used to get a remainder).
DEC decided the problem was "alpha particles penetrating the encapsulant". At first I thought they were joking, but they were serious. They replaced the water cooling module around the CPU. That didn't fix the problem, so they pushed it back to us.
After much back and forth, they realized it was a microcode bug in the EDIV instruction, and their microcode patch fixed it.
I worked on a VMS device driver in 1990. We had to resolve every single crash, because DEC support tracked the outcome of each crash dump file.
Our driver was crashing a VAX 9000 at Abbot Labs, a nightmare because it was a mainframe-class machine. In every crash dump I could show that the registers contained impossible values for the code sequence, always traced back to code involving an EDIV instruction (used to get a remainder).
DEC decided the problem was "alpha particles penetrating the encapsulant". At first I thought they were joking, but they were serious. They replaced the water cooling module around the CPU. That didn't fix the problem, so they pushed it back to us.
After much back and forth, they realized it was a microcode bug in the EDIV instruction, and their microcode patch fixed it.