home>hardware<softwaremobilehi-figamesnetworkphotoforum

Cell Broadband Engine Architecture: il cuore della Playstation 3 visto da vicino

di Antonio Trapanese
07 Marzo 2006


Una vista ravvicinata, per esperti del settore, dell'architettura Cell Broadband Engine sviluppata da Sony, IBM e Toshiba, che promette di rivoluzionare il mondo dell'informatica e dell'elettronica. Le prime applicazioni pratiche del Cell saranno la Plays

Categorie Articoli
> Prove
> Attualità
> Approfondimenti
> Interviste
Altro su HIRC
> Segnalaci una notizia
> Advertising
> Forum
Ultime dal forum
Visualizza HIRC del
//
PowerPC Processor Element
Il PPE (PowerPC Processor Element) è lo strato “convenzionale” del Cell Broadband Engine, si tratta infatti di un processore RISC general purpose “in-order” dual-issue dual-threaded, pienamente compatibile con il set di istruzioni PowerPC.

E’ fondamentalmente un processore a 64-bit, ma può funzionare anche in modalità “compatibile” a 32-bit; inoltre supporta le estensioni SIMD VMX per il calcolo vettoriale. Può eseguire qualsiasi codice compilato per PowerPC.

La prima implementazione prevede 32KB di cache L1 (16KB dati e 16KB istruzioni) e 512KB di cache L2.

Come per tutte le architetture RISC, le istruzioni possono avere come operandi solo registri oppure valori immediati.

Sebbene IBM non abbia discusso pubblicamente i dettagli del PPE, (il quale, ricordiamo, pur essendo compatibile con l’ISA PowerPC non deriva da alcun processore IBM PowerPC in produzione), il simulatore permette di estrapolare informazioni riguardanti struttura ed organizzazione dei registri, come si può vedere dall’immagine precedente.

Uno screenshot che ritrae i registri principali delle unità logiche PPE all'interno del simulatore

Per ogni unità logica sono disponibili i seguenti registri:

-32 GPR (registri generali) 64-bit
-32 FPR (registri in virgola mobile) 64-bit
-32 VMXFPR (registri vettoriali per le unità VMX) 128-bit


Ciascuna delle unità logiche è inoltre dotata di una serie di registri interni indispensabili per il funzionamento del processore, tra questi vi sono quelli fondamentali:

-PC (Program Counter) 64-bit
-MSR (Machine Status Register) 64-bit
-CR (Condition Register) 32-bit
-LR (Link Register) 64-bit
-XER (Fixed Point Exception Register) 64-bit
-FPSCR (Floating Point Status and Control Register) 64-bit


Di questi registri fondamentali il Program Counter non ha certo bisogno di “presentazioni”, vale la pena invece di spendere qualche parola in più sul MSR in quanto assume un ruolo cruciale non solo per il PPE (definendo ad esempio la modalità operativa a 32 o 64-bit) ma per tutto il Cell. Le unità di calcolo vettoriale ausiliarie (le SPE) infatti sono estremamente semplici e si limitano ad eseguire i compiti che vengono loro assegnati; non eseguono alcun controllo, ad esempio, di protezione della memoria: questi compiti, legati essenzialmente alla distinzione tra modo utente e modo supervisore vengono svolti dal PPE.

Il Condition Register è diviso in 8 campi da 4-bit; il primo campo CR0 (bit 0-3) è relativo alle condizioni verificate da un calcolo in virgola fissa, mentre CR1 è relativo ai calcoli in virgola mobile, gli altri invece possono essere utilizzati per memorizzare i risultati di una operazione AND, OR o XOR tra i valori dei bit di CR0 e CR1. I primi quattro bit del registro hanno i seguenti significati riferiti all’ultima operazione eseguita:

-bit 0 (LT): risultato negativo
-bit 1 (GT): risultato positivo
-bit 2 (EQ): risultato zero
-bit 3 (SO): summary overflow (dato duplicato anche nel registro XER)


Per informazioni estensive sui calcoli in virgola fissa e mobile si utilizzano i registri XER e FPSCR. Infine, ultimo registro fondamentale è il Link Register (LR): le architetture PowerPC infatti non fanno alcuna distinzione tra i salti generici ed i salti a sottoprogramma (non esiste alcuna istruzione “automatizzata”), bensì tutte le istruzioni di salto (condizionato o incondizionato) possono specificare attraverso un bit alto (chiamato LK) che venga salvato nel registro LR l’indirizzo di ritorno al “programma principale” (cioè l’indirizzo dell’istruzione che segue quella di salto).

La memoria è byte-addressable, ed è accessibile in byte, halfword, word e double word; lo schema di memorizzazione, a differenza delle normali architetture PowerPC è unicamente big endian.

Siccome questo processore supporta l’esecuzione di due thread in parallelo, le unità logiche sono due, abbiamo quindi in totale 64 registri generali, 64 registri in virgola mobile e 64 registri per operandi VMX, così come un “duplicato” di ogni registro interno. Difatti ogni PPE viene visto a livello logico come due processori, e la presenza di registri dedicati per ogni unità logica consente l’effettiva esecuzione di due thread in parallelo, pur mantenendo unità di esecuzione, cache e memoria in comune.

Questo approccio consente indubbiamente di sfruttare meglio le unità di esecuzione non solo eseguendo più operazioni insieme (a patto che i due thread non richiedano operazioni in contemporanea alla stessa unità di esecuzione), ma soprattutto evitando che queste restino inutilizzate in caso di stallo della pipeline.

Ormai soluzioni del genere sono diffuse anche nel mercato consumer (basti pensare alla tecnologia Intel HyperThreading) e consentono di aumentare considerevolmente il numero effettivo di istruzioni eseguite nell’unità di tempo, con un costo relativamente ridotto sul silicio (soprattutto se confrontato ad altre soluzioni come l’esecuzione Out Of Order).

Essendo un processore dual-issue in-order, questo è l’unico modo per eseguire fino a due operazioni in parallelo, infatti le istruzioni di un processo vengono eseguite sequenzialmente da ognuna delle due unità logiche una dopo l’altra, così come sono nel programma, senza cercare di parallelizzarle. Ogni unità logica può quindi richiedere l’esecuzione di una istruzione per ciclo di clock, a patto che, come detto in precedenza, questa non debba essere eseguita da una unità di esecuzione che risulta occupata da una istruzione richiesta dall’altra unità logica.

Rispetto all’esecuzione OOO (Out-Of-Order) questa soluzione presenta numerosi vantaggi ed alcuni svantaggi: i vantaggi sono indubbiamente una maggiore semplicità del design (il che si traduce in meno spazio occupato sul silicio e nella possibilità di funzionare a frequenze più elevate), ed una certa “immunità” agli stalli della pipeline; gli svantaggi invece riguardano il fatto che per poter sfruttare il parallelismo le applicazioni devono essere multithreaded, e cioè il “problema” è spostato al programmatore.

Quindi mentre l’esecuzione OOO può portare vantaggi a qualsiasi applicazione senza necessità di modificarla, l’approccio scelto per il PPE può portare a prestazioni estremamente basse nell’esecuzione di codice single-threaded. Questo aspetto, trovandoci di fronte ad una architettura nuova, è poco significativo in quanto è necessario comunque sviluppare nuovi programmi senza preoccuparsi della retrocompatibilità.

Sebbene il PPE possa svolgere qualsiasi compito, nel modello di un sistema Cell ideale, dovrebbe servire soltanto ad eseguire i compiti più semplici ed a gestire le risorse di sistema, in altre parole dovrebbe essere limitato all’esecuzione del solo sistema operativo.

< Pagine precedentiPagina correntePagine successive >
Lo stream processing
PowerPC Processor ElementSynergistic Processor Element e storage model
L'architettura vista dall'alto
Introduzione
Element Interconnect Bus, interfaccie di I/O e memoria
Cenni alla gestione delle interruzioni
Conclusioni e prime implementazioni
Bibliografia

Vuoi segnalarci una tua notizia? Clicca qui!
Comments
Google
Annunci
Attualità
Fujitsu presenta la soluzione e roadmap Mobile WiMAX System-on-chip
Nuovo masterizzatore DVD esterno Sony DRX-820UL
Nokia 770 Internet Tablet e Google Talk insieme
Core 2 Duo, gioco di parole per i nuovi processori Intel
Recensione Crucial Gizmo! Overdrive 1GB online
LCD con tempo di risposta di 2ms da Acer
ATi ha acquisito la finlandese BitBoys
AMD ritira 3000 CPU Opteron difettose
Intel punta decisa verso i 32 nanometri
Intel vPro: nuova piattaforma per PC aziendali
Prove
Crucial Gizmo! Overdrive 1GB: capacità e prestazioni
Crucial Gizmo!: 1GB per foto, musica e pinguini
Raffreddamento a liquido: quando il gioco si fa duro
Sapphire Radeon X1300: alta definizione per tutti
Enermax Liberty 500W: la libertà fatta alimentatore
Genius Ergo 300: mouse piccolo ma non troppo
Royaltek GPS RBT 2001
Crucial Ballistix Tracer DDR500: semplicemente estreme
HP Business Desktop dx5150: potenza per ufficio
Dal Radeon X600 all'X800: generazioni a confronto in casa Sapphire
Banca dati tutelata ai sensi della legge sul diritto d'autore,vietata la riproduzione anche parziale dei contenuti di questo sitosenza esplicita autorizzazione del webmaster. I contenuti di questo sito non hanno carattere di periodicità e non rappresentano 'prodotto editoriale'. Copyright © 1999-2006 Antonio Trapanese.Tutti i diritti riservati.Tutti i marchi citati in queste pagine sono dei rispettivi proprietari.
Design by Sauro Spagnol.