stringtranslate.com

СПАРК

Микропроцессор Sun UltraSPARC II (1997 г.)

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 высокого класса являются SPARC64 XII от Fujitsu (представленный в сентябре 2017 года для сервера SPARC M12) и SPARC M8 от Oracle , представленный в сентябре 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.

В 2002 году Fujitsu и Sun выпустили Спецификацию совместного программирования SPARC 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 :

В 2007 году Sun выпустила обновленную спецификацию UltraSPARC Architecture 2007 , которой соответствовала реализация UltraSPARC T2 .

В августе 2012 года корпорация Oracle представила новую спецификацию Oracle SPARC Architecture 2011 , которая, помимо общего обновления справочника, добавляет в спецификацию 2007 года расширения набора команд VIS 3 и гиперпривилегированный режим . [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. Это изменение не влияет на непривилегированные инструкции.

Регистры SPARC показаны на рисунке выше.

Существует также безоконный регистр Y, используемый инструкциями пошагового умножения, целочисленного умножения и целочисленного деления. [15] : 32 

Процессор SPARC V8 с FPU включает 32 32-битных регистра с плавающей запятой, каждый из которых может хранить одно число с плавающей запятой IEEE 754 одинарной точности. Пара четно-нечетных регистров с плавающей запятой может хранить одно число с плавающей запятой IEEE 754 двойной точности, а группа из четырех регистров с плавающей запятой, выровненных по четырем координатам, может содержать одно число с плавающей запятой IEEE 754 четырехточной точности. [15] : 10 

Процессор SPARC V9 с FPU включает в себя: [10] : 36–40. 

Регистры организованы как набор из 64 32-битных регистров, причем первые 32 используются как 32-битные регистры с плавающей запятой, пары четно-нечетных всех 64 регистров используются как 64-битные регистры с плавающей запятой. и четырехуровневые группы из четырех регистров с плавающей запятой, используемые в качестве 128-битных регистров с плавающей запятой.

Регистры с плавающей запятой не являются оконными; все они являются глобальными регистрами. [10] : 36–40 

Форматы инструкций

Все инструкции SPARC занимают полное 32-битное слово и начинаются на границе слова. Используются четыре формата, различающиеся первыми двумя битами. Все арифметические и логические инструкции имеют 2 операнда-источника и 1 операнд-приемник. [16] RD — это «регистр назначения», куда сохраняются выходные данные операции. Большинство инструкций SPARC имеют как минимум этот регистр, поэтому он располагается в начале формата инструкций. RS1 и RS2 — это «исходные регистры», которые могут присутствовать или отсутствовать или быть заменены константой.

инструкции

Грузы и магазины

Инструкции загрузки и сохранения имеют формат трех операндов, то есть два операнда представляют значения для адреса и один операнд для регистра для чтения или записи. Адрес создается путем сложения двух адресных операндов для получения адреса. Второй операнд адреса может быть константой или регистром. Загрузка берет значение по адресу и помещает его в регистр, указанный третьим операндом, тогда как сохранение берет значение из регистра, указанного первым операндом, и помещает его по адресу. Чтобы сделать это более очевидным, язык ассемблера указывает адресные операнды с помощью квадратных скобок со знаком плюс, разделяющим операнды, вместо использования списка, разделенного запятыми. Примеры: [16]

ld [%L1+%L2],%L3 !загружаем 32-битное значение по адресу %L1+%L2 и помещаем значение в %L3ld [%L1+8],%L2 !загружаем значение из %L1+8 в %L2ld [%L1],%L2 !как указано выше, но без смещения, что аналогично +%G0st %L1,[%I2] !сохраните значение в %L1 в ячейке, хранящейся в %I2st %G0,[%I1+8] !очистить память в %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 бита регистра. rgister и сохраняет только младшие 32 бита. Новая LDSWинструкция устанавливает старшие биты регистра в значение самого верхнего бита слова и загружает 32-битное значение в младшие биты. Новая LDXинструкция загружает в регистр 64-битное значение и STXсохраняет все 64 бита регистра.

Инструкции LDF, LDDFи LDQFзагружают значение одинарной, двойной или четырехкратной точности из памяти в регистр с плавающей запятой; Инструкции STF, STDFи STQFсохраняют в памяти регистр чисел с плавающей запятой одинарной, двойной или четырехкратной точности.

Инструкция барьера памяти MEMBAR служит двум взаимосвязанным целям: она формулирует ограничения порядка между обращениями к памяти и облегчает явный контроль над завершением обращений к памяти. Например, все эффекты хранилищ, которые появляются до команды MEMBAR, должны быть видны всем процессорам, прежде чем могут быть выполнены любые загрузки, следующие за MEMBAR. [17]

АЛУ-операции

Арифметические и логические инструкции также используют формат трех операндов, где первые два являются операндами, а последний — местом хранения результата. Средний операнд может быть регистром или 13-битной целочисленной константой со знаком; остальные операнды являются регистрами. Любой из операндов регистра может указывать на G0; указание результата на G0 отбрасывает результаты, которые можно использовать для тестов. Примеры включают: [16]

добавьте %L1,%L2,%L3 !добавьте значения в %L1 и %L2 и поместите результат в %L3добавить %L1,1,%L1 !увеличить %L1добавить %G0,%G0,%L4 !очистить любое значение в %L4

Список математических инструкций: ADD, SUB, AND, OR, XOR, и отрицательные версии ANDN, ORN, и XNOR. Одна из особенностей конструкции SPARC заключается в том, что большинство арифметических инструкций идут парами: одна версия устанавливает биты кода состояния NZVC в регистре состояния , а другая не устанавливает их, а по умолчанию коды не устанавливаются. Это сделано для того, чтобы у компилятора была возможность перемещать инструкции при попытке заполнить слоты задержки. Если кто-то хочет, чтобы коды условий были установлены, это указывается добавлением ccк инструкции: [16]

subcc %L1,10,%G0 !сравните %L1 с 10 и проигнорируйте результат, но установите флаги

add и sub также имеют еще один модификатор X, который указывает, должна ли операция устанавливать бит переноса:

addx %L1,100,%L1 !добавьте 100 к значению в %L1 и отслеживайте перенос

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 !вычитаем 10 из %L1, устанавливая нулевой флаг, если %L1 равен 10быть WASEQUAL !если установлен нулевой флаг, перейти к адресу, отмеченному 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. 

Команда CALL(переход к подпрограмме) использует 30-битное смещение программного счетчика относительно слова . Поскольку целевой адрес определяет начало слова, а не байта, 30 бит — это все, что необходимо для достижения любого адреса в 4-гигабайтном адресном пространстве. [16] Команда CALL сохраняет адрес возврата в регистре R15, также известном как выходной регистр O7.

Инструкция JMPL(перехода и связи) представляет собой инструкцию с тремя операндами, где два операнда представляют значения для целевого адреса и один операнд для регистра, в который помещается обратный адрес. Адрес создается путем сложения двух адресных операндов для получения 32-битного адреса. Второй операнд адреса может быть константой или регистром.

Большие константы

Поскольку код операции инструкции занимает несколько битов 32-битного командного слова, невозможно загрузить 32-битную константу с помощью одной инструкции. Это важно, поскольку адреса управляются через регистры и являются 32-битными. Чтобы упростить эту задачу, инструкция специального назначения SETHIкопирует свой 22-битный непосредственный операнд в старшие 22 бита любого указанного регистра и устанавливает каждый из младших 10 бит в 0. Обычно за SETHI следует или инструкция только с младшими 10 битами набора значений. Чтобы облегчить эту задачу, ассемблер включает макросы %hi(X)и %lo(X). Например: [16]

sethi %hi(0x89ABCDEF),%L1 !устанавливает старшие 22 бита L1.или %L1,%lo(0x89ABCDEF),%L1 !устанавливает младшие 10 бит L1 с помощью операции OR

Макросы hi и lo выполняются во время компиляции, а не во время выполнения, поэтому они не влияют на производительность, но при этом становится понятнее, что вы устанавливаете для L1 одно значение, а не два несвязанных значения. Чтобы сделать это еще проще, ассемблер также включает «синтетическую инструкцию», setкоторая выполняет эти две операции в одной строке:

установить 0x89ABCDEF,% L1

Это выводит две приведенные выше инструкции, если значение больше 13 бит, в противном случае будет выдано одиночное значение ldсо значением. [16]

Синтетические инструкции

Как отмечалось ранее, ассемблер SPARC использует «синтетические инструкции» для облегчения общих задач кодирования. Дополнительные примеры включают (среди прочих): [16]

Лицензиаты архитектуры SPARC

Следующие организации лицензировали архитектуру SPARC:

Реализации

Примечания :

  1. ^ ab Количество потоков на ядро ​​× количество ядер
  2. ^ Различные реализации SPARC V7 были произведены Fujitsu, LSI Logic , Weitek, Texas Instruments, Cypress и Temic. Процессор SPARC V7 обычно состоял из нескольких дискретных микросхем, обычно состоящих из целочисленного блока (IU), блока с плавающей запятой (FPU), блока управления памятью (MMU) и кэш-памяти. И наоборот, Atmel (теперь Microchip Technology) TSC695 представляет собой однокристальную реализацию SPARC V7.
  3. ^ @ 167 МГц
  4. ^ @ 250 МГц
  5. ^ @ 400 МГц
  6. ^ @ 440 МГц
  7. ^ макс. @500 МГц
  8. ^ @ 1200 МГц
  9. ^ без учета шин ввода-вывода
  10. ^ номинальный; спецификация от 100 до 424 МГц в зависимости от возможностей подключенной оперативной памяти

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

В машинах SPARC обычно используются SunOS , Solaris , JavaOS или OpenSolaris от Sun, включая производные illumos и OpenIndiana , но также используются и другие операционные системы , такие как NeXTSTEP , RTEMS , FreeBSD , OpenBSD , NetBSD и Linux .

В 1993 году Intergraph объявила о портировании Windows NT на архитектуру SPARC, [44] но позже была отменена.

В октябре 2015 года Oracle анонсировала «эталовую платформу Linux для SPARC». [45]

Реализации с открытым исходным кодом

Существует несколько реализаций архитектуры SPARC с полностью открытым исходным кодом :

Также существует симулятор с полностью открытым исходным кодом для архитектуры SPARC:

Суперкомпьютеры

Для высокопроизводительных вычислений 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]

