Architettura superscalare Pentium
# Architettura superscalare Pentium

L'Architettura superscalare Pentium prevede due code di pipeline per gli interi chiamate coda U e coda V che possono eseguire le operazioni in parallelo. Le due code non sono perfettamente simmetriche. Ogni coda ha un throughput di un'operazione semplice per ogni colpo di clock. Le istruzioni semplici sono quelle che non richiedono microcodice per la loro esecuzione.

## Descrizione

Nel Pentium ci sono due unità in parallelo di prefetch e di decodifica dell'istruzione:

* PF1 e PF2 Unità di prefetch
* D1A e D1B Unità di decodifica dell'istruzione

PF1 e PF2: Durante questa fase la CPU preleva il codice dell'istruzione dalla cache e la allinea al primo byte dell'istruzione successiva da decodificare

D1A e D1B: Durante questa fase la CPU decodifica l'istruzione e genera una control word (per istruzioni lunghe vengono generate sequenze di microcodice il che non fa sì che non ci sia l'esecuzione dell'intera istruzione in un solo colpo di clock)

Durante queste due fasi, per garantire che le due code possano operare a pieno ritmo è necessario che:

* non vi siano delle dipendenze tra le istruzioni, esempio:

in questo caso se la prima istruzione andasse nella coda U e la seconda nella coda V (o il contrario) il risultato del codice sarebbe incontrollato

* che vengano accuratamente gestiti i salti per evitare di dover svuotare entrambe le code di pipeline
* che vengano correttamente gestiti gli accessi simultanei alla cache di dato
* sia mantenuta la coerenza della cache specialmente nel caso di codice automodificante.
