Privacy Policy Cookie Policy Terms and Conditions SPARC - Wikipedia

SPARC

Da Wikipedia, l'enciclopedia libera.

Sun UltraSPARC II Microprocessor
Ingrandisci
Sun UltraSPARC II Microprocessor

SPARC (Scalable Processor ARChitecture) è il nome di un'architettura per microprocessore big-endian RISC. L'architettura, originariamente disegnata nel 1985 da Sun Microsystems, è anche diventata un trademark registrato da SPARC International, Inc., un'organizzazione nata nel 1989 per promuovere SPARC e per provvedere a rilasciare attestati e test di conformità per processori che si vogliono fregiare di tale titolo.

SPARC International ha voluto che SPARC fosse un'architettura "aperta" per creare un grande ecosistema per la progettazione, è stato licenziato a vari produttori tra cui Texas Instruments, Cypress Semiconductor e Fujitsu. È risultato che attualmente SPARC è un'archittetura aperta e non proprietaria: esiste anche un'implementazione open source completa di nome LEON, scritta in VHDL e il suo codice sorgente è disponibile sotto GPL. L'ASIC di LEON, sviluppato da Gaisler Research, è a 32-bit e supporta il set di istruzioni presente nell'architettura SparcV8[1].

Le CPU con implementazioni dell'architettura SPARC inizialmente furono progettate e usate per ambiti come le workstation e più tardi anche in server SMP prodotti dalla Sun Microsystems e dalla Fujitsu. Le macchine SPARC sono sinonimo di Solaris, il sistema operativo della Sun disegnato per SPARC anche se per questa architettura sono disponibili i port di vari sistemi operativi tra cui NEXTSTEP, Linux, FreeBSD, OpenBSD e NetBSD. Negli anni si sono sviluppate varie versioni dell'architettura SPARC in modo da garantire la massima compatibilità possibile fra processori datati e nuovi per agevolare eventuali upgrade (un esempio sono i processori UltraSPARC III e UltraSPARC VI/VI+ che possono essere montati nello stesso sistema senza problemi); l'architettura più recente e tutt'ora in uso è la nona (V9).

Indice

[modifica] Caratteristiche

Processore SuperSPARC 50MHz montato sul caratteristico modulo SM51
Ingrandisci
Processore SuperSPARC 50MHz montato sul caratteristico modulo SM51
Processore SuperSPARC II 75MHz montato sul caratteristico modulo SM71
Ingrandisci
Processore SuperSPARC II 75MHz montato sul caratteristico modulo SM71

L'architettura SPARC è stata pesantemente influenzata dal precedente disegno RISC I e II sviluppati all'interno dell'università californiana Berkeley. Questa architettura RISC era molto minimalista infatti il processore includeva poche operazioni nel codice interno in modo da garantire che ogni operazione fosse eseguita in un solo ciclo di clock ed era inoltre molto simile all'architettura MIPS difatti non prevedeva operazioni di divisione o moltiplicazione che venivano emulati tramite serie di somme. Una caratteristica interessante degli SPARC influenzata dai RISC era l'unità di predizione delle diramazioni molto avanzata; grazie a queste caratteristiche quest'architettura possedeva un ottimo IPC (Instructions Per Cycle - istruzioni per ciclo di clock) che garantiva ottime prestazioni anche a basse frequenze. Una caratteristica indesiderata derivata dal progetto dei primi RISC è il branch delay slot.

Un processore SPARC normalmente contiene almeno 128 registri di uso generico; di questi solo 32 registri sono disponibili direttamente al software, 8 sono globali (il g0 è riservato e quindi non utilizzabile quindi solo 7 sono utilizzabili) e gli altri 24 vengono utilizzati come stack. I 24 registri fungono da register window e quando le funzioni chiamano o ritornano variabili questi registri provvedono a memorizzare i dati, muovendosi in alto o in basso lungo lo stack. Ogni finestra ha 8 registri locali e 8 registri condivisi con le altre finestre. I registri condivisi sono utilizzati per passare i parametri e ritornare le variabili di una funzione.

Lo SPARC è un processore molto scalabile, cioè in grado di essere utilizzato sia come processore per applicazioni embedded che per fornire potenza di calcolo in server aziendali utilizzando sempre lo stesso set di istruzioni. Una delle caratteristiche architetturali che permettono questa scalabilità del processore è il numero di finestre basate su registri che possono essere implementate; le specifiche permettono a queste di variare da un minimo di 3 a un massimo di 32. Un ampio numero aumenta la velocità del codice con molte unità di calcolo mentre un numero ridotto aumenta la velocità di context switching. Altre architetture includono finestre con registri come per esempio l'Intel i960, l'IA-64 dei processori Itanium o l'AMD 29000.

Nello SPARC versione 8 (1987) l'unità in virgola mobile è dotata di 16 registri in virgola mobile. Ognuno di questi registri può essere utilizzato come 2 registri a singola precisione fornendo in totale 32 registri a singola precisione. I registri possono essere accoppiati per ottenere 8 registri a quadrupla precisione. La versione 9 dello SPARC aggiunse altri 16 registri a doppia precisione (che possono diventare 8 registri a quadrupla precisione) ma che non sono utilizzabili come registri a singola precisione.

