DEC Alpha

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:09, 10 декабря 2016.
Alpha APX 21164
Производство: С 1995 по 1998
Производители:
Частота CPU: 333 MHz — 666 MHz
Технология производства: 35 µm — 50 µm
Предшественник Alpha APX 21064
Преемник Alpha APX 21264

DEC Alpha (также известный как Alpha AXP) — 64-разрядный RISC микропроцессор, первоначально разработанный и произведённый компанией DEC, которая использовала его в собственной линейке рабочих станций и серверов. Микропроцессор был создан для компьютеров, которые планировались на смену серии VAX и изначально поддерживался операционными системами VMS и DEC OSF/1 AXP (в 1995 году переименована в Digital UNIX, после покупки DEC компанией Compaq переименована в Tru64 UNIX)[1].

Процессоры DEC Alpha

В 1989 морально стареющая архитектура VAX уже с трудом могла конкурировать с RISC-архитектурами 2-го поколения, такими как MIPS и SPARC, и было вполне очевидно, что следующее поколение RISC оставит VAX немного шансов на выживание. В середине 1989 перед инженерами DEC была поставлена задача по созданию конкурентноспособной RISC-архитектуры с перспективным потенциалом, в то же время минимально несовместимой с VAX, чтобы облегчить перенос на неё VAX/VMS и всей сопутствующей программной базы. Также было определено, что новая архитектура должна изначально быть 64-битной, так как конкуренты уже были в процессе перехода на 64-битные решения. Была создана рабочая группа, в которой главными архитекторами были Ричард Витек и Ричард Сайтс (Richard Sites)[2].

Первое официальное упоминание об архитектуре Alpha датируется 25 февраля 1992 на конференции в Токио. Одновременно в небольшом обзоре для USENET-конференции были перечислены ключевые моменты новой архитектуры. Там же было оговорено, что "Alpha" является кодовым именем нового процессора, а рыночное название будет представлено позже. Процессор обладал "чистой" 64-битной RISC-архитектурой с инструкциями фиксированной длины по 32 бита каждая, 32 64-битными целочисленными регистрами, а также работал с 43-битным виртуальным адресным пространством, которое могло быть расширено вплоть до 64-битного в будущих представителях архитектуры. Как и в VAX, использовался little-endian порядок следования байт (то есть, когда младший байт регистра занимает при записи младший адрес в памяти; поддерживался Intel в противовес к big-endian, изначально внедрённому Motorola и используемому большинством процессорных архитектур того времени, когда старший байт регистра занимает при записи младший адрес в памяти). Математический сопроцессор был изначально интегрирован в ядро вместе с 32 64-битными вещественными регистрами. Кстати, использовался произвольный доступ к ним в отличие от примитивного стэкового, практикуемого сопроцессорами Intel x87. Срок службы новой архитектуры был определен, как минимум, в 25 лет.

Микропроцессор DEC Alpha 21064

Первым процессором стал Alpha 21064 с кодовым названием EV4, изготавливленный с помощью технологии КМОП-4. Данный 64-разрядный суперскалярный кристалл с конвейерной архитектурой имел классический RISC-дизайн. 64-разрядный процессор был конвейерным и суперскалярным, как и другие RISC-процессоры, но, тем не менее, превосходил их всех, что позволило фирме DEC назвать его самым быстрым процессором в мире. Тщательная проработка цепей процессора (что являлось заслугой Hudson design team) и централизованные цепи подачи синхросигналов позволили процессору работать на высоких частотах, несмотря на то, что микроархитектура процессора была во многом аналогична другим RISC-процессорам. Для сравнения, более дешёвый Intel Pentium работал на частоте 66 МГц, хотя был выпущен весной следующего года. Тактовая частота EV4 составляла 150 МГц или 200 МГц. Несколько позже появилась модификация под названием 21064A, которая могла работать на скоростях вплоть до 300 МГц, что обеспечило кристаллу звание самого быстрого процессора того времени. Основным применением EV4 стали серверы и рабочие станции.

