| ▲ | userbinator 8 hours ago | ||||||||||||||||||||||||||||||||||||||||
I am reminded of the old AMD CPUs with "unlockable" extra cores, which would when unlocked change the model name to something unusual. "GenuineIotel" is definitely odd, but difficult to research more about; I suspect these CPUs might actually end up being collector's items sometime in the future. because inserting no-op instructions after them prevents the issue. The early 386s were extremely buggy and needed the same workaround: https://devblogs.microsoft.com/oldnewthing/20110112-00/?p=11... | |||||||||||||||||||||||||||||||||||||||||
| ▲ | pm215 6 hours ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||
Some of the 386 bugs described there sound to me like the classic kind of "multiple different subsystems interact in the wrong way" issue that can slip through the testing process and get into hardware, like this one: > For example, there was one bug that manifested itself in incorrect instruction decoding if a conditional branch instruction had just the right sequence of taken/not-taken history, and the branch instruction was followed immediately by a selector load, and one of the first two instructions at the destination of the branch was itself a jump, call, or return. Even if you write up a comprehensive test plan for the branch predictor, and for selector loads, and so on, it might easily not include that particular corner case. And pre silicon testing is expensive and slow, which also limits how much of it you can do. | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
| ▲ | pjc50 3 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||
The revenge of the MIPS delay slot (the architecture simply didn't handle certain aspects of pipelining, so NOPs were required and documented as such). | |||||||||||||||||||||||||||||||||||||||||