Ein kurzer Blick auf den PDP-11, den einflussreichsten Minicomputer aller Zeiten

Ein kurzer Blick auf den PDP-11, den einflussreichsten Minicomputer aller Zeiten

Die Geschichte der Computertechnologie lässt sich grob in drei Epochen einteilen: die Ära der Großrechner, der Minicomputer und der Mikrocomputer. Minicomputer wurden zu einem wichtigen Bindeglied zwischen den ersten Großrechnern und den heute allgegenwärtigen Mikrocomputern. Dies ist die Geschichte des PDP-11, des einflussreichsten und erfolgreichsten Minicomputers.

Früher wurden Minicomputer in einer Vielzahl von Anwendungen eingesetzt. Sie dienten als Kommunikationscontroller, Instrumentencontroller, Präprozessoren für große Systeme, Tischrechner und Echtzeit-Datenerfassungsprozessoren. Sie legten aber auch den Grundstein für bedeutende Fortschritte in der Hardwarearchitektur und leisteten wichtige Beiträge zu modernen Betriebssystemen, Programmiersprachen und interaktivem Computing, wie wir sie heute kennen.

In der heutigen Computerwelt, in der auf jedem Computer eine Windows-, Mac- oder Linux-Version ausgeführt wird, ist es schwierig, die dem Betriebssystem zugrunde liegenden CPUs zu unterscheiden. Aber es gab eine Zeit, in der Unterschiede in der CPU-Architektur eine große Rolle spielten. Der PDP-11 hilft zu erklären, warum das so ist.

Der PDP-11 wurde 1970 eingeführt, als die meisten Computer auf teuren GE-, CDC- und IBM-Großrechnern ausgeführt wurden, zu denen nur wenige Zugang hatten. Es gab keine Laptops, keine Desktops, keine Personalcomputer. Nur wenige Unternehmen beschäftigten sich mit der Programmierung, meist in Assemblersprache, COBOL und FORTRAN. Die Eingabe erfolgte über Lochkarten, der Programmstart erfolgte über nicht-interaktive Batch-Läufe.

Obwohl der erste PDP-11 bescheiden war, bereitete er die Bühne für die Minicomputer-Invasion, die Computer der nächsten Generation erschwinglicher machte und die Computertechnik im Grunde revolutionierte. Der PDP-11 half bei der Entwicklung des UNIX-Betriebssystems und der Programmiersprache C. Es würde auch großen Einfluss auf die nächste Generation von Computerarchitekturen haben. In den 22 Lebensjahren des PDP-11 – nach heutigen Maßstäben eine beispiellose Zeitspanne – wurden mehr als 600.000 PDP-11 verkauft.

Die frühen PDP-11 waren nicht so beeindruckend. Der erste 11/20 PDP-11 kostete 20.000 US-Dollar, war aber nur mit 4 KB RAM ausgestattet. Es verwendete Papierband als Speicher und verfügte über eine ASR-33-Fernschreibkonsole, die 10 Zeichen pro Sekunde druckte. Aber es verfügte auch über eine erstaunliche orthogonale 16-Bit-Architektur, acht Register, 65 KB Adressraum, eine Zykluszeit von 1,25 MHz und einen flexiblen UNIBUS-Hardwarebus, der zukünftige Hardware-Peripheriegeräte unterstützte. Es war eine gewinnbringende Kombination für seinen Schöpfer, die Digital Equipment Corporation.

Die anfängliche Anwendung des PDP-11 umfasste Echtzeit-Hardwaresteuerung, Fabrikautomatisierung und Datenverarbeitung. Als der PDP-11 für seine Flexibilität, Programmierbarkeit und Erschwinglichkeit bekannt wurde, fand er Verwendung in Ampelsteuerungssystemen, im Raketenabwehrsystem von Nike, in der Flugsicherung, in Kernkraftwerken, in Systemen zur Pilotenausbildung der Marine und in der Telekommunikation. Er leistete auch Pionierarbeit bei der Textverarbeitung und Datenverarbeitung, die wir heute für selbstverständlich halten.

Und der Einfluss des PDP-11 zeigt sich am deutlichsten in der Programmierung des Zusammenbaus des Geräts.

Grundlagen der Assemblerprogrammierung

Vor der Erfindung von Hochsprachen wie Python, Java und Fortran erfolgte die Programmierung in Assemblersprache. Die Assembler-Programmierung kann mit sehr wenig RAM und Festplattenspeicher durchgeführt werden, ideal für die Anfänge der Informatik.

Assemblersprache ist ein Low-Level-Zwischenformat, das in Maschinensprache konvertiert wird, die dann direkt vom Computer ausgeführt werden kann. Es ist auf niedriger Ebene, da Sie Aspekte der Computerarchitektur direkt steuern. Einfach ausgedrückt: Bei der Assembler-Programmierung werden Ihre Daten Byte für Byte durch Hardwareregister und Speicher verschoben. Was die PDP-11-Programmierung auszeichnete, war das elegante Design des Minicomputers. Jede Anweisung hatte ihren Platz und jede Anweisung hatte eine Bedeutung.

Der 16-Bit-Adressraum bedeutete, dass jedes Register bis zu 64 KB RAM direkt adressieren konnte, wobei die oberen 4 KB für speicherabgebildete Ein- und Ausgänge reserviert waren. PDP-11s könnten mithilfe von Registersegmenten insgesamt 128 KB RAM adressieren (mehr dazu gleich). Obwohl die PDP-11-Systeme nur mit 4 KB RAM ausgeliefert wurden, waren sie aufgrund des geschickten Einsatzes früher Programmiertechniken dennoch produktiv.

Versammlungsprogramm

Der einfachste Weg, dieses Konzept zu verstehen, ist mit einem einfachen PDP-11-Assemblerprogramm, das wir uns weiter unten ansehen. Schlüsselwörter, die mit „.“ beginnen, sind Anweisungen für den Assembler. .globlexportiert die Bezeichnung als Symbol an den Linker zur Verwendung durch das Betriebssystem. .textdefiniert den Beginn eines Codesegments. .datadefiniert den Beginn eines einzelnen Datensegments. Schlüsselwörter, die mit „:“ enden, sind Tags. Bei der Assemblerprogrammierung werden Beschriftungen verwendet, um den Speicher symbolisch zu adressieren. (Hinweis: Mit dem Aufkommen des Jargons und der PDP-11-Codierung ist jeder Text nach / ein Kommentar.)

Schlüsselwörter Übersetzung
.globl_main Exportieren Sie die Bezeichnung _main als Einstiegspunkt zur Verwendung durch das Betriebssystem.
.Text Beginn des Anweisungssegments, das schreibgeschützten Code enthält
_main: MOTORWERT1, R0 Kopieren Sie den Wortwert vom Speicherplatz VAL1 in Register 0.
Addieren Sie 10 $, R0 Addieren Sie 10 zum Wert in Register 0
MOTOR R0 WERT1 Kopieren Sie den Wert aus Register 0 in den Speicherplatz VAL1.
_.Daten Der Anfang eines Datensegments, das Lese-/Schreibdaten enthält.
VAL1:. Wort 100 $ Reservieren Sie 2 Byte Speicher für Val1, initialisiert auf 100.

Obwohl Sie numerische Werte für Speicheradressen verwenden können, vereinfacht die Verwendung von Labels anstelle von fest codierten Adressen die Programmierung und ermöglicht das Verschieben von Code im Speicher. Dies gibt dem Betriebssystem die Flexibilität, Code auszuführen, wodurch jedes Programm schnell und effizient wird.

Assembler-Direktive. data platziert Daten in einem Speichersegment, das sowohl lesbar als auch beschreibbar ist. Das Codespeichersegment ist schreibgeschützt, um zu verhindern, dass Programmierfehler das Programm beschädigen und zu Abstürzen führen. Diese Trennung von Anweisungen und Daten wird beim PDP-11 als „Trennung von Anweisungen und Daten“ bezeichnet. Diese Funktion verbessert nicht nur die Stabilität, sondern verdoppelt auch den Adressraum und stellt 64 KB für Code und 64 KB für Daten bereit, was damals als Innovation galt. Dementsprechend nutzten die Intel X86-Mikrocomputer später in großem Umfang Segmente.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert