Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс шпоры.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.62 Mб
Скачать

33. Микропроцессоры с архитектурой sparc фирмы Sun Microsystems.

Семейство процессоров с архитектурой SPARC включает 32-разрядные микропроцессоры MicroSPARC, Super SPARC, HiperSPARC и целый подкласс 64-разрядных микропроцессоров UltraSPARCxx. Традиционно системы на основе SPARC микро­процессоров - это высокопроизводительные рабочие станции для научных расчетов и Unix-серверы. Архитектура SPARC была создана компанией Sun Micro­systems в 1985 г. В ее основу положены результаты работ RISC I и RISC II, проводившиеся в Калифорнийском университете в Беркли с 1980 по 1982 г. В частности, в архитектуру SPARC вошла предложенная в Беркли концепция «регистровых окон», упрощающая создание однопроходных компиляторов и сущест­венно снижающая количество команд обращения к памяти по сравнению с другими реализациями RISC-архитектуры. Основными чертами архитектуры SPARC являются:

- поддержка линейного 32-разрядного адресного простран­ства;

- использование 32-разрядных команд фиксированной структуры с тремя базовыми форматами;

- реализация доступа к памяти и пространству ввода/вы­вода посредством команд загрузки/сохранения;

- небольшое количество способов адресации (либо «ре­гистр - регистр», либо «регистр - непосредственный операнд»);

- использование трехадресных регистровых команд, когда команда выполняется над двумя операндами, а результат поме­щается в регистр-приемник;

- большой регистровый файл с регистровыми окнами, что позволяет значительно сократить накладные расходы, связан­ные с переключением контекста при выполнении параллельных процессов; в каждый момент времени программе доступно во­семь глобальных целочисленных регистров и регистровое окно (24 регистра), отображаемое на регистровый файл;

- отдельный регистровый файл вещественных регистров, который может интерпретироваться в программах как набор из 32 регистров обычной точности (32 бита) или 16 регистров двойной точности (64 бита), или восьми регистров учетверенной точности (128 бит), или как смесь регистров различной разряд­ности;

-отложенная передача управления, когда процессор всегда выбирает команду, следующую за командой передачи управле­ния; она может быть выполнена или не выполнена в зависимости от состояния «аннулирующего» разряда в команде передачи управления;

- быстрые обработчики прерываний;

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

- поддержка сопроцессора, который может использоваться наряду с АЛУ;

- двоичная совместимость программ пользователей на всех реализациях SPARC, т.е. готовые программы должны вести себя совершенно одинаково на всех SPARC-системах.

Любой процессор с архитектурой SPARC может работать попеременно в одном из двух режимов: пользовательском и при­вилегированном. В привилегированном режиме процессор вы­полняет все команды, включая привилегированные. В пользова­тельском режиме попытка выполнения привилегированных ко­манд вызывает прерывание с передачей управления специальной системной программе.

Конкретная аппаратная реализация целочисленного уст­ройства может содержать от 40 до 520 32-разрядных регистров общего назначения. Регистровый файл целочисленного устрой­ства разбит на группы из восьми глобальных регистров и цикли­ческого стека, содержащего от двух до 32 наборов (регистровых окон) по 16 регистров в каждом. В каждый момент времени ис­полняемой программе доступны восемь глобальных регистров и регистровое окно размером в 24 регистра.

Регистры окна разбиты на три группы: восемь входных ре­гистров, восемь локальных и восемь выходных регистров, кото­рые в то же время являются входными регистрами смежного ок­на, т.е. соседние окна перекрываются на восемь регистров. Те­кущее окно задается полем указателя текущего окна в слове со­стояния процессора.

Архитектура SPARC поддерживает три основных типа данных:

-знаковое целое - 8, 16, 32 и 64 разряда;

-беззнаковое целое - 8, 16, 32 и 64 разряда;

-вещественное - 32, 64 и 128 разрядов.

