<<
>>

Семейство SUN SPARC

В 1981 г. Э. Бехтольсхайм для работы в сети Стэнфордского университета под управлением операционной системы Unix создал рабочую станцию, которая была им названа SUN (от Stanford University Network — сеть Стэнфордского универ- ситета).
А в 1982 г. он стал одним из основателей компании Sun Microsystems, ныне одной из ведущих фирм, работающих в сфере информационных технологий.

В 1987 г. компания Sun разработала 32-битовый микропроцессор SPARC (от Scalable Processor АRСhitесtuге — масштабируемая или наращиваемая архитек- тура процессора), который был одним из первых процессоров, построенных по RISC-архитектуре. Его система команд содержала всего 55 команд трех различ- ных форматов. К 1995 г. в компании Sun на принципах RISC-архитектуры была разработана 64-битовая система команд SPARC v.9. Не ее базе была создана рабо- чая станция Sun Ultra SPARC I, предназначенная для работы с мультимедийной информацией, а также в качестве веб-сервера и в многопроцессорных системах. Затем было разработано несколько моделей семейства, в которых наращивалась производительность системы.

Относительно недавно был выпущен двухъядер- ный процессор Sun UltraSPARC IV, в котором используется технология Chip Multithreading, незначительно отличающаяся от технологии Hyper Threading процессоров Pentium. Компьютеры семейства SPARC производятся фирмами Sun, Fujitsu Siemens Computers (FSС), Texas Instruments и некоторыми другими.

В качестве примера рассмотрим характеристики 64-paзpяднoгo суперскалярного процессора Sun UltraSPARC III. Он выполнен по 0,18-микронной технологии, состоит из 29 млн. транзисторов, имеет тактовую частоту до 900 МГц, внешний кэш объемом до 8 Мбайт, оперативную память объемом до 2 Тбайт и показатели 467 SРЕСiпt2ООО и 483 SРЕСfр2ООО на частоте 900 МГц.

Процессор UltraSPARC III содержит четыре целочисленных и два веществен- ных функциональных устройства, конвейер длиной 14 ступеней, четыре внут- ренних четырехвходовых кэша: кэш данных объемом 64 Кбайт, кэш команд объ- емом 32 Кбайт, а также кэш предварительной выборки и кэш записи объемом 2 Кбайт каждый.

Работающая на частоте 200 МГц шина внешнего кэша имеет разрядность 288 бит, из которых 256 бит информационных, а остальные 32 бита — контрольные, отно- сящиеся к системе ЕСС. Соответственно, производительность этой шины равна 6,4 Гбайт (32 байта ∙ 200 МГц).

Шина данных имеет разрядность 144 бита, из которых 128 информационных и 14 контрольных системы ЕСС. Частота шины равна 150 МГц, а ее пропускная способность составляет 2,4 Гбайт/с. Адресная шина с разрядностью 43 бита также имеет тактовую частоту 150 МГц.

Архитектура процессора позволяет запускать на исполнение до 6 команд одно- временно, из них четыре целочисленных и две команды с плавающей точкой. Фактически исполнение целочисленных команд занимает всего один такт. Тем не менее используется задержка схода таких команд с конвейера на четыре так- та. Такая задержка необходима для сохранения последовательности результатов в связи с тем, что у процессора UltraSPARC III отсутствует внеочередное ис- полнение — команды программы запускаются на конвейер и сходят с него в том порядке, в котором они заданы в программе. После выборки команды попадают в очередь, содержащую 20 элементов, откуда они группами, содержащими до шести команд, направляются в соответствующие исполнительные устройства. Все команды в группе получают собственный идентификационный код, в соот- ветствии с которым на выходе из конвейера фиксируются результаты их выпол- нения. Описанный пакетный режим для команд довольно эффективно загружает функциональные устройства процессора даже при отсутствии переопределения порядка команд.

Важнейшим архитектурным отличием семейства SUN SPARC является явная нацеленность на обеспечение максимально возможной масштабируемости, которая позволяет объединить до нескольких сотен процессоров в единую вычислитель- ную систему. В связи с этим критической точкой архитектуры стало соединение большого количества процессоров с системной шиной. Очевидно, что размещение на одной шине даже нескольких десятков слотов представляет сложно реализуе- мую задачу.

В связи с этим было принято решение выделить каждому процессору индивидуальную шину, которые подсоединяются к центральному коммутатору, обеспечивающему необходимый обмен данными.

ВНИМАНИЕ --------------------------------------------------------------------------------------------------------

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

Понятно, что в этом случае «узким» местом архитектуры становится сам комму- татор. Однако разработчикам удалось создать коммутационные устройства, про- изводительность которых обеспечивала все потребности архитектуры. Базовым элементом архитектуры SUN SPARC стал высокоскоростной коммутатор UРА (от Ultra Port Architecture). В связи с этим говорят, что компьютеры семейства SUN SPARC построены по архитектуре UРА.

ВНИМАНИЕ --------------------------------------------------------------------------------------------------------

Архитектура UРА — это высокопроизводительная многопортовая (многовходовая) масштабируемая архитектура, построенная на принципе одновременной пакетной коммутации нескольких портов и предназначенная для создания вычислительных систем с произвольным количеством процессоров.

Еще одной принципиальной особенностью архитектуры SUN SPARC является независимая коммутация адресов и данных. Такая особенность позволяет строить системы с произвольной разрядностью шин адресов и данных для каждого ка- нала связи с процессором. При этом передача адреса производится параллельно с прохождением предыдущего пакета данных.

Кратко обсудим особенности системы RISC-команд процессоров SPARC. Один процессор системы содержит:

? тридцать два 64-битовых регистра целых чисел, которые обозначаются %rО, %rl, ..., %rЗl;

? тридцать два 80-битовых регистра с плавающей точкой %fО, %fl, ..., %fЗl;

? двадцать регистров специального назначения, например: регистр %РС со- держит адрес текущей команды, %NРС — адрес следующей команды и т.

д.

Отметим, что некоторые из целочисленных регистров также имеют жестко фик- сированное назначение: например, регистр %rО всегда содержит константу 0, а ре- гистр %rl4 — указатель на вершину стека.

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

Для иллюстрации особенностей системы команд SPARC рассмотрим некоторые примеры. По команде ldsb а, %rl байт оперативной памяти с адресом а, содер- жащий знаковый код, копируется (загружается) в регистр %rl процессора, а по ко- манде ldub а, %rl производится то же самое действие, но считается, что байт па- мяти содержит беззнаковый код. Команда ldsh а, %rl предписывает переслать в регистр %rl уже два байта из поля с адресом а. По команде ldsw выполняется загрузка слова, а по команде ldd — загрузка двойного слова. Команда sth %rl, а обеспечивает запись двух байтов из регистра %rl в поле памяти с адресом а.

Анализируя эти команды, можно заметить, что, в отличие от рассмотренной ра- нее системы команд процессоров х86, в системе команд процессора SPARC мне- мокод команды явно задает длину операнда и формат обрабатываемого кода. Ре- зультат выполнения команды всегда помещается в последний операнд команды.

Еще одна особенность системы команд SPARC состоит в том, что стандартная обрабатывающая команда, например add %r 1, %r2, %r3, задающая сложение со- держимого регистров %rl и %r2 и запись результата в регистр %rЗ, не формирует значения флажков. Чтобы сформировать эти значения, нужно использовать явное указание в мнемокоде: команда аddсс %r 1, %r2, %r3 выполняет то же самое сло- жение, но при этом еще и устанавливаются характеризующие результат флажки.

Приведем еще ряд примеров, показывающих, как в системе команд SPARC зада- ются более сложные адреса операндов:

add %r9, 4, %r9! %r9:=%r9+4

ldb [%r8+78], %r9! Загрузить в %r9 значение из адреса [%r8+78] stb %rlО, [%r6-5]! Записать по адресу [%r-6] значение из %rlО

Приведенные ранее примеры записаны по правилам, принятым в языке Ассемб- лер процессора SPARC. Легко заметить, что отличия от правил записи программ на Ассемблере процессора Intel есть, но они незначительны.

16.3.

<< | >>
Источник: Степанов А. Н.. Архитектура вычислительных систем и компьютерных сетей. 2007

Еще по теме Семейство SUN SPARC:

  1. § 2 Историческое значение семейства. – Семейство в Древнем мире и власть начальника. – Гражданская семья в Риме. – Агнаты, когнаты и род. – Первоначально религиозный ха- рактер семьи и последующее видоизменение ее характера. – Свойство кровной семьи германской. – Славянская семья. – Содержание семейственного права.
  2. § 24 Особое значение целого семейства в торгующем купечестве и в бывших податных сословиях. – Финансовое и хозяйственное значение семейного раздела. – Особое значение семейства в отправлении рекрутской повинности. – Семейная община у Индусов.
  3. V. 3. 1. Семейство показательных и логарифмических функций.
  4. V. 3. СЕМЕЙСТВО ФУНКЦИЙ
  5. V, 1. 4. Использование средних.
  6. Глава 4. ACTION RESEARCH1
  7. Жалоба чиновника
  8. V. 1. 5. Метрические структуры.
  9. Приложение к третьей главе. О значении супружеских и семейственных отношений по другим частям русского законодательства.
  10. Примечания
  11. Трудные родители
  12. Полезные наркотики
  13. Убийца
  14. 2.5.4. Примечания
  15. Стиль подачи материала.
  16. Аспекты транзитной Венеры с натальным Юпитером