Ciao Mondo 3!

Unità di Fetch e Decodifica

 

7  8

 

Nella figura di sinistra vediamo evidenziato il front end di un modulo Bulldozer. In quella di destra è riportato più in dettaglio lo schema del predittore di salto.

Rispetto alle architetture classiche, vediamo l’unità di predizione salti disaccoppiata dall’unità di fetch vera e propria: questo consente di effettuare le predizioni dei salti in parallelo e indipendentemente dal fetch delle istruzioni. Il prefetch è guidato dalla predizione dei salti, per trovare in cache le istruzioni necessarie il più presto possibile. La cache istruzioni è di 64KB a due vie. Il fetch delle istruzioni avviene 32 byte alla volta. I TLB istruzioni sono a due livelli, con un primo livello di 72 elementi fully associative, condiviso tra tutte le misure di pagina e un secondo livello di 512 elementi a 4 vie, con le sole pagine da 4KB. L’unità di decodifica è anche capace di effettuare il branch fusion. I decoder sono 4 e possono generare 4 macro istruzioni per clock, alternativamente per i due thread.

Il predittore dei salti è doppio e lavora indipendentemente per i due thread. Le richieste di prefetch sono fatte in parallelo alla cache L2 e alla memoria, qualora manchino in cache L1. Il predittore, oltre a essere diviso per thread, è anche diviso in due livelli. Il primo livello è più veloce, ma meno preciso, basandosi anche su una cache L1 BTB (Branch Target Buffer, ossia una cache che memorizza gli indirizzi IP dei salti eseguiti in passato, che il predittore restituisce come predizione, qualora il salto sia predetto come preso) più piccola (di 512 elementi). La sua predizione è depositata nella coda opportuna ed è avviata in parallelo la predizione di secondo livello, che si avvale, tra l’altro di una cache L2 BTB molto più grande (5120 elementi). Quando la predizione di secondo livello è pronta, se il risultato della predizione di primo livello non è stato ancora utilizzato, esso viene sovrascritto da quella di secondo livello, presumibilmente più preciso. Ciò permette di unire i vantaggi di un predittore veloce, con quello di uno accurato. La predizione dei ritorni a procedura è effettuato da una unità separata.

Pubblicità


Corsair

Articoli Correlati - Sponsored Ads