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:
“Union of Religious Sentiments begets a surprising confidence and Ecclesiastical Establishments tend to great ignorance and corruption, all of which facilitate the Execution of Mischievous Projects.”
—James Madison (17511836)