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!
==Variants== ''Speculative computation'' was a related earlier concept.<ref>{{cite book |chapter-url=http://www.hpl.hp.com/techreports/Compaq-DEC/CRL-90-1.html |chapter=Speculative Computation in Multilisp |author=Randy B. Osborne |title=Parallel Lisp: Languages and Systems |volume=441 |pages=103–137 |date=1990-03-21 |publisher=[[Digital Equipment Corporation#Research and people|Digital Equipment Corporation Research Lab]] |type=[[PostScript|PS]] |doi=10.1007/BFb0024152 |access-date=2018-01-26 |series=Lecture Notes in Computer Science |isbn=3-540-52782-6 |archive-date=2017-02-07 |archive-url=https://web.archive.org/web/20170207033142/http://www.hpl.hp.com/techreports/Compaq-DEC/CRL-90-1.html |url-status=dead }}</ref> ===Eager execution=== {{See also|Eager evaluation}} Eager execution is a form of speculative execution where both sides of the conditional branch are executed; however, the results are committed only if the predicate is true. With unlimited resources, eager execution (also known as ''oracle execution'') would in theory provide the same performance as perfect [[branch prediction]]. With limited resources, eager execution should be employed carefully, since the number of resources needed grows [[exponential growth|exponentially]] with each level of branch executed eagerly.<ref name="ŠilcRobič1999">{{cite book|author1=Jurij Šilc|author2=Borut Robič|author3=Theo Ungerer|title=Processor architecture: from dataflow to superscalar and beyond|url=https://archive.org/details/processorarchite0000silc|url-access=registration|access-date=21 January 2011|year=1999|publisher=Springer|isbn=978-3-540-64798-0|pages=[https://archive.org/details/processorarchite0000silc/page/148 148]–150}}</ref> ==={{Anchor|PREDICTIVE}}Predictive execution=== {{See also|Pipeline (computing)}} {{Main| Branch predictor}} Predictive execution is a form of speculative execution where some outcome is predicted and execution proceeds along the predicted path until the actual result is known. If the prediction is true, the predicted execution is allowed to commit; however, if there is a misprediction, execution has to be unrolled and re-executed. Common forms of this include [[branch predictor]]s and [[memory dependence prediction]]. A generalized form is sometimes referred to as value prediction.<ref>{{cite book|last1=Mark D.|first1=Hill|author-link2=Norman Jouppi|last2=Norman P.|first2=Jouppi|last3=Gourindar S.|first3=Sohi|title=Readings in Computer Architecture|date=2000|publisher=Morgan Kaufman|url=https://books.google.com/books?id=I7o8teBhz5wC&q=processor+predictive+execution&pg=PA178|access-date=5 January 2018|isbn=9781558605398}}</ref> ===Runahead=== {{excerpt|Runahead|paragraphs=1|only=paragraph}}
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)