PDP-11

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die PDP-11 ist ein in den 1970er Jahren weit verbreiteter 16-Bit-Computer, der von Digital Equipment Corporation angeboten wurde. Obwohl nicht explizit als Nachfolger konzipiert, hat er bei vielen Prozessrechenanwendungen den vorher dominierenden 12-Bit-Computer PDP-8 aus der Programmed-Data-Processor-Reihe abgelöst. Eingeführt wurde die PDP-11-Baureihe im Jahr 1970.

Das technische Konzept der PDP-11-Serie war einfach gehalten. Ein standardisiertes „Universelles Bus-System“ (Unibus), über den Zentraleinheit, Arbeitsspeicher und Ein-/Ausgabe-Geräte miteinander kommunizierten, ermöglichte die Auf- und Umrüstung für eine Vielzahl von Prozessanwendungen. Deswegen wurde die PDP-11 häufig im experimentellen Wissenschafts- und Forschungsbereich eingesetzt.

Im Unterschied zu vielen vorherigen Rechnern kannte die PDP-11 keine speziellen Ein-/Ausgabe-Befehle. Da Peripheriegeräte am Unibus wie Arbeitsspeicher adressiert wurden, konnte die Peripherie mit „normalen“ Rechnerbefehlen gesteuert werden. Auch bei der Steuerung von Kraftwerken, Verkehrswegen und Telefonnetzen wurde die PDP-11 verwendet. Das offene Bus-System ermöglichte es auch Fremdanbietern, kostengünstige und leistungsstarke Peripheriegeräte zum Anschluss an die PDP-11 auf den Markt zu bringen.

PDP-11-Modelle[Bearbeiten]

Die PDP-11-Rechner können nach dem verwendeten Peripheriebus eingeteilt werden.

Unibus-Modelle[Bearbeiten]

DEC „Jaws-11“-Chipsatz
DEC „Fonz-11“-Chipsatz

Die folgenden Modelle nutzten den ursprünglichen 18 bit breiten Unibus:

  • PDP-11 (später PDP-11/20) und PDP-11/15, der originale Rechner von Jim O’Loughlin mit 4 K 12-Bit-Arbeitsspeicher
  • PDP-11/35 und 11/40
  • PDP-11/45, 11/50 und 11/55 mit deutlich schnellerem Prozessor
  • PDP-11/70: 11/45 Architektur mit bis zu 4 MiB Speicher und E/A-Schnittstellen über den Massbus
  • PDP-11/05 und 11/10, kostenreduzierte 11/20
  • PDP-11/34 und 11/04, kostenreduzierte Version nach Konzept von Bob Armstrong
  • PDP-11/44, verbesserte 11/34 mit Cachespeicher und Gleitkommaeinheit, entwickelt von John Sofio
  • PDP-11/60
  • PDP-11/24, erste VLSI PDP-11 für Unibus mit „Fonz-11“ (F11)-Chipset
  • PDP-11/84, VLSI „Jaws-11“ (J11)-Chipset
  • PDP-11/94, schnellere Variante der 11/84


Q-Bus-Modelle[Bearbeiten]

Die folgenden Modelle nutzten den später eingeführten preiswerteren Q-Bus, bei dem Adress- und Datenleitungen zusammengelegt waren:

  • PDP-11/03 (auch bekannt als LSI-11/03)
    Eine PDP-11/23, Gehäuseabdeckung entfernt
  • LSI 11/2 (elf-halbe) kompaktere Version vom Ur-LSI-11
  • PDP-11/23 mit 248 KB Speicher
  • MicroPDP-11/23
  • MicroPDP-11/73 mit „Jaws-11“ (J-11)-Chipset
  • MicroPDP-11/53, 11/53+ mit 1,5 MB Speicher on board
  • MicroPDP-11/83
  • MicroPDP-11/93, letztes DEC-Q-Bus-PDP-11-Modell
  • Mentec M100, Redesign der 11/93 von Mentec
  • Mentec M11
  • Quickware QED-993: PDP-11/93 Prozessor-Upgradeboard

Modelle ohne Bussystem[Bearbeiten]

  • PDT-11/110
  • PDT-11/130
  • PDT-11/150

Diese Modelle hatten nur den 16 bit breiten Prozessorbus und dienten als intelligente Terminals. Die Serien PDT-11/110 und PDT-11/130 nutzten ein VT100-Terminal-Gehäuse.

Weitere Workstations[Bearbeiten]

  • Pro 325, Arbeitsplatzrechner mit „Fonz-11“ (F11)-Chipset und Disketten
  • Pro 350, Arbeitsplatzrechner mit „Fonz-11“ (F11)-Chipset, Disketten und Festplatte
  • Pro 380, Arbeitsplatzrechner mit „Jaws-11“ (J-11)-Chipset, Disketten und Festplatte

Nachbauten aus dem Ostblock[Bearbeiten]