Микропроцессоры UltraSPARCxx являются «старшими» представителями семейства, которые позволили существенно увеличить возможности SPARC-систем по обработке графики и видеоизображений. UltraSPARC стал одним из первых универ­сальных процессоров, в котором эти функции реализованы аппаратно. Он имеет специальный модуль для обработки видеодан­ных и графики. Функции обработки видеоизображений могут работать сразу с восемью элементами изображения. Обработка изображений выполняется в блоке FPU, который обычно выпол­няет операции над 64-битовыми данными с плавающей точкой. В этом блоке выполняются логическое сложение и умножение элементов изображения. В систему команд микропроцессора включен набор команд (VIS - Visual Instruction Set), позволяю­щий загружать и обрабатывать данные в виде 64-битовых бло­ков. VIS насчитывает 30 команд для эффективной обработки мультимедиа, графики, изображений и других алгоритмов, ори­ентированных на целочисленную обработку. Команды VIS включают в себя сложение, умножение и вычитание, что позво­ляет параллельно выполнять за один такт до восьми целочислен­ных операций над байтами или полусловами.

U ltraSPARC имеет также несколько специальных средств, улучшающих его работу с памятью. Это повышает производи­тельность программ мультимедиа и других системных задач. Самым крупным изменением является новая команда перемеще­ния блока данных по шине «процессор - память» со скоростью 600 Мб/с. Это позволяет основному процессору работать как ви­деопроцессор, передавая данные с экрана на экран. Перемещение блока можно с выгодой использовать и в других приложениях, например в сетевом программном обеспечении для перемещения пакетов данных.

Команды сохраняются в кэше и для ускорения обработки предварительно декодируются. Каждые две инструкции в кэше ассоциируются с двумя битами, которые используются для предсказания переходов. Два бита позволяют отслеживать че­тыре различных состояния, кодирующих последние два перехо­да, выполняемых по этим командам. Механизм предвыборки использует эти биты для динамического упреждения переходов. UltraSPARC способен предсказывать переход с вероятностью около 0,9.

Обрабатывающий конвейер UltraSPARC имеет девять эта­пов и позволяет выполнять до четырех команд за один такт. Первые два этапа стандартные - это выборка и декодирование команд. На третьем этапе группируются все команды, которые можно передать следующему блоку. Микропроцессор не изме­няет порядка выполнения этих команд. Задача планирования за­грузки исполнительных модулей решается статически на этапе компиляции. В каждом такте могут выбираться на выполнение две целочисленные команды, две команды с плавающей точкой или графические команды, одна команда загрузки/записи в па­мять или одна команда перехода. Таким образом, при шести возможных командах одновременно могут выполняться лишь четыре. На этом же этапе происходит получение информации из регистров.

После выбора команды конвейер разделяется на две части. Одна ветвь обрабатывает целочисленные команды и команды работы с памятью, а другая - команды с плавающей точкой и графические команды. Команды с плавающей точкой передают­ся в трехэтапный конвейер, который выполняет всю обработку, кроме деления с плавающей точкой и вычисления квадратного корня. Эти функции выполняет отдельный блок. Хотя микро­процессор подает команды поочередно, результаты не обяза­тельно поступают в том же порядке.

Базовые целочисленные команды выполняются за один такт. Другие, такие как целочисленное умножение и деление, могут иметь переменную длительность. Остальные этапы цело­численного конвейера выполняют загрузку/запись в память.

Для получения высокой пропускной способности UltraS­PARC использует иерархию шин. 128-разрядная шина памяти работает с тактовой частотой самого процессора. Для выполне­ния ввода-вывода на периферийные устройства используется шина SBus. Sun Microsystems реализует интерфейс с этой шиной на аппаратном уровне с помощью микросхемы коммутации магистрали, входящей в набор микросхем процессора. Она по­зволяет изолировать шину памяти от шины ввода-вывода и вы­полнять операции чтения из памяти одновременно с вводом- выводом на периферийные устройства. В результате достигается высокий коэффициент использования шины и пропускная спо­собность 1,3 Гбит/с.

Следующий представитель семейства микропроцессор UltraSPARC III, в отличие от предыдущих моделей, требующих учета их архитектурных особенностей на уровне операционной системы, совместим со всеми операционными системами и при­ложениями, созданными для SPARC процессоров.

Новый микропроцессор UltraSPARC Т1 с технологией CoolThreads позволяет снизить энергопотребление систем цен­тров обработки данных, существенно повышая при этом их про­изводительность. Поддерживая выполнение сразу 32 потоков и потребляя примерно столько же энергии, сколько потребляет обычная лампочка, он обеспечивает высокий уровень произво­дительности и низкий уровень энергопотребления в одно и то же время.

Микропроцессор поддерживает до восьми вычислительных ядер, каждое из которых может выполнять четыре потока.

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

Микропроцессор UltraSPARC Т1 имеет следующие пара­метры:

- множественно ассоциативный кэш команд первого уров­ня по 16 Кб на каждое ядро;

- множественно ассоциативный кэш данных с четырьмя каналами по 8 Кб на одно ядро;

- интегрированная множественно ассоциативная кэш-память второго уровня с четырьмя каналами емкостью до 3 Мб;

- поддержка шифрования с открытым ключом (RSA);

- 48-разрядное виртуальное и 40-разрядное физическое ад­ресное пространство;

- поддержка четырех размеров страниц: 8 Кб, 64 Кб, 4 Мб и 256 Мб;

- поддержка версий с 4, 6 и 8 ядрами;

- четыре 144-разрядных интерфейса памяти;

- исправление 4-битных ошибок, обнаружение 8-битных ошибок;

- 128-разрядная шина адреса/данных;

- технология 90-нанометровая.

Дальнейшее развитие данной линии в виде микропроцессо­ра UltraSPARC Т2 представляет собой фактически уже целую вычислительную систему, выполненную на одном кристалле и реализующую серверные функции вычислений, сетевого адми­нистрирования, обеспечения безопасности и ввода/вывода.

Микропроцессоры с архитектурой MAJC, разработанной компанией Sun, предназначены для использования в системах обработки мультимедийных данных и выполнения Internet- приложений.

Первый микропроцессор с данной архитектурой MAJC 5200 был выпущен в середине 2000 г. Он представляет собой два 128-разрядных VLIM (Very Long Instruction Word) микропроцес­сорных ядра, интегрированных на одном кристалле.

В микропроцессоре реализовано четыре уровня паралле­лизма:

- мультипроцессорная структура кристалла;

- мультитредовое выполнение программы;

- VLIM-параллелизм на уровне команд;

- SIMD-обработка данных.

Система команд RISC-процессоров ориентирована на по­точную обработку мультимедийной информации и аппаратную поддержку высокоуровневых конструкций языка Java. Аббре­виатура MAJC образована от «Microprocessor Architecture for Java Computing» (микропроцессорная архитектура для вычисле­ний на языке Java).Архитектура MAJC является масштабируемой. На одном кристалле MAJC может располагаться несколько идентичных процессоров (в зависимости от конкретной реализации), каждый из которых содержит от одного до четырех функциональных блоков - RISC-процессоров и кэш-команд. Каждый из расположенных на кристалле процессоров может выполнять до четырех команд за один такт.

Командное слово MAJC объединяет от одной до четырех 32-разрядных команд, каждая из которых предназначена для од­ного из четырех RISC-процессоров. В том случае, когда не пред­ставляется возможным одновременно задействовать все четыре RISC-процессора, отдельные команды могут отсутствовать, по­этому командное слово MAJC может иметь переменную длину. Для указания количества команд в слове используются его пер­вые два разряда: 00 - одна команда; 01 - две команды; 10 - три команды; 11 - четыре команды. Назначения команд осуществ­ляются в порядке номеров функциональных блоков.