Alpha 21064A оставался топовой моделью DEC до выхода следующего поколения процессоров — 21164 (EV5). Он обладал двумя целочисленными блоками и двумя модулями вычислений с плавающей запятой. В EV5 было уже три уровня кэш-памяти: два располагались непосредственно в процессоре, а третий был внешним. Кэш-память первого уровня была разделена на две части: кэш данных и кэш инструкций объемом 8 Кбайт каждый. Объем кэш-памяти второго уровня составлял 96 Кбайт. Тактовая частота процессора варьировалась от 266 МГц до 333 МГц. Alpha 21164 перенял пальму первенства у Alpha 21064A и был быстрейшим процессором до выхода Pentium Pro. Тем не менее, ответ DEC не заставил себя долго ждать — компания выпустила более производительный процессор Alpha 21164A, работающий на более высоких тактовых частотах (до 666 МГц). Процессор использовался в рабочих станциях и серверных компьютерах таких компаний, как Digital, Network Appliance и Cray Research.

В 1996 году было представлено следующее поколение процессоров DEC — Alpha 21264 (EV6). Чип получил несколько важных изменений по сравнению с предшествующими моделями. Например, он поддерживал внеочередное исполнение инструкций, что повлекло за собой полную реорганизацию ядра. Целочисленные блоки и блоки загрузки/сохранения были объединены в единый модуль Ebox, а блоки вычислений с плавающей запятой выделены в модуль Fbox[3]. Помимо самих блоков, эти юниты содержали еще и файлы регистров. Структура кэш-памяти опять стала двухуровневой — она пришла на смену трехуровневой организации кэша в Alpha 21164. Кэш первого уровня сохранил разделение на память для инструкций и для данных. Объем каждой части составлял 64 Кбайт. Что касается кэш-памяти второго уровня, то ее объем мог составлять от 1 Мбайт до 16 Мбайт. Плюс процессор получил поддержку предсказания ветвлений. С течением времени выпускались все новые и новые версии процессоров Alpha 21264, в которых, прежде всего, наращивалась тактовая частота. Последней модификацией стал Alpha 21264E, который работал на частоте 1250 МГц. В начале 1998 года DEC признали банкротом, и она была поглощена компанией Compaq.

Особенности архитектуры Alpha

Alpha 21064 (EV4)

Процессор Alpha 21064, выпущенный в 1994 году, состоял из устройств целочисленной и плавающей арифметики, а также кэш-памяти емкостью 16 Кб. Внешняя шина процессора была 128-разрядной. Кристалл проектировался с учетом реализации передовых методов увеличения производительности, включая конвейерную организацию всех функциональных устройств, одновременную выдачу нескольких команд для выполнения, а также средства организации симметричной многопроцессорной обработки.

В кристалле имеются два регистровых файла по 32 64-битовых регистра: один для целых чисел, второй - для чисел с плавающей точкой. Для обеспечения совместимости с архитектурами MIPS и VAX архитектура Alpha поддерживает арифметику с одинарной и двойной точностью как в соответствии со стандартом IEEE 754, так и в соответствии с внутренним для компании стандартом арифметики VAX.

Блок-схема микропроцессора Alpha 21066

Самая мощная модель процессора 21064 работает на частоте 200 МГц. В конце 1993 года появилась модернизированная версия кристалла - модель 21064А, имеющая на кристалле кэш-память удвоенного объема и работающая с тактовой частотой 275 МГц.

Затем были выпущены модели 21066 и 21068, оперирующие на частоте 166 и 66 МГц. Отличительной особенностью этой ветви процессоров Alpha является реализация на кристалле шины PCI. Это существенно упрощает и удешевляет как проектирование, так и производство компьютеров. Отличительная особенность модели 21068 - низкая потребляемая мощность (около 8 ватт). Основное предназначение этих двух новых моделей - персональные компьютеры и одноплатные ЭВМ. Кэш-память команд представляет собой кэш прямого отображения емкостью 8 Кбайт. Команды, выбираемые из этой кэш-памяти, могут выдаваться попарно для выполнения в одно из исполнительных устройств. Кэш-память данных емкостью 8 Кбайт также реализует кэш с прямым отображением. При выполнении операций записи в память данные одновременно записываются в этот кэш и в буфер записи. Контроллер памяти или контроллер ввода/вывода шины PCI обрабатывают все обращения, которые проходят через расположенные на кристалле кэш-памяти первого уровня.

