Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Speculative execution
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Computer optimization technique}} '''Speculative execution''' is an [[optimization (computer science)|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 (computer science)|concurrency]] if extra [[Resource (computer science)|resources]] are available. This approach is employed in a variety of areas, including [[branch predictor|branch prediction]] in [[instruction pipeline|pipelined]] [[CPU|processors]], value prediction for exploiting value locality, prefetching [[Instruction prefetch|memory]] and [[File system|files]], and [[optimistic concurrency control]] in [[Relational database management system|database systems]].<ref>{{Cite conference |last=Lampson |first=Butler |author-link=Butler Lampson |date=2006 |editor-last1=Momenzadeh |editor-first1=Mariam |editor-last2=Shvartsman |editor-first2=Alexander A. |title=Lazy and Speculative Execution in Computer Systems |url=https://link.springer.com/chapter/10.1007/11945529_1 |book-title=Principles of Distributed Systems |series=Lecture Notes in Computer Science |conference=10th International Conference on Principles of Distributed Systems |language=en |location=Bordeaux, France |publisher=Springer |volume=4305 |pages=1β2 |doi=10.1007/11945529_1 |isbn=978-3-540-49991-6|url-access=subscription }}</ref><ref name="DivisionRaghavan1998">{{cite conference |last1=Raghavan |first1=Prabhakar |last2=Shachnai |first2=Hadas |last3=Yaniv |first3=Mira |title=Dynamic schemes for speculative execution of code |url=https://ieeexplore.ieee.org/document/693711 |year=1998 |doi=10.1109/MASCOT.1998.693711 |book-title=Proceedings of the Sixth International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems |publisher=IEEE |pages=309β314 |access-date=18 January 2011|url-access=subscription }}</ref><ref> {{cite conference |author-link= H. T. Kung |first= H. T. |last= Kung |author2=John T. Robinson |title= On optimistic methods for concurrency control |book-title= ACM Trans. Database Syst. |volume= 6 |number= 2 |date=June 1981 |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a081452.pdf|archive-url=https://web.archive.org/web/20190831230313/https://apps.dtic.mil/dtic/tr/fulltext/u2/a081452.pdf|url-status=live|archive-date=August 31, 2019}}</ref> [[Speculative multithreading]] is a special case of speculative execution.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)