PDP-11

PDP-11 to komputer Model PDP ( Programmable Data Processor ) linii zbudowanej przez Digital Equipment Corporation (DEC) między 1970 a 1993 r .

Wszystkie PDP-11 są 16- bitowe i należą do klasy minikomputerów . Były niezwykle popularne, ponieważ łączyły w sobie modułowość, doskonały stosunek jakości do ceny, a ich zastosowanie nie ograniczało się do jednego sektora aplikacji: znajdowano je również w laboratoriach fizycznych do pozyskiwania danych, niż w firmach księgowych. Wreszcie świat uniwersytecki również nabył dużą liczbę takich maszyn.

Zakres ten jest również popularny, ponieważ służył jako podstawa rozwoju w Unix operacyjnego systemu i języka C . Preinkrementacja (++ i) i postinkrementacja (i ++) C umożliwiły w szczególności wykorzystanie tej możliwości języka maszynowego PDP-11.

Zdarzyło się to również, gdy IBM 1130 wprowadzony na rynek w 1969 roku, który wyposażał wiele laboratoriów i szkół inżynierskich na całym świecie, zaczął się starzeć bez następcy zaproponowanego przez IBM. Oprócz ogromnej biblioteki darmowego oprogramowania, 1130 nie miał żadnej szczególnej przewagi nad PDP-11 pod względem szybkości ani kosztów.

Podobnie jak wiele innych, ten zakres zniknął, ponieważ jego przestrzeń adresowa pamięci była zbyt ograniczona (16 do 18 bitów , najwyżej 22). Został zastąpiony przez VAX , co oznacza Virtual Address eXtension , 32 bity. VAX posiada tryb pracy „kompatybilnym PDP-11.”

Architektura

Autobus

Pierwsze PDP-11 zostały zbudowane wokół magistrali UNIBUS . Najnowsze modele, z zestawem instrukcji zawartym w niektórych układach, zwane LSI-11 , są oparte na (węższej) magistrali o nazwie Q-BUS .

Rejestry

Procesor z PDP-11 ma 8 rejestrów , z których dwa mają szczególne zastosowanie: rejestr 7, PC (dla Programu licznika lub licznika programu) oraz rejestr 6, wskaźnika od stosu (SP, aby wskaźnik stosu ). Pozostałe rejestry R0, R1, ..., R5 i mają ogólne zastosowanie. Ostatni rejestr to rejestr statusu.

15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R4 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R5 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R6 (SP) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R7 (PC) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registres (16 bits) 15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | CM | PM | R | | PRI | T | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registre d'état(16 bits)

Znaczenie flag w rejestrze statusu to:

  1. N ujemny
  2. Zero
  3. Przepełnienie V ( oVerflow )
  4. C ( Carry ) przytrzymaj

Nie wszystkie modele PDP-11 mają dokładnie ten sam typ rejestrów stanu, ten pokazany tutaj odpowiada bardziej zaawansowanym modelom.

Typy danych

Istnieją trzy klasy:

bajt (8 bitów) słowo (16 bitów) długa liczba całkowita (32 bity, dwa rejestry) prosta precyzja podwójna precyzja bardzo wiele różnych formatów ...

Zestawy instrukcji

Istnieją trzy możliwe zestawy instrukcji:

  1. standardowy zestaw instrukcji PDP-11, którego instrukcje można podzielić na siedem kategorii:
    1. Pojedynczy operand
    2. Podwójny operand
    3. Połączenie
    4. Skoki i podprogramy
    5. Kreski
    6. Różne instrukcje
    7. Kody stanu
  2. zestaw instrukcji arytmetyki zmiennoprzecinkowej do obliczeń naukowych (opcjonalnie)
  3. zestaw instrukcji do obliczeń biznesowych (opcjonalnie)

Każda instrukcja określa operację do wykonania, ewentualnie operandy (rejestry itp.) Oraz tryb adresowania .

Format instrukcji

