PDP-11

PDP-11 je počítačový model PDP ( Programmable dat Processor ) linky postavený Digital Equipment Corporation (DEC) mezi 1970 a 1993 .

Všechny PDP-11 jsou 16bitové a spadají do třídy minipočítačů . Byli nesmírně populární, protože kombinovali modularitu, vynikající poměr kvalita / cena a jejich použití se neomezovalo na jediný aplikační sektor: našli je také ve fyzikálních laboratořích pro sběr dat. Než v účetních firmách. Nakonec akademický svět také získal velké množství těchto strojů.

Tato řada je také populární, protože to sloužilo jako základ pro vývoj na Unix operačního systému a jazyka C . Prekrementace (++ i) a postkrementace (i ++) jazyka C umožnily zejména využít tuto možnost strojového jazyka PDP-11.

Stalo se to také, když IBM 1130 uvedená na trh v roce 1969, která vybavila mnoho laboratoří a technických škol po celém světě, začala stárnout, aniž by navrhla nástupce IBM. Kromě obrovské příspěvkové knihovny svobodného softwaru neměla 1130 oproti PDP-11 žádnou zvláštní výhodu, pokud jde o rychlost nebo náklady.

Stejně jako mnoho jiných tento rozsah zmizel, protože jeho adresní prostor paměti byl příliš omezený (16 až 18 bitů , maximálně 22). To bylo nahrazeno VAX , což je zkratka pro Virtual Address eXtension , 32 bitů. VAX mít provozní režim „kompatibilní PDP-11.“

Architektura

Autobus

První PDP-11 byly postaveny kolem sběrnice UNIBUS . Nejnovější modely s instrukční sadou obsaženou na některých čipech a nazývanou LSI-11 jsou založeny na (užší) sběrnici zvané Q-BUS .

Registry

Procesor na PDP-11 má 8 registry , z nichž dva mají zvláštní využití: registr 7, PC (pro program Counter nebo pult programu) a registr 6 je ukazatel z komína (SP, aby stack pointer ). Ostatní registry R0, R1, ..., R5 a jsou obecně použitelné. Posledním registrem je stavový registr.

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)

Významy příznaků ve stavovém registru jsou:

  1. N Negativní
  2. Z nula
  3. Přetečení V ( oVerflow )
  4. C ( Carry ) podržte

Ne všechny modely PDP-11 mají přesně stejný typ stavových registrů, zde zobrazený odpovídá pokročilejším modelům.

Typy dat

Existují tři třídy:

byte (8 bitů) slovo (16 bitů) dlouhé celé číslo (32 bitů, dva registry) jednoduchá přesnost dvojnásobná přesnost velmi mnoho různých formátů ...

Sady instrukcí

Existují tři možné sady instrukcí:

  1. standardní instrukční sada PDP-11, jejíž instrukce lze rozdělit do sedmi kategorií:
    1. Jeden operand
    2. Dvojitý operand
    3. Spojení
    4. Skoky a podprogramy
    5. Poklopy
    6. Různé pokyny
    7. Kódy podmínek
  2. sada instrukcí pro aritmetiku s pohyblivou řádovou čárkou pro vědecké výpočty (volitelně)
  3. sada instrukcí pro business computing (volitelně)

Každá instrukce specifikuje operaci, která má být provedena, případně operandy (registry atd.) A režim adresování .

Formát pokynů

PDP-11 definuje 7 formátů. Ve všech níže popsaných formátech:

Interpretace pole režimu

Pole režimu má 3 bity. Například instrukce dvou operandů obsahuje dvě pole registru a dvě pole režimu, z nichž každé popisuje, jak interpretovat pole registru.

Pokud vezmeme v úvahu pouze bity nejvíce vlevo (třetí je bit pro indikaci, viz níže):

Nejpravější bit režimu je indirection bit: pokud je tento bit jeden, adresování bude nepřímé:

Všimněte si, že neexistuje žádný „okamžitý“ režim: toho lze dosáhnout pomocí režimu 2 (automatická inkrementace). Počítač ve skutečnosti ukazuje na slovo, které následuje po instrukci, a následná inkrementace ji přenese na další instrukci poté, co procesor načte okamžitou hodnotu následující po provedené instrukci.
Používání počítače jako registru proto vytváří 4 nové režimy:

Režimy dodatečného a předem sníženého adresování se použijí zejména ve spojení s ukazatelem zásobníku SP: - (SP) umožňující stohování a (SP) + odkládání.

Pokyny pro operandu

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

Příklad: CLR (R0) 005010

Dva pokyny operandů

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

Příklad: PŘIDAT R0, (R1)

Pozn .: některé pokyny (ASH, ASHC, MUL, DIV) mohou mít jako zdroj pouze jeden registr, v tomto případě se provozní kód rozšiřuje z bitu 9 na bit 15:

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

Spojení

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

Pole posunutí je podepsáno, což umožňuje posun o -128 na +127 bajtů.

Skoky a volání / návraty podprogramů

Pro instrukci JSR (Jump to Subroutine):

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

Pro instrukci RTS (Return from Subroutine):

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

Pasti a přerušení

EMT, TRAP, BPT, IOT, CSM, RTI, RTT: žádný konkrétní formát.

Kódy podmínek

CLC, CLV, CLZ, CLN, CCC, SEC, SEV, SEZ, SEN, SEC: žádný konkrétní formát.

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

Různé pokyny

HALT, WAIT, RESET, MTPD, MTPI, MFPD, MFPI, MTPS, MFPS, MFPT: no specific format.

Sada instrukcí s plovoucími čísly

Tato možnost se nazývá FPP nebo FP-11 , FP pro plovoucí desetinnou čárku . Přidává 6 nových 64bitových registrů (dvakrát 32) pro výpočty a některé další specializované (například stavový registr). Činnost plovoucího procesoru je odlišná od standardního procesoru PDP-11: kromě malého zpoždění, když plovoucí procesor načte instrukci do paměti, oba procesory počítají nezávisle.

Tato nová sada pokynů je k dispozici změnou mikrokódu .

Sada instrukcí pro správu

Tato sada instrukcí zvaná CIS pro sadu Commercial Instruction Set je zaměřena hlavně na správu řetězců znaků a je navržena tak, aby urychlila operace, které obvykle vyžadují programy pro správu (napsané například v COBOLu ).

Umožňuje převod reprezentace čísel ve formě znaků na binární hodnoty (a naopak) nebo výpočty přímo na reprezentaci „řetězce znaků“.

Simulátory

Operační systémy

Poznámky a odkazy

Dodatky

Související články

externí odkazy