Cell (processore): differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Tombot (discussione | contributi)
m Bot: Correggo markup wiki
Riga 34: Riga 34:
Tuttavia il Cell pur essendo un ottimo processore in ambito scientifico (infatti può essere annoverato tra i SPECIFIC PURPOSE) é meno malleabile a prestazioni in ambito videoludico.
Tuttavia il Cell pur essendo un ottimo processore in ambito scientifico (infatti può essere annoverato tra i SPECIFIC PURPOSE) é meno malleabile a prestazioni in ambito videoludico.


Con [http://it.wikipedia.org/wiki/Yellow_Dog_Linux Yellow Dog Linux] 6.1,[http://it.wikipedia.org/wiki/Fedora_(distribuzione_Linux) Fedora] 9 o 10 e RHEL 5.2 o superiore si possono scrivere applicazioni per il Cell attraverso il kit di sviluppo di IBM (la versione attuale è la 3.0)
Con [[Yellow_Dog_Linux|Yellow Dog Linux]] 6.1,[[Fedora_(distribuzione_Linux)|Fedora]] 9 o 10 e RHEL 5.2 o superiore si possono scrivere applicazioni per il Cell attraverso il kit di sviluppo di IBM (la versione attuale è la 3.0)


== Cell anche per i Server ==
== Cell anche per i Server ==

Versione delle 19:21, 22 giu 2009

File:Cell-Processor.jpg
Immagine del processore

Cell è il nome di una tipologia di processori sviluppati da IBM in cooperazione con Sony e Toshiba.

La famiglia di processori Cell è sviluppata per permetterne un utilizzo quasi universale, infatti questi nuovi processori dovrebbero essere in grado di coprire i mercati che vanno dalle applicazioni dedicate (embedded) fino al mercato dei mainframe. Si tratta di CPU progettate per utilizzare la computazione parallela e Sony li utilizza anche per la sua nuova console, la PlayStation 3.

Caratteristiche tecniche

Architettura del processore
Schema unita PE

Sebbene Cell possa avere molte configurazioni, la versione base prevede un'unità chiamata Processing Element (PE) e otto unità "Synergistic Processing Units" ("SPU"). L'unità PE è basata sull'architettura POWER, capace di elaborare 2 thread contemporaneamente ed è la stessa architettura che forniva la base di alcuni processori utilizzati da Apple in passato (PowerPC G5), ma privo di Esecuzione fuori ordine (OoO). L'unità PE non è il processore primario, il suo compito è controllare e sincronizzare le unità SPU che dovranno eseguire la maggior parte delle computazioni.

Schema unità SPE

Ogni SPU è un processore vettoriale a 128 bit VLIW, ha una dimensione di 2,5 x 5,8 mm, è in grado anch'esso di eseguire 2 istruzioni simultaneamente ed è dotato di 256 Kbyte di memoria locale (chiamata LS, Local Storage) ad alta velocità. E importante far notare che non si tratta della cache, non vi è gestione hardware dei fault di pagina, ogni operazione di caricamento, di prefetching, e di aggiornamento in memoria deve essere fatta esplicitamente dal codice, dunque dal compilatore o dal programmatore. Questa memoria è visibile alla PE in modo che questa possa caricarvi dati o programmi. Ogni SPU è in grado di accedere alla memoria locale di un'altra SPU rapidamente e quindi quando una SPU ha completato delle elaborazioni un'altra SPU può prelevare i dati per successive elaborazioni. Si potrebbe immaginare per esempio nel caso di un lettore di DVD avanzato che una SPU effettui una prima decodifica dei dati, la seconda SPU provveda a adattare l'immagine alla risoluzione dello schermo mentre una terza SPU preleva i dati dalla memoria della prima SPU e decodifichi l'audio digitale adattandolo all'impianto audio disponibile. Ovviamente tutta la gestione e la sincronizzazione delle SPU viene effettuata dall'unità PE. Le SPU non sono processori veri e propri, ma unita dedicate in parallelo per le esecuzioni di calcolati dedicati (e non generici). Il processore principale (core) è contenuto nella PPE.

I core comunicano fra loro per mezzo dell'EIB (Element Interconnect Bus), che lavora alla metà della frequenza del processore e comunicano con l'esterno previo il bus FlexIO a 6,4 GHz (ma la frequenza é variabile, ad esempio, quello del Cell integrato nella Playstation 3 lavora a 5Ghz) e con la memoria attraverso un bus XDR (Extreme Data Rate) a 3,2 GHz: Sia FlexIO che XDR si basano su tecnologie di Rambus e sono gestiti da controller integrati nel chip. Grazie ad un accordo stipulato con Rambus nel 2003, le memorie XDR DRAM che equipaggiano i dispositivi Cell-based vengono prodotte direttamente da Sony e Toshiba.

Nelle architetture finora prodotte gli SPE sono ottimizzati per il calcolo su singola precisione; ogni SPE è dotato di 4 ALU a 2 stadi per dati a singola precisione e può dunque eseguire sino ad 8 operazioni contemporaneamente. Gli SPE supportano anche il calcolo su dati a precisione doppia ma non dispongono di unità specializzate, tali calcoli sono eseguiti da quelli per la precisione singola con prestazioni circa 1/8 rispetto a quelle su precisione singola. Sono comunque previste implementazioni successive dell'architettura che supportino ad hardware la precisione doppia non pagando dunque queste penalizzazioni.

Considerazioni sull'architettura

Sotto molti punti di vista Cell assomiglia all'architettura sviluppata da Seymour Cray, quando era ancora progettista alla CDC, ma al contrario. Mentre nel CDC 6600 vi era un'unità di calcolo molto veloce e un gruppo di unità più lente dedicate alla gestione e memorizzazione dei dati, nell'architettura del Cell l'approccio è opposto. Nel Cell vi è un'unità di gestione e un gruppo di unità veloci dedicate all'elaborazione dei dati. Questa architettura ritiene problematica l'elaborazione dei dati e non il loro recupero dalla memoria centrale.

Guardando l'architettura da un altro punto di vista Cell assomiglia a un moderno Computer da tavolo con un solo processore. Le moderne schede grafiche sono dotate di un'unità di elaborazione e di molte unità dedicate alle gestione della grafica poligonale. Queste unità dispongono di un accesso alla memoria molto rapido e spesso sono in grado di condividere delle zone di memoria. Cell estende questa architettura, le unità SPU sono meno flessibili e potenti delle unità dedicate all'elaborazione dei poligoni.

L'architettura di Cell prevede l'incorporazione di più elementi base (1 PPE più 8 SPE) in un solo chip. IBM ha presentato il brevetto di un'unità formata da quattro unità base in grado di sviluppare in teoria 1 Teraflop.

Prestazioni

Avendo principalmente un compito di gestione delle altre unità, il PPE incrementa le sue prestazioni e lo sfruttamento delle risorse con il multithreading piuttosto che puntare su un'ottimizzazione spinta delle prestazioni del singolo thread; la grana del calcolo non è dunque particolarmente elevata ma diventa importante una buona gestione dei thread e dei processi.

Per quanto riguarda gli SPE vale invece il discorso opposto, essi sono specializzati nella computazione, hanno un (relativamente) grosso spazio di memoria on chip e lavorano solo su quello; il lavoro ottimale di queste unità è dunque il calcolo su vettori di dati delle stesse operazioni.

Sia PPE che SPE supportano il calcolo vettoriale, istruzioni su una serie di dati strutturati in un array monodimensionale. Questi elementi possono essere interi o floating point. In questo modo ogni singolo SPE è capace di eseguire contemporaneamente la stessa operazione su 8 valori diversi (lavorando in singola precisione). Grazie a questo meccanismo la sua performance arriva a circa 25,6 gigaflops, dunque in teoria lavorando su precisione singola ogni singolo core ha potenzialità circa 8 volte maggiori di quelle di un Pentium IV con lo stesso clock, a precisione doppia le prestazioni diventano equivalenti. A livello teorico il Cell può arrivare dunque sino ai 204,8 GFLOPS lavorando in singola precisione, e 25 GFLOPS in precisione doppia, rispettivamente 64 e 8 volte quelle di un Pentium IV con lo stesso clock.

Questo rende il Cell molto interessante per il calcolo in ambito scientifico; sebbene la sua architettura non sia ottimizzata per il calcolo in precisione doppia le prestazioni risultano comunque notevoli, e il fatto che tale processore sia studiato per una console influisce sui costi del processore stesso, che essendo prodotto su larga scala risulta notevolmente più economico di un processore "di nicchia" studiato appositamente per il calcolo scientifico. Tuttavia il Cell pur essendo un ottimo processore in ambito scientifico (infatti può essere annoverato tra i SPECIFIC PURPOSE) é meno malleabile a prestazioni in ambito videoludico.

Con Yellow Dog Linux 6.1,Fedora 9 o 10 e RHEL 5.2 o superiore si possono scrivere applicazioni per il Cell attraverso il kit di sviluppo di IBM (la versione attuale è la 3.0)

Cell anche per i Server

Le prime versioni di Cell per server blade sono state rilasciate ad inizio 2006 con un Clock di 2,4 Ghz sebbene inizialmente la IBM avesse ipotizzato una vendita iniziale di versioni con un clock molto maggiore, sui 4 o 5 Ghz, questo poiché nei laboratori i ricercatori sono riusciti a spingere questa architettura fino a 5.2 Ghz, anche se pare che le rese produttive di questo chip non permettano allo stato attuale una commercializzazione a queste frequenze.

Secondo Sony i primi processori Cell verranno prodotti con il processo di IBM a 90 nm sebbene la piena operatività si avrà con futuro processo di Sony a 65 nm e con la possibilità di utilizzare il processo a 45 nm che verrà sviluppato nella fabbrica di Nagasaki per la PlayStation 3 se sarà necessario. Attualmente Sony utilizza un processo a 90 nanometri per produrre il chip GS/EE utilizzato dall'unità PlayStation2/DVR disponibile solo in Giappone.

Cell dovrebbe consumare intorno ai 30 watt, all'incirca quanto il processore Emotion Engine che equipaggia la PlayStation 2, e fornire una potenza di calcolo paragonabile a quella di un piccolo cluster di server. IBM afferma che il proprio superchip sarà, in molti casi, fino a 10 volte più veloce rispetto ad un tipico processore per PC anche se, naturalmente, per controparte in certe applicazioni sarà molto più lento; inoltre potrà svolgere buona parte dei calcoli oggi demandati alla scheda grafica se usato in ambito console.

Saranno disponibili molte varianti del Cell che avranno un diverso numero di unità interne per poter soddisfare le diverse necessità del mercato. Le aziende hanno sviluppato Cell in modo da poter integrare diverse unità in un solo chip in modo economico e se necessario Cell può essere ulteriormente espanso utilizzando reti veloci che collegano più chip in modo da incrementare la potenza di calcolo disponibile.

Progetti simili basati su più core sono sviluppati da molte aziende come per esempio Sun Microsystems che con il progetto MAJC (si pronuncia "magic") sta sviluppando un'alternativa a Cell. Il primo chip MAJC era progettato originariamente per elaborazioni multimediali ma in seguito Sun decise di utilizzare MAJC come base per le sue schede grafiche di alte prestazioni per le sue workstation. Anche lo Stanford University's Imagine Stream Processor shares è un processore concettualmente simile al Cell e al MAJC.

Cell nel supercomputer più veloce

Lo stesso argomento in dettaglio: IBM Roadrunner.

IBM, nel settembre 2006 ha comunicato che realizzerà un nuovo supercomputer, destinato al Laboratorio Nazionale di Los Alamos nel Nuovo Messico, per il Dipartimento dell'Energia statunitense.

Una volta entrato in funzione, Roadrunner (questo il suo nome) diventerà il più veloce calcolatore mai realizzato, essendo ben 4 volte più potente dell'attuale leader in classifica, vale a dire il sistema BlueGene/L raggiungendo la storica velocità di un petaflop. Si parla quindi della capacità di eseguire ben 1,6 mila bilioni di operazioni al secondo.

In realtà sembra che tale sistema non verrà realizzato utilizzando esclusivamente il processore Cell; dovrebbero infatti venir implementati anche processori "convenzionali" in egual misura, per un totale di 32000 CPU. I processori Cell inseriti nella macchina dovrebbero essere in grado di eseguire, ciascuno, 256 miliardi di operazioni al secondo.

Collegamenti esterni