- La speculazione può essere fatta sia dal compilatore che dal processore
Se la speculazione risulta sbagliata?
- Deve esisere un meccanismo di correzion (roll-back).
- La speculazione si paga in termini di meccanismi per controllare se la speculazione è stata corretta e di correggerla.
Modalità
- Nelle multiple-issue statiche, il compilatore inserisce delle istruzioni di controllo e di correzione a speculazioni errate, anche chiamando procedure opportune che correggono quanto fatto (operazioni inverse).
- Nelle multiple-issue dinamiche, il reorder buffer colleziona i risultati, che vengono scritti nel register file solamente quando la speculazione è stata verificata come corretta. Ciascun registro del reorder buffer contiene il mapping ai registri interni della pipeline (tipo t00, t01..). Il flush avviene cancellando la mappatura.