UltraSPARC T1
Da Wikipedia, l'enciclopedia libera.
L'UltraSPARC T1 (conosciuto anche con il nome in codice di Niagara) è un microprocessore prodotto dalla Sun Microsystems e rilasciato il 14 novembre 2005. Il microprocessore è stato progettato per essere multi core e garantire il multithreading. Il suo progetto prevedeva come obiettivo primario la realizzazione di un chip a basso consumo per il mercato server ad una via. L'unità dissipa 72 Watt alla frequenza di 1.2 GHz.
Il T1 deriva dai processori della serie UltraSPARC. É il primo microprocessore Sun multicore e multitherad; diffatti il T1 è dotato di otto core e ogni core è in grado di eseguire fino a 4 Thread simultaneamente e quindi la CPU è in grado di eseguire fino a 32 thread simultaneamente.
Come i server ad alte prestazioni Sun l'UltraSPARC T1 può essere partizionato, in modo da poter assegnare uno o più core a compiti o utenti specifici.
Indice |
[modifica] Core
L'UltraSPARC T1 è stato progettato fin dall'inizio per l'esecuzione multithread di processi generici e introdusse una nuova architettura nata por ottenere alte prestazioni. Gli ingegneri invece di puntare su un processore molto veloce decisero di realizzare dei processori più semplici ma ottimizzati per eseguire molti processi in contemporanea in modo da ottenere alte prestazioni su sistemi che eseguono molti processi concorrenti.
I core del T1 sono molto meno complessi dei core inclusi nelle moderne CPU ad alte prestazioni. Per esempio i core non supportano l'esecuzione delle istruzioni fuori ordine e non sono dotati di cache di dimensioni generose. Le prestazioni dei singoli thread dipendo strettamente dalla presenza di cache di dimensioni generose, la mancanza di un dato in cache infatti introduce una notevole penalizzazione delle prestazioni dato che la memoria centrale è molto più lenta del processore. Una cache di ampie dimensioni riduce gli accessi alla memoria centrale e quindi migliora le prestazioni sebbene non possa ridurre il tempo di accesso alla memoria centrale.
Il processore T1 riesce a ridurre notevolmente la penalizzazione dell'accesso alla memoria utilizzando un approccio multithread. Quando un processore ha una cache miss (cioè non trova i dati necessari in memoria) il processore commuta su un altro thread disponibile e lo immette in esecuzione. Quindi sebbene i singoli thread siano rallentati dagli accessi alla memoria le prestazioni complessive del sistema sono elevate dato che il processore esegue in contemporanea molti thread. Analizzando la pipeline di un core infatti si nota che solamente la memoria e i registri sono replicati. Quindi ogni core può tenere in memoria fino a quattro thread sebbene ne possa eseguire solo uno alla volta.
I benchmark hanno dimostrato che nelle applicazioni commerciali questo approccio funziona molto bene. Applicazioni basate su Java application server, su application server e in generale su web server dimostrano la bontà di questo approccio. Questo genere di applicazioni creano tanti thread che singolarmente non richiedono elevata potenza di calcolo ma che nel complesso mettono sotto pressione i server dato che complessivamente assorbono elevate potenze di calcolo. I test hanno dimostrato che ogni core del processore genera una potenza di calcolo superiore a quella di un processore a singolo core e singolo thread UltraSPARC III (2001). Nell'esecuzione di più thread basati su aritmetica degli interi i core forniscono prestazioni significativamente superiori a quelli degli atri processori in commercio.
Quando venne presentato nel dicembre 2005 un server basato su un singolo processore a 8 core, 32 thread a 1.2 Ghz forniva prestazioni simili a quelle fornite da un server basato su 2 processori IBM POWER5 a quattro core e otto thread con frequenza di 1.9 Ghz. Le prestazioni erano paragonabili a quelle generate anche da un server basato su quatto Intel Xeon Paxville MP con otto core e 16 thread a 3.0 Ghz e forniva prestazioni superiori a quelle di un server basato su quattro Intel Itanium con quattro core e quattro thread a 1.6 Ghz. Nella applicazioni commerciali multithread quindi l'UltraSPARC T1 era il processore più potente del pianeta.
[modifica] Mercati di riferimento
Il microprocessore è stato specificatamente sviluppato per alcuni mercati usualmente occupati dai server. Piuttosto che puntare sul settore del supercalcolo o delle applicazioni ad altissime prestazioni Sun ha deciso di privilegiare il settore dei server dedicati alle applicazioni internet come i web server. Questa tipologie di applicazioni richiedono la gestione di molti thread simultaneamente e infatti l'architettura della CPU è chiaramente indirizzata verso queste applicazioni, anche considerata la possibilità di una virtualizzazzione hardware in grado di far girare su un solo processore a basso consumi parallelamente molte macchine virtuali.
Il processore dimostra le sue prestazioni anche del caso di database di piccole e medie dimensioni con un discreto numero di utenti. Come mostrato da questo test eseguito da un privato le prestazioni di un database MySQL su un'UltraSPARC T1 surclassano un server basato su AMD Opteron.
[modifica] Rock
Una delle limitazioni di queste scelte progettuali emerge nella gestione dei numeri in virgola mobile. La CPU, infatti, dispone di una sola unità di calcolo in virgola mobile, condivisa dagli 8 core, anche se Sun ha già annunciato che una nuova versione di processori (nome in codice Rock) sopperirà a questa mancanza. Per via della sua architettura interna, dunque, il T1 non è un microprocessore SMP. Per questo Sun intende presentare Rock, con l'obiettivo di integrare l'SMP e risolvere il problema della singola unità di calcolo in virgola mobile. Rock, inoltre, introdurrà un precaricamento del codice, in modo da evitare lo svuotamento delle pipeline e, dunque, rallentamenti dell'esecuzione.
Rock comunque non è il successore dell'UltraSPARC T1. Sun ha dichiarato pubblicamente di lavorare all'UltraSPARC T2 che sarà indirizzato allo stesso mercato del Niagara e quindi sarà un processore con un elevato grado di parallelismo ma probabilmente con un sezione in virgola mobile debole.
[modifica] Opensource
Il 21 maggio 2006 Sun ha rilasciato il processore UltraSPARC T1 sotto licenza GNU General Public License tramite il progetto OpenSPARC. Il progetto include:
- Il codice Verilog del processore
- Programmi per la simulazione e il test del processore
- Specifiche dell'ISA (architettura UltraSPARC 2005)
- Il sistema operativo Solaris 10
[modifica] Collegamenti esterni
- (EN) Sun Microsystems' official UltraSPARC T1 Processor information
- (EN) Sun Intros Eight-Core Processor – By Jessica Davis, Electronic News, 14 Nov 2005
- (EN) OpenSPARC - Sun's open sourced UltraSPARC T1 design