SPARC
A Wikipédiából, a szabad enciklopédiából.
A SPARC (Scalable Processor ARChitecture) egy, eredetileg a SUN Microsystems által kifejlesztett RISC architektúra és utasításkészlet család.
A SPARC architektúra jogait a SPARC International Inc. birtokolja, amely egy nyílt konzorciumot vezet mindazon gyártókból, akik SPARC processzorokat készítenek.
Nevét annak köszönheti, hogy a processzorban használt általános regiszterek száma skálázható.
SPARC International Inc., amit 1989-ben alapítottak, hogy támogassa a SPARC architektúrát, és beszerezze a megfelelő teszteket. Nyílt forrásúvá akarták tenni a SPARC architektúrát, hogy többen részt tudjanak venni a fejlesztésben, és több jelentős céggel szerződést is kötöttek például Texas Instruments, Cypress Semiconductor, és Fujitsu. A SPARC architektúra teljesen nyílt és nem szabadalmaztatott.
A SPARC architektúrát kezdetben a Sun Sun-4 munkaállomás és szerver rendszerek használták, felváltva a korábbi Sun-3 rendszert ami a Motorola 68000 család család processzorjain alapult. Később, SPARC processzort használtak az SMP szerverek, amiket a Sun Microsystems, Solbourne és a Fujitsu készített.
Tartalomjegyzék |
[szerkesztés] Jellemzők
A SPARC architektúrára nagy hatással volt a korai RISC I & II a University of California, Berkeley és IBM 801-ből. Ezek a RISC utasítások egyszerűek voltak, beleértve a kevés beállítási lehetőség, és azt célozta meg, hogy egy óra jel alatt egy utasítást hajtson végre. Ehhez hasonló a MIPS architektúra , beleértve az utasítások hiányát például szorzás, osztás.
A SPARC processzorok tartalmaznak 128 általános célú regisztert.
Ezek közül a szoftverek csak 32 láthatnak alapból - 8 globális regiszter (az egyik közülük a, g0, fizikailag nulla, tehát csak 7 használható regiszterként) és a többi 24 az verem regiszter. Ezt a 24 regisztert hívják regiszterablaknak, ezeket használják rutin híváskor és visszatéréskor, ez az ablak motog fel és le a veremben. Minden ablak rendelkezik 8 lokális regiszterrel és megoszt még nyolcat a szomszédos ablakkal. A megosztott regisztereket függvény paraméter átadásra vagy érték visszaadásra használják, a lokális regisztereket a helyi értékek visszatartására, vagy függvényhívásra valók.
Ez az architektúra átment, pár átalakításon. A nyolcas verzióban van hardveres osztás, szorzás. A legtöbb lényeges változás a kilencedik verzióban történt, az lett a 64-bit verzió.
A nyolcas SPARC, lebegőpontos állományának van 16 dupla pontosságú regisztere.
Használhatjuk őket két szimpla pontosságú ként is egyszeres pontosság.
Egy páros-páratlan számpár a dupla pontosságú regiszterekből alkothat egy négyszeres pontosságú regisztert, így tehát lesz nyolc darab négyszeres pontosságú regiszterünk.
A kilences verzióhoz hozzáadtak még 16 dupla pontosságú regiszter(amelyekből lehet még 8 négyszeres pontosságúak), habár ezeket a regisztereket nem tudjuk használni szimpla pontosságúként.
Az előjeles összeadás és kivonás utasítás, egyszerűen növeli vagy csökkenti az értéket, feltéve ha az alsó két bit nem vesz részt a kiszámításban. Ez hasznos lehet a futás közbeni végrehajtásban ML, Lisp, és hasonló nyelvek, amelyek előjeles integer típust használnak.
A 32 bites SPARC V8 tisztán big-endian architektúra. A 64 bites SPARC V9 architektúra tudja használni a big-endian utasításokat, de értelmezni tudja a big-endian vagy little-endian bájtsorokat is, ezt az alkalmazás utasítás választja ki (load/store) vagy a memory-page (MMU beállítással). Az utóbbit gyakran használják a little-endian eszközöknél, például PCI sín.
[szerkesztés] Történet
Három nagy jelentős változáson ment keresztül ez az architektúra.
Az első nyilvános változás a 32 bites SPARC V7 volt 1986-ban.
A V8-at 1990-ben adták ki, ez egy megerősített SPARC V7 volt.
SPARC V8-at szabványosították az IEEE 1754-1994 alapján 32 bites mikroprocesszornak.
A SPARC V9 a 64 bites SPARC architektúra, amit 1993-ban adott ki a SPARC International Inc.
2006 elején a SPARC kiadott egy bővített architektúrát az UltraSPARC 2005-öt. Ez nem csak a privilegizált és nem privilegizált részeket tartalmazta a V9-ből, hanem még minden kibővítést (pl.: CMT, hyperprivileged, VIS 1, VIS 2).
Az első UltraSPARC a T1 nevet kapta.
Az UltraSPARC tartalmazza a Sun szabványos kiterjesztéseit.
Ezek az architektúrák mind kompatibilisek egymással, visszamenőleg a V7-es kiadásig.
2005 decemberében a Sun bejelentette, hogy az UltraSPARC T1-et nyílt forrásúvá teszi, és 2006 márciusában az egész forrás elérhetővé vált az OpenSPARC projekt alatt.
Több különböző megvalósítása a SPARC-nak (pl.: Sun SuperSPARC, UltraSPARC-I) nagyon népszerűek voltak és referenciaként használták a SPEC CPU95 és CPU2000.
[szerkesztés] SPARC64
1995 óta a Fujitsu (kezdetben a leányvállalatával a HAL) processzorokat tervezett, SPARC V9-es processzorokat, SPARC64 néven. Az utolsó ilyen processzor a SPARC64 V, amit a Fujitsu PRIMEPOWER szervercsalád használ; és a SPARC64 VI, amit a Sun Microsystems és Fujitsu a SPARC Enterprise M-osztályú szerverei használnak.
[szerkesztés] SPARC mikroprocesszor leírások
Név (Kódnév) |
Model | Frekvencia [MHz] |
Architektúra Verzió |
Kiadás Éve | Folyamat Per mag × magok = Összes folyamat |
Processzus [µm] |
Tranzisztorok [millió] |
Die size [mm2] |
I/O tűk | Energia [W] |
Feszültség [V] |
L1 Dcache [k] |
L1 Icache [k] |
L2 Cache [k] |
L3 Cache [k] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC | (változó)[1] | 14.28–40 | V7 | 1987-1992 | 1×1=1 | 0.8–1.3 | ~0.1–1.8 | -- | 160–256 | -- | -- | 0–128 (ismeretlen) | semennyi | semennyi | |
microSPARC I (Tsunami) | TI TMS390S10 | 40–50 | V8 | 1992 | 1×1=1 | 0.8 | 0.8 | 225? | 288 | 2.5 | 5 | 2 | 4 | semennyi | semennyi |
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 | semennyi |
SPARClite | Fujitsu MB8683x | 66–108 | V8E | 1992 | 1×1=1 | -- | -- | -- | 144–176 | -- | 2.5/3.3V | 1–16 | 1–16 | semennyi | semennyi |
hyperSPARC (Colorado 1) | Ross RT620A | 40–90 | V8 | 1993 | 1×1=1 | 0.5 | 1.5 | -- | -- | -- | 5? | 0 | 8 | 128-256 | semennyi |
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 | semennyi | semennyi |
hyperSPARC (Colorado 2) | Ross RT620B | 90–125 | V8 | 1994 | 1×1=1 | 0.4 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 128-256 | semennyi |
SuperSPARC II (Voyager) | Sun STP1021 | 75–90 | V8 | 1994 | 1×1=1 | 0.8 | 3.1 | 299 | -- | 16 | -- | 16 | 20 | 1024-2048 | semennyi |
hyperSPARC (Colorado 3) | Ross RT620C | 125–166 | V8 | 1995 | 1×1=1 | 0.35 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 512-1024 | semennyi |
TurboSPARC | Fujitsu MB86907 | 160–180 | V8 | 1995 | 1×1=1 | 0.35 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | semennyi |
UltraSPARC I (Spitfire) | Sun STP1030 | 143–167 | V9 | 1995 | 1×1=1 | 0.47 | 5.2 | 315 | 521 | 30 @167 MHz | 3.3 | 16 | 16 | 512-1024 | semennyi |
UltraSPARC I (Hornet) | Sun STP1030 | 200 | V9 | 1998 | 1×1=1 | 0.42 | 5.2 | 265 | 521 | -- | 3.3 | 16 | 16 | 512-1024 | semennyi |
hyperSPARC (Colorado 4) | Ross RT620D | 180–200 | V8 | 1996 | 1×1=1 | 0.35 | 1.7 | -- | -- | -- | 3.3 | 16 | 16 | 512 | semennyi |
SPARC64 | Fujitsu (HAL) | 101–118 | V9 | 1995 | 1×1=1 | 0.4 | -- | 297+163+142 | 286 | 50 | 3.8 | 128 | 128 | -- | -- |
SPARC64 II | Fujitsu (HAL) | 141–161 | V9 | 1996 | 1×1=1 | 0.35 | -- | 202+103+84 | 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) | Sun STP1031 | 250–400 | V9 | 1997 | 1×1=1 | 0.35 | 5.4 | 149 | 521 | 25 @250 MHz | 2.5 | 16 | 16 | 1024 or 4096 | semennyi |
UltraSPARC IIs (Sapphire-Black) | Sun STP1032 / STP1034 | 360–480 | V9 | 1999 | 1×1=1 | 0.25 | 5.4 | 126 | 521 | 21 @400 MHz | 1.9 | 16 | 16 | 1024–8192 | semennyi |
UltraSPARC IIi (Sabre) | Sun SME1040 | 270–360 | V9 | 1997 | 1×1=1 | 0.35 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 | 256–2048 | semennyi |
UltraSPARC IIi (Sapphire-Red) | Sun SME1430 | 333–480 | V9 | 1998 | 1×1=1 | 0.25 | 5.4 | -- | 587 | 21 @440 MHz | 1.9 | 16 | 16 | 2048 | semennyi |
UltraSPARC IIe (Hummingbird) | Sun SME1701 | 400–600 | V9 | 2000 | 1×1=1 | 0.18 Al | -- | -- | 370 | 13 max @500 MHz | 1.5-1.7 | 16 | 16 | 256 | semennyi |
UltraSPARC IIi (IIe+) | -- | 550–650 | V9 | 2002 | 1×1=1 | 0.18 Cu | -- | -- | 370 | 17.6 | 1.7 | 16 | 16 | 512 | semennyi |
SPARC64 GP | Fujitsu SFCB81147 | 400–810 | V9 | 2000 | 1×1=1 | 0.18 | 30.2 | 217 | -- | -- | 1.8 | 128 | 128 | 8192 | -- |
SPARC64 IV | Fujitsu MBCS80523 | 450–810 | V9 | 2000 | 1×1=1 | 0.13 | -- | -- | -- | -- | -- | 128 | 128 | 2048 | -- |
UltraSPARC III (Cheetah) | Sun SME1050 | 600 | V9 | 2001 | 1×1=1 | 0.18 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | semennyi |
UltraSPARC III (Cheetah) | Sun SME1052 | 750–900 | V9 | 2001 | 1×1=1 | 0.13 Al | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | semennyi |
UltraSPARC III Cu (Cheetah+) | Sun SME1056 | 1002–1200 | V9 | 2001 | 1×1=1 | 0.13 Cu | 29 | 232 | 1368 | 80 @900 MHz | 1.6 | 64 | 32 | 8192 | semennyi |
UltraSPARC IIIi (Jalapeno) | Sun SME1603 | 1064–1593 | V9 | 2003 | 1×1=1 | 0.13 | 87.5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | semennyi |
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) | Sun SME1167 | 1050–1350 | V9 | 2004 | 1×2=2 | 0.13 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 | 16384 | semennyi |
UltraSPARC IV+ (Panther) | -- | 1500–2100 | V9 | 2005 | 1×2=2 | 0.09 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 (Niagara) | Sun SME1905 | 1000–1400 | V9 / UA 2005 | 2005 | 4×8=32 | 0.09 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | semennyi |
SPARC64 VI (Olympus-C) | Fujitsu | 2150–2400 | V9/JPS1 | 2007 | 2×2=4 | 0.09 | 540 | 422 | -- | 120 | -- | 128 | 128 | 6144 | semennyi |
UltraSPARC T2 (Niagara II) | ? | 1200–1400 | V9 / UA ???? | 2007 | 8×8=64 | 0.065 | 503 | 342 | 1831 | 84 | 1.1–1.5 | 8 | 16 | 4096 | semennyi |
UltraSPARC RK (Rock) | Sun SME1832 | ? | V9 / UA ???? | 2007-8? | 2×16=32[2] | 0.065 | ? | ? | 2326 | ? | ? | ? | ? | ? | ? |
Név (Kódnév) |
Model | Frekvencia [MHz] |
Architektúra Verzió |
Kiadás Éve | Folyamat Per mag × magok = Összes folyamat |
Processzus [µm] |
Tranzisztorok [millió] |
Die size [mm2] |
I/O tűk | Energia [W] |
Feszültség [V] |
L1 Dcache [k] |
L1 Icache [k] |
L2 Cache [k] |
L3 Cache [k] |
Sablon:Listdev
[szerkesztés] Támogatott rendszerek
A SPARC gépeket általában SunOS vagy SolárisOS használ, de más operációs rendszerek is használják, például NEXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD és Linux.
1993-ban Intergraph bejelentette, hogy portolja a Windows NT-t SPARC-ra.[3]
de ezt később visszavonták.
[szerkesztés] Nyílt forrású megvalósítások
Két teljesen nyílt megvalósítása van a SPARC-nak.
- LEON 32 bites egyfolyamatos implementáció SPARC V8 szerkesztés. A forrás kódot VHDL-ben írták, GPL licenc.
- OpenSPARC T1 egy 64 bites, 32 szálas implementáció hasonló UltraSPARC Architecture 2005 és a SPARC V9-hez.
A forráskódot Verilog-ban írták és több licenc alatt van. A legtöbb OpenSPARC-forráskód GPL licencű.
[szerkesztés] Szuperszámítógépek
2007 júliusában a top 500-ban mindössze csak három szuperszámítógép alapul SPARC-on:
- Nagoya Egyetem Japán, PRIMEPOWER HPC2500 (1664 2.08 GHz processzorok), Fujitsu, 6860 GFLOPS
- Japán űrkutatás Laboratórium, PRIMEPOWER HPC2500 (2304 1.3 GHz processzorok), Fujitsu, 5406 GFLOPS
- Kyoto Egyetem Japan, PRIMEPOWER HPC2500 (1472 1.56 GHz processzorok), Fujitsu, 4552 GFLOPS
[szerkesztés] Hivatkozások
- ^ Több V7 implementációt készít a Fujitsu, LSI Logic, Weitek, Texas Instruments és a Cypress. Egy SPARC V7 processzor általában jelentősen elkülönített részekből áll, általában beleszámít egy Integer Unit (IU), egy lebegőpontos egység, egy memória vezérlő egység és egy gyorsítótár.
- ^
- ^
[szerkesztés] Lásd még
- UltraSPARC T1 – A Sun első több magos és több folyamatos processzora (kódneve "Niagara")
- UltraSPARC T2 –
- OpenSPARC – egy nyílt tervezés, UltraSPARC
- ERC32 – SPARC V7-esen alapul
- Rock processor – A T1 következő multi-processzora, várhatóan 2008-ban
- Ross Technology, Inc. – A SPARC tervezői és készítői 1980 és 1990-ben
- Aard – C++ programozási eszköz amit használtak a SPARC készítésénél
[szerkesztés] Külső hivatkozások
- The Rough Guide to MBus Modules (SuperSPARC, hyperSPARC)
[szerkesztés] BSD a SPARC-on
[szerkesztés] Linux disztribúciók
- Aurora SPARC Linux, nem hivatalos Fedora SPARC port
- Debian 32-bit és 64-bit SPARC port
- Gentoo Linux 64-bit SPARC port
- Mandriva nem hivatalos, nem támogatott SPARC port
- Slackware 32-bit és 64-bit SPARC port
- Ubuntu GNU/Linux, támogatott UltraSPARC T1 port
- [http://www.ultralinux.org/ UltraLinux - Linux, az UltraSPARC-hoz