speculative execution
Running instructions on the strength of a guess, before knowing they are really needed; if the guess was wrong, their results are thrown away.
Speculative execution processes instructions past an unresolved branch (or other unverified assumption); their effects are held back from architectural state until the assumption is confirmed, and squashed otherwise. Microarchitectural side effects (such as cache contents) can survive a squash, which is the root of the security problems in Chapter 37.