Englische elektrische DEUCE - English Electric DEUCE

ZWEI
Auch bekannt als Digital Electronic Universal Computing Engine
Hersteller Englisch Elektrik
Veröffentlichungsdatum 1955 ( 1955 )
Abgesetzt 1964 ( 1964 )
Versendete Einheiten 33
Zentralprozessor thermionisches Ventil -basiert
Speicher Quecksilber- Verzögerungsleitungen
384 32-Bit-Wörter (Mark I und Mark II)
608 32-Bit-Wörter (Mark IIA)
Lagerung Magnettrommel mit 8192 Wörtern
Anzeige 2 × CRTs
Vorgänger Pilot-ACE

Die DEUCE ( Digital elektronische Universal - Computing Engine ) war einer der ersten britischen handelsüblichen Computer , gebaut von English Electric aus dem Jahr 1955. Es ist die Serienversion des war Pilot ACE , selbst eine abgespeckte Version von Alan Turing ‚s ACE .

Hardwarebeschreibung

Die DEUCE hatte 1450 thermionische Ventile und verwendete Quecksilber- Verzögerungsleitungen für ihren Hauptspeicher ; jede der 12 Verzögerungsleitungen könnte 32 Befehle oder Datenwörter von jeweils 32 Bit speichern. Es übernahm die damals hohe Taktrate von 1 Megahertz des Pilot ACE. Die Eingabe/Ausgabe erfolgte über Hollerith 80-Säulen-Lochkartengeräte. Der Leser las Karten mit einer Geschwindigkeit von 200 Karten pro Minute, während die Kartenstanzgeschwindigkeit 100 Karten pro Minute betrug. Die DEUCE hatte auch eine Magnettrommel mit 8192 Wörtern als Hauptspeicher. Um auf jede der 256 Spuren mit 32 Wörtern zuzugreifen, hatte die Trommel eine Gruppe von 16 Lese- und eine Gruppe von 16 Schreibköpfen, jede Gruppe auf unabhängigen beweglichen Armen, die sich jeweils in eine von 16 Positionen bewegen konnten. Die Zugriffszeit betrug 15 Millisekunden, wenn die Köpfe bereits in Position waren; zusätzliche 35 Millisekunden waren erforderlich, wenn die Köpfe bewegt werden mussten. Beim Lesen von und Schreiben auf die Trommel trat keine Rotationsverzögerung auf. Daten wurden zwischen der Trommel und einer der 32-Wort-Verzögerungsleitungen übertragen.

Die DEUCE könnte mit einer Papierbandausrüstung ausgestattet werden; die Lesegeschwindigkeit betrug 850 Zeichen pro Sekunde, während die Ausgabegeschwindigkeit des Papierbandes 25 Zeichen pro Sekunde betrug. (Das DEUCE an der University of New South Wales {UTECOM} hatte 1964 einen Siemens M100 Fernschreiber angeschlossen, der 10 Zeichen pro Sekunde Eingabe/Ausgabe ermöglichte). Es könnten auch Decca-Magnetbandeinheiten angebracht werden. Der automatische Multiplizierer und Dividierer arbeiteten asynchron (das heißt, andere Befehle konnten ausgeführt werden, während die Multiplizierer-/Dividierereinheit in Betrieb war). Für Integer-Operationen wurden zwei arithmetische Einheiten bereitgestellt: eine mit 32 Bit und eine andere, die 32-Bit-Operationen und 64-Bit-Operationen ausführen kann. Auto-Inkrement und Auto-Dekrement wurden ab etwa 1957 für acht Register bereitgestellt. Array-Arithmetik und Array-Datentransfers waren erlaubt. Im Vergleich zu Zeitgenossen wie dem Manchester Mark 1 war DEUCE etwa zehnmal schneller.

Die einzelnen Wörter der Vierfachregister wurden mit einer Auto-Inkrement/Dekrement-Funktion verbunden. Diese Einrichtung könnte zum Zählen und zum Modifizieren von Befehlen verwendet werden (zum Indexieren, Schleifensteuerung und zum Ändern der Quell- oder Zieladresse eines Befehls).

