PDP-11

PDP-11/40
Векторный графический терминал DEC GT40

PDP-11 - серия 16-разрядных мини-ЭВМ компании DEC, серийно производились и продавались в 1970 - 80-х годах, развитие серии PDP-8 из общей линейки компьютеров PDP. В PDP-11 появилось несколько уникальных технологических инноваций, эта серия была проще в программировании, чем ее предшественники. Но, несмотря на ее всеобщее признание со стороны программистов, PDP-11 со временем была вытеснена персональными компьютерами, включая IBM PC и Apple II.

Система команд ряда PDP-11 значительно повлияла на язык программирования C.


1. Особенности PDP-11

1.1. Система команд

Программисты полюбили PDP-11 за ее "ортогональную" систему команд : можно было отдельно запоминать команды, и отдельно - методы доступа к операндов. Можно было считать, что любой метод доступа (режим адресации) будет работать с любой операцией, не нужно было запоминать список исключений и особых случаев, в которых операция имеет ограниченный набор режимов адресации, все регистры были универсальными и могли использоваться с любой командой. На самом деле исключения и особые случаи были, но только в нескольких довольно редко применяемых командах.

В определенном смысле, набор режимов адресации образовывал "базис", а набор операций - другой базис. Каждая двооперандна инструкция состояла из двух 6-битных идентификаторов операндов (каждый из них содержал три бита на номер регистра и три бита на режим адресации), а также 4-битного кода операции; однооперандна инструкция содержала один 6-битный идентификатор операнда и 10 - битный код операции. Из восьми регистров (с номерами от 0 до 7), шесть были регистрами общего назначения; регистр 6 особо выделялся в качестве указателя стека; регистр 7 был указателем текущей инструкции. Однако все эти регистры могли использоваться как операнды в арифметико-логических операциях или использоваться при формировании адресов операндов.


1.2. Отсутствие отдельной шины ввода / вывода

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

Высокопроизводительные машины семейства, начиная с PDP-11/45, уже имели отдельную шину памяти, Unibus же продолжала использоваться только для ввода / вывода. В PDP-11/70 был сделан еще один шаг вперед: добавился отдельный интерфейс для магнитных дисков и лент - Massbus. Тем не менее, управляющие регистры устройств ввода / вывода, по-прежнему проектировались на память, и отдельных инструкций ввода / вывода не требовалось.


1.3. Разработаны для массового производства

И наконец, компьютеры PDP-11 были разработаны для производства на заводах с низкоквалифицированной рабочей силой. Размеры всех конструктивных частей были относительно некритичными. При сборке, штампованные платы подключались к общей платы, на которой применялся монтаж навивкой. Соединительные блоки были очень похожи на те, которые уже давно применялись в телефонии.

2. Пример программы

Пример программы "Hello, World!" На макроассемблер MACRO-11, для запуска под RT-11:

 .  TITLE HELLO WORLD  .  MCALL  .  TTYOUT  ,.  EXIT HELLO  ::  MOV  # MSG  ,  R1  ; НАЧАЛЬНАЯ АДРЕС ЛЕНТЫ  1  $  :  MOVB  (  R1  )  +,  R0  ; Получаем следующее СИМВОЛ  BEQ DONE  ; ЕСЛИ 0, выхода из цикла  .  TTYOUT  ; ИНАЧЕ ПЕЧАТАЕМ СИМВОЛ  BR  1  $  ; ПОВТОРЕНИЕ ЦИКЛА  DONE  :  .  EXIT MSG  :  .  ASCIZ  /  Hello  ,  world!  /  .  END HELLO 

Для компиляции и запуска этой программы в системе RT-11 выполняется последовательность команд:

 . MACRO HELLO ERRORS DETECTED: 0. LINK HELLO. RUN HELLO Hello, world! 

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

Перфолента, используемой на PDP-11
  • От DEC: DOS-11, IAS, P / OS, RSX-11, RT-11, RSTS / E, Ultrix-11
  • От сторонних производителей: ANDOS, MK-DOS, CSI-DOS, TRIPOS, MUMPS, Unix (несколько версий), TSX-Plus, Venix и другие.
  • Советские: РАФОС, ФОДОС, РУДОС, ОС УИК (клоны RT-11), ОС-РВ (клон RSX -11), ДЕМОС (клон UNIX), ИНМОС (клон UNIX), ДОС КП (клон RSTS / E)

4. PDP-11 за железным занавесом

В СССР и других странах восточного блока было разработано и выпускалось несколько машин, совместимых по системе команд и частично по архитектуре с серией PDP-11: [1]

  • СМ-3, СМ-4, СМ-1420, СМ-1600 - см.. СМ ЭВМ - в СССР
  • Электроника БК-0010 - домашний / учебный компьютер на основе K1801BM1A (аналог - LSI-11/03)
  • УИК - персональный компьютер на основе К1801ВМ1/ВМ2/ВМ3 и сопроцессора ВМ4
  • Союз-Неон ПК-11/16 - домашний / учебный компьютер на основе Н1806ВМ2.
  • Электроника МС 0511 "УКНЦ" - учебный компьютер на 2-х процессорах КМ1801ВМ2
  • Электроника 100/25 - клон PDP-11/34
  • Электроника 79 - клон PDP-11/70
  • Электроника 60 - клон LSI-11 (PDP-11/06)
  • Электроника 85 - клон DEC Pro-350 на основе КН1831
  • Изот-1016 - в Болгарии
  • TPA-11/40, TPA-11/48, TPA-11/110, TPA-11/170, TPA-EMU-11, TPA-11/440, TPA-11/420 - в Венгрии
  • CORAL 4001/4011/4030 - в Румынии
  • Mera - в Польше
  • Электроника 87, СМ-1425 - клон Micro PDP 11/73
  • Наири-4 - в Армении

Примечания

Литература

  • Р. Экхауз, Л. Моррис, Мини-ЭВМ: организация и программирование, М.: Финансы и статистика, 1983. (Рус.)
  • М. Сингер, Мини-ЭВМ PDP-11: Программирование на языке ассемблера и организация машины, Москва: Мир, 1984. == Michael Singer. PDP-11. Assembler Language Programming and Machine Organization. 1980. (Рус.)

См.. также

  • MSP430 - Контроллер с архитектурой, достаточно близкой к идеям PDP-11.