Контроллер памяти прежде всего проверяет содержимое внешней кэш-памяти второго уровня, которая построена на принципе прямого отображения и реализует алгоритм отложенного обратного копирования при выполнении операций записи. При обнаружении промаха контроллер обращается к основной памяти для перезагрузки соответствующих строк кэш-памяти. Контроллер ввода/вывода шины PCI обрабатывает весь трафик, связанный с вводом/выводом[4]. Под управлением центрального процессора он выполняет операции программируемого ввода/вывода. Трафик прямого доступа к памяти шины PCI обрабатывается контроллером PCI совместно с контроллером памяти. При выполнении операций прямого доступа к памяти в режиме чтения и записи данные не размещаются в кэш-памяти второго уровня. Интерфейсы памяти и PCI были разработаны специально в расчете на однопроцессорные конфигурации и не поддерживают реализацию мультипроцессорной архитектуры.

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

Высокоскоростная шина PCI имеет ряд привлекательных свойств. Помимо возможности работы с прямым доступом к памяти и программируемым вводом/выводом она допускает специальные конфигурационные циклы, расширяемость до 64 бит, компоненты, работающие с питающими напряжениями 3.3 и 5 В, а также более быстрое тактирование. Базовая реализация шины PCI поддерживает мультиплексирование адреса и данных и работает на частоте 33 МГц, обеспечивая максимальную скорость передачи данных 132 Мбайт/с. Шина PCI непосредственно управляется микропроцессором.

В 1994 году была выпущена модернизированная версия этого микропроцессора. Как и его предшественник, новый кристалл Alpha 21066A помимо интерфейса PCI содержит на кристалле интегрированный контроллер памяти и графический акселератор. Эти характеристики позволяют значительно снизить стоимость реализации систем, базирующихся на Alpha 21066A, и обеспечивают простой и дешевый доступ к внешней памяти и периферийным устройствам. Alpha 21066A имеет две модификации в соответствии с частотой: 100 МГц и 233 МГц. Модель с 233 МГц обеспечивает производительность 94 и 100 единиц, соответственно, по тестам SPECint92 и SPECfp92.

Alpha 21164 (EV5)

Новейший микропроцессор Alpha 21164, представленный в сентябре 1995 года, являлся второй полностью новой реализацией архитектуры Alpha. Микропроцессор 21164 обеспечивал производительность 330 и 500 единиц, соответственно, по шкалам SPECint92 и SPECfp92 или около 1200 MIPS и выполнял до четырех инструкций за такт. На кристалле микропроцессора 21164 размещено около 9,3 миллиона транзисторов, большинство из которых образуют кэш. Кристалл построен на базе 0.5 микронной КМОП технологии компании DEC. Он собирается в 499-контактные корпуса PGA (при этом 205 контактов отводятся под разводку питания и земли) и рассеивает 50 Вт при питающем напряжении 3.3 В на частоте 300 МГц.

Переход в 1996 году на 0.35 микронную КМОП технологию привел к возможности дальнейшего увеличения тактовой частоты и производительности процессора[5]. Процессоры Alpha 21164 выпускались с тактовой частотой 366 МГц (11.3 SPECint95, 15.4 SPECfp95) и 433 МГц (13.3 SPECint95, 18.3 SPECfp95). В конце 1996 года начались массовые поставки 21164 с тактовой частотой 500 МГц (15.4 SPECint95, 21.1 SPECfp95). Таким образом, компания DEC на момент 1996 года имела самые мощные процессоры, пиковая производительность которых составляла 2 миллиарда операций в секунду.

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

Блок-схема процессора Alpha 21164

Процессор включает пять функциональных устройств и два вида памяти:

  1. Устройство управления потоком команд (IBOX)
  2. Целочисленное устройство (EBOX)
  3. Устройство плавающей точки (FBOX)
  4. Устройство управления памятью (MBOX)
  5. Устройство управления кэш-памятью и интерфейсом шины (CBOX)
  6. Кэш-память команд и кэш-память данных (Кэш первого уровня)
  7. Множественно-ассоциативная кэш-память ( Кэш второго уровня)

Длина конвейеров процессора 21164 варьируется от 7 ступеней для выполнения целочисленных команд и 9 ступеней для реализации команд с плавающей точкой до 12 ступеней при выполнении команд обращения к памяти в пределах кристалла и переменного числа ступеней при выполнении команд обращения к памяти за пределами кристалла.

