3 ms·
Intel used microcode starting with the 8086. However, patchable microcode wasn't introduced until the Pentium Pro. The original purpose was for testing, being a
by kens 2y ago
Intel used microcode starting with the 8086. However, patchable microcode wasn't introduced until the Pentium Pro. The original purpose was for testing, being able to run special test microcode routines. But after the Pentium, Intel realized that being able to patch microcode was also good for fixing bugs in the field.
- deleted 2y ago[deleted]
- peterfirefly 2y agoBeing able to patch the microcode only solves part of the possible problems a CPU can have. My guess -- and I hope you can confirm it at some point in the future -- is that more modern CPUs can patch other data structures as well. Perhaps the TLB walker state machine, perhaps some tables involved in computation (like the FDIV table), almost certainly some of the decoder machinery. How does one make a patchable parallel multi-stage decoder is what I'd really like to know!
- Tuna-Fish 2y agoMostly, you can turn off parts of the CPU (so called chicken bits). They are invaluable for validation, but they have also been frequently used for for fixing broken CPUs. Most recently AMD just recently turned off their loop buffer in Zen4: https://chipsandcheese.com/p/amd-disables-zen-4s-loop-buffer https://chipsandcheese.com/p/amd-disables-zen-4s-loop-buffer