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




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

Во-вторых, это последняя часть повествования, и, как понимаете, хеппи-энда ждать не приходится. В конце будет «Goodnight, sweet princess». Ну и в-третьих, хотелось придумать, как смягчить горькое послевкусие, и, кажется, моя идея должна сработать. Давайте приступим!

После ориентации Compaq на поддержку Itanium Alpha попала в крайне затруднительное положение. Ситуацию усугубило не самое дружественное слияние HP и Compaq. У HP уже был свой PA-RISC и именно HP с самого начала проекта сотрудничал с Intel при создании Merced — будущего Itanium.

И все же, на машины с Alpha был небольшой, но устойчивый спрос. И если Tru64 Unix еще как-то можно было заменить HP-UX, то для OpenVMS Alpha была единственной платформой. А эта ОС была в фаворитах у финансовых воротил благодаря своей надежности и, главное, безопасности. Да, еще в 2001 году Compaq запустил проект по портированию ее на Itanium, но готовность системы была невысокой. Да и сам «Итаник» возложенных на него ожиданий, мягко говоря, не оправдывал.

Новой надежды миг


Как обычно бывает, неудача одного продукта позволяет возвысится или хотя бы немного продлить жизнь другому. Так получилось и с Альфой. Еще в 1998 году был представлен проект Alpha 21364 (EV7), который должен был стать дальнейшим развитием EV6, а не полностью новой разработкой. Первые промышленные образцы появились лишь спустя четыре года, в январе 2002-го, — и явно не по причине трудностей. На мой взгляд, проект спешно «откопали», когда стало понятно, что Itanium еще не готов заменить Альфу.

Alpha EV7 основывались на том же ядре, что и последние представители предыдущего поколения — EV68. Тактовая частота достигала 1.25 ГГц, хотя в большинстве выпущенных систем процессоры работали на частотах от 1.0 до 1.15 ГГц. Выпускались они в соответствии с 0.18 мкм техпроцессом. Они состояли из 152 миллионов транзисторов, площадь кристалла составляла внушительные 397 мм2.

Если ядро осталось прежним, то остальные компоненты претерпели значительные изменения. Кэш L2 теперь располагался на чипе, имел объем 1.75 Мбайт и был подключен к ядру 128-битной шиной, работавшей по принципу DDR. Но самым значительным стал «переезд» контроллера памяти в процессор. Это был пятиканальный контроллер RDRAM (Direct RAMBUS). Из пяти каналов эффективно использовались четыре, а пятый обеспечивал дополнительную отказоустойчивость — память работала подобно RAID уровня 3. Более детально о RAMBUS я рассказывал в одной из предыдущих статей.

В многопроцессорных системах задействовались контроллеры памяти каждого процессора, что позволяло достичь колоссальной по тем временам производительности подсистемы памяти, несмотря на дополнительные задержки при обращении к массиву памяти, принадлежащему другому процессору. Пропускная способность одного массива памяти составляла 12.8 Гбайт/с, а в четырехпроцессорной NUMA-системе — уже 51.2 Гбайт/с! При этом в одной системе могло работать до 128 процессоров!

В этом поколении HP осталась единственным поставщиком систем с Alpha, платы для сторонних производителей не производились. Впрочем, какое-то время еще выпускались платы под лицензированные Samsung процессоры серии 21264. Модельный ряд стал более скуден, его основу составили серверы — от 2 до 8 процессоров на систему — и лишь одна двухпроцессорная рабочая станция AlphaStation ES47, построенная на основе одноименного сервера. Впрочем, старшая модель сервера GS1280 была довольно примечательной. До 8 серверов этой модели можно было объединить в единую систему с 64 процессорами, которые могли обращаться напрямую друг к другу.

Попытка номер пять


Проект пятого поколения архитектуры — EV8, или 21464, c кодовым именем «Araña» — впервые был представлен еще в 1999 году. В этом поколении должна была появиться технология SMT, Simultaneous Multi-Threading, с поддержкой сразу 4 потоков на каждое ядро. Для этого должно было быть удвоено количество исполнительных устройств. Ожидалось, что процессоры будут выпускаться по 0.13 мкм техпроцессу и достигнут частоты 1.8 ГГц. Объем кэша также должен был быть увеличен до 3 Мбайт.

