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:
“It is clear that in a monarchy, where he who commands the exceution of the laws generally thinks himself above them, there is less need of virtue than in a popular government, where the person entrusted with the execution of the laws is sensible of his being subject to their direction.”
—Charles Louis de Secondat Montesquieu (16891755)