**UltraSPARC T1** (kodenavn: «Niagara») er en 64-bit mikroprosessorer som utvikles av Sun Microsystems. UltraSPARC T1 ble lansert den 14. november 2005 og er basert på spesifikasjonene SPARC Versjon 9 og UltraSPARC Architecture 2005 specification. Mikroprosessoren ble blant annet konstruert for å senke energiforbruket i tjener-datamaskiner, og krever typisk 72 Watt ved 1.4 GHz.

UltraSPARC T1 er en prosessor med flere kjerner og flere tråder. Den er tilgjengelig med 2, 4 og 8 kjerner som hver enkelt kan utføre fire tråder samtidig. Dette gir en maksimal ytelse på 32 tråder samtidig. Også UltraSPARC IV og V+ hadde to prosessor-kjerner. UltraSPARC T1 er imidlertid den første SPARC mikroprosessor med både flere kjerner og tråder, og ble bygd opp fra grunnen av som en ny arkitektur.

I likhet med andre avanserte SPARC mikroprosessorer for symmetrisk multiprosessering, har UltraSPARC T1 støtte for *partisjonering*: Flere kjerner kan samarbeide om kjøringen av en eller flere prosesser og tråder, mens de andre kjernene utfører andre oppgaver.

Den 21. mars 2006 ble konstruksjonen av UltraSPARC T1 gjort tilgjengelig som åpen maskinvare under GNU General Public License i OpenSPARC-prosjektet.

Prosessor-kjernene
------------------

Pipeline i UltraSPARC T1
UltraSPARC T1 ble bygd fra grunnen av som en helt ny SPARC-prosessor. Målet til Sun Microsystems var å kjøre så mange tråder som mulig samtidig. Dette skjedde på bekostning av logiske kretser for *out-of-order execution* og begrenset også størrelsen på nivå 1 hurtigminne. I UltraSPARC T1 er det kompilatorene som sørger for at instruksjoner kan utføres samtidig, ikke maskinvaren.

Hurtigminnet har større betydning for ytelsen ved utførelse av parallelle prosesser enn ved parallelle tråder. UltraSPARC T1 unngår mye av problematikken rundt *cache miss* ved å bruke multitråder. Hver kjerne er en *barrel prosessor*, som svitsjer mellom tilgjengelige tråder hver klokkepuls. Når en lang latens inntreffer, som f.eks. *cache miss* blir tråden tatt ut av utførelses-prosessen mens data hentes til hurtigminnet i bakgrunnen. Når latensen opphører blir tråden tilgjengelig for utførelse igjen. Å dele en *pipeline* på mange tråder kan gjøre hver tråd tregere, men totalytelsen til hver kjerne er raskere. Dette reduserer virkningen av en *cache miss* kraftig, og UltraSPARC T1 opprettholder en høy ytelse med en mindre mengde hurtigminne. Hurtigminnet behøver ikke lenger være stort nok til å inneholde alle eller de fleste «mulige utfall», men bare den siste *cache miss* fra hver tråd.

Gjennom denne filosofien ble det mulig å plassere 8 kjerner i samme brikke.

Ytelsestester av kommersielle heltallsberegninger, foretatt på Java-tjenere, tjenere for Enterprise Resource Planning, e-post-tjenere (som f.eks. Lotus Domino) og web-tjenere, viser at hver enkelt kjerne i UltraSPARC T1 er raskere enn UltraSPARC III fra 2001.

Ved lanseringen i desember 2005, hadde en 8-kjerners 1.2 GHz UltraSPARC T1 tjener, med 32 tråder, omtrent samme ytelse som en 4-kjerners 1.9 Ghz IBM POWER5 tjener med 8 tråder, og en 8-kjerners 3.0 GHz Intel Xeon «Paxville MP» tjener med 16 tråder. Ved lanseringen var UltraSPARC T1 også raskere enn en 4-kjerners Intel Itanium.

UltraSPARC T1 er senere enn x86-baserte mikroprosessorer ved utførelse av prosesser, men overgår disse i ytelse under utførelsen av multitråder.

Virtualisering
--------------

UltraSPARC T1 er den første SPARC prosessoren som støtter *Hyper-Privileged execution mode*. *The SPARC Hypervisor* kjører i denne modus, og kan partisjonere et UltraSPARC T1 system i 32 logiske domener, som hver enkelt kjører en instans av et operativsystem.

UltraSPARC T1 kan kjøre Solaris og Linux, og en versjon av FreeBSD er under utvikling.

Fysiske særpreg
---------------

UltraSPARC T1 består av 279 millioner transistorer og har en størrelse på 378 mm². Den er fabrikkert av Texas Instruments med en 90 nanometers CMOS-prosess med ni lag av kobber.

Systemer
--------

SunFire T1000 server
UltraSPARC T1 prosessoren benyttes i følgende produkter fra Sun Microsystems og Fujitsu:

* Sun/Fujitsu/Fujitsu Siemens SPARC Enterprise T1000 and T2000 servers
* Sun Fire T1000 and T2000 servers
* Sun Netra T2000 Server
* Sun Netra CP3060 Blade
* Sun Blade T6300 Server Module

Markeds-segmenter
-----------------

UltraSPARC T1 har sin styrke og sine svakheter, og er som sådan beregnet på spesielle markeder. Istedenfor å benyttes i superdatamaskiner og applikasjoner som krever ekstrem ytelse, er prosessoren beregnet på nettverkstjenere med høye krav, eksempelvis internett-tjenere med høy trafikk, og tjenere for Java, ERP og CRM programmer, som ofte benytter et stort antall separate tråder.

En av begrensningene med UltraSPARC T1 er at den har én enkelt desimaltalls-enhet som deles av alle 8 kjernene. Dette gjør den uegnet til å utføre store mengder desimaltallsberegninger. Sun Microsystems tilbyr et program som analyserer programmers grad av parallellitet og benytter desimaltalls-instruksjoner for å avgjøre om de egner seg for UltraSPARC T1 eller UltraSPARC T2.

I tillegg er UltraSPARC T1 velegnet for mindre database programmer med store mengder brukere. En ytelsestest har vist at et MySQL program kjører 13.5 ganger raskere på en UltraSPARC T1 enn på en AMD Opteron tjener.

En annen svakhet med UltraSPARC T1 er at den mangler støtte for symmetrisk multiprosessering, og bare er tilgjengelig i uniprosessor-systemer. Denne svakheten finnes ikke i etterfølgeren UltraSPARC T2.

Referanser
----------

1. ↑  (en) «FreeBSD/sun4v Project». Besøkt 29. desember 2009.
2. ↑  Harlan McGhan: *Niagara 2 Opens the Floodgates*, Microprocessor Report, 6. november 2006.
3. ↑  Sun Microsystems: cooltst: Cool Threads Selection Tool Arkivert 9. desember 2008 hos Wayback Machine. Workload Characterization blog, 6. april 2006, besøkt 29. desember 2009
4. ↑  (en) Thomas Rampelberg og Jason J. W. Williams (9. mai 2006). «Cruisin' with a T2k, side 6» (PDF). DigiTar. Arkivert fra originalen (PDF) 12. august 2011. Besøkt 29. desember 2009.

| * v
* d
* r
SPARC mikroprosessorer |
| --- |
| SPARC versjon 732-bit | SPARC |
| SPARC versjon 832-bit | SPARCLite **·** microSPARC **·** microSPARC II **·** SuperSPARC **·** SuperSPARC II **·** hyperSPARC **·** TurboSPARC **·** LEON |
| SPARC versjon 964-bit | UltraSPARC **·** UltraSPARC II **·** UltraSPARC IIe  **·** UltraSPARC IIi  **·** UltraSPARC IIe+ **·** UltraSPARC III **·** UltraSPARC III Cu  **·** UltraSPARC IIIi  **·** UltraSPARC IV **·** UltraSPARC T1 **·** UltraSPARC T2 **·** SPARC T3 **·** SPARC T4 **·** SPARC T5 **·** SPARC T6 **·** SPARC T7 **·** SPARC T8 **·** SPARC M5 **·** SPARC M6 **·** SPARC M7 **·** SPARC M8 **·** SPARC64 **·** SPARC64 II **·** SPARC64 III **·** SPARC64 IV **·** SPARC64 V **·** SPARC64 VI **·** SPARC64 VII **·** SPARC64 VIIIfx **·** SPARC64 IXfx **·** SPARC64 X |
| – |