SPARC

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

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

„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 – 40 V7 1987 – 1992 1×1=1 800 – 1300 ~0.1 – 1.8 -- 160 – 256 -- -- 0 – 128 -- --
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 0 – 2048 --
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 128 – 256 --
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 128 – 256 --
SuperSPARC II (Voyager) Sun STP1021 75 – 90 V8 1994 1×1=1 800 3.1 299 -- 16 -- 16 20 1024 – 2048 --
hyperSPARC (Colorado 3) Ross RT620C 125 – 166 V8 1995 1×1=1 350 1.5 -- -- -- 3.3 0 8 512 – 1024 --
TurboSPARC Fujitsu MB86907 160 – 180 V8 1996 1×1=1 350 3.0 132 416 7 3.5 16 16 512 --
UltraSPARC (Spitfire) Sun STP1030 143 – 167 V9 1995 1×1=1 470 3.8 315 521 30 3.3 16 16 512 – 1024 --
UltraSPARC (Hornet) Sun STP1030 200 V9 1998 1×1=1 420 5.2 265 521 -- 3.3 16 16 512 – 1024 --
hyperSPARC (Colorado 4) Ross RT620D 180 – 200 V8 1996 1×1=1 350 1.7 -- -- -- 3.3 16 16 512 --
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 8192 --
UltraSPARC IIs (Blackbird) Sun STP1031 250 – 400 V9 1997 1×1=1 350 5.4 149 521 25 2.5 16 16 1024 or 4096 --
UltraSPARC IIs (Sapphire-Black) Sun STP1032 / STP1034 360 – 480 V9 1999 1×1=1 250 5.4 126 521 21 1.9 16 16 1024 – 8192 --
UltraSPARC IIi (Sabre) Sun SME1040 270 – 360 V9 1997 1×1=1 350 5.4 156 587 21 1.9 16 16 256 – 2048 --
UltraSPARC IIi (Sapphire-Red) Sun SME1430 333 – 480 V9 1998 1×1=1 250 5.4 -- 587 21 1.9 16 16 2048 --
UltraSPARC IIe (Hummingbird) Sun SME1701 400 – 500 V9 1999 1×1=1 180 Al -- -- 370 13 1.5 – 1.7 16 16 256 --
UltraSPARC IIi (IIe+) (Phantom) Sun SME1532 550 – 650 V9 2000 1×1=1 180 Cu -- -- 370 17.6 1.7 16 16 512 --
SPARC64 GP Fujitsu SFCB81147 400 – 563 V9 2000 1×1=1 180 30.2 217 -- -- 1.8 128 128 8192 --
SPARC64 GP -- 600 – 810 V9 -- 1×1=1 150 30.2 -- -- -- 1.5 128 128 8192 --
SPARC64 IV Fujitsu MBCS80523 450 – 810 V9 2000 1×1=1 130 -- -- -- -- -- 128 128 2048 --
UltraSPARC III (Cheetah) Sun SME1050 600 JPS1 2001 1×1=1 180 Al 29 330 1368 53 1.6 64 32 8192 --
UltraSPARC III (Cheetah) Sun SME1052 750 – 900 JPS1 2001 1×1=1 130 Al 29 -- 1368 -- 1.6 64 32 8192 --
UltraSPARC III Cu (Cheetah+) Sun SME1056 1002 – 1200 JPS1 2001 1×1=1 130 Cu 29 232 1368 80 1.6 64 32 8192 --
UltraSPARC IIIi (Jalapeño) Sun SME1603 1064 – 1593 JPS1 2003 1×1=1 130 87.5 206 959 52 1.3 64 32 1024 --
SPARC64 V (Zeus) Fujitsu 1100 – 1350 JPS1 2003 1×1=1 130 190 289 269 40 1.2 128 128 2048 --
SPARC64 V+ (Olympus-B) Fujitsu 1650 – 2160 JPS1 2004 1×1=1 90 400 297 279 65 1 128 128 4096 --
UltraSPARC IV (Jaguar) Sun SME1167 1050 – 1350 JPS2 2004 1×2=2 130 66 356 1368 108 1.35 64 32 16384 --
UltraSPARC IV+ (Panther) Sun SME1167A 1500 – 2100 JPS2 2005 1×2=2 90 295 336 1368 90 1.1 64 64 2048 32768
UltraSPARC T1 (Niagara) Sun SME1905 1000 – 1400 UA2005 2005 4×8=32 90 300 340 1933 72 1.3 8 16 3072 --
SPARC64 VI (Olympus-C) Fujitsu 2150 – 2400 JPS2 2007 2×2=4 90 540 422 -- 120 – 150 1.1 128×2 128×2 4096 – 6144 --
UltraSPARC T2 (Niagara 2) Sun SME1908A 1000 – 1600 UA2007 2007 8×8=64 65 503 342 1831 95 1.1 – 1.5 8 16 4096 --
UltraSPARC T2 Plus (Victoria Falls) Sun SME1910A 1200 – 1600 UA2007 2008 8×8=64 65 503 342 1831 8 16 4096 --
SPARC64 VII (Jupiter) Fujitsu 2400 – 2880 JPS2 2008 2×4=8 65 600 445 -- 150 -- 64×4 64×4 6144 --
UltraSPARC „RK“ (Rock) Sun SME1832 2300 ???? canceled 2×16=32 65 ? 396 2326 ? ? 32 32 2048 ?
SPARC64 VIIIfx (Venus) Fujitsu 2000 JPS2 / HPC-ACE 2009 1×8=8 45 760 513 1271 58 ? 32×8 32×8 6144 --
SPARC T3 (Rainbow Falls) Oracle/Sun 1650 UA2007 2010 8×16=128 40 ???? 371 ? 139 ? 8 16 6144 --
Galaxy FT-1500 NUDT (China) 1800 UA2007? 201? 8×16=128 40 ???? ??? ? 65 ? 16×16 16×16 512×16 4096
SPARC64 VII+ (Jupiter-E or M3) Fujitsu 2667 – 3000 JPS2 2010 2×4=8 65 - - - 160 - 64×4 64×4 12288 --
LEON4 Aeroflex Gaisler 125 – 1500 V8E 2010 1×1=1 32 - - - ??? - ??? ??? ??? ???
R1000 MCST (Russia) 1000 JPS2 2011 1×4=4 90 180 128 - 15 1, 1.8, 2.5 32 16 2048 --
SPARC T4 (Yosemite Falls) Oracle 2850 – 3000 OSA2011 2011 8×8=64 40 855 403 ? 240 ? 16×8 16×8 128×8 4096
SPARC64 IXfx Fujitsu 1850 JPS2 / HPC-ACE 2012 1x16=16 40 1870 484 1442 110 ? 32×16 32×16 12288 --
SPARC64 X (Athena) Fujitsu 2800 OSA2011 / HPC-ACE 2012 2×16=32 28 2950 587.5 1500 270 ? 64×16 64×16 24576 --
SPARC T5 Oracle 3600 OSA2011 2013 8×16=128 28 1500 478 ? ? ? 16×16 16×16 128×16 8192
SPARC M5 Oracle 3600 OSA2011 2013 8×6=48 28 3900 ? ? ? ? 16×6 16×6 128×6 49152
SPARC M6 Oracle 3600 OSA2011 2013 8×12=96 28 ? ? ? ? ? 16×12 16×12 128×12 49152
SPARC64 X+ (Athena+) Fujitsu 3200 – 3700 OSA2011 / HPC-ACE 2014 2×16=32 28 2990 600 1500 392 ? 64×16 64×16 24M --
SPARC64 XIfx Fujitsu 2200 OSA2011 / HPC-ACE2 2015? 1×(32+2)=34 20 3750 ? 1001 ? ? 64×34 64×34 12M×2 --
SPARC M7 Oracle 4133 OSA2015 2015 8×32=256 20 >10,000 ? ? ? ? 16×32 16×32 256×24 65536
SPARC Sonoma Oracle ? ???? 2016 8×8=64 20 ???? ? ? ? ? 16×8 16×8 256×2+256×4 8192
Име Модел Честота (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 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

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