[modifica] Storia

Nel corso degli anni l'architettura ha subito diverse revisioni, per esempio la versione 8 ha introdotto le moltiplicazioni e le divisioni via hardware anche se la modifica maggiore si è avuta con la versione 9 che ha introdotto la gestione dei dati a 64 bit nel processore.

Le specifiche Sun UltraSPARC Architecture 2005 (UA 2005) hanno aggiunto delle istruzioni addizionali, registri aggiuntivi e una funzione chiamata hyperprivileged mode. Queste nuove aggiunte diventeranno uno standard a partire dal nuovo processore a 8 core UltraSPARC T1. UltraSPARC architecture 2005 include comunque le estensioni standard Sun e rimane compatibile che le specifiche SPARC V9 Level 1; oltre a questo la nuova architettura fornisce piena compatibilità con le applicazioni scritte per le specifiche SPARC V7 implemantate per la prima volta nel 1987.

Nella storia di questa architettura vari processori SPARC della Sun fra cui il SuperSPARC e l'UltraSPARC-I divennerò talmente comuni che vennero utilizzati come metro di riferimento da SPEC per i benchmark CPU95 e CPU2000.

Specifiche microprocessori SPARC
Modello Frequenza
[MHz]
Architettura
Versione
Anno N° Core/ Threads Processore
[µm]
N° Transistor
[milioni]
Die size
[mm²]
IO Pin Alimentazione
Consumo
[V]/[W]
L1 Dcache
[kb]
L1 Icache
[kb]
L2 Cache
[kb]
L3 Cache
[kb]
microSPARC I 40-50 V8 1992 1/1 0.8 0.8 225 288 5/2.5 2 4 none none
SuperSPARC I 33-60 V8 1992 1/1 0.8 3.1 -- -- 5/14.3 16 20 0-2048 none
HyperSPARC A 40-90 V8 1993 1/1 0.5 -- -- -- 5?/-- 0 8 128-256 none
microSPARC II 60-125 V8 1994 1/1 0.5 2.3 233 321 3.3/5 8 16 none none
HyperSPARC B 90-125 V8 1994 1/1 0.4 -- -- -- 3.3/-- 0 8 128-256 none
SuperSPARC II 75-90 V8 1994 1/1 0.8 3.1 299 -- --/16 16 20 1024-2048 none
HyperSPARC C 125-166 V8 1995 1/1 0.35 -- -- -- 3.3/-- 0 8 512-1024 none
TurboSPARC 160-180 V8 1995 1/1 0.35 -- -- 416 3.5/7 16 16 512 none
UltraSPARC I 143-200 V9 1995 1/1 0.5 5.2 315 521 3.3/30 16 16 512-1024 none
HyperSPARC D 180-200 V8 1996 1/1 0.35 -- -- -- 3.3/-- 16 16 512 none
UltraSPARC IIs (Blackbird) 250-360 V9 1997 1/1 0.35 5.4 -- 521 2.5/25 16 16 1024 or 4096 none
UltraSPARC IIs (Sapphire-Black) 360-480 V9 1999 1/1 0.25 5.4 156 521 1.9/21 16 16 1024-8192 none
UltraSPARC IIi (Sabre) 270-360 V9 1997 1/1 0.35 5.4 148 587 1.9/21 16 16 256-2048 none
UltraSPARC IIi (Sapphire-Red) 333-480 V9 1998 1/1 0.25 5.4 -- 587 1.9/21 16 16 2048 none
UltraSPARC IIe (Hummingbird) 400-600 V9 2000 1/1 0.18 Al -- -- 370 1.5-1.7/13 16 16 256 none
UltraSPARC IIi (IIe+) 550-650 V9 2002 1/1 0.18 Cu -- -- 370 1.7/17.6 16 16 512 none
UltraSPARC III 600-900 V9 2001 1/1 0.13 Al 29 330 1368 1.6/53 64 32 8192 none
UltraSPARC IIIcu 1002-1200 V9 2001 1/1 0.13 Cu 29 -- 1368 1.6/-- 64 32 8192 none
UltraSPARC IIIi 1064-1593 V9 2003 1/1 0.13 87.5 206 959 1.3/52 64 32 1024 none
UltraSPARC IV 1050-1350 V9 2004 2/1=2 0.13 66 356 1368 1.35/108 64 32 16384 none
UltraSPARC IV+ 1500 V9 2005 2/1=2 0.09 295 336 1368 1.1/90 64 64 2048 32768
UltraSPARC T1 1000-1200 V9/UA 2005 2005 4/8=32 0.09 300 380 1933 1.3/72 8 16 3072 none

[modifica] SPARC64

SPARC64 è una famiglia di processori sviluppati da Fujitsu e utilizzati nella famiglia di server PRIMEPOWER.

[modifica] Altri progetti

[modifica] Collegamenti esterni

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu