PDP-11

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
PDP-11/40
Векторный графический терминал DEC GT40

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

Особенности PDP-11[править | править исходный текст]

Система команд[править | править исходный текст]

PDP-11
Разработчик

Digital Equipment Corporation

Разрядность

16-бит

Архитектура

CISC

Тип

Память-Память

Кодирование СК

1..3 16-ти битных слова

Переходы

Флаги условий

Порядок байт

Little-endian

Размер страницы

8 KiB

Расширения

EIS, FIS, FPP, CIS

Регистры
Общего назначения

6

Программисты полюбили PDP-11 за её «ортогональную» систему команд: можно было отдельно запоминать команды, и отдельно — методы доступа к операндам. Можно было считать, что любой метод доступа (режим адресации) будет работать с любой операцией; не нужно было запоминать список исключений и особых случаев, в которых операция имеет ограниченный набор режимов адресации, все регистры (R0R7) могли использоваться с любой командой. Регистры R0R4 были универсальными, а регистры R5 (FP, указатель кадра, англ. frame pointer), R6 (SP, указатель стека, англ. stack pointer) и R7 (PC, счётчик команд, англ. program counter) — были специальными, для нескольких команд были исключения, но все эти регистры могли использоваться как операнды в арифметико-логических операциях или использоваться при формировании адресов операндов.

В некотором смысле, набор режимов адресации образовывал «базис», а набор операций — другой базис. Каждая двухоперандная инструкция состояла из двух 6-битных идентификаторов операндов (каждый из них содержал три бита на номер регистра и три бита на режим адресации), а также из 4-битного кода операции; однооперандная инструкция содержала один 6-битный идентификатор операнда и 10-битный код операции.

Отсутствие отдельной шины ввода-вывода[править | править исходный текст]

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

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

Разработана для массового производства[править | править исходный текст]

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

Пример программы[править | править исходный текст]

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

         .TITLE  HELLO WORLD
         .MCALL  .TTYOUT,.EXIT
 HELLO:: MOV     #MSG,R1  ;НАЧАЛЬНЫЙ АДРЕС СТРОКИ
 1$:     MOVB    (R1)+,R0 ;ПОЛУЧАЕМ СЛЕДУЮЩИЙ СИМВОЛ
         BEQ     DONE     ;ЕСЛИ НОЛЬ, ВЫХОДИМ ИЗ ЦИКЛА
         .TTYOUT          ;ИНАЧЕ ПЕЧАТАЕМ СИМВОЛ
         BR      1$       ;ПОВТОР ЦИКЛА
 DONE:   .EXIT
 
 MSG:    .ASCIZ /Hello, world!/
         .END    HELLO

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

. MACRO HELLO
ERRORS DETECTED:  0
. LINK HELLO

. RUN HELLO
Hello, world!

Операционные системы[править | править исходный текст]

Перфолента, использовавшаяся на PDP-11

PDP-11 в странах СЭВ[править | править исходный текст]

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

Электроника 100-16 Электроника 100-25 Электроника-79
Ширина шины адресов, бит 16 18 22
Набор команд 73 (базовый без MARK) 89 (B+, EIS, FIS, менеджер памяти) 137 (B+, EIS, FIS, FP11, менеджер памяти)
Быстродействие, оп/с 250 000 800 000 3 000 000
Число регистров 8 8 16
Режимы привилегий 1 2 3
Уровней прерываний 5 5 8

Примечания[править | править исходный текст]

Литература[править | править исходный текст]

  • Экхауз Р., Моррис Л., Мини-ЭВМ: организация и программирование / Р. Экхауз, Л. Моррис; Пер. с англ. А. Ф. Кондратюка, Л. С. Черняка. — М. : Финансы и статистика, 1983. — 359 с.
  • Сингер М. Мини-ЭВМ PDP-11: Программирование на языке ассемблера и организация машины: Пер. с англ = PDP-11. Assembler Language Programming and Machine Organization / Michael Singer. — М.: Мир, 1984. — 272 с.

См. также[править | править исходный текст]

  • MSP430 — Контроллер с архитектурой, достаточно близкой к идеям PDP-11.
  • MCP-1600 — Многокристальный микропроцессор производства компании Western Digital с архитектурой и системой команд PDP-11.
  • General Instrument CP1600 — Однокристальный микропроцессор производства компаний General Instrument и Honeywell с архитектурой PDP-11.

Ссылки[править | править исходный текст]