Esecuzione fuori ordine
Quando una CPU esegue le istruzioni in un ordine diverso da quello del programma, per evitare attese. Mentre un'istruzione aspetta dati dalla memoria, la CPU va avanti con istruzioni successive e indipendenti, per poi presentare all'esterno i risultati nell'ordine corretto.
Il problema: una CPU in-order si blocca del tutto quando un'istruzione resta in attesa (per esempio per un cache miss). L'esecuzione out-of-order (OoO) esamina una finestra di istruzioni imminenti, individua quelle che non dipendono da ciò che è in attesa e le esegue subito. Un «reorder buffer» garantisce che i risultati vengano ritirati (resi visibili) nell'ordine del programma, preservando la correttezza. Tecnica classica: l'algoritmo di Tomasulo, con register renaming per eliminare le false dipendenze. Il vantaggio: le unità di esecuzione restano occupate, con un grande guadagno di prestazioni. Il costo: una logica complessa e vorace di energia (i core semplici ed efficienti e alcuni microcontrollori sono in-order). Imparentata con esecuzione speculativa e architettura superscalare.