SPARCA 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,[1] 1986-ban a Sun és a Fujitsu együttműködésével elkészültek az első SPARC V7 architektúrájú processzorok,[2][3] 1987 közepén pedig piacra kerültek a SPARC processzoros Sun-4 munkaállomások.[4] 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.[5] 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.[6] 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 3,6 GHz-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.[7][8]
Általános jellemzőkA 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.[9][10] 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.[11] 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éneteAz 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:
SPARC64A 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,[12] amit a Fujitsu PRIMEPOWER szervercsalád használ;[13] é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 adataiEbben 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).
Megjegyzések:
Operációs rendszerekA SPARC gépek általában SunOS, Solaris vagy OpenSolaris rendszert használnak, de más operációs rendszerek is működnek rajtuk, például NEXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD és Linux. 1993-ban az Intergraph bejelentette, hogy portolja a Windows NT-t SPARC-ra,[28] de ezt később visszavonták. Nyílt forrású megvalósításokA SPARC architektúrának három teljesen nyílt forrású megvalósítása van:
A SPARC architektúrának létezik egy teljesen nyílt forrású szimulátora is:
Szuperszámítógépek2011 júniusában a világ 500 leggyorsabb számítógépe közül csak két szuperszámítógép (az első és a 73-ik) használt SPARC processzorokat, a TOP500 lista alapján.[29] 2011-ben az első helyen a Fujitsu K computer-e állt (a 2011 júniusi és 2011 novemberi listák szerint),[29] 2012-ben a második helyen áll. Ez 88 128 SPARC64 VIIIfx CPU-ból épül fel, mindegyik nyolcmagos, így összesen 705 024 magot tartalmaz – csaknem kétszer annyit, mint a TOP500 bármelyik gépe. A K Computer teljesítménye nagyobb, mint a listában rákövetkező öt rendszeré együttvéve, és ennek a legmagasabb a teljesítmény-energia aránya az összes 2012 előtti szuperszámítógép-rendszer között. A Green500 listán a 6. helyen állt 2011 júniusában, 824.56 MFLOPS/W teljesítményével.[30] A Tianhe-1A 2011-ben a második, 2012-ben az 5-ik helyen álló rendszer. Több node-ja kínai fejlesztésű OpenSPARC-alapú FeiTeng-1000 processzorokból áll, azonban ezek a node-ok nem vesznek részt a TOP500 alapját képező LINPACK tesztben.[31][32] A 2012. júniusi TOP500 lista 18. helyén is egy SPARC alapú rendszer áll, a japán Tokiói Egyetem Információtechnológiai Központjában felállított Oakleaf-FX nevű rendszer; ez 1,848 GHz-es SPARC64 IXfx 16C processzorokból áll, mindössze 76800 magot tartalmaz.[33] 2010. december 2-án az Oracle leleplezte a T3-2, T3-4 és M5000 szerverekből álló SPARC SuperCluster rendszerét.[34] A T3-4 szerverekből álló konfiguráció állítólag felülmúlja a HP Integrity Superdome és az IBM Power 780 server rendszereket, 30 249 688 tpmC sebességével.[35] Az Oracle azóta megjelentette a T4-4 jelű SPARC SuperCluster változatot is, azonban ezekkel a rendszerekkel 2012-ben még nem sikerült bekerülnie a TOP500-ba. Jegyzetek
Kapcsolódó szócikkek
További információk
BSD a SPARC-on
Linux disztribúciók
|