Die PDP-11 wurde wegen ihrer technischen Bedeutung auch in der Sowjetunion und ihren verbündeten Staaten ohne Lizenz nachgebaut. Beispiele dafür sind:

  • SM-4, SM-1420, IZOT-1016 (Bulgarien).
  • K 1600 (DDR)
  • Mera (Polen)
  • I-102 (Rumänien)
  • SM-4, SM-1420, SM-1600, Elektronika BK-0010, DVK, UKNC (Sowjetunion)
  • TPA-51 (Ungarn) "TPA" (ung. Abk.) "Speicherprogrammierbarer Analysator". Exakter Nachbau des PDP 11/40 vom Institut für Kernphysik (KFKI) der Ungarischen Akademie der Wissenschaften (MTA). "TPA-11/40" wurde später in "TPA-51" (11+40) umbenannt.

Betriebssysteme[Bearbeiten]

Verschiedenste Betriebssysteme waren für die PDP-11 verfügbar:

Von DEC:

Von Drittanbietern:

Befehle[Bearbeiten]

CPU-Karte einer PDP-11

Die PDP-11 hat eine Wortbreite von 16 bit. Es werden Einadressbefehle, Zweiadressbefehle und Sprünge unterschieden. Die Adressierung erfolgt jeweils über sechs Bit, wobei die ersten drei Bit für die acht Adressierungsmodi verwendet werden und die letzten drei für die Auswahl eines der acht Register (R0 bis R7). Viele Befehle gibt es als Wortbefehle und als Bytebefehle, das heißt, sie operieren mit 16-Bit- bzw. 8-Bit-Einheiten. Die Byteversionen der „doppelt“ vorhandenen Befehle sind in den folgenden Aufstellungen in Klammern angegeben.

1-Adress-Befehle[Bearbeiten]

0 9 10 12 13 15
OP-Code Mode Register

Die wichtigsten 1-Adress-Befehle sind:

  • INC(INCB) X: Inkrementieren des Wertes um 1
  • DEC(DECB) X: Dekrementieren des Wertes um 1
  • COM(COMB) X: Einerkomplement von X
  • NEG(NEGB) X: Zweierkomplement von X (Negierung)
  • ASR(ASRB) X: Arithmetisches Schieben nach rechts
  • ASL(ASLB) X: Arithmetisches Schieben nach links
  • ROR(RORB) X: Nach rechts rotieren
  • ROL(ROLB) X: Nach links rotieren

2-Adress-Befehle[Bearbeiten]

2-Adress-Befehle folgen immer dem Muster „Befehl–Quelle–Ziel“. Beim Befehl ADD R1, R2 wird also gerechnet R2 = R1 + R2.

0 3 4 6 7 9 10 12 13 15
OP-Code Mode Register Mode Register

Die wichtigsten 2-Adress-Befehle sind:

  • MOV(MOVB) A,B: Kopieren (B = A)
  • ADD A,B: Addition (B = B + A)
  • SUB A,B: Subtraktion (B = B – A)
  • MUL A,B: Multiplikation (B = B * A)
  • DIV A,B: Division (B = B/A)

Sprünge[Bearbeiten]

Bei Sprüngen wird immer ein 8-Bit-Offset angegeben. Dies gibt die Anzahl der Worte an, um die gesprungen wird.

0 7 8 15
OP-Code Offset

Die PDP-11 bringt sehr viele Sprungbefehle mit, insgesamt 18 verschiedene.

Adressierungsmodi[Bearbeiten]

Die Adressierungsmodi unterscheiden sich bei der PDP-11 abhängig davon, ob als Register R0 bis R5 (Allzweckregister), R6 (Stapelzeiger bzw. Stackpointer, SP) oder R7 (Programmzähler, PC) verwendet wird.

Allzweckregister (R0 bis R5)[Bearbeiten]

Bitfolge Kurzform Name/Beschreibung
000 Rn Register direkt: Der Wert, der im Register Rn steht, wird verwendet.
001 @Rn Register indirekt: Der Wert, der an der Speicherstelle steht, die im Register Rn steht.
010 (Rn)+ Autoinkrement: Der Wert, der an der Speicherstelle steht, die im Register Rn steht; Rn wird um eine Adressierungseinheit erhöht.
011 @(Rn)+ Autoinkrement indirekt: Der Wert, der an der Speicherstelle steht, die an der Speicherstelle steht, die im Register Rn steht; Rn wird um 2 erhöht.
100 -(Rn) Autodekrement: Rn wird um eine Adressierungseinheit verringert; Der Wert, der an der Speicherstelle steht, die dann im Register Rn steht.
101 @-(Rn) Autodekrement indirekt: Rn wird um 2 verringert; Der Wert, der an der Speicherstelle steht, die an der Speicherstelle steht, die dann im Register Rn steht.
110 X(Rn) Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, die durch diese Summe gegeben ist.
111 @X(Rn) Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, auf die die Speicherstelle zeigt, die durch diese Summe gegeben ist.

Eine Adressierungseinheit ist „1“ für Byte-Befehle und „2“ für Wort-Befehle.

