SPARC | ||
---|---|---|
Informasjon | ||
Fyr | ||
utvikler | ||
Maker |
| |
Utgivelsesdato | 1987 | |
Standardisering | ||
Bruk | Desktop, servere | |
SPARC ( Scalable P rocessor ARC hitecture ) er en storstilt RISC - arkitektur . Det vil si en arkitektur med redusert instruksjonssett .
Opprinnelig designet av Sun Microsystems i 1985 , er den basert på RISC I og II-designene fra University of California i Berkeley som ble definert mellom 1980 og 1982.
Sun Microsystems-selskapet designet denne arkitekturen og lisensierte den til andre produsenter som Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logic, blant andre.
SPARC er den første åpne RISC-arkitekturen og som sådan publiseres designspesifikasjonene slik at andre mikroprosessorprodusenter kan utvikle sitt eget design.
En av de innovative ideene til denne arkitekturen er registervinduet som muliggjør enkle kompilatorer med høy ytelse og betydelig minnereduksjon i laste-/lagreinstruksjoner i forhold til andre RISC-arkitekturer. Fordelene er spesielt verdsatt i store programmer.
SPARC CPU er sammensatt av en heltallsenhet (IU), som behandler grunnleggende utførelse, og en flytepunktsenhet (FPU), som utfører operasjoner og beregninger av reelle tall. Brukergrensesnittet og FPU kan være integrert på samme brikke.
Selv om det ikke er en formell del av arkitekturen, har Sun Microsystems SPARC-systembaserte datamaskiner en minneadministrasjonsenhet ( MMU ) og en stor virtuell adressebuffer (for instruksjoner og data) som er perifert arrangert på en minnebuss. 32-bits data og adresser.
SPARC-arkitekturen har omtrent 50 heltallsinstruksjoner, noen få flere enn den forrige RISC-designen, men mindre enn halvparten av antallet heltallsinstruksjoner i Motorola 6800.
SPARC-instruksjoner kan klassifiseres i fem kategorier:
En unik egenskap ved SPARC-designet er det overlappende registervinduet. Prosessoren har mye mer enn 32 heltallsregistre, men den viser 32 om gangen. En analogi kan lages ved å sammenligne registervinduet med et roterende hjul. En del av hjulet er alltid i kontakt med bakken; Når vi dreier det, tar vi derfor forskjellige deler av hjulet (effekten er lik for overlappingen av registervinduet). Resultatet av et register endres til operanden for neste operasjon, noe som eliminerer behovet for en ekstra Load and Store-setning.
Det ble avtalt at arkitekturspesifikasjonen skulle kunne ha 32 "synlige" registre fordelt på grupper på 8.
Globale registre "ses" av alle vinduer, lokale registre er kun tilgjengelige for gjeldende vindu, og utgangsregistre overlapper med inngangsregistrene til neste vindu (utgangsregistre for et vindu bør settes som utgangsregistre). en, og de må være i samme post).
Vinduspekeren holder styr på hvilket vindu som er aktivt for øyeblikket. Det er instruksjoner for å "åpne" og "lukke" vinduer, for eksempel for en "ringe"-instruksjon roterer registervinduet mot klokken; for retur fra en "ringe"-instruksjon, roterer den med klokken.
Et avbrudd bruker et nytt vindu, det vil si at det åpner et nytt vindu. Antall vinduer er en implementeringsparameter, vanligvis 7 eller 8.
Det mer forseggjorte alternativet til å sakte sirkle loggvinduet er å slippe loggene ved kompilering. For språk som C, Pascal, etc., er denne strategien vanskelig og tidkrevende. Derfor er kompilatoren avgjørende for å forbedre produktiviteten til programmet.
"Ny forskning tyder på at vindusregistre, funnet på SPARC-systemer, men ikke på andre kommersielle RISC-maskiner, er i stand til å gi utmerket ytelse for utviklingsspråk som Lisp og Smalltalk ." (R. Blau, P. Foley, etc. 1984).
SPARC-designet støtter et komplett sett med feller eller avbrudd. De håndteres av en tabell som støtter 128 maskinvareavbrudd og 128 programvarefeller. Selv om flyttallsinstruksjoner kan utføres samtidig med heltallsinstruksjoner, må flyttallfeller være nøyaktige fordi FPU gir (fra tabellen) adressene til instruksjonene som mislykkes.
Noen SPARC-instruksjoner er privilegerte og kan bare utføres mens prosessoren er i supervisor-modus . Disse instruksjonene utført i beskyttet modus sikrer at brukerprogrammer ikke ved et uhell endres av maskinens tilstand med hensyn til dens periferiutstyr og omvendt. SPARC-designet gir også minnebeskyttelse, noe som er avgjørende for multitasking.
SPARC har mange likheter med Berkeleys design, RISC II. I likhet med RISC II, bruker den et registervindu for å redusere antall Load and Store-instruksjoner.
Høy ytelse i flytepunktberegninger er resultatet av samtidighet mellom brukergrensesnittet og FPU. Brukergrensesnittet (heltallsenhet) gjør "last" og "lagrer" mens FPU (flytepunktsenhet) utfører operasjonene og beregningene.
SPARC-systemer oppnår høye hastigheter som et resultat av forbedringer i brikkefremstillingsteknikker.
SPARC-systemet leverer svært høye ytelsesnivåer. Fleksibiliteten til arkitekturen gjør fremtidige systemer i stand til mye bedre tider enn den første implementeringen. Videre gjør åpen arkitektur dette mulig ved å absorbere teknologiske fremskritt nesten så snart de inntreffer. [ referanse nødvendig ]Brukt av Sun Microsystems , Cray Research , Fujitsu / ICL og andre.
Denne tabellen inneholder spesifikasjonene til visse SPARC-prosessorer: frekvens ( megahertz ), arkitekturversjon, utgivelsesår, antall tråder (tråder per kjerne multiplisert med antall kjerner), produksjonsprosess ( nanometer ), antall transistorer ( millioner), dysestørrelse (mm²), antall inngangs-/utgangspinner , tapt effekt (watt), spenning og datastørrelser, instruksjoner, L2- og L3- cacher (kibibyte).
Navn | Modell | Frekvens (MHz) | Arch-versjon. | År | Totalt antall tråder [ note 1 ] | Prosess (nm) | Transistorer (millioner) | Matrisestørrelse (mm²) | ES pinner | Forbruk (W) | Spenning (V) | Buffer D L1 (KiB) | cache I L1 (KiB) | L2 cache (KiB) | L3-buffer (KiB) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC | (ulike), inkludert MB86900 [ note 2 ] | 14.28–40 | V7 | 1987–1992 | 1×1=1 | 800–1300 | ~0,1–1,8 | -- | 160–256 | -- | -- | 0–128 (samlet) | P/N | P/N | |
microSPARC I (Tsunami) | IT TMS390S10 | 40–50 | V8 | 1992 | 1×1=1 | 800 | 0,8 | 225? | 288 | 2.5 | 5 | to | 4 | P/N | P/N |
SuperSPARC I (Viking) | TI TMX390Z50 / Sun STP1020 | 33–60 | V8 | 1992 | 1×1=1 | 800 | 3.1 | -- | 293 | 14.3 | 5 | 16 | tjue | 0-2048 | P/N |
SPARClite | Fujitsu MB8683x | 66–108 | V8E | 1992 | 1×1=1 | -- | -- | -- | 144, 176 | -- | 2,5/3,3V-5,0V, 2,5V-3,3V | 1, 2, 8, 16 | 1, 2, 8, 16 | P/N | P/N |
hyperSPARC (Colorado 1) | Ross RT620A | 40–90 | V8 | 1993 | 1×1=1 | 500 | 1.5 | -- | -- | -- | 5? | 0 | 8 | 128-256 | P/N |
microSPARC II (Swift) | Fujitsu MB86904 / Sun STP1012 | 60–125 | V8 | 1994 | 1×1=1 | 500 | 23 | 233 | 321 | 5 | 3.3 | 8 | 16 | P/N | P/N |
hyperSPARC (Colorado 2) | Ross RT620B | 90–125 | V8 | 1994 | 1×1=1 | 400 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 128-256 | P/N |
SuperSPARC II (Voyager) | Søn STP1021 | 75–90 | V8 | 1994 | 1×1=1 | 800 | 3.1 | 299 | -- | 16 | -- | 16 | tjue | 1024-2048 | P/N |
hyperSPARC (Colorado 3) | Ross RT620C | 125–166 | V8 | nitten nitti fem | 1×1=1 | 350 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 512-1024 | P/N |
TurboSPARC | Fujitsu MB86907 | 160–180 | V8 | nitten nittiseks | 1×1=1 | 350 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | P/N |
UltraSPARC (Spitfire) | Søn STP1030 | 143–167 | V9 | nitten nitti fem | 1×1=1 | 470 | 3.8 | 315 | 521 | 30 [ note 3 ] | 3.3 | 16 | 16 | 512-1024 | P/N |
UltraSPARC (hornet) | Søn STP1030 | 200 | V9 | 1998 | 1×1=1 | 420 | 5.2 | 265 | 521 | -- | 3.3 | 16 | 16 | 512-1024 | P/N |
hyperSPARC (Colorado 4) | Ross RT620D | 180–200 | V8 | nitten nittiseks | 1×1=1 | 350 | 1.7 | -- | -- | -- | 3.3 | 16 | 16 | 512 | P/N |
SPARC64 | Fujitsu (HAL) | 101–118 | V9 | nitten nitti fem | 1×1=1 | 400 | -- | multi-brikke | 286 | femti | 3.8 | 128 | 128 | -- | -- |
SPARC64II | Fujitsu (HAL) | 141–161 | V9 | nitten nittiseks | 1×1=1 | 350 | -- | multi-brikke | 286 | 64 | 3.3 | 128 | 128 | -- | -- |
SPARC64 III | Fujitsu (HAL) MBCS70301 | 250–330 | V9 | 1998 | 1×1=1 | 240 | 17.6 | 240 | -- | -- | 2.5 | 64 | 64 | 8192 | -- |
UltraSPARC IIs (Blackbird) | Søn STP1031 | 250–400 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 149 | 521 | 25 [ note 4 ] | 2.5 | 16 | 16 | 1024 eller 4096 | ingen |
UltraSPARC IIs (Sapphire-Black) | Søn STP1032 / STP1034 | 360–480 | V9 | 1999 | 1×1=1 | 250 | 5.4 | 126 | 521 | 21 [ note 5 ] | 1.9 | 16 | 16 | 1024–8192 | P/N |
UltraSPARC IIi (sabel) | SunSME1040 | 270–360 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 156 | 587 | tjueen | 1.9 | 16 | 16 | 256–2048 | P/N |
UltraSPARC IIi (safirrød) | SunSME1430 | 333–480 | V9 | 1998 | 1×1=1 | 250 | 5.4 | -- | 587 | 21 [ note 6 ] | 1.9 | 16 | 16 | 2048 | P/N |
UltraSPARC IIe (Hummingbird) | SunSME1701 | 400–500 | V9 | 1999 | 1×1=1 | 180 Al | -- | -- | 370 | 13 [ note 7 ] | 1,5-1,7 | 16 | 16 | 256 | P/N |
UltraSPARC IIi (IIe+) (Phantom) | SunSME1532 | 550–650 | V9 | 2000 | 1×1=1 | 180 Cu | -- | -- | 370 | 17.6 | 1.7 | 16 | 16 | 512 | P/N |
SPARC64GP | Fujitsu SFCB81147 | 400–563 | V9 | 2000 | 1×1=1 | 180 | 30.2 | 217 | -- | -- | 1.8 | 128 | 128 | 8192 | -- |
SPARC64GP | -- | 600–810 | V9 | -- | 1×1=1 | 150 | 30.2 | -- | -- | -- | 1.5 | 128 | 128 | 8192 | -- |
SPARC64 IV | Fujitsu MBCS80523 | 450–810 | V9 | 2000 | 1×1=1 | 130 | -- | -- | -- | -- | -- | 128 | 128 | 2048 | -- |
UltraSPARC III (Gepard) | SunSME1050 | 600 | V9 / JPS1 | 2001 | 1×1=1 | 180 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | P/N |
UltraSPARC III (Gepard) | SunSME1052 | 750–900 | V9 / JPS1 | 2001 | 1×1=1 | 130 Al | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | P/N |
UltraSPARC III Cu (Gepard+) | SunSME1056 | 1002–1200 | V9 / JPS1 | 2001 | 1×1=1 | 130 Cu | 29 | 232 | 1368 | 80 [ note 8 ] | 1.6 | 64 | 32 | 8192 | ingen |
UltraSPARC IIIi (Jalapeno) | SunSME1603 | 1064–1593 | V9 / JPS1 | 2003 | 1×1=1 | 130 | 87,5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | P/N |
SPARC64V (Zeus) | fujitsu | 1100–1350 | V9 / JPS1 | 2003 | 1×1=1 | 130 | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 | 2048 | -- |
SPARC64 V+ (Olympus-B) | fujitsu | 1650–2160 | V9 / JPS1 | 2004 | 1×1=1 | 90 | 400 | 297 | 279 | 65 | 1 | 128 | 128 | 4096 | -- |
UltraSPARC IV (Jaguar) | Søn SME1167 | 1050–1350 | V9 / JPS1 | 2004 | 1×2=2 | 130 | 66 | 356 | 1368 | 108 | 1,35 | 64 | 32 | 16384 | P/N |
UltraSPARC IV+ (Panther) | Søn SME1167A | 1500–2100 | V9 / JPS1 | 2005 | 1×2=2 | 90 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 (Niagara) | Søn SME1905 | 1000–1400 | V9 / AU 2005 | 2005 | 4×8=32 | 90 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | P/N |
SPARC64 VI (Olympus-C) | fujitsu | 2150–2400 | V9 / JPS1 | 2007 | 2×2=4 | 90 | 540 | 422 | -- | 120 | -- | 128x2 | 128x2 | 6144 | P/N |
UltraSPARC T2 (Niagara 2) | Søn SME1908A | 1000–1600 | V9 / AU 2007 | 2007 | 8×8=64 | 65 | 503 | 342 | 1831 | 95 | 1,1–1,5 | 8 | 16 | 4096 | P/N |
UltraSPARC T2 Plus (Victoria Falls) | Søn SME1910A | 1200–1600 | V9 / AU 2007 | 2008 | 8×8=64 | 65 | 503 | 342 | 1831 | - | - | 8 | 16 | 4096 | P/N |
SPARC64 VII (Jupiter) [ 1 ] | fujitsu | 2400–2880 | V9 / JPS1 | 2008 | 2×4=8 | 65 | 600 | 445 | -- | 150 | -- | 64x4 | 64x4 | 6144 | P/N |
UltraSPARC "RK" ( Rock ) [ 2 ] | Søn SME1832 | 2300 | V9 / -- | kansellert [ 3 ] | 2×16=32 | 65 | ? | 396 | 2326 | ? | ? | 32 | 32 | 2048 | ? |
SPARC64 VIIIfx (Venus) [ 4 ] [ 5 ] | fujitsu | 2000 | V9 / JPS1 | 2009 | 1x8=8 | Fire fem | 760 | 513 | 1271 | 58 | ? | 32x8 | 32x8 | 6144 | P/N |
SPARC T3 (Rainbow Falls) | Oracle/Sol | 1650 | V9/AU _?_ | 2010 | 8×16=128 | 40 [ 6 ] | ???? | 371 | ? | 139 | ? | 8 | 16 | 6144 | ingen |
SPARC64 VII+ (Jupiter-E eller M3) [ 7 ] [ 8 ] | fujitsu | 2667-3000 | V9 / JPS1 | 2010 | 2x4=8 | 65 | - | - | - | 160 | - | 64x4 | 64x4 | 12288 | P/N |
MCST-4R | MCST (Russland) | 750-1000 | V9 | 2010 | 1x4=4 | 90 | 150 | 115 | - | femten | 1 | 32 | 16 | 2048 | P/N |
SPARC T4 (Yosemite Falls) [ 9 ] | Oracle | 2850-3000 | V9/OSA2011? | 2011 | 8×8=64 | 40 | 855 | 403 | ? | 240 | ? | 16x8 | 16x8 | 128 x 8 | 4096 |
SPARC64 IXfx [ 10 ] [ 11 ] | fujitsu | 1850 | V9 / JPS1? | 2012 | 1x16=16 | 40 | 1870 | 484 | 1442 | 110 | ? | 32x16 | 32x16 | 12288 | P/N |
SPARC64 X | fujitsu | ????-3000 | V9 / JPS | 2012 | 2x16=32 | 28 | 2950 | 587,5 | 1500 | ? | ? | 64 x 16 | 64 x 16 | 24576 | P/N |
SPARC T5 | Oracle | 3600 | V9/OSA2011? | 2013 | 8×16=128 | 28 | ? | ? | ? | ? | ? | 16x8 | 16x8 | 128 x 16 | 8192 |
SPARC M5 | Oracle | 3600 | V9/OSA2011? | 2013 | 8×6=48 | 28 | ? | ? | ? | ? | ? | 16x6 | 16x6 | 128 x 6 | 49152 |
SPARC M6 | Oracle | 3600 | V9/OSA2011? | 2013 | 8×12=96 | 28 | ? | ? | ? | ? | ? | 16x12 | 16x12 | 128 x 12 | 49152 |
Navn (kodenavn) | Modell | Frekvens (MHz) | Arch-versjon. | År | Totalt antall tråder [ note 1 ] | Prosess (nm) | Transistorer (millioner) | Matrisestørrelse (mm²) | ES pinner | Forbruk (W) | Spenning (V) | Buffer D L1 (KiB) | cache I L1 (KiB) | L2 cache (KiB) | L3-buffer (KiB) |
Merknader :