Она могла стать Первой: история процессорной архитектуры Alpha (часть 1)

zcg2mgllhzth6zmdrozj26d0yym.jpeg


Впервые об архитектуре Alpha я узнал вскоре после обретения своего первого ПК, осенью 2001 года. Это были не слишком свежие (примерно 1997–1998 года) страдания неизвестного автора о платформе AlphaPC, материнской плате удивительной производительности и поражающих возможностей в формате АТХ. С тех пор эта архитектура запала мне в душу, долгое время борясь за место в сердце с не менее прорывным Pentium Pro. Сейчас представители обоих направлений располагаются в коллекции «Digital Vintage» на расстоянии менее 1 см друг от друга.

Три — эльфийским владыкам в подзвездный предел;
Семь — для гномов, царящих в подгорном просторе;
Девять — смертным, чей выверен срок и удел.
И Одно — Властелину на черном престоле
В Мордоре, где вековечная тьма:
Чтобы всех отыскать,
Воедино созвать
И единою черною волей сковать
В Мордоре, где вековечная тьма.

Дж.Р.Р. Толкин, перевод И.Б. Гриншпуна

Пока за право стать «единым кольцом» борются ARM и RISC-V, давайте вспомним историю «третьего эльфийского кольца», архитектуры, которая могла стать основной на рынке, но, как водится, не стала — Digital Alpha. Она же AXP, она же просто Alpha.

Alpha не была первой архитектурой, рожденной в недрах одной из величайших компьютерных компаний ХХ века. Ее угораздило стать третьей и последней (отсюда и отсылка к Кольцам Власти Средиземья) — после PDP (на самом деле, это семейство архитектур) и VAX. Планы были поистине наполеоновскими: Alpha имела шансы заменить х86, по крайней мере в верхнем сегменте.

Digital пошла на удивительные по меркам рынка RISC-систем меры — выпускала материнские платы для сторонних производителей, лицензировала выпуск процессоров другим фирмам (упс, одной!). Для нее были адаптированы основные операционные системы — Unix и даже Windows NT (!). Но все же что-то пошло не так.

Сначала в 1998 году Digital со всеми «потрохами» досталась Compaq, которая была, без сомнения, рада получить среди прочего собственную RISC-архитектуру. Но спустя чуть больше трех лет произошло слияние HP и Compaq. У HP уже была своя PA-RISC, на замену которой был только что выпущен микропроцессор Itanium, созданный совместно с Intel. И еще одна архитектура компаниибыла нужна «как собаке запасное колесо». Alpha перестала развиваться, продержалась в производстве еще четыре года и была тихо предана забвению.

Кто заменит VAX


История Alpha начинается в тот момент, когда в 1985 году руководство Digital приняло судьбоносное решение: будущее за RISC-процессорами. Основанные на подходе CISC системы VAX на тот момент производились всего 8 лет — первая машина VAX-11/780 (»-11» было отсылкой к совместимости с популярными PDP-11) вышла в октябре 1977 года.

okyds5-sprsl0hwtjsyxijt48vc.jpeg

VAX 11–780 TSD. Источник изображения.
Архитектура была полноценно 32-битной и поддерживала виртуальную память. Последнее было одной из ее главных особенностей, настолько важной, что было вынесено в название — Virtual Address eXtensions. Главной операционной системой для VAX была VMS (Virtual Memory System). Но в реальности Unix, зародившийся когда-то на PDP, уже привычный для пользователей и разработчиков, только набирал популярность.

Лирическое отступление. Еще при жизни компании многие из ее сотрудников не любили аббревиатуру DEC, предпочитая называть ее Digital. Поддержим эту традицию.

При появлении один только процессорный модуль, собранный на TTL-логике, занимал шкаф размером 1,2 на 1,5 метра, но уже к 1983 году стали доступны системы MicroVAX (Micro — это не размер машины, а микропроцессор), в которых процессор занимал одну 68-выводную микросхему, еще одну такую же занимал FPU.

w_zbj72zieb2pcd49x1pivv1sj0.jpeg