Обильное употребление частицы «бы» подсказывает, что этим планам не суждено было сбыться. После многочисленных переносов сроков (сначала на 2003, а потом и на 2004 год) в конце 2001 года проект был окончательно отменен.

Планировалось также и несколько обновлений EV7 с переносом на 0.13 мкм нормы, но в реальности до рынка добрался лишь EV7z в конце 2004 года. Эти процессоры так и остались на 0.18 мкм техпроцессе, но сумели достигнуть частоты 1.3 ГГц за счет небольшой отладки производства.

The bitter end


На этом развитие архитектуры Alpha было закончено. Для крупных клиентов представленные модели серверов продолжали выпускаться до апреля 2007 года, хотя из общих прайс-листов ушли еще осенью 2006 года. По иронии судьбы PA-RISC, внутренний конкурент Alpha, пережил ее всего на год — последние машины были представлены в 2005-ом, а выпуск их был завершен в 2008 году. И несмотря на то, что Itanium выпускается по сей день, судьба его была предрешена тогда же, в середине «нулевых».

Эра доминирования RISC в высокопроизводительных системах заканчивалась. И лишь теперь мы можем ожидать ответный удар от накопивших силы ARM и RISC-V. Пожелаем им удачи!

Сладкая пилюля


Как я уже говорил, заканчивать цикл статей на такой грустной ноте мне очень не хотелось, и я долго думал, как же этого избежать. На самом деле рецепт прост: найти интересную Альфа-систему и рассказать о ней. Вот только где же ее найти? Впрочем, если задаться целью — найти получится. Или она тебя сама найдет!

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

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

На словах все кажется быстро, но, так как мой коллега находился во Владивостоке, разница в часовых поясах затянула наши переговоры на три недели. Только в конце октября, через пару дней после моего возвращения с конференции Mont Cloud Club, плата попала в мои руки.

К тому моменту я уже вооружился инструкцией, которая заметно ускорила диагностику и запуск платы. Во-первых, был неправильно установлен джампер, задающий частоту процессора, — он пытался работать на 600 МГц, хотя маркировка гласила о 533 Мгц. Во-вторых, был установлен джампер режима восстановления прошивки (вероятно, на 600 МГц плата работала нестабильно, и кто-то пытался восстановить прошивку, считая, что она слетела).

Кстати, комплект был выпущен на исходе 1997 года (49 неделя) — сравните 533 и 600 МГц Alpha с 300 МГц Pentium II. На борту установлено 2 Мбайт кэша, так что сравнивать скорее стоит с Pentium Pro c 1 Мбайт полноскоростного кэша. А тот работал и вовсе на 200 МГц.

После восстановления правильных положений перемычек плата начала стартовать, но судить об этом я мог лишь по показаниям пост-карты. Можно было бы винить видеокарту, но я уже знал, что она совместима с Alpha. Поэтому просто взял последовательный кабель и подключил ноутбук с эмулятором терминала к первому COM-порту.


Та-дам! Плата работоспособна, установлена прошивка SRM для работы с Digital/Tru64 Unix (OpenVMS официально не поддерживается, но у платы есть режим работы с ней). Проверяем настройки — так и есть, консоль по умолчанию — последовательный порт. Меняем настройки и перезагружаемся — результат на лицо, вернее на монитор!

После некоторых размышлений я решил собрать на базе платы рабочую станцию под управлением Windows NT. Но для начала нужно систему укомплектовать, а саму материнку — перепрошить под AlphaBIOS, который требуется для запуска Windows NT и некоторых версий Linux/xBSD. Поиски не вызвали больших затруднений и были найдены свежие версии прошивок для 164LX — как SRM, так и AlphaBIOS.


Да, в отличие от большинства готовых решений, эти платы несут на борту только одну прошивку, и для замены требуется ее обновление. Из-под SRM требуется набрать команду arcbios, предварительно вставив дискету с прошивкой. Она будет запущена с дискеты, и из нее уже можно будет выполнить обновление, причем таким образом можно обновить любую из прошивок. В результате плата работает под управлением AlphaBIOS 5.70 — последней версии прошивки, поддерживающей как Windows NT 4.0, так и Windows 2000.

