PDP-11

En PDP-11 er en datamaskin modell av PDP ( programmerbar databehandler ) varierer bygget av Digital Equipment Corporation (DEC) mellom 1970 og 1993 .

Alle PDP-11 er 16- bit og faller inn i klassen minidatamaskiner . De var ekstremt populære fordi de kombinerte modularitet, et utmerket forhold mellom kvalitet og pris, og bruken av dem ikke var begrenset til en eneste applikasjonssektor: de ble også funnet i fysikklaboratorier for datainnsamling enn i regnskapsbyråer. Endelig har den akademiske verden også anskaffet et stort antall av disse maskinene.

Dette området er også populært fordi det fungerte som grunnlag for utviklingen av Unix- operativsystemet og C-språket . Preinkrementasjonen (++ i) og postinkrementasjonen (i ++) av C gjorde det mulig å utnytte denne muligheten for maskinspråket PDP-11.

Det skjedde også da IBM 1130 ble lansert i 1969, som utstyrte mange laboratorier og ingeniørskoler over hele verden, begynte å eldes uten å ha en etterfølger foreslått av IBM. Bortsett fra det enorme bidragsbiblioteket med gratis programvare, hadde ikke 1130 noen spesiell fordel over PDP-11 når det gjelder hastighet eller kostnad.

Som mange andre har dette området forsvunnet fordi minneadresseplassen var for begrenset (16 til 18 bits , maksimalt 22). Den ble erstattet av VAX , som står for Virtual Address eXtension , 32 bits. Den VAX har en driftsmodus "kompatibel PDP-11."

Arkitektur

Buss

De første PDP-11-ene ble bygget rundt UNIBUS- bussen . De nyeste modellene, med instruksjonssettet inkludert på noen sjetonger, og kalt LSI-11 , er basert på den (smalere) bussen som heter Q-BUS .

Registrerer

Den prosessor av PDP-11 har 8 registre , hvorav to har spesielle anvendelser: registeret 7, den PC (for programteller eller programteller) og registeret 6, den pointer av stabelen (SP, til stakkpekeren ). De andre registrerer R0, R1, ..., R5 og er av generell bruk. Det siste registeret er statusregisteret.

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)

Betydningene av flaggene i statusregisteret er:

  1. N Negativ
  2. Z null
  3. V ( oVerflow ) overløp
  4. C ( Bære ) hold

Ikke alle PDP-11-modeller har nøyaktig samme type statusregistre, den som vises her tilsvarer de mer avanserte modellene.

Datatyper

Det er tre klasser:

byte (8 bits) ord (16 biter) langt heltall (32 bits, to registre) enkel presisjon dobbel presisjon veldig mange forskjellige formater ...

Instruksjonssett

Det er tre mulige instruksjonssett:

  1. standard PDP-11 instruksjonssett, hvis instruksjoner kan klassifiseres i syv kategorier:
    1. Enkelt operand
    2. Dobbel operand
    3. Forbindelse
    4. Hopp og underrutiner
    5. Luker
    6. Diverse instruksjoner
    7. Tilstandskoder
  2. instruksjonssettet for flytende punktsaritmetikk for vitenskapelig databehandling (valgfritt)
  3. instruksjonssettet for forretningsdatamaskin (valgfritt)

Hver instruksjon spesifiserer en operasjon som skal utføres, muligens operander (registre, etc.) og en adresseringsmodus .

Instruksjonsformat

PDP-11 definerer 7 formater. I alle formater beskrevet nedenfor:

Tolkning av modusfeltet

Den modus felt holder på 3 bits. For eksempel inneholder en to-operand instruksjon to registerfelt og to modusfelt, som hver beskriver hvordan registerfeltet skal tolkes.

Hvis vi bare betrakter de venstre bitene (den tredje er retningen, se nedenfor):

Den høyre biten i modusen er indireksjonsbiten: hvis denne biten er en, vil adresseringen være indirekte:

Merk at det ikke er noen "umiddelbar" modus: dette oppnås ved hjelp av modus 2 (autoinkrementering). Faktisk peker PCen mot ordet som følger instruksjonen, og etterøkrementeringen får den til å gå videre til neste instruksjon etter at den umiddelbare verdien etter at instruksjonen blir utført er lastet inn av prosessoren.
Å bruke PCen som et register skaper derfor fire nye moduser:

Adressemodusene etter inkrementert og pre-decremented vil bli brukt spesielt i forbindelse med stabelpekeren SP: - (SP) som muliggjør stabling og (SP) + unstacking.

Instruksjoner til en operand

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

Eksempel: CLR (R0) 005010

To operandinstruksjoner

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

Eksempel: ADD R0, (R1)

NB: noen instruksjoner (ASH, ASHC, MUL, DIV) kan bare ha ett register som kilde, i dette tilfellet strekker operasjonskoden seg fra bit 9 til bit 15:

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

Forbindelsene

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

Den forskyvning felt er signert, derfor tillater en forskyvning på -128 til 127 bytes.

Hopp og samtaler / retur av underrutiner

For JSR (Jump to Subroutine) instruksjon:

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

For instruksjoner om RTS (Return from Subroutine):

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

Feller og avbrudd

EMT, TRAP, BPT, IOT, CSM, RTI, RTT: ikke noe spesifikt format.

Tilstandskoder

CLC, CLV, CLZ, CLN, CCC, SEC, SEV, SEZ, SEN, SEC: ikke noe spesifikt format.

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

Diverse instruksjoner

HALT, WAIT, RESET, MTPD, MTPI, MFPD, MFPI, MTPS, MFPS, MFPT: ikke noe spesifikt format.

Instruksjonssett for flytende tall

Dette alternativet kalles FPP eller FP-11 , FP for flytende punkt . Den legger til 6 nye 64-bitersregistre (to ganger 32) for beregningene, i tillegg til noen andre spesialiserte (som et statusregister). Operasjonen til den flytende prosessoren er forskjellig fra standardprosessoren til PDP-11: bortsett fra en liten forsinkelse når den flytende prosessoren henter instruksjonene i minnet, beregner de to prosessorene uavhengig.

Dette nye settet med instruksjoner er tilgjengelig ved å endre mikrokoden .

Ledelsesinstruksjons sett

Kalt CIS, for Commercial Instruction Set , dette settet med instruksjoner som hovedsakelig fokuserer på håndtering av tegnstrenger er designet for å øke hastigheten på operasjonene som vanligvis kreves av ledelsesprogrammer (skrevet i COBOL for eksempel).

Det tillater konvertering av representasjonen av tall i form av tegn til binære verdier (og omvendt) eller beregninger direkte på "tegnstreng" -representasjoner.

Simulatorer

Operativsystemer

Merknader og referanser

Vedlegg

Relaterte artikler

Eksterne linker