Da es sich um eine serielle Maschine handelt, betrug die Zugriffszeit auf ein einzelnes Register 32 Mikrosekunden, ein Doppelregister 64 Mikrosekunden und ein Vierfachregister 128 Mikrosekunden. Das für eine Verzögerungsleitung waren 1024 Mikrosekunden.

Die Befehlszeiten waren: Addition, Subtraktion, logische Operationen: 64 Mikrosekunden für 32-Bit-Wörter; doppelte Genauigkeit 96 Mikrosekunden; Multiplikation und Division 2 Millisekunden. Für Array-Arithmetik- und Übertragungsoperationen betrug die Zeit pro Wort 33 Mikrosekunden pro Wort für 32 Wörter.

Gleitkommaoperationen wurden durch Software bereitgestellt; Zeiten: 6 Millisekunden für Addition und Subtraktion, 5½ Millisekunden Durchschnitt für Multiplikation und 4½ Millisekunden Durchschnitt für Division.

Bei den frühen Maschinen waren alle Anweisungen, die die Magnettrommel betrafen, während einer Operation verriegelt. Wenn die Leseköpfe bewegt wurden, wurde somit jeder nachfolgende magnetische Vorgang, wie zum Beispiel das Lesen einer Spur oder das Schreiben einer Spur, daran gehindert, fortzufahren, bis die erste abgeschlossen war. Ab etwa 1957 wurde eine neue Einheit namens "rationalisierte Magnetik" zur Verfügung gestellt. Diese Einheit eliminiert unnötige Verriegelungen. Somit war es möglich, einen Befehl auszuführen, der die Leseköpfe bewegte: Wenn ihm ein Befehl zum Bewegen der Schreibköpfe oder zum Schreiben einer Spur folgte, waren solche Befehle nicht verriegelt und konnten parallel zum Bewegen der Leseköpfe ablaufen.

Auf der Vorderseite des DEUCE befanden sich zwei CRT- Displays: eines zeigte den aktuellen Inhalt der Register an, während das andere den Inhalt eines der Quecksilber-Verzögerungsleitungsspeicher anzeigte.

Ab etwa 1958 konnten sieben zusätzliche Verzögerungsleitungen angeschlossen werden, was 224 Wörter mehr Hochgeschwindigkeitsspeicher ergibt. Die Hollerith-Ausrüstung könnte durch einen kombinierten IBM 528-Lesegerät-Stanzer ersetzt werden, der die gleichen Eingabe- / Ausgabegeschwindigkeiten liefert, in diesem Fall wurde die Maschine Mark II genannt. Für alle achtzig Kartenspalten wurde eine automatische Konvertierung von alphanumerischen Daten in BCD bei der Eingabe und die umgekehrte Operation bei der Ausgabe bereitgestellt. Bei diesem Gerät könnten das Lesen und das Lochen, falls erforderlich, gleichzeitig erfolgen und somit zum Einlesen eines Datensatzes, zum Aktualisieren desselben und zum anschließenden Stanzen eines aktualisierten Datensatzes gleichzeitig mit dem Einlesen des nächsten Datensatzes verwendet werden. Mit den sieben zusätzlichen Verzögerungsleitungen wurde die DEUCE als Mark IIA bezeichnet.

Software

Die wichtigsten High-Level-Programmiersprachen waren GEORGE (General Order Generator), ALPHACODE, STEVE, TIP, GIP und ALGOL . Zu den Assembler-Sprachübersetzern gehörten ZP43 und STAC.

1957 von Charles Leonard Hamblin erfunden , war GEORGE den heutigen Programmiersprachen am nächsten. Es verwendet die umgekehrte polnische Notation . Um zum Beispiel e = ay 2 + by + c auszuwerten , schrieb man

a y dup × × b y × + c + (e).

wobei "dup" den vorherigen Eintrag dupliziert, was der Verwendung von "y" hier entspricht.

