L'Itanium 2 è il secondo processore prodotto da Intel basato sull'architettura EPIC. Basandosi su questa architettura l'Itanium 2 ne eredita i vantaggi e gli svantaggi derivati da questa architettura. 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 gestiti tramite una gestione a finestra, l'esecuzione predicativa, il caricamento speculativo e il software pipelining. Le unità funzionali dell'itanium 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). È 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 unità 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.
È 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 rinominazione dei registri dato che dispone di centinaia di registri gestibili direttamente (a differenza degli 8 gestiti dall'architettura x86) e implementa la tecnica di register window che permette di migliorare le prestazioni 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 predizione dei salti permette di precaricare dati e istruzioni in modo speculativo riducendo le cache miss.
Il processore dispone di tre tipi di cache:
È 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 però 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.