visita il sito del nostro sponsor





Introduzione al G5




Il presente articolo è stato pubblicato la prima volta sul portale:

Si ringrazia Fabio Sonnati e lo staff di Lithium per averci concesso di ripubblicare il presente articolo.





Introduzione a G5

B
en 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


Fabio Sonnati




visita il sito del nostro sponsor