СПАРК
Дизайнер | Sun Microsystems (приобретена Oracle Corporation ) [1] [2] |
---|---|
Биты | 64-бит (32 → 64) |
Представлено | 1986 год 1987 год (отгрузки) | (производство)
Версия | В9 (1993) / ОСА2017 |
Дизайн | РИСК |
Тип | Загрузка-сохранение |
Кодирование | Зафиксированный |
Ветвление | Код состояния |
Порядок байтов | Би (Большой → Би) |
Размер страницы | 8 КБ (4 КБ → 8 КБ) |
Расширения | ВСЕ 1.0, 2.0, 3.0, 4.0 |
Открыть | Да, и без лицензионных отчислений |
Регистры | |
общего назначения | 31 (G0 = 0; неглобальные регистры используют окна регистров ) |
Плавающая точка | 32 (можно использовать как 32 с одинарной точностью, 32 с двойной точностью или 16 с учетверенной точностью) |
SPARC ( Scalable Processor ARchitecture ) — это команд компьютера с сокращенным набором команд (RISC), архитектура набора первоначально разработанная Sun Microsystems . [1] [2] На его конструкцию сильно повлияла экспериментальная система RISC Беркли, разработанная в начале 1980-х годов. Впервые разработан в 1986 году и выпущен в 1987 году. [3] [2] SPARC был одной из самых успешных ранних коммерческих RISC-систем, и его успех привел к появлению аналогичных конструкций RISC от многих поставщиков в 1980-х и 1990-х годах.
Первая реализация исходной 32-битной архитектуры (SPARC V7) использовалась в системах Sun -4 компьютерных рабочих станциях и серверных , заменив их более ранние системы Sun-3 на базе процессоров Motorola серии 68000 . В SPARC V8 добавлен ряд улучшений, которые были частью серии процессоров SuperSPARC , выпущенной в 1992 году. SPARC V9, выпущенный в 1993 году, представил 64-битную архитектуру и впервые был выпущен в процессорах Sun UltraSPARC в 1995 году. Позже использовались процессоры SPARC. в серверах симметричной многопроцессорной обработки (SMP) и неоднородного доступа к памяти ( CC-NUMA ), производимых Sun, Solbourne и Fujitsu , среди других.
Проект был передан торговой группе SPARC International в 1989 году, и с тех пор его архитектура разрабатывалась ее членами. SPARC International также отвечает за лицензирование и продвижение архитектуры SPARC, управление товарными знаками SPARC (включая SPARC, которым она владеет) и проведение испытаний на соответствие . SPARC International был призван расширить архитектуру SPARC для создания более крупной экосистемы; Лицензии на SPARC предоставлены нескольким производителям, включая Atmel , Bipolar Integrated Technology , Cypress Semiconductor , Fujitsu , Matsushita и Texas Instruments . Благодаря SPARC International, SPARC является полностью открытым, непатентованным и бесплатным.
По состоянию на 2024 год новейшими коммерческими процессорами SPARC высокого класса являются Fujitsu от SPARC64 XII (представленный в сентябре 2017 года для сервера SPARC M12) и Oracle от SPARC M8 , представленный в сентябре 2017 года для высокопроизводительных серверов.
1 сентября 2017 г., после серии увольнений, начавшейся в лабораториях Oracle в ноябре 2016 г., Oracle прекратила разработку SPARC после завершения M8. Большая часть группы разработчиков процессорных ядер в Остине, штат Техас, была распущена, как и команды в Санта-Кларе, Калифорния, и Берлингтоне, Массачусетс. [4] [5]
Fujitsu также прекратит производство SPARC (уже перешла на производство собственных процессоров на базе ARM ) после двух «улучшенных» версий более старого сервера SPARC M12 от Fujitsu в 2020–2022 годах (ранее планировалось на 2021 год) и снова в 2026–2027 годах. прекращение продаж серверов UNIX в 2029 году, а годом позже — их мэйнфреймов , а также прекращение поддержки в 2034 году «в целях содействия модернизации клиентов». [6]
Функции
[ редактировать ]Архитектура SPARC находилась под сильным влиянием более ранних разработок RISC, включая RISC I и II от Калифорнийского университета в Беркли и IBM 801 . Эти оригинальные конструкции RISC были минималистичными, включали как можно меньше функций или кодов операций и стремились выполнять инструкции со скоростью почти одна инструкция за такт . Это делало их похожими на архитектуру MIPS во многих отношениях, включая отсутствие таких инструкций, как умножение или деление. Еще одной особенностью SPARC, на которую повлияло это раннее движение RISC, является слот задержки ветвления .
Процессор SPARC обычно содержит до 160 регистров общего назначения . Согласно спецификации «Oracle SPARC Architecture 2015», «реализация может содержать от 72 до 640 64-битных регистров общего назначения». [7] В любой момент только 32 из них сразу видны программному обеспечению — 8 представляют собой набор глобальных регистров (один из которых, g0 , жестко привязан к нулю, поэтому только семь из них можно использовать в качестве регистров), а остальные 24 — из стека регистров. Эти 24 регистра образуют так называемое окно регистров , и при вызове/возврате функции это окно перемещается вверх и вниз по стеку регистров. Каждое окно имеет восемь локальных регистров и использует восемь регистров совместно с каждым из соседних окон. Общие регистры используются для передачи параметров функций и возврата значений, а локальные регистры используются для сохранения локальных значений при вызовах функций.
«Масштабируемость» в SPARC обусловлена тем, что спецификация SPARC позволяет реализациям масштабироваться от встроенных процессоров до больших серверных процессоров, использующих один и тот же основной (непривилегированный) набор команд. Одним из архитектурных параметров, которые можно масштабировать, является количество реализованных окон регистров; спецификация позволяет реализовать от трех до 32 окон, поэтому реализация может выбрать реализацию всех 32, чтобы обеспечить максимальную эффективность стека вызовов , или реализовать только три, чтобы снизить стоимость и сложность конструкции, или реализовать некоторое количество между ними. Другие архитектуры, которые включают аналогичные файла регистров, функции включают Intel i960 , IA-64 и AMD 29000 .
Архитектура претерпела несколько изменений. В версии 8 он получил аппаратные функции умножения и деления. [8] [9] 64-битные (адресация и данные) были добавлены в спецификацию SPARC версии 9, опубликованную в 1994 году. [10]
В SPARC версии 8 файл регистров с плавающей запятой имеет 16 регистров двойной точности . Каждый из них может использоваться как два регистра одинарной точности , обеспечивая в общей сложности 32 регистра одинарной точности. Пара нечетно-четных чисел регистров двойной точности может использоваться в качестве регистра четырехточности , что позволяет использовать 8 регистров четырехточности. В SPARC версии 9 добавлено еще 16 регистров двойной точности (к которым также можно получить доступ как к 8 регистрам четырехточности), но к этим дополнительным регистрам нельзя получить доступ как к регистрам одинарной точности. По состоянию на 2024 год ни один процессор SPARC не реализует аппаратные операции четырехточности. [11]
Инструкции сложения и вычитания с тегами выполняют сложение и вычитание значений, проверяя, что два нижних бита обоих операндов равны 0, и сообщают о переполнении, если это не так. Это может быть полезно при реализации среды выполнения для ML , Lisp и подобных языков, которые могут использовать целочисленный формат с тегами.
Порядок байтов в 32-битной архитектуре SPARC V8 является чисто прямым порядком байтов. 64-разрядная архитектура SPARC V9 использует инструкции с прямым порядком байтов, но может получать доступ к данным в порядке байтов как с прямым, так и с прямым порядком байтов, выбираемом либо на уровне инструкции приложения ( загрузка-сохранение ), либо на уровне страницы памяти (через настройки MMU). Последний часто используется для доступа к данным с устройств с прямым порядком байтов, например устройств на шинах 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 и Техасские инструменты . Новые спецификации всегда соответствуют полной спецификации SPARC V9 Level 1.
SPARC Спецификацию совместного программирования В 2002 году Fujitsu и Sun выпустили 1 (JPS1), описывающую функции процессора, которые были идентично реализованы в процессорах обеих компаний («Общность»). Первыми процессорами, соответствующими JPS1, были UltraSPARC III от Sun и SPARC64 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
- 64-битная архитектура Sun MMU
- привилегированные инструкции ALLCLEAN, OTHERW, NORMALW и INVALW
- доступ к реестру VER теперь является гиперпривилегированным
- инструкция SIR теперь имеет повышенные привилегии
В 2007 году Sun выпустила обновленную спецификацию UltraSPARC Architecture 2007 , которой соответствовала реализация UltraSPARC T2 .
В августе 2012 года корпорация Oracle представила новую спецификацию Oracle SPARC Architecture 2011 , которая, помимо общего обновления справочника, добавляет расширения набора команд VIS 3 и гиперпривилегированный режим . в спецификацию 2007 года [12]
В октябре 2015 года Oracle выпустила SPARC M7, первый процессор, основанный на новой спецификации Oracle SPARC Architecture 2015 . [7] [13] Эта версия включает расширения набора команд VIS 4, а также аппаратное шифрование и защищенную память (SSM). [14]
Архитектура SPARC обеспечивала непрерывную двоичную совместимость приложений, начиная с первой реализации SPARC V7 в 1987 году и заканчивая реализациями архитектуры Sun UltraSPARC.
Среди различных реализаций SPARC очень популярны были Sun SuperSPARC и UltraSPARC-I, которые использовались в качестве эталонных систем для тестов SPEC CPU95 и CPU2000. UltraSPARC-II с частотой 296 МГц является эталонной системой для теста SPEC CPU2006.
Архитектура
[ редактировать ]SPARC — это архитектура загрузки-хранения (также известная как архитектура регистр-регистр ); за исключением инструкций загрузки/сохранения, используемых для доступа к памяти , все инструкции работают с регистрами в соответствии с принципами проектирования RISC.
Процессор SPARC включает в себя целочисленный блок (IU), который выполняет целочисленную загрузку, сохранение и арифметические операции. [15] : 9 [10] : 15–16 Он может включать в себя модуль с плавающей запятой (FPU), который выполняет операции с плавающей запятой. [15] : 9 [10] : 15–16 а для SPARC V8 может включать сопроцессор (CP), который выполняет операции, специфичные для сопроцессора; архитектура не определяет, какие функции будет выполнять сопроцессор, кроме операций загрузки и сохранения. [15] : 9
Регистры
[ редактировать ]Архитектура SPARC имеет схему перекрывающихся регистровых окон. В любой момент времени видны 32 регистра общего назначения. Переменная указателя текущего окна ( CWP ) в аппаратном обеспечении указывает на текущий набор. Общий размер файла регистров не является частью архитектуры, что позволяет добавлять больше регистров по мере совершенствования технологии, максимум до 32 окон в SPARC V7 и V8, поскольку CWP имеет 5 бит и является частью регистра PSR .
В SPARC V7 и V8 CWP обычно уменьшается с помощью инструкции SAVE (используется инструкцией SAVE во время вызова процедуры для открытия нового кадра стека и переключения окна регистра) или увеличивается с помощью инструкции RESTORE (переключение обратно на вызов перед возвращаясь с процедуры). События-ловушки ( прерывания , исключения или инструкции TRAP) и инструкции RETT (возврат из ловушек) также меняют CWP . В SPARC V9 регистр CWP уменьшается во время инструкции RESTORE и увеличивается во время инструкции SAVE. Это противоположно поведению PSR.CWP в SPARC V8. Это изменение не влияет на непривилегированные инструкции.
Зарегистрировать группу | Мнемоника | Зарегистрировать адрес | Доступность |
---|---|---|---|
глобальный | G0...G7 | Р[ | 0]... Р[ 7]всегда одни и те же, G0 всегда равен нулю |
вне | О0...О7 | Р[ | 8]....Р[15]быть передана вызываемой подпрограмме и возвращена из нее, как ее «в» |
местный | Л0...Л7 | Р[16]...Р[23] | действительно локально для текущей подпрограммы |
в | И0...И7 | Р[24]...Р[31] | передается от вызывающего абонента и возвращается вызывающему абоненту, как "выход" |
Регистры SPARC показаны на рисунке выше.
Существует также безоконный регистр Y, используемый инструкциями пошагового умножения, целочисленного умножения и целочисленного деления. [15] : 32
Процессор SPARC V8 с FPU включает 32 32-битных регистра с плавающей запятой, каждый из которых может хранить одно IEEE 754 число с плавающей запятой одинарной точности. Пара четно-нечетных регистров с плавающей запятой может хранить одно число с плавающей запятой IEEE 754 двойной точности, а группа из четырех регистров с плавающей запятой, выровненных по четырем координатам, может содержать одно число с плавающей запятой IEEE 754 четырехточной точности. [15] : 10
Процессор SPARC V9 с FPU включает в себя: [10] : 36–40
- 32 32-битных регистра с плавающей запятой, каждый из которых может хранить одно число с плавающей запятой IEEE 754 одинарной точности;
- 32 64-битных регистра с плавающей запятой, каждый из которых может хранить одно число с плавающей запятой двойной точности IEEE 754;
- 16 128-битных регистров с плавающей запятой, каждый из которых может хранить одно число с плавающей запятой четверной точности IEEE 754.
Регистры организованы как набор из 64 32-битных регистров, причем первые 32 используются как 32-битные регистры с плавающей запятой, пары четно-нечетных всех 64 регистров используются как 64-битные регистры с плавающей запятой. и четырехуровневые группы из четырех регистров с плавающей запятой, используемые в качестве 128-битных регистров с плавающей запятой.
Регистры с плавающей запятой не являются оконными; все они являются глобальными регистрами. [10] : 36–40
Форматы инструкций
[ редактировать ]Все инструкции SPARC занимают полное 32-битное слово и начинаются на границе слова. Используются четыре формата, различающиеся первыми двумя битами. Все арифметические и логические инструкции имеют 2 операнда-источника и 1 операнд-приемник. [16] RD — это «регистр назначения», куда сохраняются выходные данные операции. Большинство инструкций SPARC имеют как минимум этот регистр, поэтому он располагается в начале формата инструкций. RS1 и RS2 — это «исходные регистры», которые могут присутствовать или отсутствовать или быть заменены константой.
Тип | Кусочек | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | |
формат SETHI | 00 | РД | 100 | Немедленная константа 22 бита | ||||||||||||||||||||||||||||
Формат филиала | 00 | А | мкк | 010 | Константа смещения 22 бита | |||||||||||||||||||||||||||
F Формат филиала | 00 | А | ФКК | 110 | Константа смещения 22 бита | |||||||||||||||||||||||||||
Формат C-ветви | 00 | А | ссс | 111 | Константа смещения 22 бита | |||||||||||||||||||||||||||
ВЫЗОВ | 01 | PC-относительное смещение | ||||||||||||||||||||||||||||||
Арифметический регистр | 10 | РД | код операции | РС1 | 0 | 0 | РС2 | |||||||||||||||||||||||||
Арифметика немедленная | 10 | РД | код операции | РС1 | 1 | Немедленная константа 13 бит | ||||||||||||||||||||||||||
Работа ПНК | 10 | ФД | 110100/110101 | ФС1 | оп | ФС2 | ||||||||||||||||||||||||||
Операция КП | 10 | РД | 110110/110111 | РС1 | опк | РС2 | ||||||||||||||||||||||||||
реестр JMPL | 10 | РД | 111000 | РС1 | 0 | 0 | РС2 | |||||||||||||||||||||||||
JMPL немедленно | 10 | РД | 111000 | РС1 | 1 | Немедленная константа 13 бит | ||||||||||||||||||||||||||
регистр LD/ST | 11 | РД | код операции | РС1 | 0 | 0 | РС2 | |||||||||||||||||||||||||
LD/ST немедленно | 11 | РД | код операции | РС1 | 1 | Немедленная константа 13 бит |
Инструкции
[ редактировать ]Грузы и магазины
[ редактировать ]Инструкции загрузки и сохранения имеют формат трех операндов, то есть два операнда представляют значения для адреса и один операнд для регистра для чтения или записи. Адрес создается путем сложения двух адресных операндов для получения адреса. Второй операнд адреса может быть константой или регистром. Загрузка берет значение по адресу и помещает его в регистр, указанный третьим операндом, тогда как сохранение берет значение из регистра, указанного первым операндом, и помещает его по адресу. Чтобы сделать это более очевидным, язык ассемблера указывает адресные операнды с помощью квадратных скобок со знаком плюс, разделяющим операнды, вместо использования списка, разделенного запятыми. Примеры: [16]
ld [%L1+%L2],%L3 !load the 32-bit value at address %L1+%L2 and put the value into %L3 ld [%L1+8],%L2 !load the value at %L1+8 into %L2 ld [%L1],%L2 !as above, but no offset, which is the same as +%G0 st %L1,[%I2] !store the value in %L1 into the location stored in %I2 st %G0,[%I1+8] !clear the memory at %I1+8
Из-за широкого использования не32-битных данных, таких как 16-битные или 8-битные целочисленные данные или 8-битные байты в строках, существуют инструкции, которые загружают и сохраняют 16-битные полуслова и 8-битные байты. , а также инструкции, загружающие 32-битные слова. Во время загрузки эти инструкции будут читать только байт или полуслово в указанном месте, а затем либо заполнять остальную часть целевого регистра нулями (загрузка без знака, либо значением самого верхнего бита байта или полуслова ( Во время сохранения эти инструкции отбрасывают старшие биты в регистре и сохраняют только младшие биты. Существуют также инструкции для загрузки значений двойной точности, используемых для арифметики с плавающей запятой , чтения или записи восьми байтов из указанного регистра. и «следующий», поэтому, если местом назначения является L1, будут установлены L1 и L2. Полный список инструкций загрузки и сохранения для регистров общего назначения в 32-битном SPARC. LD
, ST
, LDUB
(беззнаковый байт), LDSB
(байт со знаком), LDUH
(беззнаковое полуслово), LDSH
(подписанное полуслово), LDD
(загрузка двойная), STB
(сохранить байт), STH
(сохранить полуслово), STD
(магазин двойной). [16]
В SPARC V9 регистры 64-битные, а LD
инструкция, переименованная LDUW
, очищает старшие 32 бита регистра и загружает 32-битное значение в нижние 32 бита, а ST
инструкция, переименованная STW
, отбрасывает старшие 32 бита регистра и сохраняет только младшие 32 бита. Новый LDSW
Инструкция устанавливает старшие биты регистра в значение самого верхнего бита слова и загружает 32-битное значение в младшие биты. Новый LDX
Инструкция загружает в регистр 64-битное значение, а STX
Инструкция сохраняет все 64 бита регистра.
The LDF
, LDDF
, и LDQF
инструкции загружают значение одинарной, двойной или четырехкратной точности из памяти в регистр с плавающей запятой; тот STF
, STDF
, и STQF
Инструкции сохраняют в памяти регистры с плавающей запятой одинарной, двойной или четырехкратной точности.
Инструкция барьера памяти MEMBAR служит двум взаимосвязанным целям: она формулирует ограничения порядка между обращениями к памяти и облегчает явный контроль над завершением обращений к памяти. Например, все эффекты хранилищ, которые появляются до команды MEMBAR, должны быть видны всем процессорам, прежде чем могут быть выполнены любые загрузки, следующие за MEMBAR. [17]
АЛУ-операции
[ редактировать ]Арифметические и логические инструкции также используют формат трех операндов: первые два являются операндами, а последний — местом хранения результата. Средний операнд может быть регистром или 13-битной целочисленной константой со знаком; остальные операнды являются регистрами. Любой из операндов регистра может указывать на G0; указание результата на G0 отбрасывает результаты, которые можно использовать для тестов. Примеры включают в себя: [16]
add %L1,%L2,%L3 !add the values in %L1 and %L2 and put the result in %L3 add %L1,1,%L1 !increment %L1 add %G0,%G0,%L4 !clear any value in %L4
Список математических инструкций: ADD
, SUB
, AND
, OR
, XOR
и отрицательные версии ANDN
, ORN
, и XNOR
. Одна из особенностей конструкции SPARC заключается в том, что большинство арифметических инструкций идут парами: одна версия устанавливает биты кода состояния NZVC в регистре состояния , а другая не устанавливает их, а по умолчанию не коды устанавливаются. Это сделано для того, чтобы у компилятора была возможность перемещать инструкции при попытке заполнить слоты задержки. Если кто-то хочет, чтобы коды условий были установлены, это указывается добавлением cc
к инструкции: [16]
subcc %L1,10,%G0 !compare %L1 to 10 and ignore the result, but set the flags
add и sub также имеют еще один модификатор X, который указывает, должна ли операция устанавливать бит переноса:
addx %L1,100,%L1 !add 100 to the value in %L1 and track carry
SPARC V7 не имеет инструкций умножения и деления, но имеет MULSCC
, который выполняет один шаг проверки одного бита умножения и условного добавления множимого к произведению. Это было потому, что MULSCC
может завершиться за один такт в соответствии с философией RISC. Добавлен SPARC V8. UMUL
(беззнаковое умножение), SMUL
(подписанное множественное число), UDIV
(беззнаковое деление) и SDIV
(подписанное разделение), причем как версии, которые не обновляют коды условий, так и версии, которые это делают. MULSCC
а инструкции умножения используют регистр Y для хранения старших 32 битов произведения; инструкции деления используют его для хранения старших 32 битов делимого. RDY
инструкция считывает значение регистра Y в регистр общего назначения; тот WRY
Инструкция записывает значение регистра общего назначения в регистр Y. [15] : 32 Добавлен SPARC V9. MULX
, который умножает два 64-битных значения и дает 64-битный результат, SDIVX
, который делит 64-битное делимое со знаком на 64-битный делитель со знаком и дает 64-битное частное со знаком, и UDIVX
, который делит 64-битное беззнаковое делимое на 64-битный беззнаковый делитель и дает 64-битное знаковое частное; ни одна из этих инструкций не использует регистр Y. [10] : 199
Ветвление
[ редактировать ]Условные переходы проверяют коды условий в регистре состояния , как это видно во многих наборах команд, таких как архитектура IBM System/360 и ее преемники, а также архитектура x86 . Это означает, что проверка и переход обычно выполняются с помощью двух инструкций; первая — это инструкция ALU, которая устанавливает коды условий, за которой следует инструкция ветвления, которая проверяет один из этих флагов. SPARC не имеет специализированных инструкций по тестированию; тесты выполняются с использованием обычных инструкций ALU с назначением %G0. Например, чтобы проверить, содержит ли регистр значение 10, а затем перейти к коду, который его обрабатывает, можно:
subcc %L1,10,%G0 !subtract 10 from %L1, setting the zero flag if %L1 is 10 be WASEQUAL !if the zero flag is set, branch to the address marked WASEQUAL
В инструкции условного перехода поле icc или fcc указывает проверяемое условие. 22-битное поле смещения — это адрес цели относительно текущего ПК в словах, так что условные ветки могут идти вперед или назад до 8 мегабайт. Бит ANNUL (A) используется для избавления от некоторых слотов задержки. Если в условном переходе он равен 0, слот задержки выполняется как обычно. Если он равен 1, слот задержки выполняется только в том случае, если ветвь выбрана. Если он не принят, инструкция, следующая за условным переходом, пропускается.
Существует большое разнообразие условных ветвей: BA
(ветвь всегда, по сути jmp), BN
(ветвь никогда), BE
(равно), BNE
(не равно), BL
(меньше, чем), BLE
(меньше или равно), BLEU
(меньше или равно, без знака), BG
(больше), BGE
(больше или равно), BGU
(большой без знака), BPOS
(положительный), BNEG
(отрицательный), BCC
(нести ясно), BCS
(переносной набор), BVC
(очистка переполнения), BVS
(переливной набор). [15] : 119–120
FPU и CP имеют наборы кодов условий, отдельные от целочисленных кодов состояний и друг от друга; Для проверки этих кодов условий были определены два дополнительных набора инструкций перехода. Добавление буквы F в начало инструкции ветвления в приведенном выше списке выполняет проверку кодов состояния FPU: [15] : 121–122 в то время как в SPARC V8 добавление C проверяет флаги в неопределенном CP. [15] : 123–124
The CALL
Инструкция (переход к подпрограмме) использует 30-битное смещение программного счетчика относительно слова . Поскольку целевой адрес определяет начало слова, а не байта, 30 бит — это все, что необходимо для достижения любого адреса в 4-гигабайтном адресном пространстве. [16] Команда CALL сохраняет адрес возврата в регистре R15, также известном как выходной регистр O7.
The JMPL
Инструкция (перехода и связи) представляет собой инструкцию с тремя операндами, где два операнда представляют значения для целевого адреса и один операнд для регистра, в который помещается обратный адрес. Адрес создается путем сложения двух адресных операндов для получения 32-битного адреса. Второй операнд адреса может быть константой или регистром.
Большие константы
[ редактировать ]Поскольку код операции инструкции занимает несколько битов 32-битного командного слова, невозможно загрузить 32-битную константу с помощью одной инструкции. Это важно, поскольку адреса управляются через регистры и являются 32-битными. Чтобы облегчить эту задачу, используется специальный SETHI
Инструкция копирует свой 22-битный непосредственный операнд в старшие 22 бита любого указанного регистра и устанавливает каждый из младших 10 бит в 0. Обычно за SETHI следует инструкция или только с младшими 10 битами. набора значений. Чтобы облегчить это, ассемблер включает в себя %hi(X)
и %lo(X)
макросы. Например: [16]
sethi %hi(0x89ABCDEF),%L1 !sets the upper 22 bits of L1 or %L1,%lo(0x89ABCDEF),%L1 !sets the lower 10 bits of L1 by ORing
Макросы hi и lo выполняются во время сборки, а не во время выполнения, поэтому они не влияют на производительность, но при этом становится понятнее, что для L1 установлено одно значение, а не два несвязанных значения. Чтобы сделать это еще проще, в ассемблер также включена «синтетическая инструкция». set
, который выполняет эти две операции в одной строке:
set 0x89ABCDEF,% L1
Это выводит две приведенные выше инструкции, если значение больше 13 бит, в противном случае будет выдано одно ld
со значением. [16]
Синтетические инструкции
[ редактировать ]Как отмечалось ранее, ассемблер SPARC использует «синтетические инструкции» для облегчения общих задач кодирования. Дополнительные примеры включают (среди прочего): [16]
мнемонический | фактический выпуск | цель |
---|---|---|
nop |
sethi 0,%g0 |
ничего не делать |
clr %reg |
or %g0,%g0,%reg |
установить регистр в ноль |
clr [address] |
st %g0,[address] |
установить адрес памяти на ноль |
clrh [address] |
sth %g0,[address] |
установить полуслово по адресу памяти равным нулю |
clrb [address] |
stb %g0,[address] |
установить байт по адресу памяти равным нулю |
cmp %reg1,%reg2 |
subcc %reg1,%reg2,%g0 |
сравнить два регистра, установить коды, отбросить результаты |
cmp %reg,const |
subcc %reg,const,%g0 |
сравнить регистр с константой |
mov %reg1,%reg2 |
or %g0,%reg1,%reg2 |
копировать значение из одного регистра в другой |
mov const,%reg |
or %g0,const,%reg |
копировать постоянное значение в регистр |
inc %reg |
add %reg,1,%reg |
увеличить регистр |
inccc %reg |
addcc %reg,1,%reg |
увеличить регистр, установить условия |
dec %reg |
sub %reg,1,%reg |
уменьшить регистр |
deccc %reg |
subcc %reg,1,%reg |
уменьшить регистр, установить условия |
not %reg |
xnor %reg,%g0,%reg |
перевернуть биты в регистре |
neg %reg |
sub %g0,%reg,%reg |
двое дополняют регистр |
tst %reg |
orcc %reg,%g0,%g0 |
проверить, является ли значение в регистре > 0, 0 или < 0 |
Лицензиаты архитектуры SPARC
[ редактировать ]Следующие организации лицензировали архитектуру SPARC:
- Афара Вебсистемс
- Биполярная интегрированная технология (БИТ)
- Кипарисовый полупроводник
- Европейский центр космических исследований и технологий (ESTEC)
- Fujitsu (и ее дочерняя компания Fujitsu Microelectronics)
- Исследования Гайслера
- ХАЛ Компьютерные системы
- Хюндай
- Логика БИС
- Матра Харрис Полупроводники (MHS)
- Компания Matsushita Electrical Industrial Co.
- Мейко Научный
- Метафлоу Технологии
- Филипс Электроника
- Призма
- Росс Технолоджи
- Солбурн Компьютер
- Корпорация системного и технологического проектирования (SPEC)
- ТЕРМАЛЬНЫЙ
- Вайтек
Реализации
[ редактировать ]Имя (кодовое имя) | Модель | Частота (МГц) | Арх. версия | Год | Всего потоков [примечание 1] | Процесс (нм) | Транзисторы (миллионы) | Размер матрицы (мм 2 ) | я прикалываю | Мощность (Вт) | Voltage (V) | L1-кэш (КБ) | ICache L1 (КБ) | Кэш L2 (КБ) | Кэш L3 (КБ) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
СПАРК MB86900 | Фуджицу [1] [3] [2] | 14.28–33 | V7 | 1986 | 1×1=1 | 1300 | 0.11 | — | 256 | — | — | 0–128 (единый) | никто | никто | |
СПАРК | Различный [примечание 2] | 14.28–40 | V7 | 1989–1992 | 1×1=1 | 800–1300 | ~0.1–1.8 | — | 160–256 | — | — | 0–128 (единый) | никто | никто | |
МН10501 (КАП) | Солборн Компьютер ,
Мацусита [18] |
33–36 | V8 | 1990–1991 | 1x1=1 | — | 1.0 [19] | — | — | — | — | 8 | 8 | 0–256 | никто |
микроСПАРК I (Цунами) | ТИ ТМС390S10 | 40–50 | V8 | 1992 | 1×1=1 | 800 | 0.8 | 225? | 288 | 2.5 | 5 | 2 | 4 | никто | никто |
СуперСПАРК I (Викинг) | ТИ TMX390Z50/Вс STP1020 | 33–60 | V8 | 1992 | 1×1=1 | 800 | 3.1 | — | 293 | 14.3 | 5 | 16 | 20 | 0–2048 | никто |
SPARClite | Fujitsu MB8683x | 66–108 | В8Е | 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 | никто | никто |
гиперСПАРК (Колорадо 1) | Росс RT620A | 40–90 | V8 | 1993 | 1×1=1 | 500 | 1.5 | — | — | — | 5? | 0 | 8 | 128–256 | никто |
microSPARC II (Свифт) | Fujitsu MB86904 / Солнце STP1012 | 60–125 | V8 | 1994 | 1×1=1 | 500 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 | никто | никто |
гиперСПАРК (Колорадо 2) | Росс RT620B | 90–125 | V8 | 1994 | 1×1=1 | 400 | 1.5 | — | — | — | 3.3 | 0 | 8 | 128–256 | никто |
СуперСПАРК II (Вояджер) | Солнце STP1021 | 75–90 | V8 | 1994 | 1×1=1 | 800 | 3.1 | 299 | — | 16 | — | 16 | 20 | 1024–2048 | никто |
гиперСПАРК (Колорадо 3) | Росс RT620C | 125–166 | V8 | 1995 | 1×1=1 | 350 | 1.5 | — | — | — | 3.3 | 0 | 8 | 512–1024 | никто |
ТурбоСПАРК | Фуджицу MB86907 | 160–180 | V8 | 1996 | 1×1=1 | 350 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | никто |
УльтраСПАРК (Спитфайр) | Солнце STP1030 | 143–167 | V9 | 1995 | 1×1=1 | 470 | 3.8 | 315 | 521 | 30 [примечание 3] | 3.3 | 16 | 16 | 512–1024 | никто |
УльтраСПАРК (Хорнет) | Солнце STP1030 | 200 | V9 | 1995 | 1×1=1 | 420 | 5.2 | 265 | 521 | — | 3.3 | 16 | 16 | 512–1024 | никто |
гиперСПАРК (Колорадо 4) | Росс RT620D | 180–200 | V8 | 1996 | 1×1=1 | 350 | 1.7 | — | — | — | 3.3 | 16 | 16 | 512 | никто |
SPARC64 | Фудзицу (ХАЛ) | 101–118 | V9 | 1995 | 1×1=1 | 400 | — | Мультичип | 286 | 50 | 3.8 | 128 | 128 | — | — |
SPARC64 II | Фудзицу (ХАЛ) | 141–161 | V9 | 1996 | 1×1=1 | 350 | — | Мультичип | 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 II (Blackbird) | Солнце STP1031 | 250–400 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 149 | 521 | 25 [примечание 4] | 2.5 | 16 | 16 | 1024 или 4096 | никто |
UltraSPARC II (сапфирово-черный) | Солнце STP1032/STP1034 | 360–480 | V9 | 1999 | 1×1=1 | 250 | 5.4 | 126 | 521 | 21 [примечание 5] | 1.9 | 16 | 16 | 1024–8192 | никто |
UltraSPARC III (Сабля) | Это SME1040 | 270–360 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 | 256–2048 | никто |
UltraSPARC IIi (Сапфирово-красный) | Солнце SME1430 | 333–480 | V9 | 1998 | 1×1=1 | 250 | 5.4 | — | 587 | 21 [примечание 6] | 1.9 | 16 | 16 | 2048 | никто |
UltraSPARC IIe (Колибри) | Солнце SME1701 | 400–500 | V9 | 1999 | 1×1=1 | 180 Ал | — | — | 370 | 13 [примечание 7] | 1.5–1.7 | 16 | 16 | 256 | никто |
UltraSPARC IIi (IIe+) (Фантом) | Солнце SME1532 | 550–650 | V9 | 2000 | 1×1=1 | 180 у.е. | — | — | 370 | 17.6 | 1.7 | 16 | 16 | 512 | никто |
SPARC64 ГП | Fujitsu SFCB81147 | 400–563 | V9 | 2000 | 1×1=1 | 180 | 30.2 | 217 | — | — | 1.8 | 128 | 128 | 8192 | — |
SPARC64 ГП | -- | 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 (Гепард) | Солнце SME1050 | 600 | JPS1 | 2001 | 1×1=1 | 180 Ал | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | никто |
UltraSPARC III (Гепард) | СолнцеSME1052 | 750–900 | JPS1 | 2001 | 1×1=1 | 130 Ал | 29 | — | 1368 | — | 1.6 | 64 | 32 | 8192 | никто |
UltraSPARC III Cu (Гепард+) | Солнце SME1056 | 900–1200 | JPS1 | 2001 | 1×1=1 | 130 у.е. | 29 | 232 | 1368 | 50 [примечание 8] | 1.6 | 64 | 32 | 8192 | никто |
UltraSPARC IIIi (Халапеньо) | Солнце SME1603 | 1064–1593 | JPS1 | 2003 | 1×1=1 | 130 | 87.5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | никто |
SPARC64 V (Zeus) | Фуджицу | 1100–1350 | JPS1 | 2003 | 1×1=1 | 130 | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 | 2048 | — |
SPARC64 V+ (Olympus-B) | Фуджицу | 1650–2160 | JPS1 | 2004 | 1×1=1 | 90 | 400 | 297 | 279 | 65 | 1 | 128 | 128 | 4096 | — |
УльтраСПАРК IV (Ягуар) | Солнце SME1167 | 1050–1350 | JPS2 | 2004 | 1×2=2 | 130 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 | 16384 | никто |
UltraSPARC IV+ (Пантера) | Солнце SME1167A | 1500–2100 | JPS2 | 2005 | 1×2=2 | 90 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 (Ниагара) | Солнце SME1905 | 1000–1400 | UA2005 | 2005 | 4×8=32 | 90 | 300 | 340 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | никто |
SPARC64 VI (Олимп-С) | Фуджицу | 2150–2400 | JPS2 | 2007 | 2×2=4 | 90 | 540 | 422 | — | 120–150 | 1.1 | 128×2 | 128×2 | 4096–6144 | никто |
УльтраСПАРК Т2 (Ниагара 2) | Солнце SME1908A | 1000–1600 | UA2007 | 2007 | 8×8=64 | 65 | 503 | 342 | 1831 | 95 | 1.1–1.5 | 8 | 16 | 4096 | никто |
UltraSPARC T2 Plus (Водопад Виктория) | Солнце SME1910A | 1200–1600 | UA2007 | 2008 | 8×8=64 | 65 | 503 | 342 | 1831 | — | — | 8 | 16 | 4096 | никто |
SPARC64 VII (Юпитер) [20] | Фуджицу | 2400–2880 | JPS2 | 2008 | 2×4=8 | 65 | 600 | 445 | — | 150 | — | 64×4 | 64×4 | 6144 | никто |
УльтраСПАРК «РК» ( Рок ) [21] | Солнце SME1832 | 2300 | ???? | отменен [22] | 2×16=32 | 65 | ? | 396 | 2326 | ? | ? | 32 | 32 | 2048 | ? |
SPARC64 VIIIfx (Венера) [23] [24] | Фуджицу | 2000 | JPS2/HPC-ACE | 2009 | 1×8=8 | 45 | 760 | 513 | 1271 | 58 | ? | 32×8 | 32×8 | 6144 | никто |
ЛЕОН2ФТ | Атмел AT697F | 100 | V8 | 2009 | 1×1=1 | 180 | — | — | 196 | 1 | 1.8/3.3 | 16 | 32 | — | —|нет |
SPARC T3 (Радужный водопад) | Оракул/Солнце | 1650 | UA2007 | 2010 | 8×16=128 | 40 [25] | ???? | 371 | ? | 139 | ? | 8 | 16 | 6144 | никто |
Галактика ФТ-1500 | НУДТ (Китай) | 1800 | UA2007? | 201? | 8×16=128 | 40 | ???? | ??? | ? | 65 | ? | 16×16 | 16×16 | 512×16 | 4096 |
SPARC64 VII+ (Jupiter-E or M3) [26] [27] | Фуджицу | 2667–3000 | JPS2 | 2010 | 2×4=8 | 65 | — | — | — | 160 | — | 64×4 | 64×4 | 12288 | никто |
ЛЕОН3ФТ | Кобэм Гайслер GR712RC | 100 | В8Е | 2011 | 1×2=2 | 180 | — | — | — | 1.5 [примечание 9] | 1.8/3.3 | 4x4Кб | 4x4Кб | никто | никто |
1000 рэндов | МЦСТ (Россия) | 1000 | JPS2 | 2011 | 1×4=4 | 90 | 180 | 128 | — | 15 | 1, 1.8, 2.5 | 32 | 16 | 2048 | никто |
SPARC T4 (Йосемитский водопад) [28] | Оракул | 2850–3000 | ОСА2011 | 2011 | 8×8=64 | 40 | 855 | 403 | ? | 240 | ? | 16×8 | 16×8 | 128×8 | 4096 |
SPARC64 IXfx [29] [30] [31] | Фуджицу | 1850 | JPS2/HPC-ACE | 2012 | 1x16=16 | 40 | 1870 | 484 | 1442 | 110 | ? | 32×16 | 32×16 | 12288 | никто |
SPARC64 X (Афина) [32] | Фуджицу | 2800 | OSA2011/HPC-ACE | 2012 | 2×16=32 | 28 | 2950 | 587.5 | 1500 | 270 | ? | 64×16 | 64×16 | 24576 | никто |
СПАРК Т5 | Оракул | 3600 | ОСА2011 | 2013 | 8×16=128 | 28 | 1500 | 478 | ? | ? | ? | 16×16 | 16×16 | 128×16 | 8192 |
СПАРК М5 [33] | Оракул | 3600 | ОСА2011 | 2013 | 8×6=48 | 28 | 3900 | 511 | ? | ? | ? | 16×6 | 16×6 | 128×6 | 49152 |
СПАРК М6 [34] | Оракул | 3600 | ОСА2011 | 2013 | 8×12=96 | 28 | 4270 | 643 | ? | ? | ? | 16×12 | 16×12 | 128×12 | 49152 |
SPARC64 X+ (Афина+) [35] | Фуджицу | 3200–3700 | OSA2011/HPC-ACE | 2014 | 2×16=32 | 28 | 2990 | 600 | 1500 | 392 | ? | 64×16 | 64×16 | 24М | никто |
SPARC64 XIFX [36] | Фуджицу | 2200 | JPS2/HPC-ACE2 | 2014 | 1×(32+2)=34 | 20 | 3750 | ? | 1001 | ? | ? | 64×34 | 64×34 | 12M×2 | никто |
СПАРК М7 [37] [38] | Оракул | 4133 | ОСА2015 | 2015 | 8×32=256 | 20 | >10 000 | ? | ? | ? | ? | 16×32 | 16×32 | 256×24 | 65536 |
СПАРК S7 [39] [40] | Оракул | 4270 | ОСА2015 | 2016 | 8×8=64 | 20 | ???? | ? | ? | ? | ? | 16×8 | 16×8 | 256×2+256×4 | 16384 |
SPARC64 XII [41] | Фуджицу | 4250 | ОСА201? / HPC-ACE | 2017 | 8×12=96 | 20 | 5500 | 795 | 1860 | ? | ? | 64×12 | 64×12 | 512×12 | 32768 |
СПАРК М8 [42] [43] | Оракул | 5000 | ОСА2017 | 2017 | 8×32=256 | 20 | ? | ? | ? | ? | ? | 32×32 | 16×32 | 128×32+256×8 | 65536 |
ЛЕОН4 | Кобэм Гайслер GR740 | 250 [примечание 10] | В8Е | 2017 | 1×4=4 | 32 | — | — | — | — | 1.2/2.5/3.3 | 4х4 | 4х4 | 2048 | никто |
2000 рэндов | МЦСТ (Россия) | 2000 | ? | 2018 | 1×8=8 | 28 | 500 | ? | — | ? | ? | ? | ? | ? | никто |
ЛЕОН5 | Кобэм Гайслер | — | В8Е | 2019 | ? | ? | — | — | — | — | — | ? | ? | 16–8192 | никто |
Имя (кодовое имя) | Модель | Частота (МГц) | Арх. версия | Год | Всего потоков [примечание 1] | Процесс (нм) | Транзисторы (миллионы) | Размер матрицы (мм 2 ) | я прикалываю | Мощность (Вт) | Voltage (V) | L1-кэш (КБ) | ICache L1 (КБ) | Кэш L2 (КБ) | Кэш L3 (КБ) |
Примечания :
- ^ Перейти обратно: а б Потоков на ядро × количество ядер
- ^ Различные реализации SPARC V7 были произведены Fujitsu, LSI Logic , Weitek, Texas Instruments, Cypress и Temic. Процессор SPARC V7 обычно состоял из нескольких дискретных микросхем, обычно состоящих из целочисленного блока (IU), блока с плавающей запятой (FPU), блока управления памятью (MMU) и кэш-памяти. И наоборот, Atmel (теперь Microchip Technology) TSC695 представляет собой однокристальную реализацию SPARC V7.
- ^ @ 167 МГц
- ^ @ 250 МГц
- ^ @ 400 МГц
- ^ @ 440 МГц
- ^ макс. @500 МГц
- ^ @ 1200 МГц
- ^ без учета шин ввода-вывода
- ^ номинальный; спецификация от 100 до 424 МГц в зависимости от возможностей подключенной оперативной памяти
Поддержка операционной системы
[ редактировать ]На машинах SPARC обычно используются SunOS , Solaris , JavaOS или OpenSolaris , включая производные illumos и OpenIndiana другие операционные системы , но также используются и , такие как NeXTSTEP , RTEMS , FreeBSD , OpenBSD , NetBSD и Linux .
В 1993 году Intergraph объявила о портировании Windows NT на архитектуру SPARC. [44] но позже оно было отменено.
В октябре 2015 года Oracle анонсировала «эталовую платформу Linux для SPARC». [45]
Реализации с открытым исходным кодом
[ редактировать ]Существует несколько с полностью открытым исходным кодом реализаций архитектуры SPARC :
- LEON , 32-битная радиационно-устойчивая реализация SPARC V8, разработанная специально для использования в космосе. Исходный код написан на VHDL и лицензируется под лицензией GPL .
- OpenSPARC T1 , выпущенный в 2006 году, 64-битная 32-поточная реализация, соответствующая архитектуре UltraSPARC 2005 и SPARC версии 9 (уровень 1). Исходный код написан на Verilog и лицензируется по множеству лицензий. Большая часть исходного кода OpenSPARC T1 лицензируется по лицензии GPL. Исходный код, основанный на существующих проектах с открытым исходным кодом, будет по-прежнему лицензироваться в соответствии с действующими лицензиями. Бинарные программы лицензируются в соответствии с лицензионным соглашением о бинарном программном обеспечении .
- S1 — 64-разрядное ядро ЦП, совместимое с Wishbone, на основе конструкции OpenSPARC T1. Это одно ядро UltraSPARC V9, поддерживающее 4-way SMT. Как и T1, исходный код распространяется под лицензией GPL.
- OpenSPARC T2 , выпущенный в 2008 году, 64-битная 64-потоковая реализация, соответствующая архитектуре UltraSPARC 2007 и SPARC версии 9 (уровень 1). Исходный код написан на Verilog и лицензируется по множеству лицензий. Большая часть исходного кода OpenSPARC T2 лицензируется по лицензии GPL. Исходный код, основанный на существующих проектах с открытым исходным кодом, будет по-прежнему лицензироваться в соответствии с действующими лицензиями. Бинарные программы лицензируются в соответствии с Лицензионным соглашением на бинарное программное обеспечение.
Также существует симулятор с полностью открытым исходным кодом для архитектуры SPARC:
- RAMP Gold — 32-битная 64-поточная реализация SPARC версии 8, предназначенная для моделирования архитектуры на основе FPGA. RAMP Gold написан на языке SystemVerilog примерно в 36 000 строк и лицензируется по лицензии BSD .
Суперкомпьютеры
[ редактировать ]Для высокопроизводительных вычислений Fujitsu создает специализированные процессоры SPARC64 fx с новым набором расширений инструкций, называемым HPC-ACE (Высокопроизводительные вычисления – расширения арифметических вычислений).
Компьютер Fujitsu K занял первое место в списках TOP500 за июнь 2011 и ноябрь 2011 года. Она объединяет 88 128 процессоров SPARC64 VIIIfx , каждый из которых имеет восемь ядер, что в общей сложности составляет 705 024 ядра — почти вдвое больше, чем в любой другой системе из TOP500 на тот момент. Компьютер K был мощнее следующих пяти систем в списке вместе взятых, и имел самое высокое соотношение производительности и мощности среди всех суперкомпьютерных систем. [46] Он также занял шестое место в списке Green500 за июнь 2011 года с показателем 824,56 MFLOPS/Вт. [47] В рейтинге TOP500 за ноябрь 2012 года компьютер K занял третье место, используя наибольшую мощность из трех лучших. [48] В соответствующем выпуске Green500 он занял 85-е место . [49] Новые процессоры HPC IXfx и XIfx были включены в последние суперкомпьютеры PRIMEHPC FX10 и FX100.
Тяньхэ-2 ( ТОП500 №1 по состоянию на ноябрь 2014 г.) [50] ) имеет ряд узлов с процессорами Galaxy FT-1500 на базе OpenSPARC, разработанными в Китае. Однако эти процессоры не внесли вклад в оценку LINPACK . [51] [52]
См. также
[ редактировать ]- ERC32 — на основе спецификации SPARC V7.
- Ross Technology, Inc. — разработчик микропроцессоров SPARC в 1980-х и 1990-х годах.
- Sparcle — модифицированный SPARC с поддержкой многопроцессорности, используемый в проекте MIT Alewife.
- LEON — процессор SPARC V8 с космическим рейтингом.
- Р1000 — российский четырехъядерный микропроцессор на базе спецификации SPARC V9.
- Galaxy FT-1500 — китайский 16-ядерный OpenSPARC. процессор на базе
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Fujitsu выведет ARM в царство Super» . Музей «Хажина процессора» . 21 июня 2016 года. Архивировано из оригинала 30 июня 2019 года . Проверено 30 июня 2019 г.
- ^ Перейти обратно: а б с д «Хронология» . СПАРК Интернэшнл . Архивировано из оригинала 24 апреля 2019 года . Проверено 30 июня 2019 г.
- ^ Перейти обратно: а б «Фуджитсу СПАРК» . cpu-collection.de . Архивировано из оригинала 6 августа 2016 года . Проверено 30 июня 2019 г.
- ^ Воган-Николс, Стивен Дж. (5 сентября 2017 г.). «Закат солнца: Oracle закрывает последние линейки продуктов Sun» . ЗДНет . Архивировано из оригинала 10 сентября 2017 года . Проверено 11 сентября 2017 г.
- ^ Николс, Шон (31 августа 2017 г.). «Oracle наконец решает перестать оттягивать неизбежное и начинает увольнения оборудования» . Регистр . Архивировано из оригинала 12 сентября 2017 года . Проверено 11 сентября 2017 г.
- ^ «Дорожная карта: Fujitsu Global» . www.fujitsu.com . Проверено 15 февраля 2022 г.
- ^ Перейти обратно: а б «Архитектура Oracle SPARC 2015: одна архитектура… множество инновационных реализаций» (PDF) . Проект D1.0.0. 12 января 2016 г. Архивировано (PDF) из оригинала 24 апреля 2016 г. . Проверено 13 июня 2016 г.
ИМПЛ. ДЭП. #2-V8: Реализация архитектуры Oracle SPARC может содержать от 72 до 640 64-битных R-регистров общего назначения. Это соответствует группировке регистров в наборы MAXPGL + 1 глобальных регистров R плюс циклический стек наборов N_REG_WINDOWS по 16 регистров каждый, известный как окна регистров. Количество присутствующих окон регистров (N_REG_WINDOWS) зависит от реализации и находится в диапазоне от 3 до 32 (включительно).
- ^ «Параметры SPARC» , Использование коллекции компиляторов GNU (GCC) , GNU , заархивировано из оригинала 9 января 2013 г. , получено 8 января 2013 г.
- ^ SPARC Optimizations With GCC , OSNews , 23 февраля 2004 г., заархивировано из оригинала 23 мая 2013 г. , получено 8 января 2013 г.
- ^ Перейти обратно: а б с д и ж Уивер, Д.Л.; Джермонд, Т., ред. (1994). Руководство по архитектуре SPARC, версия 9 . SPARC International, Inc.: Прентис Холл . ISBN 0-13-825001-4 . Проверено 27 мая 2023 г.
- ^ «Поведение и реализация SPARC» . Руководство по численным вычислениям – Sun Studio 10 . Sun Microsystems, Inc. 2004. Архивировано из оригинала 25 января 2022 года . Проверено 24 сентября 2011 г.
Однако есть четыре ситуации, когда аппаратное обеспечение не сможет успешно выполнить инструкцию с плавающей запятой: ... Инструкция не реализуется аппаратным обеспечением (например, ... инструкции четырехкратной точности на любом SPARC FPU).
- ^ «Oracle SPARC Architecture 2011» (PDF) , Oracle Corporation , 21 мая 2014 г., заархивировано (PDF) из оригинала 24 сентября 2015 г. , получено 25 ноября 2015 г.
- ^ Соат, Джон. «СПАРК М7 Инновация» . Веб-сайт Оракула . Корпорация Оракл . Архивировано из оригинала 5 сентября 2015 года . Проверено 13 октября 2015 г.
- ^ «Программное обеспечение в Silicon Cloud — Oracle» . www.oracle.com . Архивировано из оригинала 21 января 2019 года . Проверено 21 января 2019 г.
- ^ Перейти обратно: а б с д и ж г час я Руководство по архитектуре SPARC, версия 8 . SPARC International, Inc., 1992 г. Проверено 27 мая 2023 г.
- ^ Перейти обратно: а б с д и ж г час я «Основные инструкции SPARC» .
- ^ «SPARC64 IXfx Extensions Fujitsu Limited, версия 12, 2 декабря 2013 г.» (PDF) . п. 103-104 . Проверено 17 декабря 2023 г.
- ^ «Floodgap Retrobits представляет Solbourne Solace: храм забытого SPARC» . www.floodgap.com . Архивировано из оригинала 1 декабря 2020 года . Проверено 14 января 2020 г.
- ^ Сагер, Д.; Хинтон, Г.; Аптон, М.; Чаппелл, Т.; Флетчер, Т.Д.; Самаан, С.; Мюррей, Р. (2001). «Микропроцессор CMOS IA32 0,18 мкм с целочисленным исполнительным блоком 4 ГГц». 2001 Международная конференция IEEE по твердотельным схемам. Сборник технических статей. ISSCC (Кат. № 01CH37177) . Сан-Франциско, Калифорния, США: IEEE. стр. 324–325. дои : 10.1109/ISSCC.2001.912658 . ISBN 978-0-7803-6608-4 .
- ^ Основные характеристики и характеристики FX1 (PDF) , Fujitsu , 19 февраля 2008 г., заархивировано (PDF) из оригинала 18 января 2012 г. , получено 6 декабря 2011 г.
- ^ Трамбле, Марк ; Чаудри, Шейлендер (19 февраля 2008 г.), «65-нм 16-ядерный 32-поточный процессор CMT SPARC(R) третьего поколения с 32 потоками Scout» (PDF) , OpenSPARC , Sun Microsystems , заархивировано из оригинала в январе 16 декабря 2013 г. , получено 6 декабря 2011 г.
- ^ Вэнс, Эшли (15 июня 2009 г.), «Солнце говорят, что отменяет проект Big Chip» , The New York Times , заархивировано из оригинала 4 ноября 2011 г. , получено 23 мая 2010 г.
- ^ «Fujitsu демонстрирует SPARC64 VII» , heise online , 28 августа 2008 г., заархивировано из оригинала 23 мая 2013 г. , получено 6 декабря 2011 г.
- ^ Барак, Сильви (14 мая 2009 г.), «Fujitsu представляет самый быстрый процессор в мире» , The Inquirer , заархивировано из оригинала 17 мая 2009 г. , получено 6 декабря 2011 г.
{{citation}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Процессор Sparc T3» (PDF) , Oracle Corporation , заархивировано (PDF) из оригинала 24 апреля 2016 г. , получено 6 декабря 2011 г.
- ^ Морган, Тимоти Прикетт (3 декабря 2010 г.), «Эллисон: Sparc T4 выйдет в следующем году» , The Register , заархивировано из оригинала 7 марта 2012 г. , получено 6 декабря 2011 г.
- ^ «Архитектура серверов SPARC Enterprise серии M» (PDF) , Fujitsu , апрель 2011 г., заархивировано (PDF) из оригинала 4 марта 2016 г. , получено 5 ноября 2011 г.
- ^ Морган, Тимоти Прикетт (22 августа 2011 г.), «Чип Oracle's Sparc T4» , The Register , заархивировано из оригинала 30 ноября 2011 г. , получено 6 декабря 2011 г.
- ^ Морган, Тимоти Прикетт (21 ноября 2011 г.), «Fujitsu демонстрирует 16-ядерный супер-потрясающий процессор Sparc64» , The Register , заархивировано из оригинала 24 ноября 2011 г. , получено 8 декабря 2011 г.
- ^ «Fujitsu запускает суперкомпьютер PRIMEHPC FX10» , Fujitsu , 7 ноября 2011 г., заархивировано из оригинала 18 января 2012 г. , получено 3 февраля 2012 г.
- ^ «Загрузка Ixfx» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 18 мая 2015 г. Проверено 17 мая 2015 г.
- ^ «Изображения SPARC64» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 22 апреля 2016 г. Проверено 29 августа 2017 г.
- ^ «Продукты Oracle» (PDF) . oracle.com. Архивировано (PDF) из оригинала 8 марта 2017 г. Проверено 29 августа 2017 г.
- ^ «Продукты Oracle SPARC» (PDF) . oracle.com. Архивировано (PDF) из оригинала 26 сентября 2018 г. Проверено 29 августа 2017 г.
- ^ «Презентация Fujitsu в формате PDF» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 22 апреля 2016 г. Проверено 29 августа 2017 г.
- ^ «Глобальные изображения Fujitsu» (PDF) . fujitsu.com. Архивировано из оригинала (PDF) 18 мая 2015 года . Проверено 29 августа 2017 г.
- ^ «M7: SPARC следующего поколения. Hotchips 26» (PDF) . swisdev.oracle.com. Архивировано (PDF) из оригинала 31 октября 2014 г. Проверено 12 августа 2014 г.
- ^ «Серверная архитектура Oracle SPARC T7 и SPARC M7» (PDF) . oracle.com. Архивировано (PDF) из оригинала 6 ноября 2015 г. Проверено 10 октября 2015 г.
- ^ Винаик, Басант; Пури, Рахул (24 августа 2015 г.). «Hot Chips – 23–25 августа 2015 г. – Конференция, день 1 – Процессор Oracle Sonoma: усовершенствованный недорогой процессор SPARC для корпоративных рабочих нагрузок» (PDF) . hotchips.org. Архивировано (PDF) оригинала 9 октября 2022 г. Проверено 25 января 2022 г.
- ^ «Раскрыты чертежи: Oracle впихивает Sparc M7 и InfiniBand в более дешевые чипы Sonoma» . theregister.co.uk. Архивировано из оригинала 29 августа 2017 года . Проверено 29 августа 2017 г.
- ^ «Документы Fujitsu» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 29 августа 2017 г. Проверено 29 августа 2017 г.
- ^ «Новые системы Oracle SPARC обеспечивают в 2–7 раз лучшую производительность, возможности безопасности и эффективность, чем системы на базе Intel» . oracle.com. Архивировано из оригинала 18 сентября 2017 года . Проверено 18 сентября 2017 г.
- ^ «Процессор SPARC M8» (PDF) . oracle.com. Архивировано (PDF) из оригинала 28 февраля 2019 г. Проверено 18 сентября 2017 г.
- ^ Маклафлин, Джон (7 июля 1993 г.), «Intergraph для переноса Windows NT в SPARC» , The Florida SunFlash , 55 (11), заархивировано из оригинала 23 июля 2014 г. , получено 6 декабря 2011 г.
- ^ Проект: Linux для SPARC — oss.oracle.com , 12 октября 2015 г., заархивировано из оригинала 8 декабря 2015 г. , получено 4 декабря 2015 г.
- ^ «Список TOP500 (1–100)» , TOP500 , июнь 2011 г., заархивировано из оригинала 23 июня 2011 г. , получено 6 декабря 2011 г.
- ^ «Список Green500» , Green500 , июнь 2011 г., заархивировано из оригинала 3 июля 2011 г.
- ^ «Список Top500 – ноябрь 2012 г. | TOP500 суперкомпьютерных сайтов» , TOP500 , ноябрь 2012 г., заархивировано из оригинала 13 ноября 2012 г. , получено 8 января 2013 г.
- ^ «Список Green500 – ноябрь 2012 г. | The Green500» , Green500 , ноябрь 2012 г., заархивировано из оригинала 6 июня 2016 г. , получено 8 января 2013 г.
- ^ «Тяньхэ-2 (Млечный Путь-2)» , TOP500 , май 2015 г., архивировано из оригинала 26 мая 2015 г. , дата обращения 27 мая 2015 г.
- ^ Кин, Энди, «Tesla Supercomputing» ( mp4 ) , Nvidia , заархивировано из оригинала 25 февраля 2021 г. , получено 6 декабря 2011 г.
- ^ Тибодо, Патрик (4 ноября 2010 г.). «США заявляют, что Китай строит «полностью местный» суперкомпьютер» . Компьютерный мир . Архивировано из оригинала 11 октября 2012 года . Проверено 28 августа 2017 г.
Внешние ссылки
[ редактировать ]- SPARC International, Inc.
- Документация по процессору Oracle SPARC на Wayback Machine (архивировано 13 октября 2019 г.)
- Техническая документация SPARC
- Спецификация архитектуры OpenSPARC
- Справочные материалы по гипервизору/Sun4v
- Расширения Fujitsu SPARC64 V, VI, VII, VIIIfx, IXfx на Wayback Machine (архив от 3 апреля 2019 г.) и спецификация X/X+
- Sun - Документация по процессорам UltraSPARC на Wayback Machine (архивировано 14 января 2010 г.)
- Sun - Открытая документация по оборудованию FOSS на Wayback Machine (архивировано 9 декабря 2011 г.)
- OpenSPARC на Wayback Machine (архивировано 27 февраля 2011 г.)
- Публичная дорожная карта Oracle SPARC и Solaris на Wayback Machine (архивировано 25 мая 2018 г.)
- Дорожная карта Fujitsu SPARC
- Изображения и описания процессора SPARC
- Краткое руководство по модулям MBus (SuperSPARC, HyperSPARC)
- SPARC Версия 9, лекция Дэвида Дитцеля на YouTube
- SPARC в Керли
- Довольно обширный список операционных систем, поддерживающих процессоры SPARC64.