GEORGE lieferte einen 12-Positionen-Akkumulator als Push-Down-Pop-Up-Stack. Die Verwendung eines Variablennamens in einem Programm (z. B. 'd') brachte den Wert der Variablen 'd' in den Akkumulator (dh schob d auf den obersten Stapel), während ein Name in Klammern eingeschlossen wurde {z. B. (d ) } der Variablen 'd' den Wert ganz oben auf dem Stapel (Akkumulator) zugewiesen. Um den Wert oben auf dem Stapel zu zerstören (knallen und verwerfen), wurde das Semikolon (;) verwendet. Das folgende GEORGE-Programm liest zehn Zahlen ein und gibt ihre Quadrate aus:

1, 10 rep (i)
   read
   dup ×
   punch
   ;
]

Im obigen Programm duplizierte der Befehl "dup" die Spitze des Stapels, so dass sich dann zwei Kopien des Wertes an der Spitze des Stapels befanden.

GIP (General Interpretive Programme) war ein Kontrollprogramm zum Manipulieren von Programmen, die "Bricks" genannt wurden. Seine Hauptaufgabe bestand in der Ausführung von Programmen aus den mehreren Hundert in der DEUCE- Bibliothek für lineare Algebra . Die Vorbereitung eines solchen Programms umfasste die Auswahl der erforderlichen Steine ​​(auf Lochkarten), deren Kopieren und GIP in einer Reproduktionsstanze und das Zusammensetzen der Kopien zu einem Kartenspiel. Als nächstes würden einfache Codewörter geschrieben, um die Bausteine ​​zu verwenden, um solche Aufgaben auszuführen wie: Matrixmultiplikation; Matrixinversion; Term-für-Term-Matrixarithmetik (Addition, Subtraktion, Multiplikation und Division); gleichzeitige Gleichungen lösen; Eingang; und Ausgabe. Die Dimensionen der Matrizen wurden in den Codewörtern nie angegeben. Die Abmessungen wurden den Matrizen selbst entnommen, entweder von einer Karte, die den Datenkarten vorausgeht, oder von den Matrizen, die auf der Trommel gespeichert sind. Somit waren die Programme ganz allgemein. Einmal geschrieben, verarbeitete ein solches Programm jede Größe von Matrizen (natürlich bis zur Kapazität der Trommel). Ein kurzes Programm zum Einlesen einer Matrix von Karten, zum Transponieren der Matrix und zum Stanzen der Ergebnisse auf Karten benötigt folgende Codewörter:

0,   0,   5, 1
5,   0, 120, 2
120, 0,   0, 3

In jedem der Codewörter ist die vierte Zahl die Ziegelnummer. Das erste Codewort gibt an, dass die Matrix von Karten gelesen und unter Trommeladresse 5 gespeichert wird; das zweite Codewort spezifiziert, dass die Matrix an der Trommeladresse 5 transponiert wird und das Ergebnis wird an der Trommeladresse 120 gespeichert; und die dritten Stanzungen, die auf Karten resultieren.

STAC war ein Makroassembler. Die meisten Befehle wurden in Form einer Übertragung geschrieben, in dezimaler Schreibweise, wie 13-16, was bedeutet, dass das Wort von Register 13 in Register 16 kopiert wird. Die Position des Befehls wurde nicht angegeben. STAC ordnet einem Wort in einer Verzögerungsleitung einen Befehl zu und berechnet die sechs Komponenten des binären Befehls. Sie ordnete die nächste Anweisung einer optimalen Stelle zu, die nach Möglichkeit ausgeführt werden sollte, sobald die vorherige Anweisung abgeschlossen war.

Das folgende Programm liest einen Wert n ein und liest dann n binäre Ganzzahlen ein. Es stanzt die ganze Zahl und ihr Quadrat aus. Kommentare in Kleinbuchstaben erklären die Anweisung.

1.0 12-24      start the card reader. The location of the program is specified as 1.0.
     0-13X     read one number (n) from the card reader. The letter X causes the computer to wait
               until the first row of the card has arrived at the reading station.
