PDP-11

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

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

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

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

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

Програмісти полюбили PDP-11 за її «ортогональну» систему команд: можна було окремо запам'ятовувати команди, і окремо - методи доступу до операндів. Можна було вважати, що будь-який метод доступу (режим адресації) буде працювати з будь-якою операцією, не потрібно було запам'ятовувати список винятків і особливих випадків, у яких операція має обмежений набір режимів адресації, всі регістри були універсальними та могли використовуватися з будь-якою командою. Насправді винятки й особливі випадки були, але лише в кількох досить рідко застосовуваних командах.

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

Відсутність окремої шини вводу/виводу

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

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

Розроблено для масового виробництва

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

LSI-11

Плата Q-Bus з процесором LSI-11/2
Чипсет DEC "Fonz-11" (F11)
Чипсет DEC "Jaws-11" (J11)

LSI-11 (PDP-11/03), представлений в лютому 1975[1] був першою моделлю PDP-11 виробленою з використанням великих інтегральних схем; центральний процесор складався з чотирьох інтегральних схем виробництва Western Digital (чипсет MCP-1600; п'ята мікросхема могла додаватися, аби розширити набір інструкцій, як зображено на фото справа). Він використовував шину, яка була варіантом Unibus — даний варіант називався LSI Bus або Q-Bus.

У Радянському Союзі випускалася лінійка сумісних з LSI-11 мікрокомп'ютерів під назвою «Електроніка-60».

Приклад програми

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

         .TITLE  HELLO WORLD
         .MCALL  .TTYOUT,.EXIT ; МАКРОСИ СИСТЕМНИХ ВИКЛИКІВ З SYSMAC.SML
 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!

Операційні системи

Перфострічка, що використовувалась на 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)

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

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

  • СМ-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 — у Вірменії

Примітки

  1. 16-bit Timeline. microsoft.com (англ.). Процитовано 8 листопада 2016.
  2. faq.pages/Soviet11s.html The PDP-11 FAQ — PDP-11s behind the Iron Curtain Архівовано 29 січня 1999 у Wayback Machine. (англ.)

Література

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

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.