SPARC

SPARC (на английски: Scalable Processor Architecture, SPARC) – е РИСК архитектура, разработена през 1985 година от Sun Microsystems.

SPARC
Информация
Представяне1987
SPARC в Общомедия

„SPARC“ е регистрирана търговска марка на „SPARC International, Inc.“, организация основана през 1989 г., за да представи „SPARC“ архитектурата, да отговаря за търговската марка „SPARC“ и да извършва изпитателни тестове. Оригиналната 32-битова „SPARC“ архитектура първоначално била конструирана и използвана в „Sun-4“ работна станция и сървърна система, заменила предишната „Sun-3“ система, базирана на процесорите от серия „Motorola 68000“. По-късно „SPARC“ процесорите били използвани в „SMP“ и „CC-NUMA“ сървъри, произведени от „Sun“, „Solbourne“, „Fujitsu“ и други компании, и впоследствие проектирани за 64-битови системи.

„SPARC International“ е създадена с цел „SPARC“ архитектурата да се разработва като „свободен хардуер“, да се привлекат повече производители, които да съдействат за дизайна на архитектурата. Право за извършване на такава дейност е било дадено на няколко компании, измежду които „Texas Instruments“, „Atmel“, „Cypress Semiconductor“ и „Fujitsu“. Като резултат от дейността на SPARC International, SPARC архитектурата придобива статут на непатентован „свободен хардуер“, с право на имплементиране без заплащане на роялти.

През март 2006 г., Sun Microsystems оповестяват като „свободен хардуер“ цялостния дизайн и техническа спецификация на техния микропроцесор UltraSPARC T1 под името OpenSPARC T1. През 2007 г. е публикувана като „свободен хардуер“ и техническата спецификация на следващия модел от серията микропроцесори, UltraSPARC T2, под името OpenSPARC T2. Публикацията включва не само дизайнерския изходен код на процесорите, но и инструменти за симулация, изходен код за монитори на виртуални машини и други полезни инструменти.

Най-актуални варианти на СПАРК процесорите са следните модели произведени от „Fujitsu“: 34-ядрения SPARC64 XIfx (2.2 GHz, 1.1 терафлопс) лансиран през 2015 г. и използван в суперкомпютъра PRIMEHPC FX100; 16-ядрения SPARC64 X+ (3.2 GHz), произведен през 2014 г. През 2015 г. е произведен и 32-ядрения SPARC M7 (4.133 GHz) от Оракъл Корпорация

Характеристики

SPARC архитектурата бива силно повлияна от процесорните дизайни RISC(I и II). Първоначалните RISC дизайни са включвали колкото може по-малко характеристики, с цел да изпълняват инструкции със скорост една инструкция за тактов сигнал. Това ги прави много сходни с MIPS архитектурата, като например липсата на инструкции за умножение и деление.

SPARC процесорите обикновено съдържат 160 регистъра за общо предназначение. Само 32 регистъра обаче са видими за софтуера – 8 от тях се използват за глобални регистри, а другите 24 образуват стек от регистри. Тези 24 регистри образуват така нарачения ‘’прозорец от регистри’’, който при операции на извикване и връщане се движи по стека от регистри. Всеки прозорец има 8 локални и 8 съседни регистри. Съседните регистри се използват за подаване на параметри и връщане на стойности. Локалните регистри се използват за запазване на локални стойности, докато има извикване на функции.

От името СПАРК (на английски: SPARC) буквата S е съкращение от Scalable (бълг. „мащабируем“). Това е така, защото SPARC спецификацията позволява имплементация, както на малки вградени процесори, така и на големи сървърни процесори, всички споделящи едно и също ядро с набор от инструкции. Един от архитектурните параметри, който може да намалява или да се увеличава, е броят на „прозорците от регистри“. Този брой може да варира от 3 до 32. Например при избор на 32 броя, ще се получи максимална ефективност на стека, а при избор на 3 броя ще се намали, както цената, така и сложността на дизайна.

Архитектурата е преминала през множество видоизменения. Във версия 8 са имплементирани инструкции за умножение и деление. През 1994 година е публикувана 64-битовата архитектура (за адреси и данни) към версия 9 на SPARC спецификацията.

