<Desc/Clms Page number 1>
Programmgesteuerter elektronischer Digitalrechner
EMI1.1
<Desc/Clms Page number 2>
Trommelspeicherkanales, bewirken, wobei die Zahl der Speicherfächer mit der Ziffernzahl der zu ver- arbeitenden Werte ohne Schutzstellen Übereinstimmt.
Eine weitere vorteilhafte Lösung besteht darin, dass bei Übertragung des Inhaltes von einem Register in belegte Speicherfächer des Speichers, insbesondere eines Trommelspeichers, nur die Nullen oder nur die Einser tatsächlich wirksam sind, so dass im nichtrechenfähigen Speicher bzw. eine Konjunktion oder Disjunktion mit dem vorhergegangenen Speicherinhalt bewirkt wird.
Zunächst werden die in der erfindungsgemässen Maschine verwendeten neuartigen Befehlstypen erklärt, welche den einfachen Aufbau eines Rechners mit relativ hoher Operationsgeschwindigkeit gewährleisten. Diese Befehle sind den besonderen Eigenschaften der Speicher, insbesondere der Magnettrommelspeicher, angepasst. Das neue System verwendet zwei verschiedene Grundbefehlstypen, nämlich Einzelbefehle, die den bisher bekannten Grundbefehlen anderer Verfahren zur Programmierung von elektronischen Rechenanlagen entsprechen, und Gruppenbefehle, bei denen jeder Befehl die Ausführung der Addition, Subtraktion, verschiedene logische Verknüpfungen oder Transportoperationen, eventuell mit Linksbzw. Rechtsverschiebung des Akkumulatorinhalts verkoppelt, u. zw. mit mindestens einem Speicherfach einer Trommelspur od. dgl. bei andern Speicherarten.
In der weiteren Beschreibung wird zwecks einfacher Erklärung der Erfindung als Speicher eine Magnettrommel verwendet. Werden andere Speicherarten verwendet, so ändert sich an den einzelnen Befehlstypen im Prinzip nichts. Dieses Befehlsschema lässt natürlich auch sinnvolle Abwandlungen für bestimmte Zwecke zu, wie aus der nachfolgenden Beschreibung hervorgeht.
Um den Erfindungsgedanken zu erkennen, wird im nachfolgenden ein Multiplikationsbeispiel an Hand zweier positiver Zahlen erklärt.
Die Fächeranzahl in einem Trommelspeicherkanal stimmt hiebei mit der Zahl der gültigen Stellen der zu verarbeitenden Zahlen Uberein. Da man für die Fächerzahl meist eine Zweierpotenz wählt, ist die Zahlendarstellung in diesem Ausführungsbeispiel wie folgt zugrunde gelegt : Z=0,z.,...,z mit zi : = 0 oder 1, wobei das Komma beispielsweise nach der ersten Stelle steht.
Auf einem Trommelumfang oder-kanal sind also zweiunddreissig Fächer untergebracht. Das Rechenwerk enthält einen Akkumulator, der Rechtsverschiebungen erlaubt und über einen bekannten Addiator mit dem Trommelspeicher verknüpft ist. Im einzelnen werden z. B. zur Errechnung des Produkts nur folgende Operationen durchgeführt, die anschliessend erklärt werden.
1. T-H, R, wobei T = Testziffer, H = Hauptspeicherfach (mit Adressen 0, 1, 2...), R = Register-Rechtsverschiebung. 2. +H. 3. "0"-H {gleichbedeutend mit der ziffernweise ausgeführten Operation Akku & (Inhalt von R)- > H). 4. Lö, +H, R. Diese Zeichen und Befehle werden im nachfolgenden für sich erläutert.
Zu 1 : Ist die im Akkumulator enthaltene Zahl a = 0, al....a , so wird einerseits die Zahl ax(l,l,....l)(a, = 0 oder 1) nach dem Speicherfach H gebracht, zum andern der Akkumulatorinhalt um eine Stelle nach rechts verschoben, das bedeutet, dass der neue Inhalt des Akkumulators
EMI2.1
wird.
Zu 2 : +H bedeutet, addiere den Inhalt der Zelle H zum Akkumulator.
Zu 3 : Es werden nur die Nullen aus dem Akkumulator in das Speicherfach H übertragen. Zum Beispiel : Ist der Inhalt des Akkumulators...... 01101011 und
EMI2.2
Daraus ergibt sich eine recht einfache Schaltung : Wenn z. B. die Null durch einen positiven und die Eins durch einen negativen Impuls dargestellt wird, braucht dann nur der jeweils negative Impuls abgeschaltet zu werden.
Zu 4 : Hier wird vor der eigentlichen Befehlsausführung der Akkumulator gelöscht. Anschliessend wird zum Akkumulator der Inhalt des Speicherfaches H addiert und mit einer Rechtsverschiebung um eine Stelle wieder im Akkumulator gespeichert.
Jeder dieser Befehle 1. bis 4. kann durch das Zusatzzeichen G in einen Gruppenbefehl umgewandelt werden, d. h. er wird mit der Fachnummer H beginnend nacheinander auch mit H+l,..., H+31 wiederholt. Der Befehl bleibt so für eine ganze Speicherumdrehung in Funktion. Lediglich das Löschzeichen im Befehl 4 wird auch jetzt nur einmal vor der eigentlichen Operation berücksichtigt.
Wie mit Hilfe obiger Befehle eine Multiplikation durchgeführt wird, sei im nachfolgenden dargelegt.
Im Akkumulator steht ein Faktor a = 0, a, a.... a, in einem z. B. mit B bezeichneten Fach des Spei-
<Desc/Clms Page number 3>
EMI3.1
Akkumulator aufgebaut werden. Neben dem Speicherfach B werden dabei die Fächer 0, 1,..., 31 benutzt, die auf einem Umfang liegen sollen und deren Anfangsinhalt belanglos ist. Im einzelnen verläuft die Rechnung so. dass mit dem ersten Befehl in Fachnummer i (i = 0,..., 31) ag. i (l, l,.... l) eingetragen wird. Der Akkumulator ist damit leer, der zweite Befehl holt den zweiten Faktor b in den Akkumulator,
EMI3.2
31)unddreissig höchsten gültigen Stellen des Produktes ohne jede Abrundung erhalten. Nach diesem Schema können auch Divisionen und andere Rechenoperationen ausgeführt werden.
Um das Befehlsschema z. B. für das Rechnen mit gleitendem Komma rationeller zu gestalten, wird eine Abwandlung der Gruppenoperationen angeführt, die hier N- bzw. X-Befehle genannt werden. Beide Befehle beginnen wie eine Gruppenoperation, brechen aber nicht erst nach einer vollen Trommelumdrehung ab, sondern beim N-Befehl bereits beim Erreichen der Trommelstellung 0 und beim X-Befehl vorher, nämlich wenn im Akkumulator ein Vorzeichenwechsel auftritt. Durch eine später zu erläuternde Massnahme wird es dabei möglich, die im X-Befehl jeweils ausgeführten Befehle mitzuzählen. Mit der ersten Befehlstype lassen sich in Verbindung mit Verschiebeoperationen besonders leicht Multiplikationen mit Zweierpotenzen ausführen, während die andere bei Normalisierungen herangezogen wird.
Um den Aufwand so klein wie möglich zu halten, wird mit einem kleinen Befehlsrechenwerk, bei dem nur ein Zählspeicher für den Befehlsablauf mit Raum für eine ganze Zahlenlänge von dreiunddreissig Stellen vorhanden ist, gearbeitet. Damit wird die Impulsdichte auf der Trommel klein gehalten. Allerdings wird auf eine Gleitkommadarstellung von Zahlen in nur einem Speicherfach verzichtet. Ebenso ist der Raum für einen Befehl etwas beschränkt, so dass nicht allen Befehlsziffern voneinander unabhängige Steuerfunktionen zugeordnet werden können. Im Beispiel wird also eine komprimierte OperationsverschlUsselung behandelt, deren Auflockerung allerdings später keine Schwierigkeiten bereitet. Im Zählspeicher werden die noch freien Stellen wie ein Indexregister eingesetzt.
Um Zählungen und Änderungen damit ohne Zeitverlust durchzufuhren, werden ebenso im Befehl noch verfügbare Plätze als Schrittregister verwendet. Mit zwölfstelligen Adressen (= 4096 Speicherfächer) ergibt sich so für den Befehl der Grundaufbau : zwölf Stellen Schrittregister, zwölf Stellen Befehlsadresse und neun Stellen Operationssymbole. Um Änderungen und Substitutionen im Index durchzufuhren, ist der Platz im Zählregister wie folgt zu verteilen : zwölf Stellen Index, zwölf Stellen Befehlsnummer und neun Leerstellen. Als Einheit erscheint bezogen auf die
EMI3.3
des über das Indexregister als Adressenteile eines speziellen Stopbefehls aufgestellt, der nach dem Ausdrucken des Ergebnisses durch ein Schlusszeichen des Druckwerks in einen Leerbefehl umgewandelt wird.
Als Schreibwerk wird z. B. ein einstelliger Streifendrucker mit gleichmässig rotierendem Typenrad verwendet.
Die Eingabe arbeitet ganz analog : Zunächst wird ein besonderer Stopbefehl im Rechenautomat aufgestellt, in dem von der Tastatur oder einem Streifenabtaster einzugebende Ziffern in den Adressenteil eingetragen werden. Anschliessend wird dieser Befehl durch ein Schlusszeichen der Eingabe in eine Addition oder, wenn irgendwelche Sonderzeichen beachtet werden müssen, in eine Sprungoperation umgewandelt und ausgeführt. Das durch die Eingabe eingestellte Speicherfach enthält die eingegebene Ziffer, die dann bei einer Addition zum Akkumulatorinhalt hinzugefügt wird. Mit Sprungbefehlen können bequem Zahlenanfänge, Vorzeichen, Befehlskennzeichen usw. berücksichtigt werden. Die angedeutete Organisation der Ein- und Ausgabe benutzt fast ausschliesslich vorhandene Baugruppen des Rechengerätes.
Zum Beispiel ist es möglich, die Sektorauswahl der Magnettrommel und die Steuerung des Druckhammers vom Ausgabegerät von einer gemeinsamen Steuerschaltung vorzunehmen.
Die Zeichnung zeigt als Ausführungsbeispiel das Blockschaltbild eines nach diesen Gesichtspunkten aufgebauten Kleinstautomaten.
Erklärung der in der Zeichnung verwendeten Bezeichnungen : 1 ist eine symbolisierte Magnettrommel mit zweiunddreissig Speicherfächern pro Umfang und einhundertachtundzwanzig Kanälen als Hauptspeicher. Die Trommel hat drei Taktspuren, darunter Sektorangaben und Zähler Zul ; 2 ist die Eingabe, die mit Tasten, Streifen, Lochkarten, Magnetbändern od. dgl. ausgerüstet sein kann ; 3 bedeutet das Ausgabeaggregat, welches als Streifenlocher, Schnelldruck, Magnetband od. dgl. ausgebildet sein kann ; 4 ist der Kanalwähler des Trommelspeichers ; 5 bedeutet ein zwölfstelliges Adressenregister, das nur in Adres-
<Desc/Clms Page number 4>
senzeiten aufnimmt.
Die ersten fünf Stellen sind für den Sektor und die übrigen für den Kanal. 6 ist ein Netzwerk, welches die Sektorkoinzidenz feststellt ; 7 stellt ein neunstelliges Operationsregister dar, welches nur den Operationsteil eines Befehls aufnimmt ; 8 bedeutet einen Diskriminator, welcher die Schaltspannung "Sprung ausführen" bildet ; 9 ist ein Vorzeichenrechner, der mit zur Komplementsteuerung benutzt wird ; 10 sind sogenannte Testspeicher für die logischen Ausdrücke AU. lu, Test und Vorzeichen, die insbesondere bei Sprungbefehlen wirksam werden ; 11 ist ein n-l-stelliger Akkumulator für Links- und Rechtsverschiebung geeignet, durch Hinzu- bzw.
Wegschalten der Stufen 12 und/oder 13, die die Information jeweils um eine Stelle verzögern ; 14 dient zur Komplementbildung des Akkumulatorinhalts ; 15 ist ein bekanntes Zählregister ; 16 ist ein bekanntes Netzwerk für Addition, Subtraktion und zur Bildung logischer Ausdrücke ; 17 ist ein bekannter Verstärker ; 18 ist eine Steuerkette aus bekannten bistabilen Kippschaltungen und Verknüpfungsschaltungen zur Markierung der Phasen I-IV des Arbeitszyklus.
EMI4.1
nicht ausgeführt & (Indexzeit) ; 28 IV & Transport ; 29 Akkumulator ; 30 Zählregister ; 31 Zähler, 32 Opera- tionsindex, 33"11... 11","00... 00", Test 1 oder 0 ; 34 Akkumulator, bey nos werden nur Nullen transportiert ; 35 Komplementsteuerung ;
36 Sprung ausführen.
Dabei ist zunächst für grössere Zeitreserven zum Einstellen der Befehlsentschlüsselung gesorgt ; für die Neuaufstellung jedes Befehls wird insgesamt die Zeit von drei Zahlenlängen verbraucht. Eine Beschleunigung ist möglich. Da allerdings der Leistungsgewinn infolge der benutzten G-Befehle nicht erheblich ist, wird hierauf verzichtet.
Ein Arbeitszyklus des Gerätes besteht aus vier Phasen :
EMI4.2
addiert und im zwölfstelligen Adressenregister 5 zur Auswahl einer Hauptspeicherzelle aufgestellt. Das Zählregister 15 selbst bleibt dabei ebenso wie der Akkumulator 11 ungeändert.
2. In der zweiten Phase wird der als nächste aufzuführende Befehl aus dem Hauptspeicher 1 entnommen und im Zählregister 15 zwischengespeichert, allerdings wird gleichzeitig das neunstellige Operationssymbol in das Operationsregister 7 übernommen. Es kann von dort für die letzten zwölf Stellen der Phase zwei-in die Addiatoreingänge eingreifen und entsprechend der später zu diskutierenden Befehle die Verknüpfungen der Indexstellen des Zählregisters 15 und der Zahl im Schrittregister des einlaufenden Befehls steuern. Zwischen der Phase eins und zwei liegt gegebenenfalls eine Wartezeit, wenn nämlich die aufgerufene Zelle auf der Trommel 1 nicht sofort greifbar ist. Eine Ausnahme tritt auf, wenn der letzte ausgeführte Befehl ein X-Kennzeichen trägt, dann nämlich schliessen Phase eins und zwei grundsätzlich ohne Wartezeit aneinander an.
3. An die zweite Phase schliesst unmittelbar die dritte Phase (Befehlsaufstellung) an. Jetzt wird der Adressenteil des im Zählregister 15 zwischengespeicherten Befehls in das zwölfstellige Adressenregister 5 transportiert. Hat dabei diese Operation ein Indexkennzeichen, so muss vor der Aufstellung noch der alte Inhalt des Indexregisters zur Adresse addiert werden. Im Zählregister 15 bleiben in dieser Phase nur die Indexstellen erhalten, die eigentlichen Zählerstellen werden aus dem zwölfstelligen Adressenregister 5, während dort auf der andern Seite die Befehlsadresse einläuft, mit der Speichernummer des gerade aufgestellten Befehls gefüllt. Damit ist im Zählregister 15 wieder der Anfangszustand hergestellt. In der Phase drei wird, sofern erforderlich, auch der Inhalt des Akkumulators 11 gelöscht.
4. Die letzte Phase dient der eigentlichen Befehlsausführung, dabei sind vier Typen zu unterscheiden : a) Die eigentlichen Rechenbefehle, die sich alle auf den Akkumulatorinhalt beziehen. b) Die Befehle, die mit dem Inhalt des Zählregisters 15 arbeiten. c) Die Sprungbefehle, bei denen erforderlichenfalls der Zählerteil des Zählregisters 15 durch den Inhalt des Adressenregisters 5 (Befehlsadresse) ersetzt wird. d) Stoppbefehle - mit Ausnahme der Rechenbefehle -, die bei Gruppen-, N- oder X-Befehlen bis zu einer Trommeldrehung benötigen, dauert die Phase vier nur eine Zahlenlänge.
Der Beginn der Befehlsausführung muss natürlich das Erscheinen des benutzten Hauptspeicherinhalts abwarten, so dass hier ebenso wie zwischen den Phasen eins und zwei Verzögerungen bis zu einer Trom-
EMI4.3
Test und Vorzeichen in der Zeichnung kommen insbesondere nur bei Sprungbefehlen zur Wirkung. Die ersten beiden speichern Überläufe des Akkumulators und Indexregisters (daher auch der Zugang in der
<Desc/Clms Page number 5>
Phase 3), während der Test normalerweise die Vorzeichenstelle des Akkumulators, bei Rechtsverschiebungen im Akkumulator aber seine kleinste Ziffer (a32) aufnimmt. Der Vorzeichenspeicher wird benutzt, wenn im Akkumulator Betrag und Vorzeichen getrennt werden.
Weitere Einzelheiten über den Befehlsablauf lassen sich am Blockschaltbild und vor allem an der Befehlsliste erkennen. Ein Beispiel für eine Befehlsliste nach diesem Schema wird in der nachfolgenden Beschreibung erklärt und aufgezeigt.
Der grundsätzliche Befehlsaufbau ist bereits beschrieben worden, und es geht daraus hervor, dass es sich um Einadressbefehle, die zusätzlich eine zwölfstellige Schrittkennzahl für das Indexregister enthalten, handelt. Der neunstellige Operationsteil des Befehls wird weiter in drei Triaden gegliedert, nämlich die 1. Triade dient zur Registersteuerung, die 2. Triade ist der Index- und Befehlstyp und die 3. Triade kenn- zeichnet die Operationsart. Die Operationen sind hier nur durch Ziffern gekennzeichnet. Der Benutzer kann sich später beliebige Bezeichnungen zurechtlegen und durch ein geeignetes Testprogramm bei der Eingabe in den Automaten berücksichtigen. Dabei zeigt sich, dass man im allgemeinen bei geeignetem äusserem Code mit wesentlich weniger Befehlen und daher Zeichen auskommt als im internen System.
In der ersten Triade werden Informationen über die im Befehl benötigten Maschinenregister zusammengefasst.
1. Triade : Registersteuerung
EMI5.1
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Organisationsbefehl, <SEP> der <SEP> ohne <SEP> A-Register <SEP> auskommt.
<tb>
Operand <SEP> Resultat
<tb> 001 <SEP> 1 <SEP> A-Register <SEP> A-Register <SEP>
<tb> 010 <SEP> 2 <SEP> A-Register <SEP> x <SEP> Vorzeichen <SEP> Betrag <SEP> ins <SEP> A-Register, <SEP> Vorzeichen
<tb> aus <SEP> Vorzeichenspeicher <SEP> in <SEP> Vorzeichenspeicher
<tb>
Praktisch wird in der Phase drei vor der eigentlichen OperationsausfUhrung das Vorzeichen aus dem Vorzeichenspeicher zum Akku-Register zugefugt und dann nach der Operation (Phase vier) in der Phase eins ebenso wieder abgetrennt.
EMI5.2
EMI5.3
<tb>
<tb> 011 <SEP> 3 <SEP> A-Register <SEP> eine <SEP> Stelle <SEP> nach <SEP> links <SEP> verschoben <SEP> ins <SEP> A-Register,
<tb> die <SEP> überlaufende <SEP> Stelle <SEP> gelangt <SEP> in <SEP> die <SEP> kleinste
<tb> Stelle <SEP> des <SEP> A-Registers. <SEP>
<tb>
100 <SEP> 4 <SEP> A-Register <SEP> eine <SEP> Stelle <SEP> nach <SEP> rechts <SEP> verschoben <SEP> ins
<tb> A-Register, <SEP> die <SEP> überlaufende <SEP> Stelle <SEP> wird
<tb> gelöscht.
<tb>
101 <SEP> 5 <SEP> wie <SEP> 001, <SEP> nur <SEP> wird <SEP> vor <SEP> der <SEP> Ausführung <SEP> einmalig <SEP> (in <SEP> Phase <SEP> drei)
<tb> das <SEP> A-Register <SEP> gelöscht.
<tb>
110 <SEP> 6 <SEP> wie <SEP> 010, <SEP> nur <SEP> mit <SEP> Löschung <SEP> wie <SEP> bei <SEP> 101.
<tb>
111 <SEP> 7 <SEP> wie <SEP> 011, <SEP> nur <SEP> wird <SEP> die <SEP> Überlaufende <SEP> Stelle <SEP> gelöscht.
<tb>
<Desc/Clms Page number 6>
2. Triade : Index-und Befehlstyp Fall I : In der 1. Triade ist kein Organisations-Befehl angekündigt.
EMI6.1
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Einzelbefehl, <SEP> nur <SEP> eine <SEP> Zahlzeit <SEP> wirksam.
<tb>
001 <SEP> 1 <SEP> Gruppenbefehl, <SEP> zweiunddreissig <SEP> Zahlzeiten <SEP> wirksam.
<tb>
010 <SEP> 2 <SEP> Beginnt <SEP> wie <SEP> 001, <SEP> schaltet <SEP> aber <SEP> schon <SEP> bei <SEP> der
<tb> 0-Stellung <SEP> der <SEP> Trommel <SEP> ab <SEP> (N-Befehl).
<tb>
011 <SEP> 3 <SEP> Beginnt <SEP> wie <SEP> 001, <SEP> schaltet <SEP> aber <SEP> eventuell <SEP> schon
<tb> vorher <SEP> ab, <SEP> wenn <SEP> im <SEP> A-Register <SEP> ein <SEP> Vorzeichenwechsel <SEP> auftritt. <SEP> Ausserdem <SEP> wird <SEP> nach <SEP> Abbrechen
<tb> der <SEP> Operation <SEP> zuerst <SEP> Phase <SEP> eins <SEP> und <SEP> dann <SEP> ohne
<tb> Wartezeit <SEP> Phase <SEP> zwei <SEP> des <SEP> nächsten <SEP> Befehlszyklus
<tb> angeschlossen <SEP> (X-Befehl).
<tb>
E, <SEP> G, <SEP> N, <SEP> X-Befehle <SEP> wie <SEP> 0, <SEP> 1, <SEP> 2. <SEP> 3, <SEP> nur <SEP> wird <SEP> vor <SEP> der
<tb> Befehlsaufstellung <SEP> der <SEP> Inhalt <SEP> des <SEP> Indexregisters
<tb> 111 <SEP> 7 <SEP> zum <SEP> Adressenteil <SEP> des <SEP> Befehls <SEP> addiert.
<tb>
Tatsächlich wird das Resultat in ein Umlaufregister mit der Länge von vierunddreissig Ziffernstellen gebracht. Damit gelangt die überlaufende Stelle immer erst um eine Zahlzeit verzögert in die kleinste Stelle des A-Registers. Das kann bei einzelnen Operationen (Division) mit Vorteil ausgenutzt werden.
Fall 11 : In der 1. Triade ist ein Organisationsbefehl angekündigt.
EMI6.2
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Sprungbefehl, <SEP> bei <SEP> Ausführung <SEP> wird <SEP> das <SEP> Schrittregister <SEP> zum <SEP> Indexregister <SEP> addiert.
<tb>
001 <SEP> 1 <SEP> wie <SEP> 000, <SEP> nur <SEP> wird <SEP> das <SEP> Schrittregister <SEP> in <SEP> das
<tb> Indexregister <SEP> substituiert.
<tb>
010 <SEP> bzw. <SEP> wie <SEP> 000, <SEP> 001, <SEP> nur <SEP> wird <SEP> bei <SEP> der <SEP> Befehlst. <SEP> aufstellung <SEP> zum <SEP> Adressenteil <SEP> des <SEP> Befehls <SEP> der
<tb> j <SEP> Indexregisterinhalt <SEP> addiert.
<tb>
100 <SEP> 4 <SEP> Zähler- <SEP> oder <SEP> Stopbefehl; <SEP> dabei <SEP> wird <SEP> zusätzlich
<tb> das <SEP> Schrittregister <SEP> zum <SEP> Indexregister <SEP> addiert.
<tb>
101 <SEP> 5 <SEP> wie'100, <SEP> nur <SEP> wird <SEP> das <SEP> Schrittregister <SEP> in <SEP> das
<tb> Indexregister <SEP> substituiert.
<tb>
110 <SEP> q <SEP> bzw. <SEP> wie <SEP> 100,101, <SEP> nur <SEP> wird <SEP> bei <SEP> der <SEP> Befehls-
<tb> 111 <SEP> aufstellung <SEP> zum <SEP> Adressenteil <SEP> des <SEP> Befehls <SEP> der
<tb> Indexregisterinhalt <SEP> addiert. <SEP>
<tb>
<Desc/Clms Page number 7>
3. Triade : Operationsart Fall I : In der 1. Triade ist kein Organisationsbefehl angekündigt.
EMI7.1
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Zum <SEP> Operanden <SEP> laut <SEP> 1. <SEP> Triade <SEP> wird <SEP> der <SEP> Inhalt <SEP> des <SEP> im <SEP> Adressenteil
<tb> angegebenen <SEP> Speicherfaches <SEP> addiert <SEP> und <SEP> das <SEP> Resultat <SEP> wieder, <SEP> wie
<tb> in <SEP> der <SEP> 1. <SEP> Triade <SEP> angegeben, <SEP> gespeichert. <SEP> Bei <SEP> G, <SEP> N, <SEP> X-Befehlen
<tb> wird <SEP> diese <SEP> Operation <SEP> mit <SEP> den <SEP> anschliessenden <SEP> Speicherfächern <SEP> entsprechend <SEP> wiederholt.
<tb>
001 <SEP> 1 <SEP> wie <SEP> 000, <SEP> nur <SEP> dass <SEP> hier <SEP> subtrahiert <SEP> wird.
<tb>
010 <SEP> 2 <SEP> wie <SEP> 000, <SEP> nur <SEP> wird <SEP> bei <SEP> negativem <SEP> A-Registerinhalt <SEP> addiert, <SEP> sonst
<tb> subtrahiert.
<tb>
011 <SEP> 3 <SEP> wie <SEP> 000, <SEP> nur <SEP> wird <SEP> bei <SEP> jeder <SEP> aus <SEP> dem <SEP> Hauptspeicherfach <SEP> kommenden <SEP> negativen <SEP> Zahl <SEP> zusätzlich <SEP> eine <SEP> Eins <SEP> an <SEP> den <SEP> Vorzeichenspeicher
<tb> gegeben, <SEP> der <SEP> diese <SEP> mod <SEP> 2 <SEP> zählt <SEP> (= <SEP> Multiplikation <SEP> der <SEP> Vorzeichen
<tb> der <SEP> einlaufenden <SEP> Zahlen).
<tb>
100 <SEP> 4 <SEP> wie <SEP> 000, <SEP> nur <SEP> wird <SEP> eine <SEP> ziffernweise <SEP> Intersektion <SEP> ausgeführt.
<tb>
101 <SEP> 5 <SEP> Transport <SEP> des <SEP> Akkumulatorinhalts <SEP> nach <SEP> der <SEP> im <SEP> Adressenteil <SEP> angegebenen <SEP> Speicherzelle <SEP> ; <SEP> die <SEP> gleiche <SEP> Zahl <SEP> wird <SEP> ausserdem <SEP> in <SEP> der <SEP> von
<tb> der <SEP> 1. <SEP> Triade <SEP> bestimmten <SEP> Form <SEP> im <SEP> Akkumulator <SEP> gespeichert.
<tb>
110 <SEP> 6 <SEP> wie <SEP> 101, <SEP> nur <SEP> werden <SEP> diesmal <SEP> nur <SEP> die <SEP> Nullen <SEP> des <SEP> Akkumulatorinhalts <SEP> in <SEP> die <SEP> jeweilige <SEP> Speicherzelle <SEP> kopiert <SEP> und <SEP> dort <SEP> eine <SEP> Intersektion <SEP> mit <SEP> dem <SEP> alten <SEP> Speicherinhalt <SEP> bewirkt.
<tb>
111 <SEP> 7 <SEP> sieht <SEP> man <SEP> zunächst <SEP> von <SEP> den <SEP> Befehlen <SEP> mit <SEP> einer <SEP> Rechtsverschiebung
<tb> (100 <SEP> in <SEP> der <SEP> 1. <SEP> Triade) <SEP> im <SEP> A-Register <SEP> ab, <SEP> so <SEP> wird <SEP> bei <SEP> positivem
<tb> A-Registerinhalt <SEP> das <SEP> angerufene <SEP> Speicherfach <SEP> gelöscht, <SEP> andernfalls
<tb> mit <SEP> lauter <SEP> Einsen <SEP> aufgefüllt. <SEP> Der <SEP> Inhalt <SEP> des <SEP> A-Registers <SEP> wird
<tb> gleichzeitig <SEP> entsprechend <SEP> der <SEP> 1. <SEP> Triade <SEP> wieder <SEP> im <SEP> A-Register <SEP> gespeichert. <SEP> Bei <SEP> einer <SEP> Rechtsverschiebung <SEP> im <SEP> A-Register <SEP> (1.
<SEP> Triade
<tb> 100) <SEP> wird <SEP> die <SEP> Ziffer <SEP> mit <SEP> kleinstem <SEP> Stellenwert <SEP> als <SEP> Vorzeichen
<tb> interpretiert <SEP> (0 <SEP> entspricht <SEP> +)
<tb> (l <SEP> entspricht-). <SEP>
<tb>
Bei der Addition und Subtraktion tritt, sofern keine Verschiebung im A-Register vorgesehen ist, die Überlauf-Kontrolle automatisch in Funktion. Sie stoppt das Gerät, sofern nicht anschliessend ein ÜberlaufSprungbefehl programmiert ist.
<Desc/Clms Page number 8>
Fall II : Es liegt ein Sprungbefehl vor. (l. Triade 000, 2. Triade 000,001, 010,011)
EMI8.1
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Sprung. <SEP> unbedingt. <SEP>
<tb>
001 <SEP> 1 <SEP> Sprung <SEP> unbedingt. <SEP> Ist <SEP> dabei <SEP> K <SEP> = <SEP> (0, <SEP> 1,..., <SEP> 31) <SEP> die <SEP> Sektornummer
<tb> der <SEP> Adresse, <SEP> so <SEP> erfolgt <SEP> zusätzlich <SEP> die <SEP> Speicherung <SEP> des <SEP> alten <SEP> Zählerinhalts <SEP> (einschliesslich <SEP> Index) <SEP> in <SEP> der <SEP> Speicherzelle <SEP> 4063+K.
<tb>
010 <SEP> 2 <SEP> Sprung, <SEP> wenn <SEP> im <SEP> A-Register <SEP> eine <SEP> positive <SEP> Zahl <SEP> gespeichert <SEP> ist.
<tb>
011 <SEP> 3 <SEP> Sprung, <SEP> wenn <SEP> im <SEP> A-Register <SEP> eine <SEP> negative <SEP> Zahl <SEP> gespeichert <SEP> ist.
<tb>
100 <SEP> 4 <SEP> Sprung, <SEP> wenn <SEP> der <SEP> Vorzeichenspeicher <SEP> auf <SEP> + <SEP> steht.
<tb>
101 <SEP> 5 <SEP> Sprung, <SEP> wenn <SEP> der <SEP> Vorzeichenspeicher <SEP> auf-steht.
<tb>
110 <SEP> 6 <SEP> - <SEP> Springe, <SEP> wenn <SEP> Akkumulator <SEP> Ubergelaufen.
<tb>
111 <SEP> 7 <SEP> Sprung, <SEP> wenn <SEP> Indexregister <SEP> übergelaufen.
<tb>
Fall 111 : Es liegt ein Zähler bzw. Stopbefehl vor.
(l. Triade 0,2. Triade 4, 5, 6,7)
EMI8.2
<tb>
<tb> dual <SEP> dezimal <SEP> Erläuterungen
<tb> 000 <SEP> 0 <SEP> Stop-Eingabe, <SEP> Anhalten <SEP> bis <SEP> Eingabe <SEP> erledigt <SEP> und <SEP> der <SEP> Befehl
<tb> umgeändert <SEP> ist.
<tb>
001 <SEP> 1 <SEP> Stop-Ausgabe, <SEP> Anhalten <SEP> bis <SEP> Ausgabe <SEP> erledigt <SEP> und <SEP> dafür <SEP> der
<tb> Befehl <SEP> "Springe <SEP> bei <SEP> negativem <SEP> Akku" <SEP> (000 <SEP> 000 <SEP> 011) <SEP> aufgestellt
<tb> ist-dieser <SEP> Befehl <SEP> wirkt <SEP> z. <SEP> B. <SEP> bei <SEP> der <SEP> Ausgabe <SEP> wie <SEP> ein <SEP> Leerbefehl.
<tb>
010 <SEP> 2 <SEP> Stop, <SEP> durch <SEP> die <SEP> eingestellte <SEP> Adresse <SEP> sind <SEP> dabei <SEP> Unterscheidungen <SEP> des <SEP> jeweiligen <SEP> Haltegrundes <SEP> möglich.
<tb>
011 <SEP> 3 <SEP> Stop, <SEP> wenn <SEP> Handschalter <SEP> gesetzt, <SEP> sonst <SEP> Leerbefehl.
<tb>
100 <SEP> 4-Addiere <SEP> den <SEP> Inhalt <SEP> des <SEP> im <SEP> Adressenteil <SEP> genannten <SEP> Speicherfaches <SEP> zum <SEP> Zählerregister.
<tb>
101 <SEP> 5 <SEP> Transportiere <SEP> den <SEP> Zählerinhalt <SEP> - <SEP> ohne <SEP> Löschung <SEP> - <SEP> nach <SEP> dem
<tb> im <SEP> Adressenteil <SEP> genannten <SEP> Speicher.
<tb>
110 <SEP> 6 <SEP> Transportiere <SEP> den <SEP> Indexregisterinhalt, <SEP> sonst <SEP> wie <SEP> 101.
<tb>
111 <SEP> 7 <SEP> Rücksprung, <SEP> es <SEP> wird <SEP> der <SEP> Zähler <SEP> mit <SEP> dem <SEP> Inhalt <SEP> des <SEP> im
<tb> Adressenteil <SEP> genannten <SEP> Speicherfaches <SEP> gefüllt, <SEP> das <SEP> Schrittregister <SEP> ist <SEP> dabei <SEP> wirkungslos.
<tb>
Ergänzungen zur Ausführung der Ein-und Ausgabeoperationen : Bei der Ausgabe wird, wie angegeben, ein Stopbefehl aufgestellt, dessen fünf Sektordualen den Druck von Zahlen und Zeichen veranlassen :
Sektornummer (dezimal) Druck
0 bis 9 Ziffer 0 bis 9
<Desc/Clms Page number 9>
Auf die Sektornummern 10 bis 31 werden maximal einundzwanzig Zeichen, unter anderem + ;- ;, ; Z ; B ; E ; Leerfeld ; I ; R in hier nicht weiter festzulegender Zuordnung verteilt. Bei der Eingabe wird ähnlich wie bei der Ausgabe ein Stop-Eingabe-Befehl aufgestellt. Darauf können von einer Tastatur oder von einem Lochstreifen den Ziffern oder Zeichen entsprechende Dualzahlen 0 bis 31 in die Sektordualen des Befehls eingetragen werden.
Durch das Schlusszeichen werden jetzt alle den Ziffern 0 bis 15 entsprechenden Befehle in einen Additionsbefehl umgewandelt (001 100 000), während die Zeichen entsprechend den Befehlen 15 bis 31 zu einem unbedingten Sprungbefehl (000 000 000) werden. Allerdings wird von diesen Befehlen nur noch die vierte Phase ausgeführt, d. h. die auf Index- und Schrittregister bezogenen
Befehlsteile wurden entsprechend zum aufgestellten Stopbcfehlstyp schon vorher in den Phasen zwei und drei erledigt.
Zum Abschluss soll noch das Numericrungsschema der vorgesehenen 4096 Speicherzellen beschrieben werden. Es ist hier gunstig, alle Speicherfächer eines Umfanges in natürlicher Reihe 0 bis 31 zu nume- rieren. Die Bahnen erhalten die Nummern 0 bis 127. Jede Adresse hat somit die Gestalt sieben Dualen
Bahnnummer und fünf Dualen Sektornummer.
Um trotzdem optimale Programme zu ermöglichen, soll der Zähler bei jeder Befehlsausführung um mehrere Adresseneinheiten springen. Da der Normalbefehl hier vier Zahlzeiten beansprucht, würde der
Zählersprung entsprechend gewählt. Als Folge wird man bei einer optimalen Programmgestaltung in auf- einanderfolgenden Befehlen erforderliche Zahlen in Viererschritten staffeln müssen.
Durch den gewählten Befehlssprung erscheint der gesamte Speicher in vier Befehlsreihen gespalten, aus denen Übergänge nur durch Sprungbefehle möglich sind :
1. Reihe Speicherfachnummer : 0 + 4k k 0, 1,..., 1023
2. Reihe Speicherfachnummer : 1 + 4k k-0, l,.... 1023
3. Reihe Speicherfachnummer : 2 + 4k k : :. 0, 1,..., 1023
4. Reihe Speicherfachnummer : 3 + 4k k 0, 1, 1023 Jede Reihe fasst 1024 Einzelbefehle.
Allerdings sollen beim praktischen Gebrauch nur 4000 Speicherzellen mit den Nummern 0 bis 3999 als eigentlicher Hauptspeicher freigehalten werden, die übrigen drei Bahnen 125, 126,127 werden für spezielle Zwecke herangezogen.
Mit der Bahnnummer 125 wird das A-Register, mit der Bahnnummer 126 das Zäh-Register angerufen.
Aus ihnen kann in diesem Ausführungsbeispiel aus Aufwandsgründen nur entnommen werden. Beim Hinzufügen einer geraden Sektornummer wird dabei immer der gesamte Registerinhalt, bei ungeraden nur der Indexteil verwendet. Die Bahn 127 arbeitet an sich normal, es werden hier zusätzlich mit dem SprungBefehl 001 (= Rufbefehl) automatisch die für einen Rücksprung erforderlichen Zähleradr6Ssen gespeichert.
PATENTANSPRÜCHE :
1. Programmgesteuerter elektronischer Digitalrechner, dadurch gekennzeichnet, dass durch Einzelbefehle in bekannter Weise Grundoperationen, z. B. Additionen, Subtraktionen, logische Operationen, Transportoperationen, auch gekoppelt mit Verschiebungen, Löschungen und Steueroperationen ausgeführt werden, dass Gruppenbefehle die Durchführung der Grundoperationen mit mehr als einem SpeicherfÅach des Speichers, insbesondere eines Trommelspeicherkanales, bewirken, wobei die Zahl der Speicherfä- cher mit der Ziffernzahl der zu verarbeitenden Werte ohne Schutzstellen übereinstimmt.