Architetture dei processori/Architettura Itanium 2: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
G4 (discussione | contributi)
avanzamento 100%
m Bot: Sostituzione automatica (-([^D])E'([^'.]) +\1È\2)
Riga 1:
{{Architettura dei processori}}
[[Image:Itanium2.JPG|right|200px|L'itanium 2]]
L'Itanium 2 è l'ultimo processore prodotto da Intel che si appoggia sull'architettura EPIC e ne eredita i relativi vantaggi e svantaggi.L'Itanium 2 in particolare usa il set di istruzione IA-64 e seguendo la tradizione Intel implementa internamente anche alcune soluzioni tipiche dei processori superscalari. In particolare l'Itanium 2 integra pipeline a 6 vie ad 8 stadi, un sistema di precaricamento dinamico, l'unità di predizione dei salti, un folto numero di registri, l'esecuzione predicativa, il caricamento speculativo e il software pipelining. Le unità funzionali dell'Itanium 2 sono specializzate, difatti il processore dispone di 11 unità funzionali, tre preposte alla gestione dei salti (B) 4 di caricamento dei dati (M), 2 di elaborazione sugli interi (I) e 2 in virgola mobile (F). E'È da segnalare che le unità M possono eseguire anche operazioni sugli interi e quindi il processore è in realtà in grado di eseguire fino a 6 operazioni sugli interi per ciclo di clock. Le istruzioni vengono caricate da una cache di primo livello specializzata per le istruzioni e vengono poste in un buffer in grado di gestire fino a 8 bundle. Dato che ogni bundle può accogliere fino a 3 istruzioni il buffer può accodare fino a 24 istruzioni contemporaneamente. Il processore assegna le istruzioni alle varie unità funzionali e processa due bundle per ciclo di clock processando fino a 6 istruzioni per ciclo di clock.
 
[[Image:Architettura Itanium 2.png|thumb|800px|Architettura del processore]]
 
E'È da notare la semplicità del progetto rispetto a processori superscalari prodotti nello stesso periodo come il Pentium 4. Nell'Itanium 2 non esiste un buffer di riordino delle istruzioni dato che le istruzioni sono già state ordinate dal compilatore dei singoli bunble e la presenza del caricamento speculativo sopperisce alla mancanza del buffer con efficienza maggiore. Il processore non utilizza tecniche di ridenominazione dei registri dato che dispone di centinaia di registri gestibili direttamente (a differenza dei miseri 8 gestiti dall'architettura x86) e implementa una tecnica chiamata di stack rotante che permette di evitare la saturazione dei registri nel caso dell'utilizzo di programmi con molti cambi di contesto. Il processore non implementa complessi algoritmi di riordino delle istruzioni durante la fase di decodifica dato che i singoli bundle contengono istruzioni di controllo che dichiarano esplicitamente il parallelismo tra le istruzioni.
 
L'uso della branch prediction permette di precaricare dati e istruzioni in modo speculativo riducendo le cache miss.
Riga 14:
*La cache L3 (off-chip, ma comunque nello stesso package) da 4 MByte è a 4 vie associative con linee a 64 byte.
 
E'È da notare che comunque la dimensione della cache varia a seconda del modello di Itanium 2.
Il processore supporta una gestione degli indirizzi a 64 bit anche se in realtà vengono gestiti solamente 44 bit dato che comunque questi sono sufficienti a gestire 17 Terabyte di memoria. Nello schema a blocchi in alto si può notare l'unità IA-32 Decode and Control che serve per mantenere la compatibilità con le applicazioni X86 tramite conversione delle istruzioni x86 in istruzioni native. Questa unità non potendosi avvalere dei dati aggiuntivi forniti dal compilatore non è in grado di fornire buone prestazioni. L'emulazione risulta molto lenta e difatti sono stati sviluppati del programmi che convertono in tempo reale il codice x86 in codice nativo per l'Itanium 2 e che forniscono prestazioni decisamente migliori quindi nelle ultime versioni del processore Intel ha deciso di rimuovere l'unità appoggiandosi unicamente sui programmi di emulazione.