PDP-11

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

Плата 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 [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!

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

[ ред. | ред. код ]
Перфостр?чка , що використовувалась на PDP-11

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

Прим?тки

[ ред. | ред. код ]
  1. 16-bit Timeline . microsoft.com (англ.) . Арх?в ориг?налу за 8 грудня 2008 . Процитовано 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. (рос.)

Див. також

[ ред. | ред. код ]

Посилання

[ ред. | ред. код ]