Теперь пора укомплектовать систему. Важной особенностью построения системы с Alpha является обеспечение совместимости основных компонентов — SCSI-контроллера, видеокарты и сетевой карты. SRM и AlphaBIOS поддерживают целый набор (на самом деле не очень большой) SCSI-контроллеров нативно и могут опрашивать их при запуске.

Также AlphaBIOS может эмулировать инструкции х86 для видеокарт и SCSI-контроллеров, что расширяет возможности использования комплектующих — главное, чтобы нашлись драйвера для ОС (например, для карт NVIDIA драйверов нет даже в поставке Windows 2000 RC1). Я использовал видеокарту Matrox Millennium II с 4 Мбайт видеопамяти и SCSI-контроллер Adaptec AHA-2940UW (как в машине с двумя Pentium Pro из соответствующей статьи).

Этот контроллер поддерживается нативно, но для входа в меню настройки или работы со встроенными утилитами потребуется включить эмуляцию BIOS в настройках платы. На плате присутствует IDE контроллер CMD0646, но лишь в последних версиях AlphaBIOS появилась возможность загрузки с него — не пристало компьютер такого уровня строить с IDE дисками.

Интересная история с сетевыми картами. Для карт на чипах Digital поддерживается инициализация IP-стека в AlphaBIOS и SRM, что дает возможность сетевой загрузки и красивую картинку с настройками TCP/IP при запуске машины. При этом на уровне ОС поддерживается и множество сторонних карт. Ограничение — BootROM, конечно, работать не будет.

Найти сетевую карту на DECchip 2114x, некогда очень распространенном, оказалось непростой задачей. Я готов был уже заказывать карту с eBay, но у одного из друзей случайно нашлась нужная в коробке с запчастями. Причем это оказалась карта производства самой DEC — DE500.


Остальные комплектующие достаточно стандартны. Систему хранения составляют жесткий диск на 9 Гбайт, привод CD-RW (6x/4x/24x) и стример DDS-3 — конечно же, все с интерфейсом SCSI. Звуковая карта — Creative AWE64 для шины ISA. В итоге остались свободны по одному слоту ISA и PCI64. Оперативная память — обычные DIMM SDRAM с ECC, модули без ECC и регистровые модули не поддерживаются.


Отыскать четыре планки по 256 Мбайт не составило больших проблем — 1 Гбайт как раз максимальный поддерживаемый объем памяти. С выбором корпуса сомнений не было — только мой любимый InWin H500, который моим читателям наверняка уже надоел до икоты!

На самом деле, нужна еще одна деталь — заглушка для панели портов ввода-вывода. В комплекте с платой их не поставляли, но в инструкции приведен подробный чертеж. «Пустые» заглушки уже заказаны — как только приедут, будем учиться вырезать их на лазерной установке. Была мысль сделать заглушку методом 3D-печати, можно было бы даже сделать что-то необычное, с фирменными надписями, например, но простая металлическая заглушка будет выглядеть аутентичнее, на мой взгляд.


Ну и куда же без фирменных хитростей от «Digital Vintage»! На корпусе, как и положено, эмблема «SERVERGHOST», а саму машину запишем в серию «SERVERGHOST Constellation AXP». В SRM есть возможность указать кастомную строку идентификации, которая будет выводиться при запуске, но в AlphaBIOS возможностей кастомизации я не нашел, впрочем, это не значит, что их нет.

Вероятно, эту машину можно назвать самой поздней выпущенной Альфой. На момент выпуска статьи, конечно. Возможно, найдутся еще энтузиасты, которые отыщут старые платы и соберут еще несколько машин. Такие планы есть и у меня. Хотелось бы отыскать другие модели плат и построить еще пару необычных сборок.

Есть ли жизнь на Alpha Windows?


Одной из причин выбора Windows NT в качестве ОС для этой рабочей станции стало желание проверить, насколько полноценно можно было использовать ее для повседневных задач в то время. Когда я тестировал Alpha EB164, возможности создать полноценное окружение у меня не было, сейчас же я не был ограничен во времени и ресурсах (напомню, у той машины было всего 64 Мбайт памяти).


