thumb|Sun UltraSPARC II mikroprocesszor A SPARC (skálázható processzor-architektúra, a Scalable Processor Architecture szavakból) a Sun Microsystems által kifejlesztett 32 és 64 bites RISC típusú utasításkészlet-architektúra (ISA). A SPARC ISA tervezése a Sun-nál 1984-ben kezdődött, 1986-ban a Sun és a Fujitsu együttműködésével elkészültek az első SPARC V7 architektúrájú processzorok, 1987 közepén pedig piacra kerültek a SPARC processzoros Sun-4 munkaállomások.

A SPARC egy bejegyzett védjegy, amely a SPARC International, Inc. konzorcium tulajdona. Ez a szervezet 1989-ben alakult a SPARC architektúra terjesztésének elősegítése, valamint a konformancia-ellenőrzések biztosítása és védjegyek kezelése céljából. A kezdetben 32 bites SPARC architektúrát a Sun Sun-4-es munkaállomások és szerverek számára fejlesztették ki, amellyel a korábbi, Motorola 68000-es processzorokat használó Sun-3-as rendszereket kívánták felváltani. Később kifejlesztették az architektúra a 64 bites verzióját; a 64 bites SPARC processzorok változatait a Sun Microsystems, Solbourne, Fujitsu és más gyártók szimmetrikus multiprocesszoros (SMP) és ccNUMA technológiákat használó gépeikben alkalmazzák.

A SPARC International nyílttá kívánta tenni az architektúrát a kialakítás minél szélesebb körben való elterjesztése érdekében. Ennek egyik lépéseként a licencet több gyártónak is átadta, pl. a Texas Instruments, Atmel, Cypress Semiconductor és Fujitsu cégeknek. Ennek köszönhetően mára a SPARC architektúra teljesen nyílt és nem kötődik egyetlen tulajdonoshoz.

2006 márciusában a Sun Microsystems kiadta az UltraSPARC T1 mikroprocesszor terveit nyílt forrásként, OpenSPARC T1 néven; a teljes dokumentáció hozzáférhető az OpenSPARC.net webhelyen. 2007-ben ugyanígy közzétette az UltraSPARC T2 processzor terveit, OpenSPARC T2 néven.

A SPARC processzor újabb keletű kereskedelmi célú megvalósításai a Fujitsu Laboratories Ltd. által 2009 júniusában megjelentetett SPARC64 VIIIfx típusú „Venus” kódnevű processzor (nyolc mag, 2 GHz, 128 GFLOPS), amelyet a 8 petaFLOPS teljesítményt elérő japán szuperszámítógépben, a „K computer”-ben használnak, ezután a 2012 augusztusában bemutatott SPARC64 X „Athena” processzor. Az Oracle Corporation továbbra is fejleszti SPARC processzorsorozatát, amelynek legújabb tagjai a 2011 szeptemberében megjelent 2,85–3,0 GHz órajelen működő SPARC T4, és a 2013 márciusában bevezetett -en futó 16 magos SPARC T5 processzor.

2017. szeptember 1-én, az Oracle Labs-ben 2016 novemberében kezdődött elbocsátások és az M8-as processzor befejezése után az Oracle saját berkein belül megszüntette a SPARC architektúrájú processzorok további tervezését. A texasi Austinban működő processzormag-fejlesztő csoport nagy részét elbocsátották, akárcsak a kaliforniai Santa Clarában és a massachusettsi Burlingtonban működő csapatokat.

Általános jellemzői A SPARC architektúrára nagy hatással voltak a Kaliforniai Egyetemen, Berkeley-ben kifejlesztett korai RISC I és RISC II architektúrák és az IBM 801. Ezek a korai RISC kialakítások igen minimalisták voltak, a lehető legkevesebb utasítást tartalmazták és célként tűzték ki az összes utasítás lehetőleg egy órajelciklus alatti végrehajtását. Hasonlóképpen a MIPS-architektúra kezdeti verzióiból szintén hiányoztak az olyan bonyolultabb utasítások, mint például a szorzás és osztás. A RISC processzorokban alkalmazott ugrási késleltetési rés (branch delay slot) szintén megjelenik a SPARC processzoroknál.