При „SPARC версия 8“, регистрационния файл за плаваща запетая придобива 16 регистри за двойна точност. Всеки от тях може да бъде използван като регистър с два единично-прецизни регистри, осигуряващ 32 регистри с единична точност. Една двойка от четно-нечетни числа от двойно-прецизен регистър може да се използва като четири-ядрен регистър за прецизност, като по този начин позволява 8 регистри с четвъртична точност. „SPARC версия 9“ добавя още 16 регистри с двойна точност (които също могат да бъдат достъпни като 8 регистри с четвъртична точност), такива регистри обаче не могат да бъдат достъпни, както от единично-прецизните регистри. От 2004 година нито един SPARC процесор не изпълнява операции с четворна точност.

Характерна е употребата на тагове (маркери) при инструкциите за умножение и деление, като по този начин се проверява дали крайните битове на двете операнди са нула. Ако това условие е неистина, докладва се „препълване на стека“. Това е от полза при имплементирането на ML, Lisp и други подобни езици, които могат да използват формат за маркиране на числа.

Порядъкът на една 32-битовата „SPARC V8“ архитектура е от тип „big-endian“ (от старши към младши). В 64-битовата „SPARC V9“ архитектурата са имплементирани също инструкции от тип „big-endian“, но при достъпа до паметта може да се приложи както „big-endian“, така и „little-endian“ (от младши към старши) формат.

История

SPARC архитектурата е изградена на основата на три версии. Първата публикувана версия е 32-битовата „SPARC Version 7 (V7)“, през 1986 година. „SPARC Версия 8 (V8)“, подобрена характеристика на SPARC за изграждането на компютърните системи, е издадена през 1990 г. Основните разлики между „V7“ и „V8“ са добавянето на инструкции за умножение и деление, промяна на точността на аритметиката с плаваща запетая от 80-битова към 128-битова точност. „SPARC V8“ служи като основа за „IEEE Standard 1754 – 1994“, IEEE стандарт за 32-битова микропроцесорна архитектура.

„SPARC Версия 9 (V9)“, 64-битова версия на SPARC архитектурата, е публикувана от SPARC International през 1993 г. Тя е разработена от Комитета за изграждане на компютърни системи SPARC, състоящ се от Amdahl Corporation, Fujitsu, ICL, LSI Logic, Matsushita, Philips, Ross Technology, Sun Microsystems и Texas Instruments. Всички последващи спецификации на SPARC архитектурата се придържат към основната спецификация на „SPARC V9“ („SPARC V9 Level 1“).

През 2002 г. е издадена съвместно разработената от Fujitsu и Sun „SPARC Joint Programming Specification 1“ (JPS1), която описва процесорни функции, имплементирани в процесорите и на двете компании. Първите процесори, съответстващи на JPS1 били UltraSPARC III от Sun и SPARC64 V от Fujitsu. Функционалности, които не покриват JPS1 са документирани за всеки процесор в „Implementation Supplements“ – добавки и изпълнения.

В края на 2003 г. е реализиран JPS2 – за многоядрени процесори. Първите процесори, съответстващи на JPS2 били UltraSPARC IV от Sun и SPARC64 VI от Fujitsu.

В началото на 2006, Sun лансират разширена спецификация за изграждане на компютърните системи – „UltraSPARC Architecture 2005“. Тя включва не само не-привилегировани и повечето от привилегированите части на „SPARC V9“, но и всички изграждащи ги разширения, разработени чрез производството на процесорите UltraSPARC III, IV, IV +, както и разширения „СMT“ започващи с изпълнението на UltraSPARC T1:

  • VIS 1 и VIS 2 набор от инструкции и разширения и асоцииран GSR-регистър
  • множество от нива, контролирани от GL-регистър
  • 64-битовата MMU архитектура на Sun
  • привилегированите инструкции ALLCLEAN, OTHERW, NORMALW, и INVALW
  • и др.

През 2007 г. Sun лансират актуализирана спецификация, „UltraSPARC Architecture 2007“, на чиято основа е изграден UltraSPARC T2 микропроцесора.

През Август, 2012 г., Oracle Corporation издават нова спецификация, „Oracle SPARC Architecture 2011“, която освен цялостна актуализация добавя VIS 3 набор от инструкции, разширения и „hyperprivileged“ режим към спецификацията от 2007 г.

През октомври 2015 г., Oracle лансират „SPARC M7“ – първият процесор базиран на новата „Oracle SPARC Architecture 2015“ спецификация. Тази версия включва VIS 4 набор от инструкции и разширения.

SPARC архитектурата предлага непрекъсната приложимост на двоичната съвместимост от първия „SPARC V7“ до „SUN UltraSPARC Architecture“.

Сред различните имплементации на SPARC, SUPERSPARC и UltraSPARC-I на Sun са най-известни и бяха използвани като референтни системи за SPEC CPU95 и CPU2000. 296 MHz UltraSPARC-II е референтна система за SPEC CPU2006.