R2  12-24      start or re-start the card reader.
     0-16X     read one number to be squared, store it in the multiplier register.
     9-24      stop the card reader.
    16-21.3    copy the number to the multiplicand register.
    30-21.2    clear the low-order bits of the multiplicand register.
     MULT
    10-24      start the card punch.
    21.2-29X   send the square to the card punch.
     9-24      stop the card punch.
    27-26      decrement n.
    13-28  R1  test for zero. Branch on zero to R1; branch on not zero to R2.
R1   1-1X      halt; the program is complete.

STAC würde die folgenden Anweisungen erzeugen (zusätzlich zum Binärprogramm). Der Speicherplatz jedes Befehls wird links angezeigt.

1.0  12-24
1.2   0-13X
1.4  12-24
1.6   0-16X
1.8   9-24
1.10 16-21.3
1.13 30-21.2
1.16  0-24    wait 1
1.18  1-1     wait 1
1.20 10-24
1.22 21.2-29X
1.24  9-24
1.26 27-26
1.28 13-28 1.3
1.3   1-1X

Warte- und Timing-Nummern werden mit Ausnahme der Multiplikation nicht angezeigt.

Programmierung

Die Programmierung des DEUCE unterschied sich von anderen Computern. Die serielle Natur der Verzögerungslinien erforderte, dass Befehle so angeordnet werden, dass, wenn ein Befehl die Ausführung abgeschlossen hatte, der nächste bereit war, aus einer Verzögerungslinie herauszukommen. Für Operationen an den einzelnen Registern war der früheste Zeitpunkt, zu dem der nächste Befehl ausgeführt werden konnte, 64 Mikrosekunden nach dem aktuellen. Somit wurden Befehle nicht von sequentiellen Orten ausgeführt. Im Allgemeinen könnten Anweisungen ein oder mehrere Wörter übertragen. Folglich spezifizierte jeder Befehl den Ort des nächsten Befehls. Optimale Programmierung bedeutete, dass bei der Ausführung jedes Befehls der nächste gerade aus einer Verzögerungslinie herauskam. Die Position der Anweisungen im Speicher kann die Leistung stark beeinflussen, wenn die Position einer Anweisung nicht optimal ist.

Das Auslesen der Daten aus dem Kartenleser erfolgte in Echtzeit – jede Reihe musste ohne Unterbrechung durch die Lesebürsten gelesen werden. Ähnlich für den Kartenstanzer; das Wort für eine bestimmte Reihe wurde im Voraus vorbereitet und musste fertig sein, wenn eine bestimmte Reihe der Karte unter den Stanzmessern in Position war. Der normale Modus des Lesens und Stanzens war binär. Die dezimale Ein- und Ausgabe erfolgte per Software.

Der Hochgeschwindigkeitsspeicher bestand aus vier Einzelwortregistern mit jeweils 32 Bit, drei Doppelwortregistern und zwei Vierfachwortregistern. Jedes 32-Bit-Wort der Doppel- und Vierfachwortregister könnte separat adressiert werden. Auf sie könnte auch paarweise zugegriffen werden, und - im Falle der Vierfachregister - als Dreier- oder Vierergruppe. Der Befehlsspeicher bestand aus zwölf Quecksilberverzögerungsleitungen mit jeweils 32 Wörtern, die von 1 bis 12 nummeriert waren. Die Verzögerungsleitung 11 (DL11) diente als Puffer zwischen der Magnettrommel und dem Hochgeschwindigkeitsspeicher. Da es sich um eine "Übertragungsmaschine" handelt, könnten Daten wortweise, ein Wortpaar gleichzeitig und eine beliebige Anzahl von Wörtern bis zu 33 gleichzeitig übertragen werden. Somit könnten beispielsweise 32 von der Trommel gelesene Wörter als ein Block zu einer der anderen Verzögerungsleitungen übertragen werden; vier Wörter könnten als Block von einem Vierfachregister zum anderen oder zwischen einem Vierfachregister und einer Verzögerungsleitung übertragen werden – alles mit einem Befehl. Die 32 Wörter einer Verzögerungsleitung könnten summiert werden, indem sie an den Einzellängen-Addierer übergeben werden (mittels eines einzigen Befehls).

