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.

Особливості 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 були розроблені для виробництва на заводах з низькокваліфікованої робочою силою. Розміри всіх конструктивних частин були відносно некритичними. При збірці, штамповані плати підключалися до загальної плати, на якій застосовувався монтаж навивкою. Сполучні блоки були дуже схожі на ті, які вже давно застосовувалися в телефонії.

Приклад програми[ред.ред. код]

Приклад програми «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!

Операційні системи[ред.ред. код]

Перфострічка, що використовувалась на PDP-11

PDP-11 за залізною завісою[ред.ред. код]

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

Примітки[ред.ред. код]

Література[ред.ред. код]

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

Див. також[ред.ред. код]

  • MSP430 — Контролер з архітектурою, досить близькою до ідей PDP-11.

Посилання[ред.ред. код]


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.