A SPARC processzorok sok általános célú regisztert tartalmaznak, ezek száma akár 160 is lehet. Ezek közül a szoftverek bármely tetszőleges időpontban csak 32-t láthatnak – 8 globális regiszter (az egyik közülük a g0, fixen rögzített nulla értékű, tehát csak 7 használható regiszterként), a többi 24 a regiszterveremben helyezkedik el. Ezt a 24 regisztert hívják regiszterablaknak, ezeket használják szubrutinhíváskor és -visszatéréskor, ez az ablak mozog fel és le a regiszterveremben. Az ablakok helyzete előre definiált. Minden ablak rendelkezik 8 lokális regiszterrel és megoszt még nyolcat a szomszédos ablakkal. A megosztott regisztereket függvényparaméter-átadásra vagy értékek visszaadására használják, a lokális regisztereket a helyi / adott függvényben lokális értékek tárolására használják függvényhívások között.

A skálázhatóság azt jelenti, hogy a SPARC specifikáció lehetővé teszi különböző felépítésű processzorok megvalósítását, a beágyazott rendszerek processzoraitól kezdve a nagy, szerverekbe szánt processzorokig, amelyekben mindben megtalálható ugyanaz az alap, nem privilegizált utasításkészlet. Az architektúra egyik skálázható paramétere a megvalósított regiszterablakok száma: a specifikáció lehetővé teszi 3-tól 32-ig terjedő számú regiszterablak megvalósítását. Eszerint egy processzor tartalmazhat 32 regiszterablakot, a hívási verem maximális hatékonysága céljából; vagy tartalmazhat mindössze 3-at, ami a kontextusváltás idejét csökkenti, de akár a két szám között akármennyit. Hasonló regiszterfájl-tulajdonságokkal más architektúrák is rendelkeznek, ilyenek pl. az Intel i960, IA-64 és az AMD 29000 (utóbbinál a regiszterablak mérete nem rögzített, hanem változó).

Az architektúrának mára több revíziója is megjelent. A nyolcas verzióban pl. megjelent a hardveres szorzás és osztás.http://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html "integer multiply and integer divide instructions which exist in SPARC-V8 but not in SPARC-V7." / "SPARC-V7-ből hiányzó egész szorzó és osztó utasítások jelentek meg a SPARC-V8-ban ..."http://www.osnews.com/story/6136 "The V8 architecture adds some instructions .., including integer divide and multiply." A kilences verzió legjelentősebb változása, hogy az architektúra 64 bites bővítést kapott; az 1994-ben közzétett SPARC-V9 specifikációban megjelent a 64 bites adat- és címkezelés.

A SPARC Version 8 szerint a lebegőpontos regiszterfájl 16 dupla pontosságú regisztert tartalmaz. Ezek közül mindegyik használható két egyszeres pontosságú regiszterként, ami így összesen 32 egyszeres pontosságú regisztert biztosít. A páratlan és páros számú dupla pontosságú regiszterek négyszeres pontosságú regiszterekké foghatók össze, ezáltal 8 négyszeres pontosságú regiszter használható. A SPARC Version 9 még további 16 dupla pontosságú regisztert adott a készlethez (amelyek szintén 8 négyszeres pontosságú regiszterként is elérhetők), azonban ezeket az új regisztereket már nem lehet egyszeres pontosságú regiszterként használni.

Megjelent a „tagged integer” típusú összeadás és kivonás, amelyben az értékek két alsó bitje nem vesz részt a számításban – ez gyorsítja az ML, Lisp és más, hasonló típust használó nyelvek futtatási környezeteinek működését.

A SPARC-V8 architektúra kizárólag a big-endian bájtsorrendet támogatta. A 64 bites SPARC-V9 architektúra az utasításokban big-endian bájtsorrendet használ, de az adatok bájtsorrendje lehet big-endian vagy little-endian, a választást az alkalmazás load/store utasításainak szintjén lehet meghatározni, vagy memórialaptól függően, az MMU szintjén. Ez előnyös lehet az önmagukban little-endian sorrendet használó eszközökkel (pl. PCI busz) való adatcsere esetén.

Története Az architektúrának három nagyobb revíziója volt. Az első közzétett verzió az 1986-ban megjelent 32 bites SPARC Version 7 (V7). A SPARC Version 8 (V8), egy javított architektúra-leírás, 1990-ben jelent meg. A főbb eltérések a V7 és V8 között az egészértékű szorzó és osztó utasítások megjelenése, és a 80 bites kiterjesztett pontosságú lebegőpontos aritmetika 128 bites négyszeres pontosságú adattípussal és aritmetikával való kiterjesztése. A SPARC V8 szolgált az IEEE 1754-1994 sz. szabvány alapjául, amely az IEEE 32 bites mikroprocesszor-architektúrájának szabványa (utasításkészlet, regisztermodell, adattípusok, opkódok és koprocesszor-interfész definíció).

