Digital Equipment PDP-8/I

         

DEC brachte 1965 das erste Modell der PDP-8 auf den Markt, aus dem sich im Laufe der Jahre eine ganze Familie von Minicomputern entwickelte. "Mini" waren diese Geräte vor allem im Vergleich zu den damals noch vorherrschenden Mainframes.

Die PDP-8/I stellt die zweite Generation dar und kam 1967 auf den Markt. Im Gegensatz zum Vorgängermodell basiert sie auf den damals brandneuen TTL-Schaltkreisen der 74er-Familie. Dies machte den Computer deutlich günstiger. Das "I" in der Modellbezeichnung weist auf die Verwendung Integrierter Schaltungen hin.

Der Computer hat ein großes Bedienpanel, auf dem der aktuelle Status der Register über Lämpchen ablesbar ist. Eine Reihe von Schaltern ermöglicht die direkte Steuerung des Computers bis hin zur kompletten Eingabe von Programmen. Um den Computer erstmalig hochzufahren, muss ein Bootprogramm eingegeben werden, dessen Maschinencode in Form von Oktalzahlen auf dem Panel aufgedruckt ist.

Typischerweise wurde die PDP-8/I in Verbindung mit einem Fernschreiber des Typs ASR33 eingesetzt. Dieser konnte mit einem Lochstreifenleser und -stanzer versehen werden und verschaffte der PDP-8 so einen simplen Massenspeicher. Vom Lochstreifen konnte auch das Betriebssystem geladen werden und danach arbeitete der Computer interaktiv: Befehle konnten über den Fernschreiber eingegeben werden und die Ausgaben erschienen dort in gedruckter Form. Im Laufe der Jahre wurden weitere Peripheriegeräte für die PDP-Familie entwickelt, so dass es alternativ zum Lochstreifenleser später auch Bandlauferke oder Festplatten gab.

Die Einsatzgebiete der PDP-8-Computer lagen vor allem im technisch-wissenschaftlichen Bereich. Sie wurden häufig für Steuerungsaufgaben genutzt.

Technischer Aufbau

Hinter dem Frontpanel und der darunter angebrachten Blechplatte sitzt links angeschlagen die Backplane des Computers. Darauf sind etwa 100 Modulstecker angebracht, in denen kleine Module in "Flip-Chip-Bauweise" eingesteckt werden können. Aus diesen Modulen setzt sich die Computerlogik zusammen. Bei den Modulsteckern handelt es sich nicht um ein Bussystem. Jedes Modul hat daher einen genau definierten Modulsteckplatz. Die Verdrahtung der Modulstecker untereinander erfolgt über die sogenannte Wire-Wrap-Technik auf der Rückseite der Backplane.

Der Arbeitsspeicher ist als Ringkernspeicher realisiert.

Um den Computer mit Strom zu versorgen, ist ein riesiges, konventionell aufgebautes Netzteil integriert.

Primitiver Befehlssatz

Von den Logikschaltungen her gesehen ist die PDP-8 extrem simpel aufgebaut. Das führt zu diversen Einschränkungen, die die Programmierung ziemlich kniffelig machen. Der Computer arbeitet mit 12 Bit, und zwar sowohl für den Daten- als auch den Adressbus. Es können daher Zahlen im Bereich 0 bis 4095 (oder -2048 bis 2047) in einem Schritt verarbeitet werden und der Arbeitsspeicher kann maximal 4096 Speicherworte à 12 Bit haben. Der doppelt so große Speicher der PDP-8/I wird über Bankswitching genutzt, d.h. er wird in zwei "Speicherbänke" von je 4096 Worten aufgeteilt, zwischen denen hin- und her geschaltet werden kann.

Die Maschinensprachebefehle weisen die PDP-8 als "Einadressmaschine" aus. Das heißt, dass jeder Befehl nur ein Argument hat. Dieses ist bei Arithmetikbefehlen der eine Operand. Der zweite wird aus dem Akkumulator geholt, in den am Ende auch das Ergebnis gespeichert wird.

Jeder Maschinensprachebefehl ist 12 Bit groß, von denen die ersten drei den Befehl identifizieren. Das führt zu einem Befehlssatz von gerade einmal acht Befehlen. Sechs davon verwenden eine sehr spezielle Adressierung, die über zwei weitere Bits ("I" und "Z") gesteuert wird. Die restlichen 7 Bits enthalten eine Adresse. Mit diesen können allerdings nur 128 verschiedene Adressen angesprochen werden. Der Arbeitsspeicher ist dadurch in Segmente von je 128 Worten eingeteilt. Ist I=0, bildet sich die angesprochene Adresse in Kombination mit den oberen fünf Bit des Programmzählers (falls Z=0) oder die oberen Bits werden mit Nullen gefüllt (falls Z=1), d.h. es wird das erste Speichersegment angesprochen. Die Adressberechnung funktioniert bei I=1 genauso, allerdings wird der Inhalt der so gefundenen Speicheradresse als Adresse für den eigentlichen Zugriff genutzt (indirekte Adressierung).

Einer der beiden übrigen Befehle dient der Steuerung von Ein-/Ausgabebausteinen. Sechs Bit des Befehlswortes dienen dann der Auswahl des Geräts, die übrigen drei teilen dem Gerät die gewünschte Funktion mit.

Der letzte Befehl wird von DEC als "mikrocodiert" bezeichnet. Das hat hier die Bedeutung, dass den 9 verbliebenen Bits des Befehlswortes bestimmte Funktionen zugewiesen werden wie z.B. "Akkumulator löschen", "Übertrag löschen", "Akku um eins erhöhen" etc. Dadurch kann man mit einem einzigen Befehl gleich mehrere häufig benötigte Funktionen erledigen.