PDP-11 definiuje 7 formatów. We wszystkich formatach opisanych poniżej:

Interpretacja pola trybu

Pole trybu zawiera 3 bity. Na przykład instrukcja składająca się z dwóch argumentów zawiera dwa pola rejestru i dwa pola trybu, z których każde opisuje sposób interpretacji pola rejestru.

Jeśli weźmiemy pod uwagę tylko skrajne lewe bity (trzeci to bit pośredni, patrz poniżej):

Najbardziej prawy bit trybu jest bitem pośrednim: jeśli ten bit jest jeden, adresowanie będzie pośrednie:

Zauważ, że nie ma trybu „natychmiastowego”: jest to realizowane przy użyciu trybu 2 (autoinkrementacja). Rzeczywiście, komputer PC wskazuje na słowo, które następuje po instrukcji, a postinkrementacja powoduje, że przechodzi do następnej instrukcji po załadowaniu przez procesor natychmiastowej wartości następującej po wykonywanej instrukcji.
Używanie komputera jako rejestru tworzy zatem 4 nowe tryby:

Tryby adresowania postinkrementowane i pre-dekrementowane będą używane w szczególności w połączeniu ze wskaźnikiem stosu SP: - (SP) umożliwiającym układanie w stos i (SP) + rozpakowywanie.

Instrukcje do operandu

15 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________/ destination

Przykład: CLR (R0) 005010

Dwie instrukcje operandowe

15 11 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération| mode | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________/ \_____________________/ source destination

Przykład: ADD R0, (R1)

Uwaga: niektóre instrukcje (ASH, ASHC, MUL, DIV) mogą mieć tylko jeden rejestr jako źródło, w tym przypadku kod operacji rozciąga się od bitu 9 do bitu 15:

15 11 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ source destination

Połączenia

15 8 7 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération| | déplacement | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Pole przemieszczenia jest podpisane, co pozwala na przesunięcie od -128 do +127 bajtów.

Skoki i wywołania / zwroty podprogramów

W przypadku instrukcji JSR (Jump to Subroutine):

15 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ lien destination

Dla instrukcji RTS (Return from Subroutine):

15 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ lien

Pułapki i zakłócenia

EMT, TRAP, BPT, IOT, CSM, RTI, RTT: brak określonego formatu.

Kody stanu

CLC, CLV, CLZ, CLN, CCC, SEC, SEV, SEZ, SEN, SEC: brak określonego formatu.

15 5 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | O | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Różne instrukcje

HALT, WAIT, RESET, MTPD, MTPI, MFPD, MFPI, MTPS, MFPS, MFPT: brak określonego formatu.

Zestaw instrukcji liczb zmiennoprzecinkowych

Ta opcja nosi nazwę FPP lub FP-11 , FP for Floating Point . Dodaje 6 nowych 64-bitowych rejestrów (dwa razy 32) do obliczeń, a także kilka innych wyspecjalizowanych (takich jak rejestr stanu). Działanie zmiennego procesora różni się od standardowego procesora PDP-11: poza niewielkim opóźnieniem, gdy pływający procesor pobiera instrukcję z pamięci, dwa procesory obliczają niezależnie.

Ten nowy zestaw instrukcji jest dostępny po zmianie mikrokodu .

Zestaw instrukcji zarządzania

Nazywany CIS, od komercyjnego zestawu instrukcji , ten zestaw instrukcji koncentruje się głównie na zarządzaniu ciągami znaków i ma na celu przyspieszenie operacji zwykle wymaganych przez programy do zarządzania ( na przykład napisane w języku COBOL ).

Umożliwia konwersję reprezentacji liczb w postaci znaków na wartości binarne (i odwrotnie) lub obliczenia bezpośrednio na reprezentacjach „ciągów znaków”.

Symulatory

System operacyjny

Uwagi i odniesienia

Załączniki

Powiązane artykuły

Linki zewnętrzne