Введение

Линейка компьютеров, продаваемых компанией Digital Equipment Corporation.

VAX (акроним от Virtual Address eXtension) — это серия компьютеров с 32-битной архитектурой набора команд (ISA) и виртуальной памятью, разработанная и продававшаяся компанией Digital Equipment Corporation (DEC) в конце XX века. VAX 11/780, представленный 25 октября 1977 года, стал первым из ряда популярных и влиятельных компьютеров, реализующих ISA VAX. Семейство VAX имело огромный успех у DEC, а последние модели появились в начале 1990-х годов. VAX был заменён DEC Alpha, который включал в себя ряд функций машин VAX для облегчения переноса программ с VAX. VAX был разработан как преемник 16-битного PDP 11, одного из самых успешных миникомпьютеров в истории, было продано около 600 000 экземпляров. Система была разработана для обеспечения обратной совместимости с PDP 11, одновременно расширяя объём памяти до полной 32-битной реализации и добавляя виртуальную память с подкачкой. Название VAX отсылает к концепции Virtual Address eXtension, которая позволяла программам использовать эту вновь доступную память, оставаясь совместимыми с неизменённым кодом PDP 11 в пользовательском режиме. Название "VAX 11", использовавшееся на ранних моделях, было выбрано для подчеркивания этой возможности. ISA VAX считается архитектурой с комплексным набором команд (CISC). DEC быстро отказалась от маркировки "-11", поскольку совместимость с PDP 11 перестала быть основной задачей. Линейка расширилась как до высокопроизводительных мэйнфреймов, таких как VAX 9000, так и до систем масштаба рабочих станций, таких как серия VAXstation. В конечном итоге семейство VAX включало десять различных конструкций и более 100 отдельных моделей. Все они были совместимы друг с другом и обычно работали под управлением операционной системы VAX/VMS. VAX считается квинтэссенцией ISA CISC, благодаря огромному количеству режимов адресации и машинных инструкций, удобных для программистов, высокоортогональной архитектуре набора команд и инструкциям для сложных операций, таких как вставка или удаление элементов из очереди, форматирование чисел и вычисление полиномов.

Имя

Название "VAX" произошло от акронима Virtual Address eXtension, поскольку VAX рассматривался как 32-битное расширение более ранней 16-битной PDP-11, а также потому, что он (после Prime Computer) одним из первых начал использовать виртуальную память для управления этим увеличенным адресным пространством. Ранние версии процессора VAX реализовали "режим совместимости", эмулирующий многие инструкции PDP-11, что отражено в названии VAX 11, подчеркивающем эту совместимость. В более поздних версиях режим совместимости и некоторые редко используемые инструкции CISC были перенесены в программное обеспечение операционной системы для эмуляции.

Набор инструкций

Инструкционный набор VAX был разработан как мощный и ортогональный. Когда он появился, многие программы писались на языке ассемблера, поэтому важно было, чтобы набор инструкций был удобным для программиста. Со временем, по мере того как все больше программ создавалось на языках программирования высокого уровня, сам набор инструкций стал менее заметным, и им серьезно интересовались в основном только разработчики компиляторов. Одной из необычных особенностей инструкционного набора VAX является наличие масок регистров в начале каждой подпрограммы. Это произвольные битовые шаблоны, которые указывают, какие регистры необходимо сохранить при передаче управления подпрограмме. В большинстве архитектур компилятор должен генерировать инструкции для сохранения необходимых данных, как правило, используя стек вызовов для временного хранения. На VAX, с 16 регистрами, это могло потребовать 16 инструкций для сохранения данных и еще 16 для их восстановления. Использование маски позволяет одному 16-битному значению выполнять те же операции аппаратно, экономя время и память.

Операционные системы

ОС VAX – VAX/VMS от Digital (переименованная в OpenVMS в 1991 или начале 1992 года, когда она была портирована на Alpha, модифицирована для соответствия стандартам POSIX и сертифицирована консорциумом X/Open как совместимая с XPG4). Архитектура VAX и операционная система VMS были "разработаны параллельно", чтобы максимально использовать преимущества друг друга, как и первоначальная реализация VAXcluster. В 1980-х годах в Digital был разработан гипервизор для архитектуры VAX под названием VMM (Virtual Machine Monitor), также известный как ядро безопасности VAX, с целью обеспечения возможности запуска нескольких изолированных экземпляров VMS и ULTRIX на одном аппаратном обеспечении. VMM предназначался для достижения соответствия требованиям TCSEC уровня A1. К концу 1980-х годов он был протестирован на аппаратном обеспечении серии VAX 8000, но проект был прекращен до выпуска для клиентов. Среди других операционных систем VAX были различные выпуски Berkeley Software Distribution (BSD) UNIX до версии 4.3BSD, Ultrix 32, VAXELN и Xinu. В последнее время NetBSD и OpenBSD поддерживали различные модели VAX, а также велась работа по портированию Linux на архитектуру VAX. OpenBSD прекратила поддержку этой архитектуры в сентябре 2016 года.

История

Первой проданной моделью VAX был VAX 11/780, представленный 25 октября 1977 года на ежегодном собрании акционеров Digital Equipment Corporation. Архитектуру разработал Билл Стрекер, аспирант С. Гордона Белла в Университете Карнеги-Меллона. Впоследствии было создано множество различных моделей с разными ценами, уровнями производительности и объемом памяти. Супермини-компьютеры VAX были очень популярны в начале 1980-х годов. В течение некоторого времени VAX 11/780 использовался в качестве стандарта при тестировании производительности процессоров. Изначально его описывали как машину с производительностью в 1 MIPS, поскольку она была эквивалентна IBM System/360, работающей на 1 MIPS, а реализации System/360 ранее являлись де-факто стандартом производительности. Фактическое количество выполняемых инструкций в секунду составляло около 500 000, что вызвало жалобы на преувеличение в маркетинге. В результате было определено понятие "VAX MIPS" – производительность VAX 11/780; компьютер, работающий на 27 VAX MIPS, выполнял бы ту же программу примерно в 27 раз быстрее, чем VAX 11/780. В сообществе Digital термин VUP (VAX Unit of Performance) использовался чаще, поскольку MIPS сложно сравнивать между разными архитектурами. Связанный термин cluster VUPs неформально использовался для описания совокупной производительности VAXcluster. (Производительность VAX 11/780 по-прежнему служит базовым показателем в BRL CAD Benchmark, пакете анализа производительности, входящем в состав программного обеспечения BRL CAD для твердотельного моделирования.) VAX 11/780 включал в себя подчиненный автономный компьютер LSI 11, который выполнял загрузку микрокода, загрузку и диагностические функции для основного компьютера. В последующих моделях VAX от этой функции отказались. Продвинутые пользователи VAX 11/780 могли запускать три различные операционные системы Digital Equipment Corporation: VMS на процессоре VAX (с жестких дисков) и RSX 11S или RT 11 на LSI 11 (с дискеты одинарной плотности). VAX претерпел множество различных реализаций. Оригинальный VAX 11/780 был реализован на дискретных элементах TTL и занимал шкаф размером четыре на пять футов с одним процессором. На протяжении 1980-х годов высокопроизводительные модели семейства постоянно улучшались за счет использования все более быстрых дискретных компонентов, что привело к появлению VAX 9000 в октябре 1989 года. Эта конструкция оказалась слишком сложной и дорогой и вскоре после представления была прекращена. Реализации процессоров, состоящие из множества микросхем с логическими элементами ECL или макроячеек, включали супермини VAX 8600 и 8800 и, наконец, машины класса мейнфреймов VAX 9000. Реализации процессоров, состоящие из нескольких специализированных микросхем MOSFET, включали машины классов 8100 и 8200. Машины начального уровня VAX 11 730 и 725 были построены с использованием компонентов AMD Am2901 для АЛУ. MicroVAX I представлял собой важный переход в семействе VAX. На момент его разработки еще не было возможности реализовать полную архитектуру VAX в виде одного чипа VLSI (или даже нескольких чипов VLSI, как это было сделано позже с процессором V 11 VAX 8200/8300). Вместо этого MicroVAX I стал первой реализацией VAX, которая перенесла некоторые из более сложных инструкций VAX (например, упакованное десятичное число и связанные с ним коды операций) в программное обеспечение эмуляции. Это разделение значительно уменьшило объем необходимого микрокода и получило название архитектуры "MicroVAX". В MicroVAX I АЛУ и регистры были реализованы в виде одного чипа с массивом логических элементов, а остальная часть управления машиной была реализована на основе обычной логики. Полная реализация VLSI (микропроцессорная) архитектуры MicroVAX появилась с процессором 78032 (или DC333) и сопроцессором 78132 (DC335) MicroVAX II. 78032 был первым микропроцессором с блоком управления памятью на борту. MicroVAX II был основан на одной четырехслойной процессорной плате, на которой размещались процессорные чипы и работали операционные системы MicroVMS или Ultrix 32. Машина оснащалась 1 МБ встроенной памяти и интерфейсом шины Q22 с передачей DMA. За MicroVAX II последовало множество других моделей MicroVAX с значительно улучшенной производительностью и памятью. Дальнейшие процессоры VLSI VAX появились в виде V 11, CVAX, CVAX SOC ("System On Chip", однокристальный CVAX), Rigel, Mariah и NVAX. Микропроцессоры VAX расширили архитектуру до недорогих рабочих станций, а позже также вытеснили высокопроизводительные модели VAX. Такой широкий спектр платформ (от мейнфреймов до рабочих станций), использующих одну архитектуру, был уникальным для компьютерной индустрии того времени. Различные графические элементы были выгравированы на кристалле микропроцессора CVAX. Фраза "CVAX, когда вам достаточно, чтобы украсть самое лучшее" была выгравирована на русском языке с ошибками, как игра со слоганом Hallmark Cards, предназначенная для советских инженеров, которые, как известно, тайно приобретали компьютеры DEC для военных целей и занимались обратной разработкой их чипов. К концу 1980-х годов микропроцессоры VAX стали достаточно мощными, чтобы конкурировать с дискретными конструкциями. Это привело к отказу от серий 8000 и 9000 и их замене моделями VAX 6000 на базе Rigel, а затем системами VAX 7000 на базе NVAX. В продуктовой линейке DEC архитектура VAX в конечном итоге уступила место технологии RISC. В 1989 году DEC представила ряд рабочих станций и серверов, работающих под управлением Ultrix, DECstation и DECsystem соответственно, с использованием процессоров от MIPS Computer Systems. В 1992 году DEC представила собственную архитектуру набора инструкций RISC, Alpha AXP (позже переименованную в Alpha), и собственный микропроцессор Alpha, DECchip 21064, высокопроизводительную 64-битную конструкцию, способную работать под управлением OpenVMS. В августе 2000 года Compaq объявила о прекращении выпуска оставшихся моделей VAX к концу года, но старые системы по-прежнему широко используются. Эмуляторы VAX на основе программного обеспечения Stromasys CHARON и SIMH по-прежнему доступны. VMS сейчас разрабатывается компанией VMS Software Incorporated, но только для платформ Alpha, HPE Integrity и x86 64.

Архитектура процессора

+ DEC VAX регистры 31 23 15 07 00 (позиция бита) Общие регистры R0 Регистр 0 R1 Регистр 1 R2 Регистр 2 R3 Регистр 3 R4 Регистр 4 R5 Регистр 5 R6 Регистр 6 R7 Регистр 7 R8 Регистр 8 R9 Регистр 9 R10 Регистр 10 R11 Регистр 11 R12 / AP Регистр 12 / Указатель аргумента R13 / FP Регистр 13 / Указатель фрейма R14 / SP Регистр 14 / Указатель стека R15 / PC Регистр 15 / Счетчик команд Статус процессора Длинное слово (см. соседнюю таблицу для определений битов) PSL

Системы на базе VAX

Первой системой на базе VAX был VAX 11/780, относящийся к семейству VAX 11. Высокопроизводительный VAX 8600 заменил VAX 11/780 в октябре 1984 года, а в середине 1980-х годов к нему присоединились миникомпьютеры MicroVAX начального уровня и рабочие станции VAXstation. MicroVAX был вытеснен VAX 4000, VAX 8000 – VAX 6000 в конце 1980-х годов, и был представлен VAX 9000, относящийся к классу мэйнфреймов. В начале 1990-х годов был представлен отказоустойчивый VAXft, а также VAX 7000/10000, совместимый с Alpha. Различные варианты систем на базе VAX продавались под названием VAXserver.

Одновременный доступ к машинам (SIMACS)

System Industries разработала возможность предоставления доступа к записи на общий диск более чем одному процессору DEC, но не одновременно. Они реализовали усовершенствование под названием SImultaneous Machine ACceSs (SIMACS), которое позволило их специализированному дисковому контроллеру устанавливать флаг семафора для доступа к диску, обеспечивая возможность множественных операций записи в одни и те же файлы; диском совместно используются несколько систем DEC. SIMACS также существовал в системах PDP 11 RSTS.

Отмененные системы

Отмененные системы включают BVAX, высокопроизводительный VAX, построенный на логике с эмиттерной связью (ECL), и две другие модели VAX на основе ECL: Argonaut и Raven. Raven был отменен в 1990 году. Также был отменен VAX под названием Gemini, который рассматривался как запасной вариант в случае неудачи Scorpio, основанного на LSI. Он так и не был выпущен в продажу.

Клоны

Было произведено несколько клонов VAX, как лицензионных, так и нелицензионных. Примеры включают:

Компания Systime Computers Ltd из Соединенного Королевства производила клоны ранних моделей VAX, таких как Systime 8750 (эквивалент VAX 11/750). Norden Systems выпускала защищенные системы, соответствующие военным спецификациям серии MIL VAX. SM 52/12 из Чехословакии, разработанный в VUVT Žilina (ныне Словакия) и производившийся с 1986 года на ZVT Banská Bystrica (ныне Словакия). Восточногерманский VEB Robotron K 1840 (SM 1710) является клоном VAX 11/780, а Robotron K 1820 (SM 1720) – копией MicroVAX II. SM 1700 – советский клон VAX 11/730, SM 1702 – клон MicroVAX II, а SM 1705 – клон VAX 11/785. Эти системы работали под управлением различных клонированных операционных систем: DEMOS (на основе BSD Unix), MOS VP (на основе VAX/VMS) или MOS VP RV (на основе VAXELN). NCI 2780 Super mini, также продававшийся как Taiji 2780, является клоном VAX 11/780, разработанным в Северном китайском институте вычислительной техники в Пекине.