IBOX

Устройство управления потоком команд осуществляет выборку и декодирование команд из кэша команд и направляет их для выполнения в соответствующие исполнительные устройства после разрешения всех конфликтов по регистрам и функциональным устройствам. Оно управляет выполнением программы и всеми аспектами обработки исключительных ситуаций, ловушек и прерываний. Кроме того, оно обеспечивает управление всеми исполнительными устройствами, контролируя все цепи обхода данных и записи в регистровый файл. Устройство управления содержит 8 Кбайт кэш команд, схемы предварительной выборки команд и связанный с ними буфер перезагрузки, схемы прогнозирования направления условных переходов и буфер преобразования адресов команд (ITB).

EBOX

Целочисленное исполнительное устройство выполняет целочисленные команды, вычисляет виртуальные адреса для всех команд загрузки и записи, выполняет целочисленные команды условного перехода и все другие команды управления. Оно включает в себя регистровый файл и несколько функциональных устройств, расположенных на четырех ступенях двух параллельных конвейеров. Первый конвейер содержит сумматор, устройство логических операций, сдвигатель и умножитель. Второй конвейер содержит сумматор, устройство логических операций и устройство выполнения команд управления.

FBOX

Устройство плавающей точки состоит из двух конвейерных исполнительных устройств: конвейера сложения, который выполняет все команды плавающей точки, за исключением команд умножения, и конвейер умножения, который выполняет команды умножения с плавающей точкой. Два специальных конвейера загрузки и один конвейер записи данных позволяют командам загрузки/записи выполняться параллельно с выполнением операций с плавающей точкой. Аппаратно поддерживаются все режимы округления, предусмотренные стандартами IEEE и VAX.

MBOX

Устройство управления памятью выполняет все команды загрузки, записи и барьерные операции синхронизации. Оно содержит полностью ассоциативный 64-строчный буфер преобразования адресов (DTB), 8 Кбайт кэш-память данных с прямым отображением, файл адресов промахов и буфер записи. Длина строки в кэше данных равна 32 байтам, он имеет два порта по чтению и реализован по принципу сквозной записи. Он индексируется разрядами физического адреса и в тегах хранятся физические адреса. В устройство управления памятью в каждом такте может поступать до двух виртуальных адресов из целочисленного устройства. DTB также имеет два порта, поэтому он может одновременно выполнять преобразование двух виртуальных адресов в физические. Команды загрузки обращаются к кэшу данных и возвращают результат в регистровый файл в случае попадания. При этом задержка составляет два такта. В случае промаха физические адреса направляются в файл адресов промахов, где они буферизуются и ожидают завершения обращения к кэш-памяти второго уровня. Команды записи записывают данные в кэш данных в случае попадания и всегда помещают данные в буфер записи, где они ожидают обращения к кэш-памяти второго уровня.

Модели

Модель AKA Год Частота,

МГц

Тех. процесс,

мкм

Транзисторов,

млн

Размер кристалла,

мм²

Кол-во контактов Потребляемая мощность,

Вт

Напряжение

питания, В

Пропуск.

способность памяти, МБ/с

Кэш данных,

КБ

Кэш команд,

КБ

Scache Bcache Система команд
EV4 21064 1992 100—200 0,75 1,68 234 290 30 3,3 80 8 8
EV45 21064A 1994 200—300 0,5 2,85 164 33 3,3 80 16 16
LCA4 21066 1993 100—166 0,68 1,75 209 21 3,3 30 8 8
LCA45 21066A 1994 166—233 0,5 1,75 161 23 3,3 30 8 8
EV5 21164 1995 266—500 0,5 9,7 299 296 56 3,3/2,5 150 8 8 96 КБ 1 R
EV56 21164A 1996 400—767 0,35 9,3 209 46 3,3/2,0 300 8 8 96 КБ 1—2 МБ R,B
PCA56 21164PC 1997 400—533 0,35 3,5 141 264 40 3,3/2,5 8 16 1 МБ R,B,M
PCA57 21164PC 600—666 0,28 5,7 101 283 20 2,5/2,0 16 16 1 МБ R,B,M
EV6 21264 1998 450—600 0,35 15,2 314 389 73 2,0 1600 64 64 2—8 МБ R,B,M,F
EV67 21264A 1999 667—750 0,25 15,2 210 389 2,0 64 64 2—8 МБ R,B,M,F,C
EV68AL 21264B 2001 800—833 0,18 15,2 125 1,7 64 64 2—8 МБ R,B,M,F,C,T
EV68CB 21264C 2001 1000—1250 0,18 15,2 125 65—75 1,65 64 64 2—8 МБ R,B,M,F,C,T
EV68CX 21264D 1,65 64 64 2—8 МБ R,B,M,F,C,T
EV7/EV7z 21364 2003 800—1300 0,18 130 397 125 1,5 64 64 1,75 МБ R,B,M,F,C,T
EV79 21364A(?) (свёрнуто) 1700 0,13 152 300 120 1,2 64 64 1,75 МБ? R,B,M,F,C,T


