PDP-10

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Die PDP-10 war die 36-Bit-Rechnerfamilie von DEC. Sie wurde 1966 als aufwärtskompatible Weiterentwicklung der PDP-6 auf den Markt gebracht und später als DECSystem-10[A 1] oder DECSystem-20 vermarktet. Die Systeme konnten sowohl von ihren Leistungsdaten als auch von ihren äußeren Abmessungen her als Mainframe eingestuft werden.

Innerhalb der Produktreihe gab es vier verschiedene Zentraleinheiten (KA10, KI10, KL10 und KS10). Die Beendigung der Entwicklungsarbeiten an einer weiteren Zentraleinheit („Projekt Jupiter“) war das erste Anzeichen für eine Einstellung der gesamten Produktreihe; die PDP-10 wurde 1983 nicht mehr fortgeführt.

Betriebssysteme waren u. a. TOPS-10 (Time Sharing Operating System 10, ein interaktives Multiuser-Betriebssystem), ITS, TENEX, TOPS-20 (auch als TWENEX bezeichnet), sowie das auf Basis von TOPS-10 selbstentwickelte Betriebssystem von Compuserve.

PDP-10-Rechner waren besonders im akademischen Umfeld beliebt, weil sie anders als die vorherrschenden IBM- oder CDC-Anlagen anstatt für Batchverarbeitung hauptsächlich für den interaktiven Betrieb vorgesehen waren. Gut ausgebaute Systeme verfügten über 150 oder mehr angeschlossene Terminals, die im Time-Sharing-Betrieb gleichzeitig aktiv sein konnten.

PDP-10en ließen sich unter TOPS-10, Version 7 und höher zu symmetrischen Multiprozessoranlagen von bis zu acht Rechnern zusammenschließen, die ununterbrochenen Betrieb trotz eventueller Hardwareausfälle ermöglichten.

Wortgröße und Datenformate

[Bearbeiten | Quelltext bearbeiten]

Die PDP-10 hat eine Wort-orientierte Architektur mit einer Wortgröße von 36 Bit. Alle Instruktionen haben eine Länge von 36 Bit. Bits sind in der Dokumentation von Bit 0 (höchstwertiges Bit) bis Bit 35 (niederwertigstes Bit) nummeriert.

Unterstützte Datenformate sind:[1]:10–12

Register und Befehle

[Bearbeiten | Quelltext bearbeiten]

Die PDP-10 hat keine Register im eigentlichen Sinn. Stattdessen dienen die Speicherworte der Adressen 0 bis 15 als Akkumulatoren, die Speicherworte 1 bis 15 können als Index-Register verwendet werden.[1]:14–15

Auf der PDP-10 existieren nur zwei Befehlsformate, ein normales („BASIC“) und eines für Ein- und Ausgabe („input-output instruction“). Die normalen Befehle haben folgendes Format:

  • Neun Bits Anweisungstyp („instruction code“), Bit 0–8, genannt
  • Vier Bit Akkumulatoraddresse („accumulator address“), Bit 9–12, A
  • Ein Bit Addresstyp, I, Bit 13
  • Vier Bit Indexregisteraddresse („index register address“), Bit 14–17, X
  • 18 Bit Speicheradresse („Memory address“), Bit 18–35, Y

Ein- und Ausgabe-Befehle waren typischerweise dem Betriebssystem vorbehalten.

Effektive Adresse

[Bearbeiten | Quelltext bearbeiten]

Jede Instruktion der PDP-10 berechnet eine effektive Adresse aus den Bits 13 bis 35 der Instruktion. Falls die Adresse des Indexregisters X ungleich Null ist, wird der Inhalt von X zu der Konstanten Y addiert. Falls der Adresstyp I 0 ist, ist dies die effektive Adresse, die weiter verwendet wird. Ist I jedoch 1, so wird das so adressierte Speicherwort geladen und daraus X und Y neu bestimmt, was die neue effektive Adresse ergibt. Die Überprüfung von I wird wiederum durchgeführt. Dieses Verfahren wird solange fortgeführt, bis bei einem Speicherwort I Null ist.[1]:13–14[2]

Die effektive Adresse kann als Speicheradresse oder als Datenwert verwendet werden.

Beispiel für eine Instruktion

[Bearbeiten | Quelltext bearbeiten]

