Speculative execution is an optimization technique where a computer system performs some task that may not be needed. Work is done before it is known whether it is actually needed, so as to prevent a delay that would have to be incurred by doing the work after it is known that it is needed. If it turns out the work was not needed after all, most changes made by the work are reverted and the results are ignored.
The objective is to provide more concurrency if extra resources are available. This approach is employed in a variety of areas, including branch prediction in pipelined processors, value prediction for exploiting value locality, prefetching memory and files, and optimistic concurrency control in database systems.[1][2][3]
Speculative multithreading is a special case of speculative execution.
^Lampson, Butler (2006). "Lazy and Speculative Execution in Computer Systems". In Momenzadeh, Mariam; Shvartsman, Alexander A. (eds.). Principles of Distributed Systems. 10th International Conference on Principles of Distributed Systems. Lecture Notes in Computer Science. Vol. 4305. Bordeaux, France: Springer. pp. 1–2. doi:10.1007/11945529_1. ISBN 978-3-540-49991-6.
^Raghavan, Prabhakar; Shachnai, Hadas; Yaniv, Mira (1998). "Dynamic schemes for speculative execution of code". Proceedings of the Sixth International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems. IEEE. pp. 309–314. doi:10.1109/MASCOT.1998.693711. Retrieved 18 January 2011.
^
Kung, H. T.; John T. Robinson (June 1981). "On optimistic methods for concurrency control" (PDF). ACM Trans. Database Syst. Vol. 6. Archived (PDF) from the original on August 31, 2019.
and 21 Related for: Speculative execution information
Speculativeexecution is an optimization technique where a computer system performs some task that may not be needed. Work is done before it is known...
Transient execution CPU vulnerabilities are vulnerabilities in a computer system in which a speculativeexecution optimization implemented in a microprocessor...
executed later in parallel with the normal execution on a separate independent thread. Such a speculative thread may need to make assumptions about the...
security vulnerability and its exploitation that takes advantage of speculativeexecution in a similar way to the Meltdown and Spectre security vulnerabilities...
rigid methods used in the simpler P5 Pentium; it also simplified speculativeexecution and allowed higher clock frequencies compared to designs such as...
dedicated to public speaking and literary composition, founded in 1764 Speculativeexecution, in computer systems is doing work, the result of which may not...
of security vulnerabilities were found in the implementations of speculativeexecution on common processor architectures which effectively enabled an elevation...
Imperial College London showed a proof of concept that the Spectre speculativeexecution security vulnerability can be adapted to attack the secure enclave...
time. In June 2022, MIT researchers announced they had found a speculativeexecution vulnerability in M1 chips which they called "Pacman" after pointer...
Retbleed is a speculativeexecution attack on x86-64 and ARM processors, including some recent Intel and AMD chips. First made public in 2022, it is a...
first x86 microprocessors implementing register renaming to enable speculativeexecution. AMD meanwhile designed and manufactured the advanced but delayed...
be issued and continue execution until the data is returned from main memory, and the dependent instructions can resume execution. Cache write misses to...
disclosed to the public on 14 August 2018. The vulnerability is a speculativeexecution attack on Intel processors that may result in the disclosure of...
improve performance via register renaming, allowing parallel and speculativeexecution. Modern x86 design acquired these techniques around 1995 with the...
increase ILP: Predicated execution is used to decrease the occurrence of branches and to increase the speculativeexecution of instructions. In this feature...
high amount of stalling. Techniques such as branch prediction and speculativeexecution are used to lessen these branch penalties. Branch prediction is...
Subsequent IBM large computer designs did not use branch prediction with speculativeexecution until the IBM 3090 in 1985. Two-bit predictors were introduced by...
the outcome of a branch. Execution continues along the predicted path for the program but instructions are tagged as speculative. If the guess turns out...
In 2018, the paper that announced the Spectre attacks against SpeculativeExecution in Intel and other processors included a JavaScript implementation...