Расширения системы команд:

R: ?

B: BWX, «Byte/Word Extension», дополнительные инструкции для выполнения 8- и 16-битных операций при обращении к памяти и устройствам ввода-вывода

M: MVI, мультимедиа-инструкции

F: FIX, инструкции для преобразования целых чисел в числа с плавающей запятой и извлечения квадратного корня

C: CIX, инструкции для поиска и подсчёта битов

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

Общие тенденции развития МП DEC Alpha

Развитие МП Alpha сначала шло в направлении первоочередного роста тактовой частоты при относительно простой микроархитектуре МП. Наиболее ярко это выразилось в Alpha 21064 . Микроархитектура 21164 сильно усложнилась , а сам МП далеко обогнал всех оппонентов по тактовой частоте и пиковой производительности (Пт) при работе с вещественной арифметикой . При этом это процессор имеет существенно более простое внутреннее строение, чем суперскалярные микропроцессоры конкурентов с внеочередным выполнением команд - HP PA-8x00 или SGI/MIPS R10000 . Однако, в Alpha 21264 разработчики также обратилась к внеочередному суперскалярному выполнению команд.[6]

Влияние на отрасль

Процессор Alpha и заложенные в нём концепции прямо или косвенно оказали влияние на конструкцию других процессоров и на развитие отрасли в целом.

В оригинальном процессоре AMD Athlon использовалась шина, первоначально разработанная для Alpha. В процессоре AMD Opteron применяется высокоскоростная межпроцессорная магистраль HyperTransport и встроенный контроллер памяти — технологии, аналогичные тем, которые первыми предложили разработчики Alpha. Дирк Мейер, главный инженер процессоров AMD, раньше работал над Alpha.

Применяемая в современных серверных и настольных процессорах Intel технология HyperThreading, позволяющая процессору решать несколько задач одновременно, навеяна исследованиями в области многопоточности, проведёнными командой Alpha в DEC в 1990-е годы. Из HP в Intel перешли более 300 инженеров, работавших над Alpha, теперь большинство из них работает над процессором Itanium 2.

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

Источники

  1. Википедия [Электронный ресурс] : DEC Alpha / Дата обращения 2.12.2016 — Режим доступа:https://ru.wikipedia.org/wiki/DEC_Alpha
  2. Alasir [Электронный ресурс]: Alpha: история в фактах и комментариях / Дата обращения 2.12.2016 - Режим доступа: http://alasir.com/articles/alpha_history/prism_to_alpha_rus.html
  3. Ferra [Электронный ресурс]: Процессоры DEC Alpha / Дата обращения 2.12.2016 - Режим доступа: http://www.ferra.ru/ru/system/review/processor-evolution-part-4/#Процессоры_DEC_Alpha
  4. CitForum [Электронный ресурс]: Особенности архитектуры Alpha компании DEC / Дата обращения 2.12.2016 - Режим доступа: http://citforum.ru/database/skbd/glava_22.shtml
  5. Carnegie Mellon University [Электронный ресурс]: Alpha 21164 Microprocessor Features / Дата обращения: 2.12.2016 - Режим доступа: http://www.cs.cmu.edu/afs/cs/academic/class/15740-f03/public/doc/alpha-21164-data-sheet.pdf
  6. Открытые системы [Электронный ресурс]: Микроархитектура DEC Alpha 21264 / Дата обращения: 2.12.2016 - Режим доступа: http://www.osp.ru/os/1998/01/179393/