Смотрите также

Рекомендации

  1. ^ abc «Fujitsu выведет ARM в царство Super». Музей «Хажина процессора» . 21 июня 2016 года. Архивировано из оригинала 30 июня 2019 года . Проверено 30 июня 2019 г.
  2. ^ abcd «Хронология». СПАРК Интернэшнл . Архивировано из оригинала 24 апреля 2019 года . Проверено 30 июня 2019 г.
  3. ^ аб "Fujitsu SPARC". cpu-collection.de . Архивировано из оригинала 6 августа 2016 года . Проверено 30 июня 2019 г.
  4. Воган-Николс, Стивен Дж. (5 сентября 2017 г.). «Закат солнца: Oracle закрывает последние линейки продуктов Sun». ЗДНет . Архивировано из оригинала 10 сентября 2017 года . Проверено 11 сентября 2017 г.
  5. Николс, Шон (31 августа 2017 г.). «Oracle наконец решает перестать оттягивать неизбежное и начинает увольнения оборудования». Регистр . Архивировано из оригинала 12 сентября 2017 года . Проверено 11 сентября 2017 г.
  6. ^ «Дорожная карта: Fujitsu Global». www.fujitsu.com . Проверено 15 февраля 2022 г.
  7. ^ ab «Архитектура 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 (включительно).
  8. ^ «Параметры SPARC», Использование коллекции компиляторов GNU (GCC), GNU , заархивировано из оригинала 9 января 2013 г. , получено 8 января 2013 г.
  9. ^ SPARC Optimizations With GCC, OSNews , 23 февраля 2004 г., заархивировано из оригинала 23 мая 2013 г. , получено 8 января 2013 г.
  10. ^ abcdef Уивер, DL; Джермонд, Т., ред. (1994). Руководство по архитектуре SPARC, версия 9. SPARC International, Inc.: Prentice Hall . ISBN 0-13-825001-4. Проверено 27 мая 2023 г.
  11. ^ «Поведение и реализация SPARC». Руководство по численным вычислениям – Sun Studio 10 . Sun Microsystems, Inc. 2004. Архивировано из оригинала 25 января 2022 года . Проверено 24 сентября 2011 г. Однако есть четыре ситуации, когда аппаратное обеспечение не сможет успешно выполнить команду с плавающей запятой: ... Инструкция не реализуется аппаратным обеспечением (например, ... инструкции четырехкратной точности на любом SPARC FPU).
  12. ^ «Oracle SPARC Architecture 2011» (PDF) , Oracle Corporation , 21 мая 2014 г., заархивировано (PDF) из оригинала 24 сентября 2015 г. , получено 25 ноября 2015 г.
  13. ^ Соат, Джон. «СПАРК М7 Инновация». Веб-сайт Оракула . Корпорация Оракл . Архивировано из оригинала 5 сентября 2015 года . Проверено 13 октября 2015 г.
  14. ^ «Программное обеспечение в Silicon Cloud — Oracle» . www.oracle.com . Архивировано из оригинала 21 января 2019 года . Проверено 21 января 2019 г.
  15. ^ abcdefghi Руководство по архитектуре SPARC, версия 8. SPARC International, Inc., 1992 г. . Проверено 27 мая 2023 г.
  16. ^ abcdefghi «Основные инструкции SPARC».
  17. ^ «SPARC64™ IXfx Extensions Fujitsu Limited, версия 12, 2 декабря 2013 г.» (PDF) . п. 103-104 . Проверено 17 декабря 2023 г.
  18. ^ «Floodgap Retrobits представляет Солбурнское утешение: храм забытого SPARC» . www.floodgap.com . Архивировано из оригинала 1 декабря 2020 года . Проверено 14 января 2020 г.
  19. ^ Сагер, Д.; Хинтон, Г.; Аптон, М.; Чаппелл, Т.; Флетчер, Т.Д.; Самаан, С.; Мюррей, Р. (2001). «Микропроцессор CMOS IA32 0,18 мкм с целочисленным исполнительным блоком 4 ГГц». 2001 Международная конференция IEEE по твердотельным схемам. Сборник технических статей. ISSCC (Кат. № 01CH37177) . Сан-Франциско, Калифорния, США: IEEE. стр. 324–325. дои : 10.1109/ISSCC.2001.912658. ISBN 978-0-7803-6608-4.
  20. ^ Основные характеристики и характеристики FX1 (PDF) , Fujitsu , 19 февраля 2008 г., заархивировано (PDF) из оригинала 18 января 2012 г. , получено 6 декабря 2011 г.
  21. ^ Трамбле, Марк ; Чаудри, Шейлендер (19 февраля 2008 г.), «65-нм 16-ядерный 32-поточный процессор CMT SPARC(R) третьего поколения с 32 потоками Scout» (PDF) , OpenSPARC , Sun Microsystems , заархивировано из оригинала в январе 16 декабря 2013 г. , получено 6 декабря 2011 г.
  22. ^ Вэнс, Эшли (15 июня 2009 г.), «Солнце говорят, что отменяет проект Big Chip», The New York Times , заархивировано из оригинала 4 ноября 2011 г. , получено 23 мая 2010 г.
  23. ^ «Fujitsu демонстрирует SPARC64 VII», heise online , 28 августа 2008 г., заархивировано из оригинала 23 мая 2013 г. , получено 6 декабря 2011 г.
  24. Барак, Сильви (14 мая 2009 г.), «Fujitsu представляет самый быстрый процессор в мире», The Inquirer , заархивировано из оригинала 17 мая 2009 г. , получено 6 декабря 2011 г.{{citation}}: CS1 maint: unfit URL (link)
  25. ^ «Процессор Sparc T3» (PDF) , Oracle Corporation , заархивировано (PDF) из оригинала 24 апреля 2016 г. , получено 6 декабря 2011 г.
  26. Морган, Тимоти Прикетт (3 декабря 2010 г.), «Эллисон: Sparc T4 выйдет в следующем году», The Register , заархивировано из оригинала 7 марта 2012 г. , получено 6 декабря 2011 г.
  27. ^ «Архитектура серверов SPARC Enterprise серии M» (PDF) , Fujitsu , апрель 2011 г., заархивировано (PDF) из оригинала 4 марта 2016 г. , получено 5 ноября 2011 г.
  28. Морган, Тимоти Прикетт (22 августа 2011 г.), «Чип Oracle's Sparc T4», The Register , заархивировано из оригинала 30 ноября 2011 г. , получено 6 декабря 2011 г.
  29. Морган, Тимоти Прикетт (21 ноября 2011 г.), «Fujitsu демонстрирует 16-ядерный супер-ошеломляющий процессор Sparc64», The Register , заархивировано из оригинала 24 ноября 2011 г. , получено 8 декабря 2011 г.
  30. ^ «Fujitsu запускает суперкомпьютер PRIMEHPC FX10», Fujitsu , 7 ноября 2011 г., заархивировано из оригинала 18 января 2012 г. , получено 3 февраля 2012 г.
  31. ^ «Загрузка Ixfx» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 18 мая 2015 г. Проверено 17 мая 2015 г.
  32. ^ «Изображения SPARC64» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 22 апреля 2016 г. Проверено 29 августа 2017 г.
  33. ^ «Продукты Oracle» (PDF) . oracle.com. Архивировано (PDF) из оригинала 8 марта 2017 г. Проверено 29 августа 2017 г.
  34. ^ «Продукты Oracle SPARC» (PDF) . oracle.com. Архивировано (PDF) из оригинала 26 сентября 2018 г. Проверено 29 августа 2017 г.
  35. ^ «Презентация Fujitsu в формате PDF» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 22 апреля 2016 г. Проверено 29 августа 2017 г.
  36. ^ «Глобальные изображения Fujitsu» (PDF) . fujitsu.com. Архивировано из оригинала (PDF) 18 мая 2015 года . Проверено 29 августа 2017 г.
  37. ^ «M7: SPARC следующего поколения. Hotchips 26» (PDF) . swisdev.oracle.com. Архивировано (PDF) из оригинала 31 октября 2014 г. Проверено 12 августа 2014 г.
  38. ^ «Серверная архитектура Oracle SPARC T7 и SPARC M7» (PDF) . oracle.com. Архивировано (PDF) из оригинала 6 ноября 2015 г. Проверено 10 октября 2015 г.
  39. ^ Винайик, Басант; Пури, Рахул (24 августа 2015 г.). «Hot Chips – 23–25 августа 2015 г. – Конференция, день 1 – Процессор Oracle Sonoma: усовершенствованный недорогой процессор SPARC для корпоративных рабочих нагрузок» (PDF) . hotchips.org. Архивировано (PDF) оригинала 9 октября 2022 г. Проверено 25 января 2022 г.
  40. ^ «Раскрыты чертежи: Oracle впихивает Sparc M7 и InfiniBand в более дешевые чипы Sonoma» . theregister.co.uk. Архивировано из оригинала 29 августа 2017 года . Проверено 29 августа 2017 г.
  41. ^ «Документы Fujitsu» (PDF) . fujitsu.com. Архивировано (PDF) из оригинала 29 августа 2017 г. Проверено 29 августа 2017 г.
  42. ^ «Новые системы SPARC Oracle обеспечивают в 2–7 раз лучшую производительность, возможности безопасности и эффективность, чем системы на базе Intel» . oracle.com. Архивировано из оригинала 18 сентября 2017 года . Проверено 18 сентября 2017 г.
  43. ^ «Процессор SPARC M8» (PDF) . oracle.com. Архивировано (PDF) из оригинала 28 февраля 2019 г. Проверено 18 сентября 2017 г.
  44. Маклафлин, Джон (7 июля 1993 г.), «Intergraph для переноса Windows NT в SPARC», The Florida SunFlash , 55 (11), заархивировано из оригинала 23 июля 2014 г. , получено 6 декабря 2011 г.
  45. ^ Проект: Linux для SPARC — oss.oracle.com, 12 октября 2015 г., заархивировано из оригинала 8 декабря 2015 г. , получено 4 декабря 2015 г.
  46. ^ «Список TOP500 (1–100)», TOP500 , июнь 2011 г., архивировано из оригинала 23 июня 2011 г. , получено 6 декабря 2011 г.
  47. ^ «Список Green500», Green500 , июнь 2011 г., заархивировано из оригинала 3 июля 2011 г.
  48. ^ «Список Top500 – ноябрь 2012 г. | TOP500 суперкомпьютерных сайтов», TOP500 , ноябрь 2012 г., заархивировано из оригинала 13 ноября 2012 г. , получено 8 января 2013 г.
  49. ^ «Список Green500 – ноябрь 2012 г. | The Green500», Green500 , ноябрь 2012 г., заархивировано из оригинала 6 июня 2016 г. , получено 8 января 2013 г.
  50. ^ "Тяньхэ-2 (Млечный Путь-2)", TOP500 , май 2015 г., архивировано из оригинала 26 мая 2015 г. , получено 27 мая 2015 г.
  51. Кин, Энди, «Tesla Supercomputing» ( mp4 ) , Nvidia , заархивировано из оригинала 25 февраля 2021 г. , получено 6 декабря 2011 г.
  52. Тибодо, Патрик (4 ноября 2010 г.). «США заявляют, что Китай строит «полностью местный» суперкомпьютер». Компьютерный мир . Архивировано из оригинала 11 октября 2012 года . Проверено 28 августа 2017 г.

Внешние ссылки