Die Dokumentation der PDP-10 verwendet ausschließlich Oktal-Darstellung, die folgenden Beispiele folgen dieser Konvention. In dem verwendeten Pseudocode ist CL(x) bezeichnet den Inhalt des linken Halbwortes des Registers x, entsprechend CR(x) den Inhalt des rechten Teils und C(x) den ganzen Inhalt.AC ist ein Akkumulator, E die effektive Adresse und CR(E) der Inhalt der Speicheradresse bei E.

Die HRR-Instruktion kopiert das rechte (höherwertige) Halbwort der Quelle zum rechten Halbwort des Zieles. Hierfür gibt es vier Varianten:

Beispiel für die HRR-Instruktion der PDP-10
Code Abkürzung Bedeutung Pseudocode
540 HRR Half Right to Right CR(AC) = CR(E)
541 HRRI Half Right to Right Immediate CR(AC) = E
542 HRRM Half Right to Right Memory CR(E) = CR(AC)
543 HRRS Half Right to Right Self if (AC!=0) then CR(AC) = CR(E)

Zentraleinheiten und Systeme

[Bearbeiten | Quelltext bearbeiten]
PDP-10
Konsole
KL10-A 1090 CPU mit 6 Speicherschränken
  • KA10 (die ursprüngliche PDP-10), nur TOPS-10
    • 1040
    • 1050
    • 1055 (Doppelprozessor)
  • KI10 (das erste DECSystem10), nur TOPS-10
    • 1060
    • 1070
    • 1077 (Doppelprozessor)
  • KL10 (die erste CPU, die für TOPS-10 und TOPS-20 entwickelt wurde, mikroprogrammiert)[A 2]
    • 1080 TOPS-10
    • 1088 (Doppelprozessor) TOPS-10
    • 1090 TOPS-10
    • 2080 TOPS-20
    • 2088 (Doppelprozessor) TOPS-20
  • KS10 (mikroprogrammiert)
    • DECSystem2020 (TOPS-10 und TOPS-20)

Ausrüstung und Peripherie

[Bearbeiten | Quelltext bearbeiten]

Zur normalen Peripherieausrüstung zählten anfangs 16 KWorte Kernspeicher (= 16 K 36-Bit-Worte, entspr. 88 KByte), Wechselplattenlaufwerk, DEC-Tape Magnetbandsystem, Falt-Lochstreifen-Einheit, Magnetbandlaufwerk, Walzendrucker und elektro-mechanischer Fernschreiber. Zum Anschluss von Echtzeit-Steuerungskomponenten war ein frei programmierbares Analog-Digital-Schnittstellensystem verfügbar. Die Laufwerke waren i. d. R. in einem Schrank mit Kühlung untergebracht. Die Kommunikation der interaktiven Nutzer erfolgte in den ersten Jahren ausschließlich über elektro-mechanische Fernschreiber (Typ Teletype) mit einer Geschwindigkeit von 110 Baud, also 10 Zeichen/s.

Emulation bzw. Simulation

[Bearbeiten | Quelltext bearbeiten]

Im Rahmen der Software zur Simulation historischer Computer SIMH existiert auch ein Modul, das die PDP-10 auf einem Windows- bzw. Unix-artigen-Rechner emuliert. Es wird die CPU KS10 nachgebildet. Mit Hilfe im Internet verfügbarer Kopien der Original-Magnetbänder von DEC kann ein lauffähiges TOPS-10- oder TOPS-20-System aufgebaut werden.

Es gibt auch eine Hardware-Replik der Konsole, die auf einem Raspberry Pi mithilfe von SIMH die PDP-10 emuliert.[3][4]

Commons: PDP-10 – Sammlung von Bildern, Videos und Audiodateien
  1. Zur Nomenklatur: Das registrierte Warenzeichen lautete DECSystem-10, auf den Handbüchern stand DECSystem10, "System" farblich abgesetzt, vgl. hier (Memento des Originals vom 1. Dezember 2008 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.bitsavers.org.
  2. Von der KL10 gab es zwei Versionen: KL10-A als direkter Nachfolger der KI10, KL10-B mit neuem internen Memory-Konzept.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. a b c Programming with the PDP-10 Instruction Set. Archiviert vom Original am 31. Juli 2021; abgerufen am 9. September 2021 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/bitsavers.org
  2. DECSYSTEM-20 Assembly Language Guide. Archiviert vom Original am 23. August 2021;.
  3. hackaday.io: A replica of the PDP-10 (KA10) mainframe computer
  4. Daniel Ziegener: Bastler baut Großrechner mit Raspberry Pi nach. In: golem.de. 8. Juni 2024, abgerufen am 9. Juni 2024.