Первым делом устанавливаем Windows 2000 Professional. Тестовая версия при установке даже не требует ключа, но истекает через 90 дней. Сразу заметно, что система еще не доработана, хотя и почти готова. Например, крайне скудный выбор локалей, ограниченный несколькими европейскими. Кириллица не поддерживается — вместо нее «крякозябры».

Но, в целом, система работоспособна. Поддержка оборудования на хорошем уровне — в комплект входит множество драйверов (учитывая, что комплектными драйверами мы и ограничены — никто не выпустил драйверов для Windows 2000/Alpha для своих девайсов). На удивление не заработало программное выключение питания, хотя поддержка ACPI заявлена и для платы, и для ОС. Из интересных особенностей — поддержка эмуляции x86 включена сразу в поставку системы.

Впрочем, оставлять Windows 2000 я не планирую изначально — в конце 1999 года платы с Alpha покупали для работы с Unix. Так что вернемся на два года назад и установим Windows NT 4.0 — вполне актуальную и удобную среду для работы и даже отдыха. У меня с давних пор была русская Multiarch (Alpha/PowerPC/x86) с SP1. Основная проблема — значительная часть программ требует SP3 или SP4, куда было добавлено немало важных фич. Поиски русской версии Service Pack оказались очень трудны, была даже мысль бросить это дело и поставить английскую версию (русская редкая — тем интереснее!).

Но спустя неделю поисков все же удалось найти диск SP6 Russian Multiarch. Лишь одно важное дополнение найти не получилось — Internet Explorer 4.0 пришлось установить на английском языке. Сильно меня это не смущало, но при установке MSIE с несовпадающей локализацией недоступна установка Active Desktop, что, впрочем, небольшая потеря.

Вообще система NT 4.0 довольно стабильная и неприхотливая. Главное — заранее подобрать совместимые устройства. Особенно ограничена поддержка звуковых карт (хотя, если карта совместима с Sound Blaster, проблем не будет) и видеокарт. Например, мне крайне не понравилась производительность Matrox даже в 2D режиме — видны подтормаживания при перетаскивании окон. Проблема именно в драйверах — их писала не Matrox, а, внезапно, Digital. Попробую со временем найти PowerStorm или ELSA Gloria с полноценной поддержкой OpenGL.

Из несколько неожиданных проблем удивили «крякозябры» на начальном этапе загрузки системы. В русской версии зачем-то русифицирован и загрузчик osloader.exe — после подмены его на файл из английской версии (важно: если установлен Service Pack, нужно брать из него) проблема решилась. Похоже, либо через AlphaBIOS нет возможности загрузить в видеокарту свои шрифты, либо Microsoft забыла реализовать эту функцию. Хотя дело может быть и в видеокарте — нужно попробовать то же самое с картой от Digital.


Еще одна проблема, решить которую мне пока не удалось: после установки Windows 2000 на экране загрузки осталась надпись «Press F8 for Windows 2000 advanced startup options» — она так и не ушла после установки Windows NT. Откуда растут ноги — понятно. В AlphaBIOS довольно много функций управления загрузкой вынесены в прошивку, в том числе есть возможность задавать настройки загрузки и устанавливать переменные.

К сожалению, Windows NT 4.0 эту переменную устанавливать не умеет, а информацию, как это сделать другими средствами, мне найти не удалось. Если здесь есть энтузиасты платформы, буду очень рад подсказке. Поиски в интернете пока результатов не дали — есть два упоминания о проблеме (одно из них мое) и ни одного решения.

Вернемся к оценке жизнеспособности платформы. Что наполняет платформу жизнью? Конечно, софт. Отвечу честно — жизнь есть, можно найти программы для большинства задач, но выбор их крайне скуден. Все, что мне удалось найти, занимает около 7 Гбайт, и среди подборки есть дублирующиеся дистрибутивы — нужно навести порядок.


Но самое главное есть: браузер Netscape, Word и Excel (полного офиса все же нет), среда разработки Visual C 6.0. Есть мультимедийный софт — я поставил плеер WinAMP и CDRWIN для записи дисков, есть даже DVD плеер. А вот проигрывателя DivX я не обнаружил. Radmin не заработал через эмуляцию, но есть целых две версии VNC, собранные под платформу.

Из игр — есть немногое, но важное. Quake и Quake II с поддержкой OpenGL, но на моей карте программный рендеринг работает быстрее, чем OpenGL. Важная для меня веха — с установленными обновлениями все же заработали через эмулятор мои любимые «Герои Меча и Магии III», хотя производительность оставляет желать лучшего.


Большую часть каталога мне пока не удалось опробовать, но я надеюсь, что сумею выкроить для этого время. Кроме стороннего софта, есть еще и комплект BackOffice от Microsoft. Ключевой серверный софт доступен для Альфы в полном комплекте, включая MS SQL, IIS и терминальный сервер.

The End


Факты закончились. Остались впечатления и воспоминания. Как оказалось, экзотичная Windows NT/Alpha была вполне жизнеспособна до начала 2000 годов. Пользоваться ей приятно, и, если для поставленных задач существует нативный софт, производительность вас приятно удивит.

Alpha с Unix и OpenVMS была актуальной гораздо дольше. До сих пор на этих машинах очень приятно работать, хотя, конечно, они давным-давно стали частью истории. Истории, которая останется с нами навсегда.

До новых встреч, дорогие читатели!




Комментарии (11):

  1. khajiit
    /#23757611 / +3

    Жаль, что она так и не пошла в массы…

    • nochkin
      /#23760491 / +2

      Я тоже так думал в своё время. Но это не помешало тому, что мой первый личный сервер был на 21264 с NetBSD.

      Как сейчас помню -- Compaq AlphaServer DS10L. Столько тёплого с этим связано.

  2. VerdOrr
    /#23758309

    «Press F8 for Windows 2000 advanced startup options» - ntldr от 2k остался - он и пишет

    Если это сильно беспокоит, то можно извлечь его ручками и перезаписать.

    • ereinion
      /#23758959 / +1

      К сожалению, нет. Там нет ntldr, вместо него osloader.exe и он точно от nt4 (я его ещё менял с русской на английскую версию).

      Я заменил жёсткий диск для чистоты эксперимента даже - вопрос именно в arcbios/alphabios.

      • VerdOrr
        /#23759089

        Чтобы МС для одной (и не самой массовой) платформы стала менять процесс загрузки? - "Не верю" (с)

        Диск форматировался в чем/где? В boot-секторе загрузочного диска что написано?

        • ereinion
          /#23759105

          Тем не менее, МС поменяла процесс загрузки. Правда не для Альфы, а для другой платформы - х86. i860, MIPS, Alpha и PowerPC используют Arcbios, и только для х86 используется обычный Биос.

            • ereinion
              /#23759143

              Здесь опять же описан процесс для х86. На альфе и других рисках нет NTLDR, эта часть вынесена в Биос (как вариант, код аналогичный NTLDR может обновляться - кстати идея попробовать его залить принудительно!)

              По поводу диска - форматировал в меню скази-контроллера.

              Забыл добавить - boot.ini здесь тоже нет, это все переменные аркбиос.

              • VerdOrr
                /#23759215

                Правда, поскольку Windows NT может работать не только на платформе i386, следует оговориться, что мы рассматриваем применимые в нашем быту "персоналки", не касаясь особенностей загрузки NT на других платформах (на процессорах RISC, например, программа osloader.exe выполняет те же функции, что на PC выполняются файлами ntldr, ntdetect.com и bootsect.dos).

                http://www.winblog.ru/admin/1147763529-20020702.html

                Да, с нюансами процесса загрузки на RISK-системах я не был знаком, но суть проблемы именно в том, что я написал в первом же комменте - остался "хвост" от W2к и его можно ликвидировать, взяв соответствующий компонент (osloader.exe) из дистра NT4 и перезаписав его "ручками".

                • ereinion
                  /#23759311

                  Но, повторюсь, osloader.exe точно родной. Засада именно в том хвостике, что в х86 вынесен в NTLDR (за наводку на этот хвост — спасибо!)

  3. Zeiram
    /#23761429 / +1

    Помню как восхищались новой архитектурой Alpha в 90-е. Вроде как в те времена была намного более многообещающей нежели RISC или CISC. Но "эфективные менеджеры" взяли бразды правления и ... благополучно угробили Alpha в кратчайшие сроки. Всё-таки ключевую роль в проектах такого высокого уровня должны играть истинные Визионеры, а не "эфективные менеджеры" или экономисты.