Сред компаниите, които са придобили лиценз с право да имплементират SPARC архитектурата и са изградили такива сиситеми, се отличават следните:

Afara Websystems, Bipolar Integrated Technology (BIT), C-Cube, Cypress Semiconductor, Fujitsu and 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.

Имплементации на SPARC миркропроцесори

Следната таблица съдържа характеристики на някои SPARC процесори: честота (мегахерца), версия на архитектурата, година на производство, брой нишки (брой нишки умножени по броя на ядрата), технология процесор (нанометри), брой транзистори (милиони), размер на полупроводника (квадратни милиметри), брой входно/изходни пинове, разсейвана мощност (ватове), волтаж, размер на кеш-паметта, инструкции, L2 и L3 (kibibytes).

ИмеМоделЧестота (MHz)ВерсияГодина

на

производство

Брой нишкиТехнология

процесор

(nm)

Транзистори (милиони)Размер

на полупроводника (mm²)

Брой входно/изходни пиновеМощност (W)Волтаж (V)L1 кеш

(KiB)

L1 кеш (KiB)L2 кеш

(KiB)

L3 кеш

(KiB)

SPARC(различни), включително

MB86900

14.28 – 40V71987 – 19921×1=1800 – 1300~0.1 – 1.8--160 – 256----0 – 128----
microSPARC I (Tsunami)TI TMS390S1040 – 50V819921×1=18000.8225?2882.5524----
SuperSPARC I (Viking)TI TMX390Z50 / Sun STP102033 – 60V819921×1=18003.1--29314.3516200 – 2048--
SPARCliteFujitsu MB8683x66 – 108V8E19921×1=1------144, 176--2.5/3.3–5.0 V, 2.5 – 3.3 V1, 2, 8, 161, 2, 8, 16----
hyperSPARC (Colorado 1)Ross RT620A40 – 90V819931×1=15001.5------5?08128 – 256--
microSPARC II (Swift)Fujitsu MB86904 / Sun STP101260 – 125V819941×1=15002.323332153.3816---
hyperSPARC (Colorado 2)Ross RT620B90 – 125V819941×1=14001.5------3.308128 – 256--
SuperSPARC II (Voyager)Sun STP102175 – 90V819941×1=18003.1299--16--16201024 – 2048--
hyperSPARC (Colorado 3)Ross RT620C125 – 166V819951×1=13501.5------3.308512 – 1024--
TurboSPARCFujitsu MB86907160 – 180V819961×1=13503.013241673.51616512--
UltraSPARC (Spitfire)Sun STP1030143 – 167V919951×1=14703.8315521303.31616512 – 1024--
UltraSPARC (Hornet)Sun STP1030200V919981×1=14205.2265521--3.31616512 – 1024--
hyperSPARC (Colorado 4)Ross RT620D180 – 200V819961×1=13501.7------3.31616512--
SPARC64Fujitsu (HAL)101 – 118V919951×1=1400--Multichip286503.8128128----
SPARC64 IIFujitsu (HAL)141 – 161V919961×1=1350--Multichip286643.3128128----
SPARC64 IIIFujitsu (HAL) MBCS70301250 – 330V919981×1=124017.6240----2.564648192--
UltraSPARC IIs (Blackbird)Sun STP1031250 – 400V919971×1=13505.4149521252.516161024 or 4096--
UltraSPARC IIs (Sapphire-Black)Sun STP1032 / STP1034360 – 480V919991×1=12505.4126521211.916161024 – 8192--
UltraSPARC IIi (Sabre)Sun SME1040270 – 360V919971×1=13505.4156587211.91616256 – 2048--
UltraSPARC IIi (Sapphire-Red)Sun SME1430333 – 480V919981×1=12505.4--587211.916162048--
UltraSPARC IIe (Hummingbird)Sun SME1701400 – 500V919991×1=1180 Al----370131.5 – 1.71616256--
UltraSPARC IIi (IIe+) (Phantom)Sun SME1532550 – 650V920001×1=1180 Cu----37017.61.71616512--
SPARC64 GPFujitsu SFCB81147400 – 563V920001×1=118030.2217----1.81281288192--
SPARC64 GP--600 – 810V9--1×1=115030.2------1.51281288192--
SPARC64 IVFujitsu MBCS80523450 – 810V920001×1=1130----------1281282048--
UltraSPARC III (Cheetah)Sun SME1050600JPS120011×1=1180 Al293301368531.664328192--
UltraSPARC III (Cheetah)Sun SME1052750 – 900JPS120011×1=1130 Al29--1368--1.664328192--
UltraSPARC III Cu (Cheetah+)Sun SME10561002 – 1200JPS120011×1=1130 Cu292321368801.664328192--
UltraSPARC IIIi (Jalapeño)Sun SME16031064 – 1593JPS120031×1=113087.5206959521.364321024--
SPARC64 V (Zeus)Fujitsu1100 – 1350JPS120031×1=1130190289269401.21281282048--
SPARC64 V+ (Olympus-B)Fujitsu1650 – 2160JPS120041×1=1904002972796511281284096--
UltraSPARC IV (Jaguar)Sun SME11671050 – 1350JPS220041×2=21306635613681081.35643216384--
UltraSPARC IV+ (Panther)Sun SME1167A1500 – 2100JPS220051×2=2902953361368901.16464204832768
UltraSPARC T1 (Niagara)Sun SME19051000 – 1400UA200520054×8=32903003401933721.38163072--
SPARC64 VI (Olympus-C)Fujitsu2150 – 2400JPS220072×2=490540422--120 – 1501.1128×2128×24096 – 6144--
UltraSPARC T2 (Niagara 2)Sun SME1908A1000 – 1600UA200720078×8=64655033421831951.1 – 1.58164096--
UltraSPARC T2 Plus (Victoria Falls)Sun SME1910A1200 – 1600UA200720088×8=646550334218318164096--
SPARC64 VII (Jupiter)Fujitsu2400 – 2880JPS220082×4=865600445--150--64×464×46144--
UltraSPARC „RK“ (Rock)Sun SME18322300????canceled2×16=3265?3962326??32322048?
SPARC64 VIIIfx (Venus)Fujitsu2000JPS2 / HPC-ACE20091×8=845760513127158?32×832×86144--
SPARC T3 (Rainbow Falls)Oracle/Sun1650UA200720108×16=12840????371?139?8166144--
Galaxy FT-1500NUDT (China)1800UA2007?201?8×16=12840????????65?16×1616×16512×164096
SPARC64 VII+ (Jupiter-E or M3)Fujitsu2667 – 3000JPS220102×4=865---160-64×464×412288--
LEON4Aeroflex Gaisler125 – 1500V8E20101×1=132---???-????????????
R1000MCST (Russia)1000JPS220111×4=490180128-151, 1.8, 2.532162048--
SPARC T4 (Yosemite Falls)Oracle2850 – 3000OSA201120118×8=6440855403?240?16×816×8128×84096
SPARC64 IXfxFujitsu1850JPS2 / HPC-ACE20121x16=164018704841442110?32×1632×1612288--
SPARC64 X (Athena)Fujitsu2800OSA2011 / HPC-ACE20122×16=32282950587.51500270?64×1664×1624576--
SPARC T5Oracle3600OSA201120138×16=128281500478???16×1616×16128×168192
SPARC M5Oracle3600OSA201120138×6=48283900????16×616×6128×649152
SPARC M6Oracle3600OSA201120138×12=9628?????16×1216×12128×1249152
SPARC64 X+ (Athena+)Fujitsu3200 – 3700OSA2011 / HPC-ACE20142×16=322829906001500392?64×1664×1624M--
SPARC64 XIfxFujitsu2200OSA2011 / HPC-ACE22015?1×(32+2)=34203750?1001??64×3464×3412M×2--
SPARC M7Oracle4133OSA201520158×32=25620>10,000????16×3216×32256×2465536
SPARC SonomaOracle?????20168×8=6420????????16×816×8256×2+256×48192
ИмеМоделЧестота (MHz)ВерсияГодина

на

производство

Брой нишкиТехнология

процесор

(nm)

Транзистори (милиони)Размер

на полупроводника (mm²)

Брой входно/изходни пиновеМощност (W)Волтаж (V)L1 кеш

(KiB)

L1 кеш (KiB)L2 кеш

(KiB)

L3 кеш

(KiB)

Поддръжка на операционни системи

Машините на SPARC най-често са използвали SunOS, Solaris, OpenSolaris на Sun, но и други операционни системи като NeXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD, Linux.

През 1993 г. Integraph обявяват порт за Windows NT в архитектурата на SPARC, но впоследствие проектът е прекратен.

През октомври 2015 г., Oracle обявяват „Linux за референтна платформа SPARC“.

Външни препратки

  Тази страница частично или изцяло представлява превод на страницата SPARC в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​