PDP-11

Для терміну "PDP" см. інші значення.
PDP-11/40
Векторний графічний термінал DEC GT40

PDP-11 - серія 16-розрядних міні-ЕОМ компанії DEC, серійно вироблялися і продавалися в 1970 - 80-х роках. Розвиток серії PDP-8 із загальної лінійки комп'ютерів PDP. У PDP-11 з'явилося кілька унікальних технологічних інновацій, ця серія була простіше в програмуванні, ніж її попередники. Але, незважаючи на її загальне визнання з боку програмістів, PDP-11 з часом була витіснена персональними комп'ютерами, включаючи IBM PC і Apple II.


1. Особливості PDP-11

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

Програмісти полюбили PDP-11 за її "ортогональну" систему команд : можна було окремо запам'ятовувати команди, і окремо - методи доступу до операндів. Можна було вважати, що будь-який метод доступу ( режим адресації) буде працювати з будь-якою операцією; не потрібно було запам'ятовувати список виключень і особливих випадків, в яких операція має обмежений набір режимів адресації, всі регістри ( R0... R7) могли використовуватися з будь-якою командою. Регістри R0... R4 були універсальними, а регістри R5 ( FP, покажчик кадру, англ. frame pointer ), R6 ( SP, покажчик стека, англ. stack pointer ) І R7 ( PC, лічильник команд, англ. program counter ) - Були спеціальними, для декількох команд були винятки, але всі ці регістри могли використовуватися як операнди в арифметико-логічних операціях або використовуватися при формуванні адрес операндів.

У певному сенсі, набір режимів адресації утворював "базис", а набір операцій - інший базис. Кожна двухоперандная інструкція складалася з двох 6-бітних ідентифікаторів операндів (кожен з них містив три біта на номер регістра і три біти на режим адресації), а також з 4-бітного коду операції; однооперандная інструкція містила один 6-бітний ідентифікатор операнда і 10 - бітний код операції.


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  ; ЯКЩО НУЛЬ, вихід з циклу  .  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

4. PDP-11 за залізною завісою

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

  • СМ-3, СМ-4, СМ-1420, СМ-1600 - см. СМ ЕОМ - в СРСР
  • ДВК - персональний комп'ютер на основі К1801ВМ1/ВМ2/ВМ3 і співпроцесора ВМ4
  • Електроніка-60 - клон LSI-11 (PDP-11/06)
  • Електроніка-79 - аналог DEC PDP-11/70.
  • Електроніка 85 - клон DEC Pro-350 на основі КН1831
  • Електроніка 87, СМ-1425 - клон Micro PDP 11/73
  • Електроніка 100-16
  • Електроніка 100-25 - Майже 100% аналог (не тільки архітектурного рівня, але й апаратного) DEC PDP-11/40. Випускався для власних потреб Мінелектронмаш, ПО "Кварц" м. Калінінград.
  • Ізотов-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 - в Польщі
  • Наірі-4 - у Вірменії
  • Немига
  • Електроніка БК-0010 - домашній / навчальний комп'ютер на основі K1801BM1A
  • Союз-Неон ПК-11/16 - домашній / навчальний комп'ютер на основі Н1806ВМ2.
  • Електроніка МС 0511 "УКНЦ" - навчальний комп'ютер на 2-х процесорах КМ1801ВМ2
  • Саратов-2 - розроблена в Центральному НДІ вимірювальної апаратури, м. Саратов [2]
  • Електроніка МК-85 - Програмований мікрокалькулятор з процесором Т234-2 або Т36ВМ1-2 (КА1013ВМ1).
  • Електроніка МК-90 - Програмований мікрокалькулятор з процесором К588ВС2.
Електроніка 100-16 Електроніка 100-25 Електроніка-79
Ширина шини адрес, біт 16 18 22
Набір команд 73 (базовий без MARK) 89 (B +, EIS, FIS, менеджер пам'яті) 137 (B +, EIS, FIS, FP11, менеджер пам'яті)
Швидкодія, оп / с 250000 800000 3000000
Число регістрів 8 8 16
Режими привілеїв 1 2 3
Рівнів переривань 5 5 8

Примітки

  1. The PDP-11 FAQ - PDP-11s behind the Iron Curtain - www.village.org/pdp-11/faq.pages/Soviet11s.html
  2. Леонід Черняк. Високопродуктивні вбудовані комп'ютери - winntmag.ru/os/2006/07/3290774/_p2.html - стаття в журналі "Відкриті системи"

Література

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