A SPARC Version 9, a SPARC 64 bites architektúrája 1993-ban jelent meg, a SPARC International kiadásában. A SPARC Architektúra Bizottság fejlesztette ki, amelynek tagjai a következők: Amdahl Corporation, Fujitsu, ICL, LSI Logic, Matsushita, Philips, Ross Technology, Sun Microsystems és a Texas Instruments.

2002-ben a Fujitsu és a Sun közzétette a SPARC Joint Programming Specification 1 (JPS1) specifikációt, amely a két cég által készített processzorokban azonos módon megvalósított processzorfunkciókat írta le („Commonality”). Az első JPS1 specifikációnak megfelelő CPU-k a Sun UltraSPARC III és a Fujitsu SPARC64 V processzorai voltak. A JPS1 által nem lefedett funkcionalitás a processzorok külön „megvalósítási függelék”-ében („Implementation Supplements”) vannak leírva.

2006 elején a Sun kiadott egy bővített architektúra-specifikációt, az UltraSPARC 2005-öt (UltraSPARC Architecture 2005). Ez nem csak a privilegizált és nem privilegizált részeket tartalmazta a SPARC V9-ből, hanem ráadásul minden architekturális bővítést is, például a CMT, hiperprivilegizált, VIS 1 és VIS 2 vizuális utasításkészlet-bővítéseket, amelyek jelen vannak a Sun UltraSPARC processzoraiban az UltraSPARC T1 implementáció óta. Az UltraSPARC 2005 architektúra tartalmazza a Sun standard kiterjesztéseit és teljes mértékben megfelel a SPARC V9 Level 1 specifikációnak.

2007-ben a Sun kiadta az UltraSPARC 2007 architektúra (UltraSPARC Architecture 2007) specifikációt, ennek az UltraSPARC T2 típus felel meg.

Az architektúra biztosítja a folyamatos bináris alkalmazás-kompatibilitást az első, 1987-es SPARC V7-től kezdve egészen a Sun UltraSPARC architektúra implementációkig.

A SPARC különböző megvalósított változatai közül nagyon népszerű volt a Sun SuperSPARC és UltraSPARC-I változat, ezeket használták referenciarendszernek a SPEC CPU95 és CPU2000 teljesítménytesztekhez (benchmarks). A 296 MHz-es UltraSPARC-II a SPEC CPU2006 benchmark referenciarendszere.

A SPARC architektúra licenceit több cég megszerezte és ennek alapján különböző implementációkat fejlesztettek ki és gyártottak, köztük az alábbiak: Afara Websystems Bipolar Integrated Technology (BIT) C-Cube Cypress Semiconductor Moszkvai SPARC Technológiai Központ (МЦСТ) SPARC termékvonala (R100, R150, R500, R500S, R1000) Fujitsu és Fujitsu Microelectronics HAL Computer Systems Hyundai LSI Logic Magnum Semiconductor Meiko Scientific Metaflow Technologies Prisma Ross Technology Parsé Semiconductor Co. Scientific Atlanta Solbourne Computer Weitek

SPARC64

A Fujitsu (kezdetben HAL Computer Systems nevű leányvállalatán keresztül) 1995 óta tervez SPARC V9 specifikációnak megfelelő processzorokat, amelyek a SPARC64 márkanév alatt futnak. Ide tartozik a SPARC64 V is, amit a Fujitsu PRIMEPOWER szervercsalád használ; és a SPARC64 VI, amit a Sun és a Fujitsu a SPARC Enterprise M osztályú szervercsalád használ. 2008 közepétől kezdték meg a SPARC64 VII processzorok szállítását, amelyeket szintén az M osztályú szerverekben használnak fel.

SPARC mikroprocesszorok adatai Ebben a táblázatban a SPARC processzorok néhány jellemző adata látható. Az oszlopok: órajel-frekvencia MHz-ben, architektúraverzió, kiadás éve, szálak száma (szálak egy magban × magok száma), gyártási processz (mikron), tranzisztorok száma (millió), lapkaméret (mm²), I/O lábak száma, disszipáció (watt), feszültség, gyorsítótárak mérete: Dcache: adat-cache, Icache: utasítás-gyorsítótár, utasítások, L2 és L3 (KiB).