Comment Re: Hard to fathom (Score 3, Informative) 21
Unfortunately you canâ(TM)t disable speculative execution. Itâ(TM)s been relied on to make CPUs fast since at least the pentium, perhaps the 486? For sure the pentium.
Itâ(TM)s based on some very old research from the 70â(TM)s (?), but back then they called it super scalar architecture.
Intel isnâ(TM)t the only one who does speculative execution. Most ARM platforms do as well, even all the way down to things like your smart watch.
The real issue that keeps tripping up intel is the effects on CPU cache are preserved after the âoespeculative executed codeâ is disposed of.
The simplest way to think of this is: you create an array of 256 elements. Then you preform an action to flush all that out of CPU cache. Then you trick the CPU to read a byte that it shouldnâ(TM)t read for you because you donâ(TM)t have the privileges to read that byte, and inside the speculative branch you read back into cache the offset in the array that matches the byte value.
Then, outside the speculative branch you read the entire array and time access speed. The array element that read fast was in the cache and is the value of the byte you shouldnâ(TM)t have been able to read.
The part of the speculative execution engine that undoes the work done in a branch that should not have been followed, at a minimum, probably needs to be extended to reverse effects on cache too. But thatâ(TM)s probably very hard to do in silicon.