title: Out-of-order execution vs. speculative execution
body: <p>I have read the wikipedia page about <a href="https://en.wikipedia.org/wiki/Out-of-order_execution" rel="noreferrer">out-of-order execution</a> and <a href="https://en.wikipedia.org/wiki/Speculative_execution" rel="noreferrer">speculative exectution</a>. </p>
  
  <p>What I fail to understant though are the similarities and differences. It seems to me that speculative execution uses out-of-order execution when it has not determined the value of a condition for example.</p>
  
  <p>The confusion came when I read the papers of Meltdown and Spectre and did additional research. It is stated in the <a href="https://meltdownattack.com/meltdown.pdf" rel="noreferrer">Meltdown paper</a> that Meltdown is based on out-of-order execution, while some other resources including the wiki page about <a href="https://en.wikipedia.org/wiki/Speculative_execution" rel="noreferrer">sepeculative execution</a> state that Meltdown is based on speculative execution.</p>
  
  <p>I'd like to get some clarification about this.</p>