Durch eine spezielle Verbindung zwischen DL10 und einem Register, nämlich Register 16, könnte DL10 als Push-Down-Stack verwendet werden.

Produktion

Die ersten drei Maschinen wurden im Frühjahr 1955 ausgeliefert; Ende 1958 erschien ein verbessertes Modell von DEUCE Mark II . Diese Version verwendet einen kombinierten Kartenleser und Locher. Der kombinierte IBM 528- Lese- und -Stanzer verhielt sich wie die separaten Hollerith-Einheiten auf den früheren DEUCE Mark I-Maschinen; es wurde jedoch auch eine Hardwarekonvertierung von alphanumerischen Daten in BCD bei der Eingabe und umgekehrt bei der Ausgabe bereitgestellt. Mit 100 Karten pro Minute könnten auch Daten gleichzeitig eingelesen und gestanzt werden. Der DEUCE Mark IIA stellte sieben zusätzliche Quecksilberverzögerungsleitungen mit jeweils 32 Wörtern bereit.

Zwischen 1955 und 1964 wurden insgesamt 33 DEUCE-Maschinen verkauft, zwei davon wurden vom Motorenhersteller Bristol Siddeley gekauft .

Der Erfolg von DEUCE war auf seine Programmbibliothek mit über 1000 Programmen und Unterprogrammen zurückzuführen.

Hardware-Eigenschaften

DEUCE Mark 0 und I:

Clock rate         1 MHz
Word size         32 bits
High speed store 384 words
Arithmetic:
  one 32-bit accumulator;
  one 64-bit accumulator that could be used also as two 32-bit accumulators.
  addition/subtraction
     64 microseconds single length,
     96 microseconds double precision
     Addition of a single-length number to a double-length number,
     with automatic sign extension, 64 microseconds.
  multiplication 2080 microseconds
  division       2112 microseconds
magnetic drum 8192 words
  separate read heads and write heads
  Track read time  15 ms
  Head shift time  35 ms
card reader speed 200 cards per minute
card punch speed  100 cards per minute
paper tape reader speed 850 character/second
  tape: 5, 7, 8-row tape.
  stopping time:    ½ millisecond (m.s.)
  start time       20 milliseconds
paper tape punch speed 25 characters/second
  tape: 5 or 7 rows
Software floating-point (average times):
  addition/subtraction 6  m.s.
  multiplication       5½ m.s.
  division             4½ m.s.

DEUCE MARK II:

  As for DEUCE Mark I.
  A combined IBM 528 card reader and punch could read cards at 200 per minute, and punch at 100 cards per minute.  When simultaneously started, the reader and punch ran at 100 cards per minute. Automatic conversion to and from 6-bit characters was provided. This mode was in addition to the programmed conversion provided by the Mark I DEUCE.

DEUCE MARK IA UND IIA:

  As above, with 7 extra delay lines providing 224 words of high-speed store.

Anmerkungen: Multiplikator und Dividierer waren asynchron. Mehrere ganze Zahlen könnten in einer einzigen Ausführung des Multiplikationsbefehls multipliziert werden, indem während der Multiplikation ganze Zahlen in die Multiplizierer- oder Multiplikandenregister eingefügt werden und während der Multiplikation Ergebnisse extrahiert werden. Andere Spezialeffekte umfassten das Zählen der Bits in einem Wort und das Konvertieren von binär codierter Dezimalzahl (BCD) in binär. Ähnliches gilt für die Division, die zum Umwandeln von ganzen Zahlen in binär codierte Dezimalzahlen (BCD) und zum Umwandeln von Pfund, Schilling und Pence in Pence verwendet werden könnte.

Siehe auch

Verweise

Externe Links