Introduzione a G5
Ben
tornati sulle pagine della rubrica "Tecnologie
da Sogno". In questo numero di un afoso Luglio 2003
parleremo del nuovo processore IBM PowerPC 970 salito recentemente
alla ribalta con il nome commerciale di G5 ed utilizzato
da Apple per gli omonimi Power Mac G5.
Questo processore a 64bit rappresenta un vero e proprio
salto generazione per la famiglia PowerPC grazie a tutta una serie
di scelte tecnologiche aggressive che IBM ha messo in atto per
risollevare le sorti di una validissima linea di processori rimasta
però indietro sotto alcuni punti di vista.
La famiglia PowerPC nasce molti anni fa con la dolorosa
scelta di Motorola di abbandonare la gloriosa serie 680x0 (l'Amiga,
l'Atari ed i Mac di un tempo usavano questo processore) per concentrarsi
insieme ad IBM ed Apple nella creazione di una nuova generazione
di processori RISC (rimadiamo a questo
nostro articolo per una disquisizione sulle differenze
fra paradigma di elaborazione RISC e CISC).
Il consorzio Motorola-IBM-Apple
diede vita ad una tecnologia molto avanzata, frutto di studi approfonditi
sull'ISA
dei processori e capace di fornire elevate prestazioni
sia nel comparto degli interi che nel Floating Point. Ai primi
PPC 601, 603 e 604 seguitono poi le evoluzioni PPC G3 e G4. Negli
ultimi anni però, i processori G4 sono rimasti sensibilmente
indietro in termini di frequenza di clock sia per il core (a causa
del basso numero di stadi di pipeline) sia per il FSB.
Anche se molto potenti a parità
di clock rispetto ad un Athlon o a un P4, i processori G4 hanno
recentemente perso competitività a causa di un clock massimo
di 1.4GHz contro i 2-3 GHz dei concorrenti, e un FSB lenti da
167MHz contro i 333-400 o addirittura 800MHz dei concorrenti.
IBM ha deciso di porre rimedio
a tutti questi problemi ed attingendo a piene mani alla tecnologia
del processore Power4 (uno dei più potenti processori oggi
disponibili ed impiegato in grossi sistemi server multiprocessore
o in supercomputer( è riuscita a sformare un processore
di fascia "consumer" capace di tenere testa e superare
in certi campi i migliori processori della concorrenza. Inoltre
il G5 è a tutti gli effetti il primo processore per personal
computer totalmente a 64bit (almeno in attesa di Athlon 64).

Come IBM ha progettato un moderno
processore a 64bit per desktop
L'approccio usato da IBM per realizzare
il PPC 970 è molto aggressivo e si avvicina per certi versi
a quanto fatto, con successo, da Intel con il suo Pentium4.
Per ottenere
elevate frequenze di clock, forse il parametro più critico
in una architettura validissima come quella PPC, IBM ha progettato
un core con pipeline profonde ma a differenza di quanto fatto
a suo tempo da Intel con il P4, IBM ha anche pensato bene di dorare
il tutto di numerose unità di elaborazione e di affrontare
il passaggio ai 64bit. Nel G5 ci sono 12 unità di elaborazione,
e le pipeline hanno una lunghezza media di 16 stage (sono 9 nel
G4 e 20 nel P4).
Il vantaggio
dell'elevato numero di stage si manifesta subito nel raggiungimento
di discrete velocità di clock. Si parla per i primi modelli
di 1.8-2GHz ma si potrà facilmente scalare in 130nm sopra
i 2.5GHz.
Il passaggio dai 9 stadi del
G4 ai 16 del G5 complica molto il core del processore che si trova
a dover gestire un numero elevato di istruzioni "on-the-fly"
ossia presenti nel core in qualche fase di elaborazione. Pensate
che in ogni istante è possibile fotografare fino a 215
istruzioni immerse nelle pipeline in qualche fase di esecuzione.
Una struttura
a pipeline profonde ha perciò bisogno di molta banda per
alimentare le unità di esecuzione e di strategie efficaci
di predizione dei salti per evitare pericolosi stalli della pipeline.
Inutile dire che anche in questo settore, il processore G5 eccelle
con interessantissime scelte architetturali.
Analisi dell'architettura
Innanzi tutto analiziamo la
questione dei 64bit. In realtà G5 non è il primo
processore PowerPC a 64bit, qualcuno si ricorderà forse
il PPC 620 che però ha avuto poca fortuna ed inoltre veniva
impiegato da IBM in sistemi server.
G5 è però il
primo processore dedicato a personal computer Desktop dotato dei
64bit. I registri interni del G5 sono infatti a 64bit così
come le unità di allocazione della memoria. Sono a 64bit
anche le unità sugli interi di modo da poter eseguire istruzioni
su registri ampi 64bit. Ma tutto questo quanto può incidere
sulle prestazioni di un computer "desktop"?.
In realtà non molto. Infatti, chi mai va a fare
una divisione a 64bit sugli interi? o magari chi va ad utilizzare
loop con counter a 64bit? I 64bit servono in genere solo in software
scientifico, matematico, in database etc... L'unico vantaggio
è quello di avere una architettura che processando 64bit
alla volta, si presume abbia una disponibilità generale
di banda maggiore di una architettura a 32bit, e la disponibilità
di una maggiore capacità di indirizzamnto della memoria
che permette di superare agilmente (e definitivamente, direi)
la barriera dei 4GBytes.
Passiamo adesso
a vedere lo schema architetturale del processore:

Partiamo analizzando
le cache che alimentano le unità di elaborazione.
1 e 2- G5 ha 512Kbyte di L2 cache integrata
che alimenta le L1 cache alla bellezza di 32Gbyte/s. Le L1 cache
si dividono in una L1 instruction cache da 64 KB (direct
mapped) capace di fornire all'unità di fetch & decode
fino a 8 istruzioni per ciclo di clock, e una L1 data cache
da 32KB (4way associativa). La banda aggregata delle L1 cache
è di 64GByte/s.
3- L'unità di fetch & decode
può gestire fino a 8 istruzioni per colpo di clock. Queste
vengono analizzate, scomposte ed attribuite a 5 unità
di dispatch (allocazione delle risorse effettive). La gestione
dell'esecuzione fuori ordine avviene a gruppi di 5 istruzioni
alla volta. uno schema che semplifica e velocizza la gestione.
Le unità di elaborazione vere
e proprie sono le seguenti:
6- un Velocity Engine capace di gestire
2 istruzioni SIMD per colpo di clock che operano su un register
file dedicato da 32 registri a 128bit (+ altri 48 registri "proxy"
per il register renaming).
Il velocity engine opera su vettori di dati interi (2 valori
a 64bit, 4 valori a 32bit o 8 valori a 16bit) oppure su vettori
di dati FP (2 valori a doppia precisione, 4 valori a singola
precisione). Per come sono state concepite, le istruzioni Altivec
sono molto più potenti delle SSE, SSE2 o 3DNow!.
Inoltre, il velocity engine e' in grado di allocare e portare
a termine due istruzioni per colpo di clock sulle sue 4 unità
di elaborazione interne. Questo comparto risulta a parità
di clock inferiore all'equivalente del G4, tuttavia la grande
capacità di banda e la maggiore frequenza portano il
G5 in netto vantaggio.
7- G5 è dotato di un comparto
FP tradizionale molto potente. Le unità di elaborazione
sono due, eseguono i calcoli a doppia precisione in un solo
ciclo (latenza tipica 6 cicli) e risultano molto potenti perchè
in grado entrambe di eseguire qualsiasi operazione (esclusa
la divisione che richiede entambe le unità) a differenza
ad esempio del'Athlon in cui le unità sono specializzate.
Le unità operano su un register file dedicato costituito
da 32 registri a 64bit (+ altri 48 registri "proxy"
per il register renaming)
Queste 2 unità FP possono lavorare in
parallelo al Velocity Engine per ottenere un through-put sul
FP veramente mostruoso: fino a 6 operazioni FP a doppia precisione
per colpo di clock, o fino a 10 operazioni FP a singola precisione
per colpo di clock.
8- Le unità intere sono 2, operano
su un register file di 32 registri a 64bit, possono ciascuna
eseguire la quasi totalità delle istruzioni, semplici
o complesse che siano (una leggera asimmetria per l'istruzione
di divisione disponibile su una sola unità).
9- Le unità sugli interi sono
affiancate da due unità di Load&Store. Nel paradigma
Load/Store & Operate, c'e' una netta divisione tra
istruzioni operative che lavorano solo sui registri ed instruzioni
di I/O che effettuano solo il caricamento e lo scaricamneto
dei registri. Queste due unità processano esclusivamente
le istruzioni di accesso alla memoria e sono ottimizzate per
l'elevata banda che il sistema può gestire.
11- Un comparto particolarmente importante
è quello dedicato al Branch Prediction. Il chip e' dotato
di un potentissimo sistema di branch prediction, molto più sofisticato
del già avanzato sistema di Intel P4. Tramite 3 tabelle da 16K
entry e due schemi dinamici a tre livelli di e' così
possibile ottenere elevati tassi di predizione dei salti, fattore
necessario per mitigare i pesanti effetti di uno stallo della
pipeline. L'efficienza risulta superiore al 95%.
Un front size bus avanzato da
8GByte/s
Infine una menzione speciale
va al FSB, vero tallone d'achille dei precedenti G4. Una architettura
ad elevata profondità che mira ad elevate frequenze di
clock, non può prescindere da un veloce FSB per poter alimentare
il più velocemente possibile le voraci unità interne
e le cache in caso di cache miss.
IBM ha derivato il nuovo FSB
direttamente da quello del Power4. Il FSB del G5 è costituito
da due bus separati punto-punto monodirezionali ampi 32bit. Il
primo bus esegue esclusivamente trasferimenti dal processore al
chipset, mentre il secondo gestisce il percorso inverso. Il fatto
di usare bus monodirezionali permette di ottimizzare le impedenze
delle linee e di evitare ritardi di turn-around dei segnali. In
questo modo si è riusciti a creare un bus DDR a 1GHz capace
di una banda aggregata di 8GB/s e pienamente capace di scalare
a valori più alti.
Infatti attualmrnte il G5
funziona a 2Ghz con un FSB a 1GHz ma già IBM parla di una
prossima versione a 2.5GHz con FSB a 1.25GHz. Un'altro vantaggio
di un tale FSB punto-punto lo si ha nei sistemi multiprocessore.
Per sua natura è necessario collegare ogni processore al
chipset con un bus dedicato moltiplicando di fatto la banda aggragata
del sistema e migliorando le performance complessive dei sistemi
multiprocessore.
Tecniche di Integrazione e SOI
Merito delle performance velocistiche
è anche l'avanzata tecnologia usata da IBM per integrare
i 59 milioni di transistor che costituiscono questo processore.
IBM ha usato la sua fab più avanzata per produrre su wafer
da 300mm i chip in tecnolgoia 0.13um e SOI. L'utilizzo della SOI
(è
possibile approfondire l'argomento qui) permette di contenere
i consumi e di mantenere il die sotto i 120mmq.


Conclusioni
Sicuramente IBM ha creato
un ottimo prodotto, capace realmente di dare nuovo smalto alla
famiglia PPC. L'analisi prestazionale ci conferma infatti la bontà
del prodotto.
G5 è in grado a 2GHz
di tenere testa sugli interi a un Pentium4 cloccato a 3GHz, inoltre
sul Floating Point, nelle stesse condizione, si ottengono prestazioni
nettamente superiori.
A differenza delle classiche
tecologie che siamo abituati a vedere su queste pagine, il G5
è perfettamente alla portata di tutti. I nuovi PowerMac
G5 ne sono la prova vivente visto che partono da cifre poco superiori
ai 1500 $.
Per
discutere di questa e di altre tecnologie , iscrivetevi al FORUM
di Lithium.it.
Per essere avvertiti di nuovi articoli iscrivetevi alla
NEWSLETTER
di Lithium.it
Alla
prossima puntata,
Stay on charge, Lithium.it !