SPARC
Дизајнер | Sun Microsystems (acquired by Oracle Corporation)[1][2] |
---|---|
Битови | 64-bit (32 → 64) |
Уведен | 1986 (production) 1987 (shipments) |
Version | V9 (1993) / OSA2017 |
Дизајн | RISC |
Тип | Register-Register |
Encoding | Fixed |
Branching | Condition code |
Ендиан | Bi (Big → Bi) |
Page size | 8 KB (4 KB → 8 KB) |
Extensions | VIS 1.0, 2.0, 3.0, 4.0 |
Open | Yes, and royalty free |
Регистри | |
Општа намена | 31 (G0 = 0; non-global registers use register windows) |
Floating point | 32 (usable as 32 single-precision, 32 double-precision, or 16 quad-precision) |
SPARC (Scalable Processor Architecture) је архитектура скупова инструкција са смањеним скупом инструкција (RISC), коју је првобитно развила компанија Sun Microsystems.[1][2] На његов дизајн је снажно утицао експериментални Berkeley RISC систем развијен почетком 1980-их година. Први пут развијен 1986. године, а објављен 1987. године [2][3] SPARC је био један од најуспешнијих раних комерцијалних RISC система, а његов успех довео је до увођења сличних RISC дизајна од бројних добављача током 1980-их и 1990-их година.
Прва имплементација оригиналне 32-битне архитектуре (SPARC V7) коришћена је у Sun-овим радним станицама Sun-4 и серверским системима, мењајући њихове раније системе Sun-3 засноване на процесорима серије Motorola 68000. SPARC V8 је додао многа побољшања која су била део SuperSPARC серије процесора објављених 1992 године. SPARC V9, објављен 1993. године, представио је 64-битну архитектуру, а први пут је објављен у Sun-овим UltraSPARC процесорима 1995. године. Касније су SPARC процесори коришћени у симетричном мултипроцесингу (SMP) и серверима за неуједначени приступ меморији (CC-NUMA) које су, између осталих, произвели Sun, Solbourne и Fujitsu.
Дизајн је 1989. године предат SPARC међународној трговачкој групи, а од тада су њену архитектуру развијали њени чланови. SPARC International је такође одговоран за лиценцирање и промовисање SPARC архитектуре, управљање заштитним знацима SPARC-а (укључујући SPARC, чији је власник), и за обезбеђивање тестирања усаглашености. SPARC International је имао намеру да развија SPARC архитектуру како би створио већи екосистем; SPARC је лиценциран на неколико произвођача, укључујући Atmel, Bipolar Integrated Technology, Cypress Semiconductor, Fujitsu, Matsushita и Texas Instruments. Захваљујући SPARC International-у, SPARC је потпуно отворен, без власништва и без накнаде.
Од септембра 2017. године, најновији комерцијални high-end SPARC процесори су Fujitsu-ов SPARC64 XII (представљен 2017. године за свој SPARC M12 сервер) и Oracle-ов SPARC M8 представљен у септембру 2017. године за своје врхунске сервере.
У петак, 1. септембра 2017. године, након рунде отпуштања која је започела у Oracle Labs-у у новембру 2016. године, Oracle је прекинуо SPARC дизајн након завршетка M8. Велики део развојне групе језгра процесора у Аустину у Тексасу је отпуштен, као и тимови у Санта Клари у Калифорнији и Бурлингтону у Масачусетсу.[4][5]
"Побољшана" верзија Fujitsu-овог старијег SPARC M12 сервера очекује се 2021. године.[6]
Карактеристике
[уреди | уреди извор]Архитектура SPARC-а била је под великим утицајем ранијих RISC дизајна, укључујући RISC I и II са Калифорнијског универзитета у Берклију и IBM 801 . Ови оригинални RISC дизајни били су минималистички, укључујући што је могуће мање функција или op-кодова и имали су за циљ извршавање инструкција брзином од скоро једне инструкције по циклусу такта. То их је учинило сличним MIPS архитектури на много начина, укључујући недостатак инструкција као што су множење или дељење. Још једна карактеристика SPARC-а под утицајем овог раног RISC покрета је слот за одлагање гранања .
SPARC процесор обично садржи 160 регистара опште намене. Према "Oracle SPARC Architecture 2015" спецификацији, "имплементација може садржати од 72 до 640 64-битних регистара опште намене".[7] У било ком тренутку, само 32 од њих су одмах видљиви софтверу — 8 је скуп глобалних регистара (од којих је један, g0, ожичен на нулу, па се само њих седам могу користити као регистри), а осталих 24 су из стека (гомиле) регистара. Ова 24 регистра формирају оно што се назива прозор регистра а при позиву/повратку функције овај прозор се помера горе-доле по низу регистара. Сваки прозор има 8 локалних регистара и дели 8 регистара са сваким од суседних прозора. Дељени регистри се користе за прослеђивање параметара функција и враћање вредности а локални регистри за чување локалних вредности у позивима функција.
Термин "скалабилан" у SPARC-у долази од чињенице да SPARC спецификација дозвољава имплементацијама да се прошире од уграђених процесора до великих серверских процесора, а сви деле исти скуп основних, непривилегованих инструкција. Један од архитектонских параметара који се може скалирати је број имплементираних прозора регистра; спецификација дозвољава имплементацију од три до 32 прозора, тако да имплементација може изабрати да имплементира свих 32 да би обезбедила максималну ефикасност позивног стека, или да примени само три како би смањила трошкове и сложеност дизајна, или да имплементира неки број између њих. Друге архитектуре, које укључују сличне карактеристике датотека регистра, укључују Intel i960, IA-64 и AMD 29000 .
Архитектура је прошла кроз неколико ревизија. Стекла је функционалност хардверског множења и дељења у Верзији 8. [8][9] 64-битно адресирање и подаци додати су у верзију 9 SPARC спецификације, објављену 1994. године.
У SPARC верзији 8, датотека регистра са покретним зарезом има 16 регистара двоструке тачности. Сваки од њих може се користити као два регистра једноструке тачности, пружајући укупно 32 регистра једноструке тачности. Пар непарних-парних бројева регистара двоструке тачности може се користити као регистар четвороструке тачности, омогућавајући тако 8 регистара четвороструке тачности. SPARC верзија 9 додала је још 16 регистара двоструке тачности (којима се може приступити и као 8 регистара са четвороструком тачношћу), али овим додатним регистрима није могуће приступити као регистрима једноструке тачности. Ниједан SPARC процесор не имплементира операције четвороструке тачности у хардверу од 2004.[10]
Tagged архитектура сабира и одузима инструкције, изводи додавања и одузимања на вредности, проверава да ли су доња два бита оба операнда 0 и извештава преливање (енгл. overflow) ако нису. Ово може бити корисно у реализацији времена извршавања за ML, Lisp, и сличne језикe који би користили tagged integer формат.
Ендијалност (енгл. endianness) 32-битне SPARC V8 архитектуре је потпуно big-endian (BE). 64-битна SPARC V9 архитектура користи big-endian инструкције, али може приступити подацима у big-endian или little-endian редоследу бајтова, изабраним на нивоу инструкција апликације (учитавање-складиштење) или на нивоу меморијске странице (преко MMU подешавања). Ово последње се често користи за приступ подацима са инхерентно little-endian уређаја, попут оних на PCI магистралама.
Историја
[уреди | уреди извор]Дошло је до три велике ревизије архитектуре. Прва објављена верзија била је 32-битна SPARC верзија 7 (V7) 1986. године. SPARC верзија 8 (V8), побољшана дефиниција SPARC архитектуре, објављена је 1990. године. Главне разлике између V7 и V8 биле су додавање инструкција за множење и дељење целобројних бројева и надоградња са 80-битне аритметике са "плутајућом тачком" проширене прецизности на 128-битну "четвороструку прецизност" аритметику. SPARC V8 послужио је као основа за IEEE Стандард 1754-1994, IEEE стандард за 32-битну микропроцесорску архитектуру.
SPARC Верзију 9, 64-битну SPARC архитектуру, објавила је компанија SPARC International 1993. године. Развио га је Архитектонски одбор SPARC-а чији су чланови Amdahl Corporation, Fujitsu, ICL, LSI Logic, Matsushita, Philips, Ross Technology, Sun Microsystems и Texas Instruments . Новије спецификације увек остају усклађене са потпуном SPARC V9 Level 1 спецификацијом.
2002. године, Fujitsu и Sun објавили су SPARC Joint Programming Specification 1 (JPS1) која описује процесорске функције које су идентично имплементиране у процесоре обе компаније („Заједништво“). Први процесори који су у складу са JPS1 били су UltraSPARC III компаније Sun и SPARC53 V компаније Fujitsu. Функционалности које нису обухваћене JPS1 спецификацијом документоване су за сваки процесор у "Додацима имплементације".
Крајем 2003. године објављен је JPS2 који подржава вишејезгрене процесоре. Први процесори у складу са JPS2 били су UltraSPARC IV компаније Sun и SPARC64 VI компаније Fujitsu.
Почетком 2006. године Sun је објавио проширену спецификацију архитектуре, UltraSPARC Architecture 2005 . Ово укључује не само непривилеговане и већину привилегованих делова SPARC V9, већ и сва архитектонска проширења развијена кроз генерације процесора UltraSPARC III, IV, IV+, као и CMT проширења почевши од имплементације UltraSPARC T1 :
- проширења скупа инструкција VIS 1 и VIS 2 и придружени GSR регистар
- више нивоа глобалних регистара, које контролише GL регистар
- Sun-ова 64-битна MMU архитектура
- привилеговане инструкције ALLCLEAN, OTHERW, NORMALW и INVALW
- приступ регистру VER је сада хиперпривилегован
- SIR инструкција је сада хиперпривилегована
Године 2007. Sun је објавио ажурирану спецификацију UltraSPARC Architecture 2007, у којој је имплементација UltraSPARC T2 састављена.
У августу 2012. године, Oracle корпорација је ставила на располагање нову спецификацију, Oracle SPARC Architecture 2011, која поред свеукупног ажурирања референце, додаје проширења скупа инструкција VIS 3 и хиперпривилеговани режим у спецификацију за 2007. годину.
У октобру 2015. године, Oracle је објавио SPARC M7, први процесор заснован на новој спецификацији Oracle SPARC Architecture 2015. [7][11] Ова ревизија укључује проширења скупа инструкција VIS 4 и хардверски подржано шифровање и меморију заштићену силиконом (SSM).[12]
SPARC архитектура је обезбедила континуирану бинарну компатибилност апликације од прве имплементације SPARC V7 1987. године кроз имплементације Sun UltraSPARC архитектуре.
Међу различитим имплементацијама SPARC-а, Sun-ови SuperSPARC и UltraSPARC-I били су веома популарни и коришћени су као референтни системи за SPEC CPU95 и CPU2000 мерила. 296-MHz UltraSPARC-II је референтни систем за мерење SPEC CPU2006.
Архитектура
[уреди | уреди извор]SPARC је архитектура учитавања/складиштења (која је позната и као регистар-регистар архитектура); осим упутстава за учитавање/складиштење која се користе за приступ меморији, све инструкције раде на регистрима.
Регистри
[уреди | уреди извор]Архитектура SPARC има шему прозора регистра која се преклапа. У сваком тренутку су видљива 32 регистра опште намене. Варијабла тренутног показивача прозора (Current Window Pointer - CWP) у хардверу указује на постављене струје. Укупна величина датотеке регистра није део архитектуре, што омогућава додавање више регистара како се технологија побољшава, до највише 32 прозора у SPARC v7 и v8 јер је CWP величине 5 бита и део је PSR регистра.
У SPARC v7 и v8 CWP ће обично бити смањен инструкцијом SAVE (користи је инструкција SAVE током позива процедуре за отварање новог оквира стека и пребацивање прозора регистра) или ће се повећати наредбом RESTORE (пребацивање на позив пре враћање из процедуре). Trap догађаји (прекиди, изузеци или TRAP инструкције) и RETT инструкције (враћање из замки) такође мењају CWP. За SPARC-V9, CWP регистар се смањује током инструкције RESTORE, а повећава се током инструкције SAVE. Ово је супротно од PSR-а. Понашање CWP-а у SPARC-V8. Ова промена нема утицаја на непривилегована упутства.
Група регистра | Mnemonic | Адреса регистра |
---|---|---|
global | G0-G7 | R[0]-R[7] |
out | O0-O7 | R[8]-R[15] |
local | L0-L7 | R[16]-R[23] |
in | I0-I7 | R[24]-R[31] |
SPARC регистри су приказани на горњој слици.
Формати инструкција
[уреди | уреди извор]Све SPARC инструкције заузимају пуну 32-битну реч, и почињу на граници речи. Користе се 4 формата, који се разликују по прва 2 бита. Све аритметичке и логичке инструкције имају 2 изворна и 1 одредишни операнд.
SETHI формат инструкције копира свој 22-битни непосредни операнд у 22 бита високог реда било ког наведеног регистра, и поставља сваки од десет битова нижег реда на 0.
Формат ALU register, оба извора су регистри; формат ALU immediate, један извор је регистар, а један је константа у опсегу од -4096 до +4095. Бит 13 бира један од њих. У оба случаја, одредиште је увек регистар.
Упутства за формат гране раде контролне преносе или условне гране. Поља icc или fcc одређују која је врста гране. Поље за померање од 22 бита даје релативну адресу циља, и то речима, тако да условне гране могу да иду напред или назад до 8 мегабајта. Бит ANNUL (A) се користи за уклањање неких слотова за кашњење. Ако је 0 у условној грани, онда се слот за кашњење извршава као и обично. Ако је 1, онда се слот за кашњење извршава само ако се узме грана. Ако се грана не узме, инструкција која следи условну грану се прескаче.
Инструкција CALL користи 30-битни помак речи за рачунар. Ова вредност је довољна да дохвати било коју инструкцију унутар 4 гигабајта од позиваоца или целог адресара. Упутство CALL депозитује повратну адресу у регистар R15 познат и као излазни регистар O7 .
Као и аритметичке инструкције, архитектура SPARC користи два различита формата за учитавање и складиштење инструкција. Први формат се користи за инструкције које користе један или два регистра као ефективну адресу. Други формат се користи за инструкције које користе целобројну константу као ефективну адресу.
Тип | Бит | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
S | 00 | RD | 100 | Непосредна константа 22 бита | ||||||||||||||||||||||||||||
I Branch формат | 00 | А. | icc | 010 | Константа помака 22 бита | |||||||||||||||||||||||||||
F Branch ормат | 00 | А. | fcc | 110 | Константа помака 22 бита | |||||||||||||||||||||||||||
CALL disp | 01 | ПЦ-релативно померање | ||||||||||||||||||||||||||||||
Аритметички регистар | 10 | RD | opcode | RS 1 | 0 | 0 | RS 2 | |||||||||||||||||||||||||
Аритметика непосредна (immediate) | 10 | RD | opcode | RS 1 | 1 | Непосредна константа 13 бита | ||||||||||||||||||||||||||
FPU | 10 | FD | 110100/110101 | FS 1 | opf | FS 2 | ||||||||||||||||||||||||||
LD/ST регистар | 11 | RD | opcode | RS 1 | 0 | 0 | RS 2 | |||||||||||||||||||||||||
LD/ST
непосредна (immediate) |
11 | RD | opcode | RS 1 | 1 | Непосредна константа 13 бита |
Већина аритметичких инструкција долази у пару с једном верзијом која поставља битове кода стања NZVC, а друга не. Ово је тако да компајлер има начин да премешта инструкције приликом покушаја попуњавања слотова за одлагање.
SPARC v7 нема инструкције за множење или дељење, али има MULSCC, који ради један корак тестирања множења за један бит и условно додавајући множење у производ. То је зато што MULSCC може да заврши један циклус такта држећи се RISC филозофије.
Имплементације
[уреди | уреди извор]Name (codename) | Model | Frequency (MHz) | Arch. version | Year | Total threads | Process (nm) | Transistors (millions) | Die size (mm²) | IO pins | Power (W) | Voltage (V) | L1 Dcache (KB) | L1 Icache (KB) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC MB86900 | Fujitsu[1][2][3] | 14.28–33 | V7 | 1986 | 1×1=1 | 1300 | 0.11 | — | 256 | — | — | 0–128 (unified) | |
SPARC | Various | 14.28–40 | V7 | 1989–1992 | 1×1=1 | 800–1300 | ~0.1–1.8 | — | 160–256 | — | — | 0–128 (unified) | |
MN10501 (KAP) | Solbourne Computer,
Matsushita[13] |
33-36 | V8 | 1990-1991 | 1x1=1 | — | 1.0[14] | — | — | — | — | 8 | 8 |
microSPARC I (Tsunami) | TI TMS390S10 | 40–50 | V8 | 1992 | 1×1=1 | 800 | 0.8 | 225? | 288 | 2.5 | 5 | 2 | 4 |
SuperSPARC I (Viking) | TI TMX390Z50 / Sun STP1020 | 33–60 | V8 | 1992 | 1×1=1 | 800 | 3.1 | — | 293 | 14.3 | 5 | 16 | 20 |
SPARClite | Fujitsu MB8683x | 66–108 | V8E | 1992 | 1×1=1 | — | — | — | 144, 176 | — | 2.5/3.3–5.0 V, 2.5–3.3 V | 1, 2, 8, 16 | 1, 2, 8, 16 |
hyperSPARC (Colorado 1) | Ross RT620A | 40–90 | V8 | 1993 | 1×1=1 | 500 | 1.5 | — | — | — | 5? | 0 | 8 |
microSPARC II (Swift) | Fujitsu MB86904 / Sun STP1012 | 60–125 | V8 | 1994 | 1×1=1 | 500 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 |
hyperSPARC (Colorado 2) | Ross RT620B | 90–125 | V8 | 1994 | 1×1=1 | 400 | 1.5 | — | — | — | 3.3 | 0 | 8 |
SuperSPARC II (Voyager) | Sun STP1021 | 75–90 | V8 | 1994 | 1×1=1 | 800 | 3.1 | 299 | — | 16 | — | 16 | 20 |
hyperSPARC (Colorado 3) | Ross RT620C | 125–166 | V8 | 1995 | 1×1=1 | 350 | 1.5 | — | — | — | 3.3 | 0 | 8 |
TurboSPARC | Fujitsu MB86907 | 160–180 | V8 | 1996 | 1×1=1 | 350 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 |
UltraSPARC (Spitfire) | Sun STP1030 | 143–167 | V9 | 1995 | 1×1=1 | 470 | 3.8 | 315 | 521 | 30 | 3.3 | 16 | 16 |
UltraSPARC (Hornet) | Sun STP1030 | 200 | V9 | 1995 | 1×1=1 | 420 | 5.2 | 265 | 521 | — | 3.3 | 16 | 16 |
hyperSPARC (Colorado 4) | Ross RT620D | 180–200 | V8 | 1996 | 1×1=1 | 350 | 1.7 | — | — | — | 3.3 | 16 | 16 |
SPARC64 | Fujitsu (HAL) | 101–118 | V9 | 1995 | 1×1=1 | 400 | — | Multichip | 286 | 50 | 3.8 | 128 | 128 |
SPARC64 II | Fujitsu (HAL) | 141–161 | V9 | 1996 | 1×1=1 | 350 | — | Multichip | 286 | 64 | 3.3 | 128 | 128 |
SPARC64 III | Fujitsu (HAL) MBCS70301 | 250–330 | V9 | 1998 | 1×1=1 | 240 | 17.6 | 240 | — | — | 2.5 | 64 | 64 |
UltraSPARC IIs (Blackbird) | Sun STP1031 | 250–400 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 149 | 521 | 25 | 2.5 | 16 | 16 |
UltraSPARC IIs (Sapphire-Black) | Sun STP1032 / STP1034 | 360–480 | V9 | 1999 | 1×1=1 | 250 | 5.4 | 126 | 521 | 21 | 1.9 | 16 | 16 |
UltraSPARC IIi (Sabre) | Sun SME1040 | 270–360 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 |
UltraSPARC IIi (Sapphire-Red) | Sun SME1430 | 333–480 | V9 | 1998 | 1×1=1 | 250 | 5.4 | — | 587 | 21 | 1.9 | 16 | 16 |
UltraSPARC IIe (Hummingbird) | Sun SME1701 | 400–500 | V9 | 1999 | 1×1=1 | 180 Al | — | — | 370 | 13 | 1.5–1.7 | 16 | 16 |
UltraSPARC IIi (IIe+) (Phantom) | Sun SME1532 | 550–650 | V9 | 2000 | 1×1=1 | 180 Cu | — | — | 370 | 17.6 | 1.7 | 16 | 16 |
SPARC64 GP | Fujitsu SFCB81147 | 400–563 | V9 | 2000 | 1×1=1 | 180 | 30.2 | 217 | — | — | 1.8 | 128 | 128 |
SPARC64 GP | -- | 600–810 | V9 | — | 1×1=1 | 150 | 30.2 | — | — | — | 1.5 | 128 | 128 |
SPARC64 IV | Fujitsu MBCS80523 | 450–810 | V9 | 2000 | 1×1=1 | 130 | — | — | — | — | — | 128 | 128 |
UltraSPARC III (Cheetah) | Sun SME1050 | 600 | JPS1 | 2001 | 1×1=1 | 180 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 |
UltraSPARC III (Cheetah) | Sun SME1052 | 750–900 | JPS1 | 2001 | 1×1=1 | 130 Al | 29 | — | 1368 | — | 1.6 | 64 | 32 |
UltraSPARC III Cu (Cheetah+) | Sun SME1056 | 900–1200 | JPS1 | 2001 | 1×1=1 | 130 Cu | 29 | 232 | 1368 | 50 | 1.6 | 64 | 32 |
UltraSPARC IIIi (Jalapeño) | Sun SME1603 | 1064–1593 | JPS1 | 2003 | 1×1=1 | 130 | 87.5 | 206 | 959 | 52 | 1.3 | 64 | 32 |
SPARC64 V (Zeus) | Fujitsu | 1100–1350 | JPS1 | 2003 | 1×1=1 | 130 | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 |
SPARC64 V+ (Olympus-B) | Fujitsu | 1650–2160 | JPS1 | 2004 | 1×1=1 | 90 | 400 | 297 | 279 | 65 | 1 | 128 | 128 |
UltraSPARC IV (Jaguar) | Sun SME1167 | 1050–1350 | JPS2 | 2004 | 1×2=2 | 130 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 |
UltraSPARC IV+ (Panther) | Sun SME1167A | 1500–2100 | JPS2 | 2005 | 1×2=2 | 90 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 |
UltraSPARC T1 (Niagara) | Sun SME1905 | 1000–1400 | UA2005 | 2005 | 4×8=32 | 90 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 |
SPARC64 VI (Olympus-C) | Fujitsu | 2150–2400 | JPS2 | 2007 | 2×2=4 | 90 | 540 | 422 | — | 120–150 | 1.1 | 128×2 | 128×2 |
UltraSPARC T2 (Niagara 2) | Sun SME1908A | 1000–1600 | UA2007 | 2007 | 8×8=64 | 65 | 503 | 342 | 1831 | 95 | 1.1–1.5 | 8 | 16 |
UltraSPARC T2 Plus (Victoria Falls) | Sun SME1910A | 1200–1600 | UA2007 | 2008 | 8×8=64 | 65 | 503 | 342 | 1831 | — | — | 8 | 16 |
SPARC64 VII (Jupiter) | Fujitsu | 2400–2880 | JPS2 | 2008 | 2×4=8 | 65 | 600 | 445 | — | 150 | — | 64×4 | 64×4 |
UltraSPARC "RK" (Rock) | Sun SME1832 | 2300 | ???? | canceled | 2×16=32 | 65 | ? | 396 | 2326 | ? | ? | 32 | 32 |
SPARC64 VIIIfx (Venus) | Fujitsu | 2000 | JPS2 / HPC-ACE | 2009 | 1×8=8 | 45 | 760 | 513 | 1271 | 58 | ? | 32×8 | 32×8 |
LEON2FT | Atmel AT697F | 100 | V8 | 2009 | 1×1=1 | 180 | — | — | 196 | 1 | 1.8/3.3 | 16 | 32 |
SPARC T3 (Rainbow Falls) | Oracle/Sun | 1650 | UA2007 | 2010 | 8×16=128 | 40 | ???? | 371 | ? | 139 | ? | 8 | 16 |
Galaxy FT-1500 | NUDT (China) | 1800 | UA2007? | 201? | 8×16=128 | 40 | ???? | ??? | ? | 65 | ? | 16×16 | 16×16 |
SPARC64 VII+ (Jupiter-E or M3) | Fujitsu | 2667–3000 | JPS2 | 2010 | 2×4=8 | 65 | — | — | — | 160 | — | 64×4 | 64×4 |
LEON3FT | Cobham Gaisler GR712RC | 100 | V8E | 2011 | 1×2=2 | 180 | — | — | — | 1.5 | 1.8/3.3 | 4x4Kb | 4x4Kb |
R1000 | MCST (Russia) | 1000 | JPS2 | 2011 | 1×4=4 | 90 | 180 | 128 | — | 15 | 1, 1.8, 2.5 | 32 | 16 |
SPARC T4 (Yosemite Falls) | Oracle | 2850–3000 | OSA2011 | 2011 | 8×8=64 | 40 | 855 | 403 | ? | 240 | ? | 16×8 | 16×8 |
SPARC64 IXfx[15] | Fujitsu | 1850 | JPS2 / HPC-ACE | 2012 | 1x16=16 | 40 | 1870 | 484 | 1442 | 110 | ? | 32×16 | 32×16 |
SPARC64 X (Athena)[16] | Fujitsu | 2800 | OSA2011 / HPC-ACE | 2012 | 2×16=32 | 28 | 2950 | 587.5 | 1500 | 270 | ? | 64×16 | 64×16 |
SPARC T5 | Oracle | 3600 | OSA2011 | 2013 | 8×16=128 | 28 | 1500 | 478 | ? | ? | ? | 16×16 | 16×16 |
SPARC M5[17] | Oracle | 3600 | OSA2011 | 2013 | 8×6=48 | 28 | 3900 | 511 | ? | ? | ? | 16×6 | 16×6 |
SPARC M6[18] | Oracle | 3600 | OSA2011 | 2013 | 8×12=96 | 28 | 4270 | 643 | ? | ? | ? | 16×12 | 16×12 |
SPARC64 X+ (Athena+)[19] | Fujitsu | 3200–3700 | OSA2011 / HPC-ACE | 2014 | 2×16=32 | 28 | 2990 | 600 | 1500 | 392 | ? | 64×16 | 64×16 |
SPARC64 XIfx[20] | Fujitsu | 2200 | JPS2 / HPC-ACE2 | 2014 | 1×(32+2)=34 | 20 | 3750 | ? | 1001 | ? | ? | 64×34 | 64×34 |
SPARC M7[21][22] | Oracle | 4133 | OSA2015 | 2015 | 8×32=256 | 20 | >10,000 | ? | ? | ? | ? | 16×32 | 16×32 |
SPARC S7[23][24] | Oracle | 4270 | OSA2015 | 2016 | 8×8=64 | 20 | ???? | ? | ? | ? | ? | 16×8 | 16×8 |
SPARC64 XII[25] | Fujitsu | 4250 | OSA201? / HPC-ACE | 2017 | 8×12=96 | 20 | 5500 | 795 | 1860 | ? | ? | 64×12 | 64×12 |
SPARC M8[26][27] | Oracle | 5000 | OSA2017 | 2017 | 8×32=256 | 20 | ? | ? | ? | ? | ? | 32×32 | 16×32 |
LEON4 | Cobham Gaisler GR740 | 250 | V8E | 2017 | 1×4=4 | 32 | — | — | — | — | 1.2/2.5/3.3 | 4x4 | 4x4 |
LEON5 | Cobham Gaisler | — | V8E | 2019 | ? | ? | — | — | — | — | — | ? | ? |
Name (codename) | Model | Frequency (MHz) | Arch. version | Year | Total threads[note 1] | Process (nm) | Transistors (millions) | Die size (mm²) | IO pins | Power (W) | Voltage (V) | L1 Dcache (KB) | L1 Icache (KB) |
Подршка за оперативни систем
[уреди | уреди извор]SPARC машине су генерално користиле Sun-ов SunOS, Solaris или OpenSolaris укључујући деривате illumos и OpenIndiana, али су такође коришћени и други оперативни системи, као што су NeXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD и Linux .
1993. Intergraph је најавио порт Windows NT у архитектури SPARC али је касније отказан.
У октобру 2015. године, Oracle је најавио „Linux за референтну платформу SPARC“.
Имплементације отвореног кода
[уреди | уреди извор]Постоји неколико потпуно отворених имплементација SPARC архитектуре:
- LEON, 32-битна SPARC V8 имплементација отпорна на зрачење, дизајнирана посебно за употребу у свемиру. Изворни код је написан на VHDL-у и лиценциран је под GPL-ом .
- OpenSPARC T1, објављен 2006. године, 64-битна, 32-нитна имплементација у складу са UltraSPARC архитектуром 2005 и SPARC верзијом 9 (ниво 1). Изворни код је написан у верилогу и лиценциран је под многим лиценцама. Већина изворног кода OpenSPARC T1 лиценцирана је под GPL-ом. Извор заснован на постојећим пројектима отвореног кода и даље ће бити лиценциран према тренутним лиценцама. Бинарни програми лиценцирани су према уговору о лиценцирању бинарног софтвера.
- S1, 64-битно процесорско језгро компатибилно са Wishbone-ом засновано на OpenSPARC T1 дизајну. То је једно језгро UltraSPARC v9 способно за 4-смерни SMT. Као и T1, изворни код је лиценциран под GPL-ом.
- OpenSPARC T2, објављен 2008. године, 64-битна, 64-нитна имплементација у складу са UltraSPARC архитектуром 2007 и SPARC верзијом 9 (ниво 1). Изворни код је написан у верилогу и лиценциран је под многим лиценцама. Већина изворног кода OpenSPARC T2 лиценцирана је под GPL-ом. Извор заснован на постојећим пројектима отвореног кода и даље ће бити лиценциран према тренутним лиценцама. Бинарни програми су лиценцирани на основу Уговора о лиценцирању бинарног софтвера.
Такође постоји и симулатор отвореног кода за SPARC архитектуру:
- RAMP Gold Архивирано на сајту Wayback Machine (22. август 2021), 32-битна, 64-нитна SPARC верзија 8, дизајнирана за симулацију архитектуре засноване на FPGA. RAMP Gold је написан у ~36.000 редова SystemVerilog-а и лиценциран под BSD лиценцама .
Суперкомпјутери
[уреди | уреди извор]За HPC оптерећења Fujitsu гради специјализоване SPARC64 fx процесоре са новим скупом проширења инструкција, названим HPC-ACE (рачунарство високих перформанси-аритметичка рачунарска проширења).
Fujitsu-ов K рачунар је рангиран на 1. месту на TOP500 листама из јуна 2011. и новембра 2011. године. Комбинује 88.128 SPARC64-ова VIIIfx процесора, сваки са осам језгара, за укупно 705.024 језгра - скоро двоструко више него било који други систем у TOP500 у то време. K компјутер је био моћнији од следећих пет система на листи заједно и имао је највећи однос перформанси према снази од свих суперрачунарских система. Такође је рангиран као бр. 6 на листи Green500 јуна 2011. године, са резултатом 824,56 MFLOPS/W. У новембру 2012. године у издању TOP500, рачунар К је рангиран на бр. 3, користећи далеко највећу моћ од прве три. Заузео је место бр. 85 на одговарајућем издању Green500. Новији HPC процесори, IXfx и XIfx, укључени су у недавним PRIMEHPC FX10 и FX100 суперкомпјутерима.
Tianhe-2 (TOP500 бр. 1 од новембра 2014) има бројне чворове са процесорима на бази Galaxy FT-1500 базираним на OpenSPARC развијеним у Кини. Међутим, ти процесори нису допринели LINPACK резултату.[28]
Види још
[уреди | уреди извор]- ERC32 - засновано на SPARC V7 спецификацији
- Ross Technology, Inc. - развијач микропроцесора SPARC током 1980-их и 1990-их година
- Sparcle - модификовани SPARC са подршком за више процеса који користи пројекат MIT Alewife
- LEON - свемирски SPARC V8 процесор.
- R1000 -руски четворојезгарни микропроцесор заснован на SPARC V9 спецификацији
- Galaxy FT-1500 - кинески 16-језгарни процесор заснован на OpenSPARC-у
Референце
[уреди | уреди извор]- ^ а б в „Fujitsu to take ARM into the realm of Super”. The CPU Shack Museum. 21. 6. 2016. Приступљено 30. 6. 2019.
- ^ а б в г „Timeline”. SPARC International. Приступљено 30. 6. 2019.
- ^ а б „Fujitsu SPARC”. cpu-collection.de. Приступљено 30. 6. 2019.
- ^ Steven J. Vaughan-Nichols (5. 9. 2017). „Sun set: Oracle closes down last Sun product lines”. ZDNet.
- ^ Shaun Nichols (31. 8. 2017). „Oracle finally decides to stop prolonging the inevitable, begins hardware layoffs”. The Register.
- ^ „Roadmap : Fujitsu Global”. www.fujitsu.com. Приступљено 2021-03-28.
- ^ а б „Oracle SPARC Architecture 2015: One Architecture ... Multiple Innovative Implementations” (PDF). 12. 1. 2016. Приступљено 13. 6. 2016. „IMPL. DEP. #2-V8: An Oracle SPARC Architecture implementation may contain from 72 to 640 general-purpose 64-bit R registers. This corresponds to a grouping of the registers into MAXPGL + 1 sets of global R registers plus a circular stack of N_REG_WINDOWS sets of 16 registers each, known as register windows. The number of register windows present (N_REG_WINDOWS) is implementation dependent, within the range of 3 to 32 (inclusive).”
- ^ Грешка код цитирања: Неважећа ознака
<ref>
; нема текста за референце под именомgcc-doc
. - ^ Грешка код цитирања: Неважећа ознака
<ref>
; нема текста за референце под именомosnews-gcc
. - ^ „SPARC Behavior and Implementation”. Numerical Computation Guide – Sun Studio 10. Sun Microsystems, Inc. 2004. Приступљено 24. 9. 2011. „There are four situations, however, when the hardware will not successfully complete a floating-point instruction: ... The instruction is not implemented by the hardware (such as ... quad-precision instructions on any SPARC FPU).”
- ^ John Soat. „SPARC M7 Innovation”. Oracle web site. Oracle Corporation. Приступљено 13. 10. 2015.
- ^ „Software in Silicon Cloud - Oracle”. www.oracle.com.
- ^ „Floodgap Retrobits presents the Solbourne Solace: a shrine to the forgotten SPARC”. www.floodgap.com. Приступљено 2020-01-14.
- ^ Sager, D.; Hinton, G.; Upton, M.; Chappell, T.; Fletcher, T.D.; Samaan, S.; Murray, R. (2001). „A 0.18 μm CMOS IA32 microprocessor with a 4 GHz integer execution unit”. 2001 IEEE International Solid-State Circuits Conference. Digest of Technical Papers. ISSCC (Cat. No.01CH37177). San Francisco, CA, USA: IEEE: 324—325. ISBN 978-0-7803-6608-4. doi:10.1109/ISSCC.2001.912658.
- ^ „Ixfx Download” (PDF). fujitsu.com.
- ^ „Images of SPARC64” (PDF). fujitsu.com. Архивирано из оригинала (PDF) 22. 04. 2016. г. Приступљено 29. 8. 2017.
- ^ „Oracle Products” (PDF). oracle.com. Приступљено 29. 8. 2017.
- ^ „Oracle SPARC products” (PDF). oracle.com. Приступљено 29. 8. 2017.
- ^ „Fujitsu Presentation pdf” (PDF). fujitsu.com. Приступљено 29. 8. 2017.
- ^ „Fujitsu Global Images” (PDF). fujitsu.com. Архивирано из оригинала (PDF) 18. 5. 2015. г. Приступљено 29. 8. 2017.
- ^ „M7: Next Generation SPARC. Hotchips 26” (PDF). swisdev.oracle.com. Приступљено 12. 8. 2014.
- ^ „Oracle's SPARC T7 and SPARC M7 Server Architecture” (PDF). oracle.com. Приступљено 10. 10. 2015.
- ^ „Hot Chips – August 23–25, 2015 – Conf. Day1 – Oracle's Sonoma Processor: Advanced low-cost SPARC processor for enterprise workloads by Basant Vinaik and Rahoul Puri” (PDF). hotchips.org. Архивирано из оригинала (PDF) 07. 08. 2020. г. Приступљено 23. 8. 2015.
- ^ „Blueprints revealed: Oracle crams Sparc M7 and InfiniBand into cheaper 'Sonoma' chips”. theregister.co.uk. Приступљено 29. 8. 2017.
- ^ „Documents at Fujitsu” (PDF). fujitsu.com. Приступљено 29. 8. 2017.
- ^ „Oracle's New SPARC Systems Deliver 2-7x Better Performance, Security Capabilities, and Efficiency than Intel-based Systems”. oracle.com. Приступљено 18. 9. 2017.
- ^ „SPARC M8 Processor” (PDF). oracle.com. Приступљено 18. 9. 2017.
- ^ Thibodeau, Patrick (4. 11. 2010), U.S. says China building 'entirely indigenous' supercomputer, Computerworld, Архивирано из оригинала 11. 10. 2012. г., Приступљено 28. 8. 2017
Спољашње везе
[уреди | уреди извор]- SPARC International, Inc.
- Oracle SPARC Processor Documentation на сајту Wayback Machine (архивирано октобар 13, 2019)
- SPARC технички документи
- Спецификације OpenSPARC архитектуре
- Референтни материјали за Hypervisor/Sun4v
- Fujitsu SPARC64 V, VI, VII, VIIIfx, IXfx проширења и X / X+ спецификације
- Sun – UltraSPARC Processors Documentation на сајту Wayback Machine (архивирано јануар 14, 2010)
- Sun – FOSS Open Hardware Documentation на сајту Wayback Machine (архивирано децембар 9, 2011)
- OpenSPARC на сајту Wayback Machine (архивирано фебруар 27, 2011)
- Oracle SPARC and Solaris Public Roadmap на сајту Wayback Machine (архивирано мај 25, 2018)
- Fujitsu SPARC Roadmap
- Слике и описи процесора SPARC
- Груби водич за MBus модуле (SuperSPARC, HyperSPARC)
- SPARC Version 9, lecture by David Ditzel на сајту YouTube
- SPARC на сајту Curlie (језик: енглески)
Грешка код цитирања: Постоје ознаке <ref>
за групу с именом „note“, али нема одговарајуће ознаке <references group="note"/>