Innen elektronikk og databehandling er SPARC ( Scalable Processor ARChitecture ) en stor RISC - mikroprosessorarkitektur . Arkitekturen, opprinnelig designet i 1985 av Sun Microsystems , har også blitt et registrert varemerke for SPARC International, Inc., en organisasjon grunnlagt i 1989 for å promotere SPARC og for å utstede sertifikater og samsvarstester for prosessorer som ønsker å skryte av den tittelen.
SPARC International ønsket at SPARC skulle være en "åpen" arkitektur for å skape et flott økosystem for design, den har blitt lisensiert til forskjellige produsenter, inkludert Texas Instruments , Cypress Semiconductor og Fujitsu. Det viste seg at SPARC for tiden er en åpen, ikke-proprietær arkitektur: det er også en full åpen kildekode -implementering kalt LEON , skrevet i VHDL , og kildekoden er tilgjengelig under LGPL. LEONs ASIC , utviklet av Gaisler Research, er 32-bit og støtter instruksjonssettet som finnes i SparcV8- arkitekturen .
CPUer med SPARC- arkitekturimplementeringer ble opprinnelig designet og brukt for områder som arbeidsstasjoner og senere også i SMP- servere produsert av Sun Microsystems og Fujitsu . SPARC-maskiner er synonyme med Solaris , Suns operativsystem designet for SPARC, selv om porter til forskjellige operativsystemer er tilgjengelige for denne arkitekturen, inkludert OPENSTEP , Linux , FreeBSD , OpenBSD og NetBSD . Gjennom årene har ulike versjoner av SPARC-arkitekturen blitt utviklet for å garantere maksimal kompatibilitet mellom eldre og nye prosessorer for å lette eventuelle oppgraderinger (et eksempel er UltraSPARC III- og UltraSPARC VI/VI+-prosessorene som kan monteres i samme system uten problemer ); den siste arkitekturen som fortsatt er i bruk er den niende (V9).
SPARC-arkitekturen var sterkt påvirket av den tidligere RISC I og II-designen utviklet innen California University Berkeley . Denne RISC -arkitekturen var veldig minimalistisk: prosessoren inkluderte få operasjoner i den interne koden, for å sikre at hver operasjon ble utført i bare én klokkesyklus, og den var også veldig lik MIPS-arkitekturen , og sørget ikke for noen divisjon eller multiplikasjon operasjoner som snarere ble etterlignet gjennom serier av summer. Et interessant trekk ved de RISC-påvirkede SPARC-ene var den svært avanserte grenprediksjonsenheten : takket være disse funksjonene hadde denne arkitekturen en utmerket IPC ( instruksjoner per syklus - instruksjoner per klokkesyklus ) som garanterte utmerket ytelse selv ved lave frekvenser. En uønsket funksjon avledet fra den tidlige RISC-designen er grenforsinkelsessporet .
En SPARC-prosessor inneholder normalt minst 128 generelle registre ; av disse er kun 32 registre tilgjengelige direkte til programvaren, 8 er globale ( g0 er reservert og kan derfor ikke brukes, så kun 7 kan brukes) og de andre 24 brukes som en stack. De 24 registrene fungerer som registervinduer og når funksjoner kaller eller returnerer variabler lagrer disse registrene dataene, beveger seg opp eller ned langs stabelen . Hvert vindu har 8 lokale registre og 8 registre som deles med de andre vinduene. Delte registre brukes til å sende parametere og returnere variabler for en funksjon.
SPARC er en veldig skalerbar prosessor, som kan brukes både som prosessor for innebygde applikasjoner og for å gi datakraft i forretningsservere ved å bruke det samme settet med instruksjoner. En av de arkitektoniske funksjonene som tillater denne prosessorens skalerbarhet er antallet registerbaserte vinduer som kan implementeres; spesifikasjonene lar disse variere fra minimum 3 til maksimalt 32. Et stort antall øker hastigheten på koden med mange dataenheter, mens et lite antall øker hastigheten på kontekstbytte. Andre arkitekturer inkluderer vinduer med registre som Intel i960 , IA-64 til Itanium-prosessorer eller AMD 29000 .
I SPARC versjon 8 ( 1987 ) har flyttallenheten 16 flyttallregister. Hvert av disse registrene kan brukes som 2 enkeltpresisjonsregistre som gir totalt 32 enkeltpresisjonsregistre. Registrene kan kobles for å oppnå 8 firedoble presisjonsregistre. SPARC versjon 9 la til ytterligere 16 dobbelpresisjonsregistre (som kan bli 8 firedobbelpresisjonsregistre ), men som ikke er brukbare som enkeltpresisjonsregistre.
I løpet av årene har arkitekturen gjennomgått flere revisjoner, for eksempel versjon 8 introduserte multiplikasjon og divisjoner via maskinvare selv om den store endringen skjedde med versjon 9 som introduserte 64-bits databehandling i prosessoren. .
Sun UltraSPARC Architecture 2005 (UA 2005)-spesifikasjonen la til ytterligere instruksjoner, tilleggsregistre og en funksjon kalt hyperprivilegert modus . Disse nye tilleggene vil bli standard fra og med den nye UltraSPARC T1 8-kjerneprosessoren . UltraSPARC arkitektur 2005 inkluderer fortsatt standard Sun-utvidelser og forblir kompatibel med SPARC V9 nivå 1-spesifikasjoner; i tillegg til dette gir den nye arkitekturen full kompatibilitet med applikasjoner skrevet for SPARC V7-spesifikasjonen implementert for første gang i 1987.
I historien til denne arkitekturen ble forskjellige Sun SPARC-prosessorer inkludert SuperSPARC og UltraSPARC-I så vanlige at de ble brukt som en benchmark av SPEC for CPU95 og CPU2000 benchmarks .
Navn (kodenavn) | Mal | Frekvens (MHz) | Arkitektur versjon | År | Trådnummer [1] | Prosess (µm) | Transistorer (millioner) | Dyseareal (mm²) | IO Pin | Forbruk (W) | Spenning (V) | L1 Dcache (k) | L1 Icache (k) | L2 Cache (k) | L3-buffer (k) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC | (flere), inkludert MB86900 [2] | 14.28–40 | V7 | 1987-1992 | 1 × 1 = 1 | 0,8-1,3 | ~ 0,1–1,8 | - | 160-256 | - | - | 0–128 (samlet) | - | - | |
microSPARC I (Tsunami) | TI TMS390S10 | 40-50 | V8 | 1992 | 1 × 1 = 1 | 0,8 | 0,8 | 225? | 288 | 2.5 | 5 | 2 | 4 | - | - |
SuperSPARC I (Viking) | TI TMX390Z50 / Sun STP1020 | 33-60 | V8 | 1992 | 1 × 1 = 1 | 0,8 | 3.1 | - | 293 | 14.3 | 5 | 16 | 20 | 0-2048 | - |
SPARClite | Fujitsu MB8683x | 66-108 | V8E | 1992 | 1 × 1 = 1 | - | - | - | 144–176 | - | 2,5 / 3,3V | 1–16 | 1–16 | - | - |
hyperSPARC (Colorado 1) | Ross RT620A | 40–90 | V8 | 1993 | 1 × 1 = 1 | 0,5 | 1.5 | - | - | - | 5? | 0 | 8 | 128-256 | - |
microSPARC II (Swift) | Fujitsu MB86904 / Sun STP1012 | 60–125 | V8 | 1994 | 1 × 1 = 1 | 0,5 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 | - | - |
hyperSPARC (Colorado 2) | Ross RT620B | 90–125 | V8 | 1994 | 1 × 1 = 1 | 0,4 | 1.5 | - | - | - | 3.3 | 0 | 8 | 128-256 | - |
SuperSPARC II (Voyager) | Søn STP1021 | 75–90 | V8 | 1994 | 1 × 1 = 1 | 0,8 | 3.1 | 299 | - | 16 | - | 16 | 20 | 1024-2048 | - |
hyperSPARC (Colorado 3) | Ross RT620C | 125–166 | V8 | 1995 | 1 × 1 = 1 | 0,35 | 1.5 | - | - | - | 3.3 | 0 | 8 | 512-1024 | - |
TurboSPARC | Fujitsu MB86907 | 160-180 | V8 | 1996 | 1 × 1 = 1 | 0,35 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | - |
UltraSPARC (Spitfire) | Søn STP1030 | 143–167 | V9 | 1995 | 1 × 1 = 1 | 0,47 | 5.2 | 315 | 521 | 30 [3] | 3.3 | 16 | 16 | 512-1024 | - |
UltraSPARC (hornet) | Søn STP1030 | 200 | V9 | 1998 | 1 × 1 = 1 | 0,42 | 5.2 | 265 | 521 | - | 3.3 | 16 | 16 | 512-1024 | - |
hyperSPARC (Colorado 4) | Ross RT620D | 180–200 | V8 | 1996 | 1 × 1 = 1 | 0,35 | 1.7 | - | - | - | 3.3 | 16 | 16 | 512 | - |
SPARC64 | Fujitsu (HAL) | 101–118 | V9 | 1995 | 1 × 1 = 1 | 0,4 | - | Multichip | 286 | 50 | 3.8 | 128 | 128 | - | - |
SPARC64 II | Fujitsu (HAL) | 141–161 | V9 | 1996 | 1 × 1 = 1 | 0,35 | - | Multichip | 286 | 64 | 3.3 | 128 | 128 | - | - |
SPARC64 III | Fujitsu (HAL) MBCS70301 | 250-330 | V9 | 1998 | 1 × 1 = 1 | 0,24 | 17.6 | 240 | - | - | 2.5 | 64 | 64 | 8192 | - |
UltraSPARC IIs (Blackbird) | Søn STP1031 | 250-400 | V9 | 1997 | 1 × 1 = 1 | 0,35 | 5.4 | 149 | 521 | 25 [4] | 2.5 | 16 | 16 | 1024 eller 4096 | - |
UltraSPARC IIs (Sapphire-Black) | Søn STP1032 / STP1034 | 360–480 | V9 | 1999 | 1 × 1 = 1 | 0,25 | 5.4 | 126 | 521 | 21 [5] | 1.9 | 16 | 16 | 1024-8192 | - |
UltraSPARC IIi (sabel) | Søn SME1040 | 270-360 | V9 | 1997 | 1 × 1 = 1 | 0,35 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 | 256-2048 | - |
UltraSPARC IIi (safirrød) | Søn SME1430 | 333–480 | V9 | 1998 | 1 × 1 = 1 | 0,25 | 5.4 | - | 587 | 21 [6] | 1.9 | 16 | 16 | 2048 | - |
UltraSPARC IIe (Hummingbird) | Søn SME1701 | 400-500 | V9 | 1999 | 1 × 1 = 1 | 0,18 Al | - | - | 370 | 13 [7] | 1,5-1,7 | 16 | 16 | 256 | - |
UltraSPARC IIi (IIe +) (Phantom) | Søn SME1532 | 550-650 | V9 | 2000 | 1 × 1 = 1 | 0,18 Cu | - | - | 370 | 17.6 | 1.7 | 16 | 16 | 512 | - |
SPARC64 GP | Fujitsu SFCB81147 | 400-563 | V9 | 2000 | 1 × 1 = 1 | 0,18 | 30.2 | 217 | - | - | 1.8 | 128 | 128 | 8192 | - |
SPARC64 GP | - | 600-810 | V9 | - | 1 × 1 = 1 | 0,15 | 30.2 | - | - | - | 1.5 | 128 | 128 | 8192 | - |
SPARC64 IV | Fujitsu MBCS80523 | 450-810 | V9 | 2000 | 1 × 1 = 1 | 0,13 | - | - | - | - | - | 128 | 128 | 2048 | - |
UltraSPARC III (Gepard) | Søn SME1050 | 600 | V9 / JPS1 | 2001 | 1 × 1 = 1 | 0,18 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | - |
UltraSPARC III (Gepard) | Søn SME1052 | 750–900 | V9 / JPS1 | 2001 | 1 × 1 = 1 | 0,13 Al | 29 | - | 1368 | - | 1.6 | 64 | 32 | 8192 | - |
UltraSPARC III Cu (Gepard +) | Søn SME1056 | 1002-1200 | V9 / JPS1 | 2001 | 1 × 1 = 1 | 0,13 Cu | 29 | 232 | 1368 | 80 [8] | 1.6 | 64 | 32 | 8192 | - |
UltraSPARC IIIi (Jalapeño) | Søn SME1603 | 1064–1593 | V9 / JPS1 | 2003 | 1 × 1 = 1 | 0,13 | 87,5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | - |
SPARC64 V (Zeus) | Fujitsu | 1100–1350 | V9 / JPS1 | 2003 | 1 × 1 = 1 | 0,13 | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 | 2048 | - |
SPARC64 V + (Olympus-B) | Fujitsu | 1650–2160 | V9 / JPS1 | 2004 | 1 × 1 = 1 | 0,09 | 400 | 297 | 279 | 65 | 1 | 128 | 128 | 4096 | - |
UltraSPARC IV (Jaguar) | Søn SME1167 | 1050–1350 | V9 / JPS1 | 2004 | 1 × 2 = 2 | 0,13 | 66 | 356 | 1368 | 108 | 1,35 | 64 | 32 | 16384 | - |
UltraSPARC IV + (Panther) | Søn SME1167A | 1500–2100 | V9 / JPS1 | 2005 | 1 × 2 = 2 | 0,09 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 (Niagara) | Søn SME1905 | 1000–1400 | V9 / UA 2005 | 2005 | 4 × 8 = 32 | 0,09 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | - |
SPARC64 VI (Olympus-C) | Fujitsu | 2150–2400 | V9 / JPS1 | 2007 | 2 × 2 = 4 | 0,09 | 540 | 422 | - | 120 | - | 128 | 128 | 5120 | - |
UltraSPARC T2 (Niagara 2) | Søn SME1908A | 1000–1600 | V9 / UA 2007 | 2007 | 8 × 8 = 64 | 0,065 | 503 | 342 | 1831 | 95 | 1,1–1,5 | 8 | 16 | 4096 | - |
UltraSPARC T2 Plus (Victoria Falls) | Søn SME1910A | 1200–1600 | V9 / UA 2007 | 2008 | 8 × 8 = 64 | 0,065 | 503 | 342 | 1831 | - | - | 8 | 16 | 4096 | - |
SPARC64 VII (Jupiter) [9] | Fujitsu | 2400-2880 | V9 / JPS1 | 2008 | 2 × 4 = 8 | 0,065 | 600 | 445 | - | 135 | - | 64 | 64 | 6144 | - |
UltraSPARC "RK" ( Rock ) [10] | Søn SME1832 | 2300 | V9 / - | slettet [11] | 2 × 16 = 32 | 0,065 | ? | 396 | 2326 | ? | ? | 32 | 32 | 2048 | ? |
SPARC64 VIIIfx (Venus) [12] [13] | Fujitsu | 2000 | V9 / JPS1 | 2009 | 1x8 = 8 | 0,045 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
SPARC T3 (Rainbow Falls) | Oracle / Sun | 1650 | V9 / UA _? _ | 2010 | 16 × 8 = 128 | 0,040 [14] | ???? | 371 | ? | 139 | ? | 8 | 16 | 6144 | - |
Navn (kodenavn) | Mal | Frekvens (MHz) | Arkitektur versjon | År | Trådnummer [1] | Prosess (µm) | Transistorer (millioner) | Dyseareal (mm²) | IO Pin | Forbruk (W) | Spenning (V) | L1 Dcache (k) | L1 Icache (k) | L2 Cache (k) | L3-buffer (k) |
SPARC64 er en familie av prosessorer utviklet av Fujitsu og brukt i PRIMEPOWER - serverfamilien .