MicroVAX 3600 (слева) и принтер. Источник изображения.
Первый MicroVAX обеспечивал всего 30% производительности оригинальной модели. Но уже два года спустя производительность MicroVAX сравнялась с первым VAX. Прогресс в области микроэлектроники тогда творил чудеса, но CISC-чипы становились все сложнее и сложнее, в конце концов — слишком сложными.

Изначально VAX выпускались как миникомпьютеры, их производительность (и цена) была на порядок выше зарождающихся персональных компьютеров. Именно в это время окончательно выделились в отдельный класс систем серверы и рабочие станции. Digital уловила веяние прогресса и закрепила это разделение в отдельных линейках — VAXserver и VAXstation, выросших из MicroVAX.

В итоге, несмотря на перенос основного внимания на RISC-чипы, VAX-системы продолжали разрабатываться аж до 2000 года (!), а выпускаться — до 2005. Впрочем, уже к середине 90-х они уступили своим преемникам в борьбе за производительность. Уделом стала работа уже разработанным для них и PDP огромным количеством программного обеспечения.

PRISM: на полпути к Alpha


Проект PRISM, стартовавший в 1985 году, не был первой пробой RISC-технологий в Digital, но именно на эту разработку были брошены главные силы и именно от нее ждали прорыва в производительности и функциональности. PRISM (Parallel Reduced Instruction Set Machine) должен был стать 32-битным RISC-процессором.Основным конкурентом для него виделось семейство процессоров Motorola 68k, также 32-битное, но относящееся к CISC-решениям.

На базе этих процессором многие компании, например, тогда еще малоизвестные Sun и Silicon Graphics, уже выпускали рабочие станции под управлением Unix. Они были достаточно дешевы, чтобы можно было установить такую каждому пользователю вместо терминала для доступа к миникомпьютеру, и достаточно производительны, чтобы сравниться с целым миникомпьютером или даже обогнать его.

За 1985–1986 годы была выполнена большая часть работы над проектом, его готовность оценивалась в 98%. Параллельно разрабатывались две версии: Crystal для миникомпьютеров и мейнфреймов, на базе эмиттерно-связанной логики, и microPRISM для рабочих станций, на базе CMOS. Но летом 1987 года было принято решение, что новый процессор должен быть 64-битным, и проект пришлось срочно перерабатывать.

Осенью требования снова поменялись после выхода первой рабочей станции Sun на процессоре SPARC. Он был 32-битным и втрое опережал прежнего лидера — Motorola 68020. Теперь PRISM был нацелен только на рабочие станции и должен был остаться 32-битным. Разработка Crystal была свернута.

К началу 1988 года ядро CPU было почти готово, кроме FPU и MMU (блок управления памятью). Эти компоненты разрабатывались не с нуля — в основу лег чипсет Rigel для VAX 6000, но было принято отложить их и довести до завершения само ядро — эта работа была выполнена уже к апрелю. В это время планировалось сохранить VAX как основу для продуктов верхнего уровня (вместо Crystal), а к середине года стало понятно, что к моменту выхода PRISM уже перестанет быть конкурентоспособным.

Было принято решение выпустить собственную серию рабочих станций на процессорах MIPS. Они были несколько менее производительными, но заметно более дешевыми, а главное — их разработка должна была завершиться гораздо быстрее. Так появилась серия DECstation, а проект PRISM был отменен в июле 1988 года.

mvq523vyqsyu93qgh4-hnsdzw2c.jpeg

DECstation 5000/200. Источник изображения.
Интересно, что демонстрационные образцы могли работать на частотах 50–80 МГц, против 16–20 МГц у MIPS, производительность отличалась пропорционально. Вот только MIPS были уже доступны, а у PRISM впереди еще год, а то и два до запуска в серию.

Последствия отмены проекта неожиданно сказались на всей компьютерной индустрии — Digital покинул Дэйв Катлер, один из ключевых разработчиков VMS и извечный критик Unix. Вскоре он начал работу в Microsoft, где возглавил проект разработки операционной системы, ныне известной как Windows NT. Многие особенности работы с памятью и хранилищем (и не только!) были привнесены в ядро системы из системы VMS.

Электрический огурец


Но если для PRISM это был конец, то для Alpha — только начало. Идея проекта сформировалась не сразу. Первой концепцией был RISC VAX — машина, которая выполняла бы основные инструкции VAX, а остальные реализовывались бы на уровне микрокода (предвестник грядущего RISC86). В рамках этой концепции проект немного поштормило — от RISC со своим набором инструкций и реализацией VAX поверх них до выноса замены части инструкций VAX на уровень языка программирования.

Итогом же стал практически возврат к одной из итераций концепции PRISM — 64-битный RISC-процессор, оптимизированный для выполнения VMS и ее программ без каких бы то ни было изменений, чтобы требовалась только перекомпиляция. Новая архитектура получила имя Alpha, полное же маркетинговое название было Alpha AXP, что послужило поводом для шуток — AXP расшифровывали как Almost eXactly PRISM — «почти в точности PRISM».

Сами же микросхемы были маркированы DECchip 21×64, где 21 обозначает XXI век, 64 — разрядность процессора, а х — номер поколения, начиная с нуля. На этом Digital не успокоилась: процессоры получили еще одно внутреннее обозначение — EV4 (первое поколение — 21064), где EV означало Extended VAX. Также есть и неофициальная версия, что EV — это «Electric Vlasic» — отсылка к шуточному исследованию 1989 года о светимости маринованных огурцов (и не только их) под действием высокого напряжения.

Впрочем, до выхода первого коммерческого образца чипа оставалось еще много времени. Пока же для отладки программной части, в том числе прошивки, получившей имя SRM (внезапно System Reference Manual — по названию документа, где она была описана), и микрокодов — PALcode, были выпущены тестовые чипы EV3, лишенные FPU и оснащенные лишь 1 Кбайт кэша. Тестовые образцы были выпущены по 1 мкм техпроцессу в 1991 году и работали на частоте 100 МГц.

hwsksiqbmypllnbunals6bobepa.jpeg

Микропроцессор 21064 в корпусе. Источник изображения.
А уже в феврале 1992 года состоялся релиз основной линейки. DECchip 21064, выпущенные уже по 0.75 мкм техпроцессу, насчитывали 1,68 миллиона транзисторов (площадь кристалла 234 мм2) и работали на частоте от 100 до 150 МГц. Сравните это с 66 МГц i486DX2, пусть даже при меньшей эффективности Alpha в целочисленных вычислениях!

При этом в вычислениях с плавающей запятой Alpha опережала процессоры Intel в разы. Объем кэша составлял 16 Кбайт (L1, 8 Кбайт для инструкций и 8 Кбайт для данных), внешний L2 кэш (B-cache) — до 16 Мбайт (!). На момент релиза это был самый производительный микропроцессор в мире. Цены, впрочем, не отставали — старшая модель стоила $1560 в партиях от 1000 штук.

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

Закономерный вопрос: как же Digital удалось достичь таких частот при сравнимом с i486 техпроцессе? Во-первых, RISC-процессоры проще и используют меньшее число транзисторов, что сразу дает более высокий частотный потенциал. А во-вторых, и в этом главный секрет успеха — разработчики вручную выполняли операции, связанные с проектированием разводки процессора на кристалле. Это крайне трудоемкая методика, но она позволяла в то время получить лучшую оптимизацию, чем использование программных средств.

Хотите еще статей про архитектуры? Их есть у нас:


Открытость — ключ к успеху


Изначально в планах было сделать Alpha открытой платформой — Digital манил успех Intel и платформы IBM PC. И в отличие от многих других RISC-проектов, Alpha действительно нашла применение не только в фирменной технике своего создателя. Вскоре после анонса архитектуры свои системы на основе чипов Alpha представили и независимые производители. Большинство из них использовали системные платы производства Digital, но были и собственные разработки.

Сначала Digital не представила готовые наборы микросхем для построения материнских плат для Alpha, свои же платы компания разработала с использованием заказных микросхем, стыковавших 128-битный интерфейс шины процессора (работала с половиной частоты процессора, возможно использование половины ширины шины) с периферийными шинами.

