SPARC
From Wikipedia, the free encyclopedia
Remove ads
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,[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]
Remove ads
Általános jellemzők
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.[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.
Remove ads
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,[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.
Remove ads
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).
Megjegyzések:
- Szálak száma magonként × magok száma = összes szál
- Különféle SPARC V7 implementációkat gyártott a Fujitsu, LSI Logic, Weitek, Texas Instruments és a Cypress. Egy SPARC V7 processzor általában több külön csipből állt, amik az egészértékű/integer egységet (IU), a lebegőpontos egységet (FPU), a memóriavezérlőt (MMU) és a gyorsítótár-memóriát tartalmazták.
- 167 MHz-en
- 250 MHz-en
- 400 MHz-en
- 440 MHz-en
- max. 500 MHz-en
- 900 MHz-en
- kivéve a B/K síneket
- A V9-en alapuló Oracle specifikáció
Remove ads
Operációs rendszerek
A 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ások
A SPARC architektúrának három teljesen nyílt forrású megvalósítása van:
- LEON – 32 bites, SPARC Version 8 megvalósítás, különösen a helykihasználásra optimalizálva tervezték. A forráskódja VHDL-ben van írva, GPL licenc alatti.
- OpenSPARC T1 – 2006-ban adták ki, 64 bites, 32-szálas implementáció, megfelel a UltraSPARC Architecture 2005 és a SPARC Version 9 (Level 1) specifikációknak. A forráskódja Verilog-ban készült, több licenc alatt lett kibocsátva; az OpenSPARC T1 forráskód legnagyobb része GPL licenc alá esik, a létező nyílt forrású projektekből származó kód továbbra is a saját licence alatt marad. A bináris programok a bináris szoftver licencszerződések hatálya alá esnek.
- S1 – ez egy 64 bites Wishbone-nak megfelelő CPU mag, amely az OpenSPARC T1 tervein alapul. Ez egyetlen UltraSPARC v9 típusú mag, amely 4-utas SMT-re (egyidejű többszálas működésre) képes. A T1-hez hasonlóan erre is a GPL licenc vonatkozik.
- OpenSPARC T2 – 2008-ban jelent meg, 64 bites, 64-szálas megvalósítás, megfelel az UltraSPARC Architecture 2007 és a SPARC Version 9 (Level 1) specifikációknak. A forráskódja Verilog-ban íródott, többfajta licenc hatálya alá esik, hasonlóan a T1-hez.
A SPARC architektúrának létezik egy teljesen nyílt forrású szimulátora is:
- RAMP Gold, egy 32 bites, 64-szálas SPARC Version 8 implementáció, amelyet az FPGA-alapú architektúrák szimulációja céljából terveztek. A RAMP Gold forráskódja kb. 36000 sor Systemverilog nyelven, a BSD licencek hatálya alá esik.
Remove ads
Szuperszámítógépek
2011 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.
Remove ads
Jegyzetek
Kapcsolódó szócikkek
További információk
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads