A SPARC64 V (Zeus) egy a Fujitsu cég által tervezett SPARC V9 architektúrájú mikroprocesszor. A SPARC64 V volt a kiindulópontja a Fujitsu szerverekhez, majd később szuperszámítógépekhez tervezett processzorsorozatának.

A szerversorozatot a SPARC64 V+, VI, VI+, VII, VII+, X, X+ és XII alkotja. A SPARC64 VI és a rákövetkező modellek a VII+-ig a Fujitsu és a Sun (később Oracle) SPARC Enterprise M-sorozatú szervereiben voltak alkalmazva. A szerverek mellett a SPARC64 VII egy változatát használták a kereskedelmi forgalomban kapható Fujitsu FX1 szuperszámítógépben is. 2017 októberétől a legújabb szerverprocesszor a SPARC64 XII, amelyet a Fujitsu és az Oracle M12 szervereiben használnak.

A szuperszámítógép-sorozat a SPARC64 VII-en alapult, tagjai a SPARC64 VIIfx, VIIIfx, IXfx és XIfx modellek. A SPARC64 VIIIfx-et a K computer-ben használták, a SPARC64 IXfx-et pedig a kereskedelmi forgalomban kapható PRIMEHPC FX10-ben. 2016 júliusától a SPARC64 XIfx a legújabb szuperszámítógép-processzor, ezt a Fujitsu PRIMEHPC FX100 szuperszámítógépben használják.

Történet Az 1990-es évek végén a Fujitsu leányvállalata, a HAL Computer Systems a SPARC64 GP utódját tervezte SPARC64 V néven. Az 1999-es Microprocessor Forumon bejelentett HAL SPARC64 V -en működött volna, széles szuperskalár szervezésű szuperspekulatív végrehajtással, és lett volna benne egy L1 utasítás nyomkövető gyorsítótár (trace cache), egy kicsi, de nagyon gyors méretű L1 adat-gyorsítótár, és külön L2 gyorsítótárak az utasítások és az adatok számára. A Fujitsu CS85-ös folyamatára volt tervezve, ami egy -es CMOS folyamat hat rétegű réz fémezéssel; 65 millió tranzisztorból állt volna egy -es lapkán. Megjelenését eredetileg 2001 végére tervezték a Fujitsu GranPower szerverekben, de a Fujitsu 2001 közepén bezárta a leányvállalatot, így a fejlesztést törölték és egy Fujitsu dizájnnal helyettesítették azt.

Az első Fujitsu SPARC64 V-ket 2001 decemberében gyártották. Ezek és közötti frekvencián működtek. A Fujitsu 2003-as SPARC64 útiterve szerint a vállalat egy -es változatot is tervezett 2003 végére vagy 2004 elejére, de ezt törölték a SPARC64 V+ javára. A SPARC64 V-t a Fujitsu a PRIMEPOWER szervereiben alkalmazta.

A SPARC64 V-t először a 2002-es Microprocessor Forumon mutatták be. Bemutatásakor ennek volt a legmagasabb órajele a SPARC és a gyártásban lévő 64 bites szerverprocesszorok közül, és a legmagasabb SPEC minősítése a SPARC processzorok közül.

Leírás Az SPARC64 V egy négyszeres kibocsátású szuperskalár mikroprocesszor sorrenden kívüli végrehajtással. A Fujitsu GS8900 nagyszámítógép (z/Architecture implementációjú) CISC mikroprocesszorán alapult, így gyakorlatilag egy alapjaiban új tervezésű processzor.

A futószalag A SPARC64 V az első fokozatban legfeljebb nyolc utasítást hív le az utasítás-gyorsítótárból, és azokat egy 48 bejegyzésű utasításpufferbe helyezi. A következő fokozatban négy utasítást vesz ki ebből a pufferből, dekódolja és kiadja a megfelelő várakoztató állomásoknak. A SPARC64 V hat várakoztató állomással rendelkezik, kettő a fixpontos (egész) számegységeket, egy a címgenerátorokat, kettő a lebegőpontos egységeket, egy pedig az elágazási utasításokat szolgálja ki. Minden fixpontos, címgenerátor és lebegőpontos egység egy-egy nyolc bejegyzésű várakoztató állomással rendelkezik. Minden várakoztató állomás egy utasítást küldhet a saját végrehajtó egységének. Az, hogy melyik utasítás kerül először továbbításra, az operandus rendelkezésre állásától és a korától függ. A régebbi utasítások magasabb prioritást kapnak, mint az újabbak. A várakoztató állomások az utasításokat spekulatív módon is kiküldhetik (spekulatív kiküldés). Ez azt jelenti, hogy az utasításokat akkor is ki lehet küldeni a végrehajtó egységeknek, ha az operandusuk még nem áll rendelkezésre, de a végrehajtás megkezdésekor már rendelkezésre fog állni. A hatodik fokozatban legfeljebb hat utasítást lehet kiküldeni.

Regiszter olvasás A regiszterfájlok olvasása a hetedik fokozatban történik. A SPARC architektúrában külön regiszterfájlok vannak az egész és lebegőpontos utasítások számára. A fixpontos (integer) regiszterfájl nyolc regiszterablakkal rendelkezik. A JWR (Joint Work Register, közös munkaregiszter) 64 bejegyzést tartalmaz, és nyolc olvasási és két írási porttal rendelkezik. A JWR a nyolc regiszterablak egy részhalmazát, az előző, az aktuális és a következő regiszterablakot tartalmazza. Célja a regiszterfájl méretének csökkentése, hogy a mikroprocesszor magasabb órajelfrekvencián működhessen. A lebegőpontos regiszterfájl 64 bejegyzést tartalmaz, és hat olvasóporttal és két íróporttal rendelkezik.

Végrehajtás A végrehajtás a kilencedik fokozatban kezdődik. A processzorban hat végrehajtó egység van, kettő az egész számok műveleteihez, kettő a betöltéshez és tároláshoz, kettő pedig a lebegőpontos számokhoz. A két egész/fixpontos végrehajtó egységet EXA és EXB jelöli. Mindkettő rendelkezik aritmetikai logikai egységgel (ALU) és eltoló (shift) egységgel, de csak az EXA rendelkezik szorzó és osztó egységgel. A betöltést és tárolást két címgenerátor (AGA és AGB) támogatja. Ezek egyszerű ALU-k, amelyek a virtuális címek kiszámítására szolgálnak.

A két lebegőpontos egységet (FPU) FLA és FLB jelöli. Mindkét FPU tartalmaz egy összeadót és egy szorzót, de csak az FLA-hoz van grafikus egység csatlakoztatva. Ezek az egységek összeadás, kivonás, szorzás, osztás, négyzetgyök és szorzás-összeadás utasításokat hajtanak végre. Utódjával, a SPARC64 VI-tal ellentétben a SPARC64 V a szorzás-összeadást külön szorzási és összeadási műveletekkel végzi, így ez akár két kerekítési hibával is járhat. A grafikus egység a Visual Instruction Set (VIS) utasításait hajtja végre, amely egy SIMD (single instruction, multiple data) utasításkészlet. Minden utasítás futószalagos, kivéve az osztást és a négyzetgyökszámítást, amelyeket iteratív algoritmusokkal hajtanak végre. Az FMA utasításFMA: fused multiply-add, összeolvasztott szorzás-összeadás, egyetlen utasításban a két művelet úgy valósul meg, hogy a logika három operandust beolvas az operandusregiszterből, két operandust összeszoroz, az eredményt és a harmadik operandust továbbítja az összeadóhoz, ami ezeket összeadva állítja elő a végeredményt.

A végrehajtási egységekből és a betöltésekből származó eredmények nem íródnak be azonnal a regiszterfájlba. A program sorrendjének fenntartása érdekében ezek a frissítő pufferekbe kerülnek, ott tárolódnak a véglegesítésig (commit). A SPARC64 V külön frissítési pufferrel rendelkezik a fixpontos és lebegőpontos egységek számára. Mindkettő 32 bejegyzéssel rendelkezik. A fixpontos regisztertár nyolc olvasási és négy írási porttal rendelkezik. Az íróportok fele a fixpontos végrehajtó egységek eredményei számára van fenntartva, a másik felét pedig a betöltések által visszaadott adatok használják. A lebegőpontos frissítő puffer hat olvasóporttal és négy íróporttal rendelkezik.

A véglegesítésre (commit) legkorábban a tízes fokozatban kerülhet sor. A SPARC64 V ciklusonként legfeljebb négy utasítást képes véglegesíteni. A tizenegyedik fokozatban, az eredmények a regiszterfájlba íródnak, ahol a szoftver számára láthatóvá válnak.

Gyorsítótár A SPARC64 V kétszintű gyorsítótár-hierarchiával rendelkezik. Az első szint két gyorsítótárból áll, egy utasítás- és egy adat gyorsítótárból. A második szint egy lapkára integrált egységesített gyorsítótárból áll.

Az 1. szintű (L1) gyorsítótárak kapacitása egyenként . Mindkettő kétutas csoport-asszociatív és 64 bájtos sormérettel rendelkezik. Virtuálisan indexeltek és fizikailag címkézettek. Az utasítás gyorsítótár hozzáférése 256 bites sínen keresztül történik. Az adat gyorsítótárat két 128 bites sínen keresztül éri el a processzor. Az adat-gyorsítótár nyolc bankból áll, amelyek 32 bites (4 bájtos) határokon vannak elválasztva. Ez visszaíró (write-back) politikát alkalmaz. Az adat-gyorsítótár a saját 128 bites egyirányú sínjén keresztül ír az L2 gyorsítótárba.

A másodlagos gyorsítótár kapacitása 1 vagy és a csoport-asszociativitás függ a kapacitástól.

Rendszersín A mikroprocesszornak egy 128 bites rendszersínje van ami -en működik. A sín kétféle üzemmódban működhet, egyadatos (single-data rate, SDR) vagy kétadatos (double-data rate, DDR) átviteli sebességgel, ami vagy csúcssávszélességet eredményez, megfelelően.

Fizikai jellemzők A SPARC64 V 191 millió tranzisztorból áll, amelyből 19 milliót a logikai áramkörök foglalnak el. 0,13 μm-es, nyolcrétegű réz fémezésű, CMOS szilícium-szigetelőn (SOI) eljárással készült. A lapka mérete , lapkaterülete .

Elektromos jellemzők -en a SPARC64 V energiavesztesége (disszipációja) . A SPARC64 V-t használó Fujitsu PrimePower szerverek kissé magasabb feszültséggel táplálják a mikroprocesszort, hogy az -en működhessen. A megnövelt tápfeszültség és működési frekvencia miatt a disszipáció közelítőleg -ra nőtt.

SPARC64 V+

Az SPARC64 V+, kódnevén "Olympus-B", a SPARC64 V továbbfejlesztése. A SPARC64 V-höz képest a fejlesztések közé tartozott a magasabb, –-es órajel és a nagyobb, 3 vagy -os L2 gyorsítótár.

Az első SPARC64 V+, egy -es változat, 2004 szeptemberében került forgalomba a Fujitsu PrimePower 650 és 850 modellekben. 2004 decemberében, egy -es változatot szállítottak a PrimePower 2500-ban. Ezek a változatok -os L2 gyorsítótárral rendelkeznek. 2006 februárjában, négy változatot mutattak be: és -es változatok L2 gyorsítótárral amit a PrimePower 250 és 450 modellekben szállítottak; és és -es változatok L2 gyorsítótárral amit a közép- és csúcskategóriás modellekben szállítottak.

Körülbelül tranzisztort tartalmazott egy , területű lapkán. CMOS folyamattal, tíz rétegű réz fémezéssel készült.

SPARC64 VI

A SPARC64 VI, kódnevén Olympus-C, egy kétmagos processzor ami az SPARC64 V+ modellt követte. Ez volt az első többmagos SPARC64 processzor. A Fujitsu gyártotta -es, 10 rétegű réz fémezésű CMOS szilícium szigetelőn (silicon on insulator, SOI) folyamattal, ami lehetővé tette két mag és egy L2 gyorsítótár egy lapkán történő integrálását. Mindegyik mag egy módosított SPARC64 V+ processzor. Az egyik legfontosabb fejlesztés a kétutas durván szemcsézett többszálas technika (CMT) hozzáadása, amelyet a Fujitsu vertikális többszálas technikának nevezett el (VMT). A CMT-ben az időosztás határozza meg, hogy melyik szál kerül végrehajtásra, vagy ha a szál hosszú késleltetésű műveletet hajt végre, akkor a végrehajtás átkerül a másik szálra. A CMT hozzáadása szükségessé tette a programszámláló megduplázását valamint a vezérlő-, egész- és lebegőpontos regiszterek megkettőzését, így minden szálhoz egy-egy készlet tartozik. Egy lebegőpontos összeolvasztott szorzás-összeadás (FMA) utasítás is hozzáadásra került, elsőként a SPARC processzorokban.

A magok egy -os, lapkára épített egyesített L2 gyorsítótáron osztoznak. Az L2 gyorsítótár 12 utas csoport-asszociatív és sorai 256 bájtosak. A gyorsítótárhoz a hozzáférés két egyirányú sínen történik, egy 256 bites olvasási és egy 128 bites írási sínen keresztül. A SPARC64 VI új rendszersínt kapott, ennek neve Jupiter sín. A SPARC64 VI tranzisztorból áll. A lapka mérete ().

A SPARC64 VI eredetileg 2004 közepén jelent volna meg a Fujitsu PrimePower szervereiben. A PrimePowerek fejlesztését leállították, miután a Fujitsu és a Sun Microsystems 2004 júniusában bejelentette, hogy együttműködnek az Advanced Product Line (APL) nevű új szervereken. Ezeket a szervereket 2006 közepére tervezték bevezetni, de 2007 áprilisára halasztották, amikor is SPARC Enterprise néven mutatták be őket. A SPARC Enterprise gépekben szereplő SPARC64 VI processzorok a bejelentés idejében egy -es változat -es L2 gyorsítótárral, és és -es változatok voltak L2 gyorsítótárral.

SPARC64 VII