PDP-11
? сер?я 16-розрядних
м?н?-ЕОМ
компан??
DEC
, що сер?йно вироблялися та продавалися в
1970
-
80-х роках
; розвиток сер??
PDP-8
?з загально? л?н?йки комп'ютер?в
PDP
. У PDP-11 з'явилося к?лька ун?кальних технолог?чних ?нновац?й, ця сер?я була прост?шою в
програмуванн?
, н?ж ?? попередники. Але, попри ?? загальне визнання з боку програм?ст?в, PDP-11 з часом була вит?снена
персональними комп'ютерами
, включаючи
IBM PC
та
Apple II
.
Система команд ряду PDP-11 значно вплинула на
мову програмування C
.
Програм?сти полюбили 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 (PDP-11/03), представлений в лютому 1975
[1]
був першою моделлю PDP-11 виробленою з використанням
великих ?нтегральних схем
;
центральний процесор
складався з чотирьох ?нтегральних схем виробництва
Western Digital
(чипсет
MCP-1600
; п'ята м?кросхема могла додаватися, аби розширити наб?р ?нструкц?й, як зображено на фото справа). В?н використовував шину, яка була вар?антом Unibus ? цей вар?ант називався LSI Bus або
Q-Bus
[en]
.
У Радянському Союз? випускалася л?н?йка сум?сних з 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!
- В?д
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:
[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
? у В?рмен??
- Р. Экхауз, Л. Моррис,
Мини-ЭВМ: организация и программирование
, М.: Финансы и статистика, 1983.
(рос.)
- М. Сингер,
Мини-ЭВМ PDP-11: Программирование на языке ассемблера и организация машины
, Москва: Мир, 1984. == Michael Singer. PDP-11. Assembler Language Programming and Machine Organization. 1980.
(рос.)