Это позволило уменьшить номенклатуру изделий в переходный момент — PCI только разрабатывалась, EISA имела сильные позиции в верхнем сегменте рынка, хотя выбор карт для нее был ограничен, Но также сильно усложняло разработку сторонних продуктов, и вскоре появилась серия PCI-чипсетов Apecs, DECchip 21070, выпускавшаяся в двух вариантах:

  1. 21071 — для рабочих станций начального уровня, которые поддерживали до 2 Гбайт ОЗУ и использовали 64-битный интерфейс памяти (модули SIMM устанавливались парами),
  2. 21072 — для более мощных однопроцессорных рабочих станций и серверов с поддержкой до 4 Гбайт памяти, а также тех, что использовали 128-битный интерфейс памяти.


Это позволило платформе завоевать популярность у сторонних производителей. Системы с Alpha выпускали Polywell, Carrera Computers, Aspen Systems, NekoTech (неизвестная мне прежде компания с чудесным названием) и другие относительно небольшие фирмы. Заинтересовались ими и такие гранды, как NetApp (тогда еще просто Network Appliance, компания применила Alpha в своих системах хранения данных) и Cray Research. Системы на основе этой архитектуры заняли значительную долю рынка рабочих станций и даже высокопроизводительных ПК.

Полный вперед


Растущая популярность платформы подкреплялась ее постоянным развитием. Уже через год вышли 166 и 200 МГц модели, выполненные уже на 0.675 мкм техпроцессе (EV4s). А в конце 1993 года было представлено (стало доступно в 1994 году) первое большое обновление — EV45, с удвоенным кэшем первого уровня (32 Кбайт) и частотами уже до 275 МГц (300 МГц модель увидела свет в 1995 году)! Число транзисторов достигло 2,85 миллиона, но площадь кристалла стала значительно меньше — 164 мм2 при техпроцессе 0.5 мкм.

Еще до выхода EV45 была предпринята попытка выпустить более дешевую версию процессора и войти на рынок более массовых компьютеров среднего уровня. LCA4 (Low Cost Alpha) 21066 с частотами 100–166 МГц, появившаяся в начале 1994 года, и LCA45 21066А с частотами 100–266 МГц, конец 1994 года, имели 16 Кбайт кэша L1, лишились поддержки внешнего кэша и получили урезанную вдвое системную шину (64-бит) и интегрированный на кристалле северный мост чипсета с контроллером памяти и шины PCI. Это был первый процессор с интегрированным контроллером PCI.

Контроллер памяти поддерживал до 512 Мбайт памяти c ECC. В некоторых источниках упоминается встроенный 2D-видеоконтроллер с поддержкой до 8 Мбайт видеопамяти и встроенный L2 кэш, но подтверждений этому найти не удалось. Для встраиваемых решений были выпущены версии со сниженной частотой и низким тепловыделением — 21068 (66 МГц) и 21068A (100 МГц). Они выделяли всего 9 Вт против 21–33 Вт у старших моделей.

Если полные версии первого поколения оптимизировались в первую очередь для работы под управлением OpenVMS, хотя поддерживали все совместимые ОС, то младшие были ориентированы на работу с Unix (OSF/1, она же Ultrix, в будущем Tru64 Unix) и Windows NT, на которую возлагались огромные надежды, в ней видели ключ к еще большей популярности архитектуры.

История продолжается


Первые годы были очень успешными для Digital и для Alpha, очень многие верили в будущее архитектуры, в то, что она сможет заменить вездесущую х86 хотя бы в верхних сегментах рынка. Сама Digital рассчитывала использовать и развивать архитектуру в течении 25 лет. Но в то же время Intel, напротив планировала развивать свою х86 и зайти на территорию RISC.

Да, основным конкурентом Intel в ту пору была отнюдь не AMD и не кто-либо из еще многочисленных производителей х86 процессоров. Главными ее конкурентами были RISC-системы и в первую очередь эта тройка — Alpha, PowerPC и MIPS. Для них была выпущена Windows NT, а значит, они могли играть на одном поле. Впрочем, Unix и на х86 уже набирал популярность, и на горизонте взошла новая звезда по имени Linux…

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

P.S. В коллекции «Digital Vintage» пока нет ни одной машины с процессором Alpha первого поколения. Надеюсь, скоро удастся исправить это недоразумение. Как только такая машина окажется в коллекции, я обязательно подготовлю ее детальный обзор. Подписывайтесь на блог Selectel, чтобы не пропустить выход новых статей.

1hdqmj1bvguax5hnugdz0ci_jbw.jpeg

© Habrahabr.ru