Sol SPARC

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.

Hovedtrekk

Instruksjonskategorier

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:

Loggvinduer

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).

Feller og unntak

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.

Minnebeskyttelse

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.

SPARC ifølge Sun Microsystems

Inntil nylig hadde RISC-arkitekturer dårlig ytelse med hensyn til flytepunktberegninger. For eksempel implementerte IBM 801 programvareflyttepunktoperasjoner. Berkeley-prosjektene, RISC I og RISC II, ga bedre resultater enn VAX 11/780 i heltallsberegninger, men IKKE i flytekomma-aritmetikk. Dette gjelder også for Stanford-prosessoren, MIPS. SPARC-systemer er på den annen side designet for optimal ytelse i flyttallsberegninger og støtter enkel, dobbel og utvidet presisjon på operander og operasjoner som spesifisert i ANSI/IEEE 754 flyttallstandarden.

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 ]

Implementeringer

SPARC

SUPER SPARC

ULTRA SPARC II

Advanced Product Line (APL)

Brukt av Sun Microsystems , Cray Research , Fujitsu / ICL og andre.

SPARC mikroprosessor spesifikasjoner

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 :

  1. a b tråder per kjerne × antall kjerner
  2. ^ Ulike implementeringer av SPARC V7 ble produsert av Fujitsu, LSI Logic , Weitek, Texas Instruments og Cypress. En SPARC V7-prosessor består vanligvis av flere diskrete IC -er, vanligvis bestående av en heltallsenhet (IU), en flytepunktsenhet (FPU), en minnestyringsenhet (MMU) og cachen .
  3. ved 167MHz
  4. ved 250MHz
  5. ved 400MHz
  6. ved 440MHz
  7. maksimalt ved 500 MHz
  8. ved 900MHz

Eksterne lenker

  1. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertfujitsu-fx1-promo
  2. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertsun-rock-whitepaper
  3. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertnytimes-rock-canceled
  4. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertheise-fujitsu-s64vii
  5. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertinquirer-fujitsu-fastest
  6. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertoracle-t3-whitepaper
  7. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertregister-t4-next-year
  8. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertfujitsu-m-whitepaper
  9. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertregister-oracle-t4
  10. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertfujitsu-s64ixfx
  11. Siter feil: Ugyldig tag <ref>; innholdet i de kalte referansene er ikke definertfujitsu-fx10-launch