SPARC
În electronica si calcul SPARC (Scalable Processor Architecture) este un mare-endian RISC microprocesor arhitectura . Arhitectura, proiectată inițial în 1985 de Sun Microsystems , a devenit, de asemenea, o marcă înregistrată a SPARC International, Inc., o organizație fondată în 1989 pentru a promova SPARC și pentru a emite certificate și teste de conformitate pentru procesoarele care doresc să se laude.
Descriere
SPARC International a dorit ca SPARC să fie o arhitectură „deschisă” pentru a crea un ecosistem excelent pentru proiectare, a fost licențiată pentru diferiți producători, inclusiv Texas Instruments , Cypress Semiconductor și Fujitsu. S-a dovedit că SPARC este în prezent o arhitectură deschisă, non-proprietară: există și o implementare open source completă numită LEON , scrisă în VHDL, iar codul său sursă este disponibil sub LGPL. ASIC- ul LEON, dezvoltat de Gaisler Research, are 32 de biți și acceptă setul de instrucțiuni din arhitectura SparcV8 .
CPU-urile cu implementări de arhitectură SPARC au fost inițial proiectate și utilizate pentru domenii precum stațiile de lucru și ulterior și în servere SMP fabricate de Sun Microsystems și Fujitsu . Mașinile SPARC sunt sinonime cuSolaris , sistemul de operare Sun proiectat pentru SPARC, chiar dacă porturile diferitelor sisteme de operare sunt disponibile pentru această arhitectură, inclusiv OPENSTEP , Linux , FreeBSD , OpenBSD și NetBSD . De-a lungul anilor, au fost dezvoltate diverse versiuni ale arhitecturii SPARC pentru a garanta compatibilitatea maximă posibilă între procesoarele mai vechi și cele noi, pentru a facilita orice upgrade (un exemplu sunt procesoarele UltraSPARC III și UltraSPARC VI / VI + care pot fi montate în același sistem fără probleme); cea mai recentă arhitectură încă în uz este cea de-a noua (V9).
Caracteristici
Arhitectura SPARC a fost puternic influențată de designul anterior RISC I și II dezvoltat în cadrul Universității din California Berkeley . Această arhitectură RISC a fost foarte minimalistă: procesorul a inclus puține operațiuni în codul intern, pentru a se asigura că fiecare operație a fost efectuată într-un singur ciclu de ceas și a fost, de asemenea, foarte asemănătoare cu arhitectura MIPS , nefiind prevăzută operații de divizare sau multiplicare. că mai degrabă au fost emulate prin serii de sume. O caracteristică interesantă a SPARC-urilor influențate de RISC a fost unitatea de predicție a ramurilor foarte avansată: datorită acestor caracteristici, această arhitectură avea un IPC excelent ( Instrucțiuni pe ciclu - instrucțiuni pe ciclu de ceas ) care garantează performanțe excelente chiar și la frecvențe joase. O caracteristică nedorită derivată din designul RISC timpuriu este slotul de întârziere a sucursalei .
Un procesor SPARC conține în mod normal cel puțin 128 de registre de uz general; dintre acestea doar 32 de registre sunt disponibile direct software-ului, 8 sunt globale ( g0 este rezervat și, prin urmare, nu poate fi utilizat, astfel încât doar 7 pot fi utilizate), iar celelalte 24 sunt utilizate ca stivă. Cele 24 de registre acționează ca ferestre de registre și atunci când funcțiile apelează sau returnează variabile aceste registre stochează datele, deplasându-se în sus sau în jos de-a lungul stivei . Fiecare fereastră are 8 registre locale și 8 registre partajate cu celelalte ferestre. Registrele partajate sunt utilizate pentru a transmite parametrii și a returna variabilele unei funcții.
SPARC este un procesor foarte scalabil, care poate fi utilizat atât ca procesor pentru aplicații încorporate, cât și pentru a oferi putere de calcul în servere corporative folosind același set de instrucțiuni. Una dintre caracteristicile arhitecturale care permit această scalabilitate a procesorului este numărul de ferestre bazate pe registre care pot fi implementate; specificațiile permit ca acestea să varieze de la un minim de 3 la un maxim de 32. Un număr mare crește viteza codului cu multe unități de calcul, în timp ce un număr mic crește viteza de comutare a contextului. Alte arhitecturi includ ferestre cu registre precum Intel i960 , IA-64 a procesoarelor Itanium sau AMD 29000 .
În versiunea SPARC 8 ( 1987 ) unitatea cu virgulă mobilă are 16 registre în virgulă mobilă. Fiecare dintre aceste registre poate fi utilizat ca 2 registre de precizie unice, oferind un total de 32 de registre de precizie unice. Registrele pot fi cuplate pentru a obține 8 registre de precizie cvadruplă. Versiunea SPARC 9 a adăugat încă 16 registre cu precizie dublă (care pot deveni 8 registre cu precizie cvadruplă ), dar care nu pot fi utilizate ca registre cu precizie simplă.
Istorie
De-a lungul anilor, arhitectura a suferit mai multe revizuiri, de exemplu, versiunea 8 a introdus multiplicarea și diviziunile prin hardware, chiar dacă cea mai mare schimbare a avut loc cu versiunea 9, care a introdus gestionarea datelor pe 64 de biți în procesor.
Specificația Sun UltraSPARC Architecture 2005 (UA 2005) a adăugat instrucțiuni suplimentare, registre suplimentare și o funcție numită mod hiperprivilegiat . Aceste noi adăugiri vor deveni standard începând cu noul procesor UltraSPARC T1 cu 8 nuclee. Arhitectura UltraSPARC 2005 include încă extensii Sun standard și rămâne compatibilă cu specificațiile SPARC V9 Nivelul 1; în plus, noua arhitectură oferă o compatibilitate deplină cu aplicațiile scrise pentru specificația SPARC V7 implementată pentru prima dată în 1987.
În istoria acestei arhitecturi, diverse procesoare Sun SPARC, inclusiv SuperSPARC și UltraSPARC-I, au devenit atât de obișnuite încât au fost utilizate ca reper de către SPEC pentru benchmark-urile CPU95 și CPU2000 .
Nume (nume de cod) | Șablon | Frecventa (MHz) | Versiunea de arhitectură | An | Numărul firului [1] | Proces (µm) | Tranzistoare (milioane) | Suprafata matritei (mm²) | IO Pin | Consum (W) | Tensiune (V) | L1 Dcache (k) | L1 Icache (k) | L2 cache (k) | L3 Cache (k) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC | (mai multe), inclusiv MB86900 [2] | 14,28–40 | V7 | 1987-1992 | 1 × 1 = 1 | 0,8-1,3 | ~ 0,1-1,8 | - | 160-256 | - | - | 0–128 (unificat) | - | - | |
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) | Sun 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) | Sun STP1030 | 143–167 | V9 | 1995 | 1 × 1 = 1 | 0,47 | 5.2 | 315 | 521 | 30 [3] | 3.3 | 16 | 16 | 512-1024 | - |
UltraSPARC (Hornet) | Sun 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) | Sun STP1031 | 250-400 | V9 | 1997 | 1 × 1 = 1 | 0,35 | 5.4 | 149 | 521 | 25 [4] | 2.5 | 16 | 16 | 1024 sau 4096 | - |
UltraSPARC IIs (Sapphire-Black) | Sun 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 (Saber) | Sun SME1040 | 270-360 | V9 | 1997 | 1 × 1 = 1 | 0,35 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 | 256-2048 | - |
UltraSPARC IIi (Sapphire-Red) | Soare SME1430 | 333–480 | V9 | 1998 | 1 × 1 = 1 | 0,25 | 5.4 | - | 587 | 21 [6] | 1.9 | 16 | 16 | 2048 | - |
UltraSPARC IIe (Colibri) | Soare SME1701 | 400-500 | V9 | 1999 | 1 × 1 = 1 | 0,18 Al | - | - | 370 | 13 [7] | 1,5-1,7 | 16 | 16 | 256 | - |
UltraSPARC IIi (IIe +) (Fantomă) | Sun 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 (Ghepard) | Sun SME1050 | 600 | V9 / JPS1 | 2001 | 1 × 1 = 1 | 0,18 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | - |
UltraSPARC III (Ghepard) | Sun SME1052 | 750–900 | V9 / JPS1 | 2001 | 1 × 1 = 1 | 0,13 Al | 29 | - | 1368 | - | 1.6 | 64 | 32 | 8192 | - |
UltraSPARC III Cu (Cheetah +) | Soare 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) | Sun 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) | Soare SME1167 | 1050–1350 | V9 / JPS1 | 2004 | 1 × 2 = 2 | 0,13 | 66 | 356 | 1368 | 108 | 1,35 | 64 | 32 | 16384 | - |
UltraSPARC IV + (Panther) | Soare SME1167A | 1500–2100 | V9 / JPS1 | 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 | - |
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) | Soare 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 (Cascada Victoria) | Soare 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] | Sun SME1832 | 2300 | V9 / - | șters [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 / Soare | 1650 | V9 / UA _? _ | 2010 | 16 × 8 = 128 | 0,040 [14] | ???? | 371 | ? | 139 | ? | 8 | 16 | 6144 | - |
Nume (nume de cod) | Șablon | Frecventa (MHz) | Versiunea de arhitectură | An | Numărul firului [1] | Proces (µm) | Tranzistoare (milioane) | Suprafata matritei (mm²) | IO Pin | Consum (W) | Tensiune (V) | L1 Dcache (k) | L1 Icache (k) | L2 cache (k) | L3 Cache (k) |
SPARC64
SPARC64 este o familie de procesoare dezvoltată de Fujitsu și utilizată în familia de servere PRIMEPOWER .
Notă
- ^ a b Fire pentru fiecare nucleu × numărul de nuclee
- ^ Mai multe implementări SPARC V7 au fost produse de Fujitsu, LSI Logic , Weitek, Texas Instruments și Cypress. Un procesor SPARC V7 constă de obicei din mai multe cipuri care creează unitatea întreagă (IU), unitatea cu virgulă mobilă (FPU),unitatea de gestionare a memoriei (MMU) și memoria cache.
- ^ @ 167 MHz
- ^ @ 250 MHz
- ^ @ 400 MHz
- ^ @ 440 MHz
- ^ max @ 500 MHz
- ^ @ 900 MHz
- ^ FX1 Caracteristici cheie și specificații ( PDF ), fujitsu.com , Fujitsu, 19 februarie 2008.
- ^ Un procesor CMT SPARC (R) CMT SPARC (R) de 65 nm, cu 16 nuclee, 32 de fire plus 32-Scout-Thread ( PDF ), opensparc.net , Sun Microsystems, 19 februarie 2008.
- ^ Ashlee Vance, Sun Is Said to Cancel Big Chip Project , The New York Times, 15 iunie 2009. Accesat la 23 mai 2010 .
- ^ "Fujitsu arată SPARC64 VII". Arhivat 2 iunie 2009 la Internet Archive. (28 august 2008). heise online .
- ^ Sylvie Barak, Fujitsu dezvăluie cel mai rapid procesor din lume , la theinquirer.net .
- ^ http://www.oracle.com/us/products/servers-storage/servers/sparc-enterprise/t-series/sparc-t3-chip-ds-173097.pdf
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre SPARC
linkuri externe
- ( EN ) SPARC International, Inc. , pe sparc.com .
- ( EN ) Depozitarul documentelor standardelor SPARC , pe sparc.org . Adus la 22 ianuarie 2006 (arhivat din original la 25 aprilie 2006) .
- ( EN ) Articol tehnic despre UltraSPARC T1 ( PDF ), pe elet.polimi.it .
- ( EN ) LEON2 O implementare open source SPARC
- ( EN ) ERC32 A SPARC V7 CPU tolerant la radiații
- ( RO ) OpenSPARC - designul open source UltraSPARC T1 de la Sun
- ( RO ) Sistem de operare Solaris pentru platforme SPARC , la wwws.sun.com . Adus la 22 ianuarie 2006 (arhivat din original la 12 octombrie 2004) .
- (RO) Procesoare UltraSPARC , pe sun.com. Adus la 22 ianuarie 2006 (arhivat din original la 6 martie 2007) .
- ( EN ) UltraLinux - Un port SPARC pe 32 și 64 de biți , la ultralinux.org . Adus la 22 ianuarie 2006 (arhivat din original la 29 octombrie 2007) .
- ( EN ) Slackware 32-bit și 64-bit SPARC Port , la splack.org .
- ( EN ) Portul SPARC Debian pe 32 și 64 de biți , la debian.org .
- ( EN ) Port SPARC pe 64 de biți FreeBSD , la freebsd.org .
- (EN) NetBSD 32-bit SPARC Port , pe netbsd.org.
- ( EN ) NetBSD 64-bit SPARC Port , la netbsd.org .
- (EN) Port SPARC OpenBSD pe 32 de biți , pe openbsd.org.
- ( EN ) Portul SPARC OpenBSD pe 64 de biți , la openbsd.org .
- ( EN ) Imagini și descrieri ale procesorului SPARC la cpu-collection.de , pe cpu-collection.de .
- (RO) Module UltraSPARC , pe sunsolve.sun.com. Adus la 22 ianuarie 2006 (arhivat din original la 5 aprilie 2005) .
- ( RO ) Rough Guide to MBus Modules (SuperSPARC, HyperSPARC) , la mbus.sunhelp.org .
Controlul autorității | GND ( DE ) 4230258-4 |
---|