Speculative execution in computer systems is doing work, the result of which may not be needed. This performance optimization technique is used in pipelined processors and other systems.
Speculative execution is a performance optimization. The main idea is to do work before it is known whether that work will be needed at all, so as to prevent a delay that would have to be incurred by doing the work after it is known whether it is needed. If it turns out the work wasn't needed after all, the results are simply ignored. The target is to provide more concurrency if extra resources are available.
The following technologies employ this idea:
- Prefetching in memory and File system
- Branch prediction
- Optimistic concurrency control in database systems
Read more about Speculative Execution: Processors, Compilers, Eager Execution, Lazy Evaluation
Famous quotes containing the word execution:
“I am gradually drifting to the opinion that this Rebellion can only be crushed finally by either the execution of all the traitors or the abolition of slavery. Crushed, I mean, so as to remove all danger of its breaking out again in the future.”
—Rutherford Birchard Hayes (18221893)