Bulldozer: uno sguardo all'architettura
Il nome in codice Bulldozer identifica la nuova architettura di processore ad elevate
prestazioni sviluppata da AMD, destinata a prendere il posto con questa implementazione e
con le successive evoluzioni attese per i prossimi anni di quella resa popolare dalle
soluzioni Athlon e Phenom. AMD ha per lungo tempo mantenuto invariate le basi della
propria microarchitettura: nel corso degli anni sono state introdotte varie innovazioni
nella forma di un maggior numero di core, di un incremento delle frequenze di clock, di
controller memoria più sofisticati e dell'inserimento di cache di terzo livello condivisa
tra i core, ma l'approccio base è rimasto di fatto immutato. E' a causa di questo che
l'iniziale vantaggio prestazionale di AMD con le proprie proposte desktop top di gamma nei
confronti di Intel è venuto progressivamente meno, soprattutto a partire dal debutto
delle prime CPU Intel della famiglia Core basate su architettura nota con il nome in
codice di Conroe.

die di processore AMD FX con architettura a 8 core: dimensione complessiva del die pari a
315 millimetri quadrati, per circa 2 miliardi di transistor
Con Bulldozer AMD propone un'architettura che è fortemente orientata ai sistemi ad
elevate prestazioni, facendo da contraltare a quella Bobcat adottata nelle APU della
famiglia Brazos che è invece specificamente stata sviluppata per minimizzare i consumi
mantenendo un valido livello di performances. Questa architettura non verrà utilizzata in
sistemi notebook, venendo inizialmente riservata ai processori FX per sistemi desktop e a
quelli Opteron per sistemi workstation e server. Sarà solo con il debutto delle APU della
famiglia Trinity, atteso nel corso del 2012, che l'architettura Bulldozer entrerà nei
sistemi di fascia mainstream sia desktop che notebook; in questo caso, tuttavia, vedremo
all'opera l'evoluzione di Bulldozer nota con il nome in codice di Piledrive.
Ogni processore della famiglia FX, ma lo stesso vale ovviamente anche per quelli
Opteron basati su architettura Bulldozer, è composto al proprio interno da differenti
moduli affiancati tra di loro, collegati attraverso una cache L3 che è unificata, in
quantitativo di 8 Mbytes per le soluzioni FX. In ogni modulo Bulldozer sono integrati due
distinti core integer, accanto ai quali è stata inserita una singola unità in virgola
mobile: la risultante è quindi di avere un approccio tradizionale per la parte di calcolo
integer, quella che rappresenta del resto la mole di lavoro principale in un moderno
processore, condividendo tra i due core una singola unità floating point

L'approccio scelto da AMD nel design delle soluzioni Bulldozer passa quindi attraverso
una logica di condivisione delle risorse, studiata in modo tale da ottimizzare il livello
prestazionale in funzione del consumo massimo. Nello schema sono evidenziare le componenti
interne ad ogni modulo Bulldozer: le unità integer sono quelle completamente
indipendenti, mentre quella in virgola mobile è condivisa assieme ai blocchi di logica
per fetch e decode delle istruzioni. La cache L2 è presente in quantitativo di 2 Mbytes
per modulo, mentre la cache L3 è esterna al modulo così come lo è la componente north
bridge integrata nel processore, nella quale troviamo anche il memory controller DDR3 dual
channel.
Lo sviluppo di un'unità FP condivisa tra due unità di calcolo integer è una
strategia portata avanti da AMD nell'architettura Bulldozer cercando di ottenere due
distinti risultati: da un lato contenere le dimensioni complessive del die, così da
beneficiare di costi di produzione più contenuti; dall'altro limitare il più possibile i
consumi complessivi. E' evidente come sia preferibile, dal punto di vista delle pure
prestazioni velocistiche, un design di processore che veda la presenza del maggior numero
possibile di unità di elaborazione; d'altro canto questo implica dimensioni crescenti e
consumi che possono aumentare sino ad una soglia non ritenuta più accettabile. AMD ha
segnalato come la presenza della seconda unità di calcolo integer all'interno di ogni
modulo Bulldozer implichi un incremento della superficie complessiva del chip pari al 12%,
valore particolarmente contenuto considerando il boost prestazionale ottenibile.
AMD ha scelto di raddoppiare la sola parte integer del propri processori, lasciando
condivisa quella floating point, partendo anche da una considerazione pratica: la maggior
parte delle elaborazioni riguarda proprio le unità integer, sino mediamente all'80% del
totale, pertanto volendo ottenere il miglior rapporto tra prestazioni e consumo
complessivo la strada maestra è quella di duplicare queste unità, massimizzando il
parallelismo delle operazioni, lasciando unificata un'unità in virgola mobile di notevole
potenza complessiva. Vero è che in ambito server e soprattutto HPC il ruolo delle unità
di elaborazione in floating point è ben più rilevante che con tradizionali pattern di
calcolo; d'altro canto è innegabile come l'utilizzo di GPU per elaborazioni parallele non
grafiche in ambito professionale si stia rivelando una strategia estremamente interessante
per poter mettere a disposizione elevata potenza di calcolo in virgola mobile per
particolari tipologie di elaborazione, ottenendo incrementi prestazionali molto elevati
rispetto all'utilizzo di tradizionali CPU. |