Explicitly parallel instruction computing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Storia |
|||
Riga 37:
== Superare i limite del VLIW ==
L'architettura EPIC al fine di risolvere i principali problemi segue sei principi base:
#Caricamenti anticipati delle istruzioni
*Ogni gruppo di istruzioni viene chiamato ''bundle''. Ogni bundle contiene al suo interno oltre alle istruzioni anche delle informazioni aggiuntive che specificano se i risultati del bundle servono a un bundle successivo. Queste informazioni sono utilizzate del processore per gestire in parallelo i vari bundle. Le dipendenze dei bundle sono calcolate dal compilatore in modo da non occupare transistor del processore.▼
#Esecuzione predicativa al fine di eliminare molte condizioni di salto
#Ampio numero di registri
#Indipendenza dall'architettura
#Predizione dei salti
#Rotazione dei registri
Al fine di seguire i principi base l'architettura EPIC utilizza le seguenti tecniche:
L'architettura [[IA-64]] inoltre aggiunge la [[register window]], una tecnica utilizzata nei [[Digital Signal Processor|DSP]] che permette di utilizzare subroutine senza dover effettuare continui salvataggi dello stack ma appoggiandosi a una serie di registri che vengono fatti ''vedere'' alle subroutine tramite una specie di finestra scorrevole che mostra alla subroutine solo i registri di sua competenza. Il processore inoltre provvede al salvataggio in memoria dei registri impegnati da subroutine lontane da quella in esecuzione, in modo da aver sempre registri pronti per le subroutine.▼
*Caricamento anticipato:
:L'architettura introduce il caricamento speculativo delle istruzioni, prima di un salto cerca di prevedere l'esito dell'istruzione e carica le istruzioni conseguenti in cache. Esegue i caricamenti anche prima di aver terminato l'analisi degli alias.
*Esecuzione predicativa:
:Il processore dispone di 64 registri utilizzati per gestire l'esecuzione predicativa delle istruzioni, questo permette di eliminare molti dei più comuni salti e quindi permette di incrementare sensibilmente le istruzioni eseguite in parallelo. Ogni istruzione può essere eseguita in modo predicativo.
*Ampio numero di registri
:Al fine di non dover includere strutture di [[ridenominazione dei registri]] l'architettura include 128 registri per gli interi e 128 registri per i numeri in virgola mobile.
*Indipendenza dall'architettura:
▲
*Predizione dei salti
:Otto registri per la predizione delle diramazioni, i registri permettono all'unità di prevedere salti multipli e salti annidati
*Rotazione dei registri
▲:L'architettura [[IA-64]]
==Ricerca e sviluppo continuo ==
|