Stapelzeiger[Bearbeiten]

R6 ist ein Zeiger auf den Stapelspeicher, der vom Prozessor bei Interrupts zur Zwischenspeicherung des aktuellen Maschinenzustands verwendet wird. Der Stapelzeiger dient der Verwaltung des Stapelspeichers, er muss grundsätzlich eine Wortadresse, das heißt eine gerade Adresse enthalten. Deshalb wird im Unterschied zu den Allzweckregistern bei den Adressmodes Autoinkrement bzw. Autodekrement das Register R6 immer um 2 erhöht oder erniedrigt, unabhängig ob es sich um einen Byte- oder Wortbefehl handelt.

Bitfolge Kurzform Name/Beschreibung
000 Rn Register direkt: Der Wert, der im Register Rn steht, wird verwendet.
001 @Rn Register indirekt: Der Wert, der an der Speicherstelle steht, die im Register Rn steht.
010 (Rn)+ Autoinkrement: Der Wert, der an der Speicherstelle steht, die im Register Rn steht; Rn wird um 2 erhöht.
011 @(Rn)+ Autoinkrement indirekt: Der Wert, der an der Speicherstelle steht, die an der Speicherstelle steht, die im Register Rn steht; Rn wird um 2 erhöht.
100 -(Rn) Autodekrement: Rn wird um 2 verringert; Der Wert, der an der Speicherstelle steht, die dann im Register Rn steht.
101 @-(Rn) Autodekrement indirekt: Rn wird um 2 verringert; Der Wert, der an der Speicherstelle steht, die an der Speicherstelle steht, die dann im Register Rn steht.
110 X(Rn) Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, die durch diese Summe gegeben ist.
111 @X(Rn) Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, auf die die Speicherstelle zeigt, die durch diese Summe gegeben ist.

Programmzähler (R7 bzw. PC)[Bearbeiten]

Bitfolge Kurzform Name/Beschreibung
010 #N Immediate: Der Wert folgt dem Befehl im Programmspeicher.
011 @#A Absolute: Die Speicheradresse des Wertes folgt dem Befehl im Programmspeicher.
110 A Relative: Die Speicheradresse des Wertes ist die Summe aus dem aktuellen Programmzähler und dem Offset, das dem Befehl im Programmspeicher folgt.
111 @A Relative Indirekt: An der Speicheradresse, die die Summe des aktuellen Programmzählers und dem, dem Befehl folgenden Offset ist, steht die Adresse, an der der Wert zu finden ist.

Verwendung im 21. Jahrhundert[Bearbeiten]

In der Einrichtung HASYLAB am Deutschen Elektronen-Synchrotron in Hamburg diente von 1981 bis zum 20. Oktober 2012 eine PDP-11/23 an der Beamline E1 zur Steuerung von FLIPPER II, einer Anlage zur Messung von Photoelektronenspektroskopie mit Synchrotronstrahlung.

Die PDP-11 wird in Kernkraftwerken von General Electric noch verwendet. Das soll bis 2050 so bleiben.[1]

Trivia[Bearbeiten]

Im Film 23 – Nichts ist so wie es scheint wird die PDP-11 mehrmals erwähnt. Im Film wird fälschlicherweise behauptet, eine PDP-11 benötige zwangsläufig einen Dreiphasenwechselstromanschluss mit 380 V. Obwohl es einige „große“ PDP-11-Modelle gibt, die tatsächlich Dreiphasenwechselstrom benötigen, kommt doch die überwiegende Mehrheit der PDP-11-Rechner mit einphasiger Wechselspannung von 110 V bzw. 220 V aus. Da jedoch im Film ein Einphasenstecker in 32-Ampere-Ausführung zu sehen ist, könnte auch gemeint sein, dass sich die Maschine nicht aus einer normalen Steckdose versorgen lässt.

Konkurrenzprodukte[Bearbeiten]

Virtualisierung[Bearbeiten]

Derzeit gibt es vier Emulatoren für PDP-11-Server.

Name Aktuelle Version Letzte Veröffentlichung System Plattform Lizenz Weblink
Ersatz-11 5.3 1. September 2009 DEC PDP-11 DOS, Windows, Linux Shareware [1]
ts10 021004 4. Oktober 2002 DEC PDP-10, DEC PDP-11, DEC VAX Unix, Linux GPL [2]
SIMH 3.9 3. Mai 2012 Verschiedene sehr alte Computer Cross-platform Open source [3]
Charon 4.0 11. Januar 2011 PDP-11/94 (UNIBUS), MicroVAX II, MicroVAX 3600, MicroVAX 3600, VAX Server 3600, VAX Server 3600 mit 512 MB Speichererweiterung, VAX 4000/106, VAX 6000/310 Windows Kommerziell [4]

Weblinks[Bearbeiten]

 Commons: PDP-11 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten]

  1. Nuke plants to rely on PDP-11 code until 2050, engl., abgerufen am 19. Juni 2013