DE1524103B2 - Datenverarbeitungsgerät - Google Patents
DatenverarbeitungsgerätInfo
- Publication number
- DE1524103B2 DE1524103B2 DE1524103A DEB0090024A DE1524103B2 DE 1524103 B2 DE1524103 B2 DE 1524103B2 DE 1524103 A DE1524103 A DE 1524103A DE B0090024 A DEB0090024 A DE B0090024A DE 1524103 B2 DE1524103 B2 DE 1524103B2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- register
- circuit
- data
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 80
- 230000015654 memory Effects 0.000 claims description 261
- 238000007781 pre-processing Methods 0.000 claims description 49
- 238000003860 storage Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 31
- 239000000872 buffer Substances 0.000 claims description 11
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims 2
- 238000011144 upstream manufacturing Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 30
- 238000004364 calculation method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012432 intermediate storage Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 102100023170 Nuclear receptor subfamily 1 group D member 1 Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 101150080661 Ear1 gene Proteins 0.000 description 1
- 101150081376 NR1D1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
Description
11. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß die Endverarbeitungsvorrichtung (110) zur Durchführung von arithmetischen und
logischen Operationen folgende Teile enthält:
a) Addierer (220) und Multiplizierer (221) zur Durchführung arithmetischer Operationen
entsprechend den in der Warteschaltung (108) enthaltenen Befehlen,
b) eine Verschiebeeinrichtung (224), die mit hoher Geschwindigkeit arbeitet, um Verschiebungen
und Feldbearbeitungen durchzuführen,
c) Einrichtungen (116, 500 bis 502), die die Speicherung aller Daten der Endverarbeitungsvorrichtung
(110) im Hauptspeicher bewirken.
12. Datenverarbeitungsgerät nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet,
daß die Vorverarbeitungsvorrichtung (104)
a) ein oberes Grenzregister (1025),
b) ein unteres Grenzregister (1026),
c) eine Grenzenprüfeinrichtung (645) zur Bestimmung, ob die Zahl der Adressen zwischen
den Grenzen der oberen und unteren Grenzregister liegt, enthält.
13. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß die Befehlsvorausschauvorrichtung (101) folgende Einrichtungen aufweist:
a) mehrere Register zur Aufnahme von auszuführenden Befehlen, die dort bis zu ihrer
Vorverarbeitung in der Vorverarbeitungsvorrichtung (104) gespeichert sind,
b) mehrere Zähler (301, 302) zur Steuerung des Ladens und Entladens der Befehlsvorausschauvorrichtung
(101), und
c) ein Befehlsvorausschauregister (304) zur Aufnahme von Adressen von Befehlen, die
der Befehlsvorausschauvorrichtung (101) zugeführt werden sollen.
14. Datenverarbeitungsgerät nach Anspruch 5, dadurch gekennzeichnet, daß die Sprungsteuerschaltung
die Sprungsteueradresse auf die Befehlsvorausschauvorrichtung (101) überträgt, so
daß die Befehle, auf die das Programm springt, auf die Befehlsvorausschauvorrichtung (101)
übertragen werden können.
Die Erfindung befaßt sich mit einem Datenverarbeitungsgerät zur Verarbeitung einer Folge von in
Bearbeitung befindlichen und zur Bearbeitung anstehenden Befehlen mit einer Befehle ausführenden
Endverarbeitungsvorrichtung und einer davor geschalteten Befehlsvorausschauvorrichtung.
Die Erfindung eignet sich insbesondere für ein Datenverarbeitungsgerät, das einen Teil eines großen elektronischen Rechengerätes bildet, der aus einzelnen Bausteinen oder Moduln aufgebaut ist. Das erfindungsgemäße Datenverarbeitungsgerät läßt sich
Die Erfindung eignet sich insbesondere für ein Datenverarbeitungsgerät, das einen Teil eines großen elektronischen Rechengerätes bildet, der aus einzelnen Bausteinen oder Moduln aufgebaut ist. Das erfindungsgemäße Datenverarbeitungsgerät läßt sich
ίο selbst als eine Baueinheit ausführen, die in einem
aus einzelnen Baueinheiten aufgebauten elektrischen Rechengerät verwendet werden kann.
Es ist ein Gerät der eingangs erwähnten A:Z bereits
aus den »Proceedings of the Eastern Joint Computer Conference«, 1959, S. 48 bis 57, bekannt,
bei dem die Befehlsvorausschauvorrichtung die Operanden der Befehle, die einem augenblicklich
ausgeführten Befehl folgen, bereitstellt, bei dem jedoch bei einem bedingten Sprungbefehl das negative
Ergebnis der Bedingungsprüfung zunächst vorausgesetzt wird und die tatsächliche Bedingungsprü·^,
fung parallel zur Ausführung weiterer Befehle ab-. lauft. Wird das Ergebnis der Bedingungsprüfung jedoch
positiv, so wird mit Hilfe der in der Befehls-Vorausschauvorrichtung gespeicherten· Information
der Zustand des Datenverarbeitungsgerätes vor Ausführung des bedingten Sprungbefehls wiederhergestellt.
Bei einem positiven Ergebnis wird also der gleichmäßige kontinuierliche Datenfluß zeitweilig
unterbrochen, so daß der Endverarbeitungsvorrichtung zeitweise gar keine Daten mehr zur Bearbeitung
zugeführt werden. Dies führt zu einer Verminderung der Arbeitsgeschwindigkeit des Datenverarbeitungsgeräts, und zwar insbesondere dann, wenn die Be-
dingungsprüfung häufig zu einem positiven Ergebnis führt. Der vorzeitige Zugriff zu neuen Daten ist also
bei der Bedingungsprüfung mit positivem Ergebnis nachteilig und kann bei dem vorliegenden Gerät jeweils
nur durch zeitraubende Routinearbeitsabläufe korrigiert werden.
Es ist andererseits auch nach einer Veröffentlichung von Werner Buchholz: »Planing a Computer
System — Project Stretch«, McGraw Hill Book Company, 1962, S. 228 bis 247, bereits bekannt,
eine Vorverarbeitungsvorrichtung in einem Datenverarbeitungsgerät vorzusehen". Die Vorverarbeitungsvorrichtung
arbeitet jedoch so, daß der Datenfluß jeweils unterbrochen wird, bis die Recheneinheit
eine Rechenoperation abgeschlossen hat, und daß erst dann der nächste Befehl abberufen wird. Bei
dieser Arbeitsweise sind jedoch in jedem Fall Verzögerungen vorhanden, unabhängig davon, ob ein
Sprung ausgeführt wird oder nicht.
Es ist ferner nach der Druckschrift IBM-System/360 »Principles of Operation, S. 63 und 64,
und zwar insbesondere aus dem Abschnitt »Decisions-Making«, daß zwischen bedingten und unbebingten
Sprungbefehlen zu unterscheiden ist, wobei die bedingten Sprungbefehle erfolgreich oder nicht
erfolgreich sein können. Erfolgreich ist ein bedingter Sprungbefehl dann, wenn eine bestimmte Bedingung
erfüllt wird; nicht erfolgreich ist er dann, wenn eine bestimmte Bedingung nicht erfüllt wird. Es ist dabei
auch nach dieser Literaturstelle, und zwar insbesondere dem Abschnitt mit der Überschrift »Sequential
Instruction Execution« bekannt, wie die Befehle und auch Sprungbefehle nacheinander ausgeführt
werden. Es wird jeweils nur ein Befehl aus einer
Speichervorrichtung abgerufen. Erst wenn ein solcher Befehl ausgeführt ist, kann der nächste Befehl abgerufen
werden. Folglich muß die Datenverarbeitungsvorrichtung nach Ausführung eines Befehls jeweils
warten, bis der nächste abgerufene Befehl von seinem Speicherplatz übertragen worden ist. Es ist bei
diesem Datenverarbeitungsgerät keine Befehlsvorausschauvorrichtung vorgesehen, wie beispielsweise bei
dem oben beschriebenen Gerät der eingangs erwähnten Art. ίο
Es ist andererseits aus der deutschen Auslegeschrift
1181948 ein Datenverarbeitungsgerät bekannt, welches zwei Speicher verschiedener Eigenschaften
enthält, die durch ein Hilfsrechenwerk miteinander verbunden sind. Alle Daten, die von dem
einen Speicher in den anderen überführt werden, müssen das Hilfsrechenwerk passieren. Während des
Durchlaufs durch das Hilfsrechenwerk werden die Daten, wenn ein entsprechender Befehl vorliegt, verarbeitet.
Das Hilfsrechenwerk arbeitet daher zu bestimmten Zeiten als arithmetisches Rechenwerk und
zu anderen Zeiten lediglich als Übertragungsglied. Man sieht, daß auch bei diesem Datenverarbeitungsgerät der Datenfluß unterbrochen wird, wenn nämlich
das Hilfsrechenwerk als arithmetisches Rechenwerk verwendet wird.
Es ist darüber hinaus aus einer Veröffentlichung von F. P. B r ο ο k s aus dem Proc. of the Eastern
Computer Conference, 9. bis 13. Dezember 1957, S. 128 bis 132, bekannt, eine »interruptÄ-Schaltung
zu verwenden, bei der eine Unterbrechung nach Ausführung eines jeden Befehls auftritt. Diese bekannte
Schaltung zeigt lediglich an, daß ein bereits fehlerhafter Zustand vorliegt, zu dessen Beseitigung
wieder wertvolle Rechenzeit verlorengeht.
Bei all diesen bekannten Anordnungen werden die Daten nicht in einem kontinuierlichen Datenfluß
verarbeitet, sondern es wird immer wieder zu Unterbrechungen des Datenflusses kommen. Damit wird
die Verarbeitungsgeschwindigkeit erheblich verlangsamt.
Der Erfindung liegt die Aufgabe zugrunde, ein Datenverarbeitungsgerät der eingangs erwähnten Art
zu schaffen, bei dem Daten in der Endverarbeitungsvorrichtung weitestgehend stetig und fortlaufend verarbeitet
werden. ^
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Anspruchs 1 gelöst.
Eine wesentliche Verbesserung des erfindungsgemäßen Datenverarbeitungsgeräts ist durch die
Warteschaltung bedingt. Die Warteschaltung ermöglicht es, daß die Vorverarbeitungsvorrichtung Befehle
vorverarbeitet und weitere Datenübertragungen so schnell wie möglich einleitet. Diese vorverarbeiteten
Befehle werden in der Warteschaltung gespeichert, wo sie auf die Verarbeitung in der Endverarbeitungsvorrichtung
warten. Dadurch kann die Endverarbeitungsvorrichtung Befehle mit größtmöglicher Geschwindigkeit verarbeiten, wobei nur eine Begrenzung
durch die Anzahl der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung gegeben
ist. Folglich hängen die Vorverarbeitungsgeschwindigkeit der Vorverarbeitungsvorrichtung und die Verarbeitungsgeschwindigkeit
der Endverarbeitungsvorrichtung in keiner Weise von der Endverarbeitungsvorrichtung
bzw. der Vorverarbeitungsvorrichtung ab. Vielmehr sind die Vorverarbeitung und die Endverarbeitung
unabhängig voneinander, wobei sowohl die Vorverarbeitungsvorrichtung als auch die Endverarbeitungsvorrichtung
am Eingang jeweils eine Warteschlange von Befehlen aufweisen, die zur Bearbeitung
anstehen. Sowohl die Vorverarbeitungsvorrichtung als auch die Endverarbeitungsvorrichtung
können damit stetig die maximale Menge der Daten verarbeiten.
Bei der erfindungsgemäßen Anordnung werden in der Vorverarbeitungsvorrichtung die Adressen der
nachfolgenden Befehle im voraus bestimmt. Wenn ein bedingter Sprungbefehl auftritt, wird eine weitere
Verarbeitung von Befehlen durch die Vorverarbeitungsvorrichtung verhindert, bis über den bedingten
Sprungbefehl entschieden ist. Zu dieser Zeit arbeitet jedoch die Endverarbeitungsvorrichtung noch die
in der Warteschaltung enthaltenen Befehle ab, wodurch der Datenfluß in der Endverarbeitungsvorrichtung
gleichmäßig weiterläuft. Erst wenn die Endverarbeitungsvorrichtung
die Daten für einen Bedingungsvergleich ermittelt hat, und der Vergleich durchgeführt ist, werden weitere Befehle nach dem
neuen Programm durch die Vorverarbeitungsvorrichtung ausgeführt.
Durch das erfindungsgemäße Datenverarbeitungsgerät wird die sogenannte zweiter Generation von
Rechenmaschinen verbessert. Die erfindungsgemäßa Anordnung ermöglicht eine bessere Vorausschau
auf Befehle oder eine bessere Vorbereitung. Das erfindungsgemäße Datenverarbeitungsgerät, das im folgenden
mit der Abkürzung »DV« bezeichnet ist, ist so ausgebildet, daß sich weniger Unterbrechungen
beim Betrieb des Geräts ergeben als bei den bekannten derartigen Geräten. Die erfindungsgemäße Lehre
bringt den Vorteil mit sich, daß wesentlich weniger Operationen und Vorgänge erforderlich sind als bisher,
um Rechenvorgänge auszuführen. So werden bei dem DV gemäß der Erfindung die Adressen für
die Befehlsvorausschau der Vorverarbeitungsvorrichtung zugeführt, in der die Verarbeitung der Befehle
vorgenommen wird. Die Befehle werden vorher der Befehlsvorausschauvorrichtung zugeleitet, so
daß bei Auftreten eines Sprungs, wie bereits oben erwähnt, eine Wiederholung von unnötigen und unerwünschten
Schritten nicht notwendig ist. Das heißt, die Vorausschau, ob ein Sprung eintreten wird, findet
statt, bevor eine^ Vorverarbeitung in dem Rechner vorgenommen wird, und es wird über den Sprung
entschieden, bevor irgendwelche Schritte oder Datenmanipulationen
stattfinden.
Zweckmäßigerweise erfolgt die Vorverarbeitung in der Vorverarbeitungsvorrichtung unabhängig und
gleichzeitig mit der Verarbeitung der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung.
Dadurch wird ein schnelleres Arbeiten und ein maximaler Wirkungsgrad der Ausnutzung der Einheiten
des DV ohne Erhöhung der Programmierungsschwierigkeit erreicht. Die Funktionen der Einheiten
des DV werden aufgeteilt. Da individuelle Einheiten für jede individuelle Funktion vorgesehen
sind, und zwar die Befehlsvorausschauvorrichtung und ferner die Vorverarbeitungs- und die Endverarbeitungsvorrichtungen
kann ein Parallelbetrieb bei der Ausführung von Befehlen erfolgen.
Der Parallelbetrieb bringt den Vorteil mit sich, daß sich der Programmierer nicht mit den Einzelheiten
der Operationen in dem Gerät zu befassen braucht. Dies ist ein Vorteil, sogar gegenüber geplanten
späteren Maschinen, als der vorliegenden,
ζ. B. bei Rechenanlagen, die in der Veröffentlichung von »AFIPS Conference Proceedings«, Band 26,
Teil II, 1964, »Fall Joint Computer Conference« unter dem Titel »Very High Speed Computer
System« von der Association for Computing Machinery usw., Copyright 1965, von der American
Federation of Information Processing Societies, 211 East 43rd Street, New York, N. Y. 10017,
Sparton Books, Inc., 1106 Conneticut Ave., N.W. Washington, D. C, auf den S. 33 bis 68 beschrieben
sind.
Weitere wesentliche Ausgestaltungen des erfindungsgemäßen DV sind durch die weiteren Unteransprüche
gekennzeichnet.
Der Ausdruck »Baueinheit« oder »Modul« soll im folgenden unabhängig funktionsfähige Einheiten bezeichnen.
Für den Ausdruck »Eingabe-Ausgabe« wird die Abkürzung »I/O« verwendet.
Ausführungsbeispiele der Erfindung werden nachstehend an Hand der Zeichnungen beschrieben. Dabei
zeigt
F i g. 1 ein Blockschaltbild, welches ein erstes Ausführungsbeispiel des Erfindungsgegenstandes darstellt,
v
F i g. 2 ein Blockschaltbild einer Ausführungsform einer Endverarbeitungsvorrichtung, die zusammen
mit dem Ausführungsbeispiel der Erfindung nach F i g. 1 verwendet werden kann,
F i g. 3 ein Blockschaltbild einer Ausführung einer Befehlsvorausschauvorrichtung, die in Verbindung
mit der Ausführung der Erfindung nach F i g. 1 verwendet
werden kann,
F i g. 4 ein Blockschaltbild, welches die Beziehung zwischen der Warteschaltung, einem Zwischenspei-Burroughs
Corp. Detroit, Mich. Einige der Befehle haben kein Adressenfeld; einige Befehle haben ein
Adressenfeld. Um z. B. ein Wort im Speicher dem Operandenstapel oben zuzuführen, sind zwei Befehle
erforderlich. Der erste Befehl holt das Wort vom Speicher und setzt es oben auf den Stapel. Der
zweite Befehl addiert die beiden oberen Worte des Stapels. Der Grund für die Aufteilung der Funktion
auf verschiedene Befehle ist der, daß der Befehl ein Wort aus dem Speicher hervorzuholen, in einem
frühen Zeitpunkt der Folge ausgeführt wird, so daß Daten in dem Zeitpunkt vorhanden sind, in dem
der Befehl zur Durchführung der Addition ausgeführt wird.
In F i g. 1 sind folgende Schaltungen dargestellt. Eine Verbindungsschaltung 100, welche die Verbindungen
..vom und zum Speicher 122 herstellt; eine Befehlsvorausschauvorrichtung 101, die noch nicht
ausgeführte Befehle festhält; eine Befehlssteuereinheit 102, die zur Feststellung von Silben zum
Aufteilen von Befehlen dient; eine Vorverarbeitungsvorrichtung 104 mit der Bezeichnung »ADVAST«·'
einen Programmzähler 106 mit einem Register (PCjR); eine Warteschaltung 108 Jiür Endbefehle
(FINQ), die eine Gruppe von kurze? ^Registern enthält,
eine Endverarbeitungsvorrichtung 110 (FINST); einen vorübergehenden Speicher 114 (TJEMP); einen
Operandenstapel 116; einen assoziativen Speicher 19, der zwei Segmente hat, nämlich einen Teil 118,
in dem die Adressen festgehalten werden und einen Teil 120, in dem die Daten festgehalten werden. In
F i g. 1 sind ferner zwei Kanäle für Daten angegeben; ein Kanal 119 für Adressen, die einem Speicher 122
zugeführt werden und ein Kanal 117 für Daten, die
eher und der Endverarbeitungsvorrichtung des Aus- 35 zur Vorverarbeitungsvorrichtung 104 zurückgeführt
führungsbeispiels zeigt, das in F i g. 1 dargestellt ist, werden. Der in F i g. 1 dargestellte Speicher 122 ist
F i g. 5 ein Blockschaltbild, das ausführlicher den
Operandenstapel, die Endverarbeitungsvorrichtung und die zugehörigen Steuerschaltungen und Verbinder
Hauptspeicher, der aber keinen Teil der Baueinheit bildet. Der Ausdruck »Baueinheit«, wie er
hier verwendet wird, soll nicht auf mechanische Be-
dungsgeräte mit ihren zugehörigen Steuerschaltungen 40 grenzungen, wie Gehäuse, beschränkt sein, sondern
für das Ausführungsbeispiel der F i g. 1 darstellt, '
F i g. 6 ein Blockschaltbild, welches die Vorverarbeitungsvorrichtung
und die dazugehörigen Speichereinheiten der F i g. 1 zeigt,
F i g. 7 ein vereinfachtes Blockschaltbild, welches
die Verbindungsgeräte für das Ausführungsbeispiel nach F i g. 1 darstellt,
F i g. 8 ein Blockschaltbild für das Ausführungsbeispiel nach F i g. 1, welches jedoch weitere Einzelheiten
bringt, dieses Schaltbild zeigt die Zusammen-Setzung der Fig. 8A, 8B und 8C, die zusammen
die F i g. 8 ergeben.
In F i g. 1 ist ein vereinfachtes Blockschaltbild
eines bevorzugten Ausführungsbeispiels des DV geist ein Ausdruck, der sich auf die unabhängige
Arbeitsweise und den Aufbau des DV gemäß der Erfindung bezieht.
Die Arbeitsweise des in Fig. 1 dargestellten DV
ist wie folgt: Befehle werden dem Speicher 122 über die Verbindungsschaltung 100 entnommen und der
Befehlsvorausschauvorrichtung 101 zugeführt. Mit der Vorrichtung 101 ist ein Adressenregister oder
Adressenzähler ILAR oder auch ILAR-Zählei
(F i g. 3) verbunden, das die Adressen für die Befehle enthält, die der Vorrichtung 101 zugeführt
werden. Dieses Adressenregister enthält eine Adresse, die etwas vor der Adresse liegt, die in dem Programmzähler
106 enthalten ist. Die Vorrichtung 101
maß der Erfindung dargestellt, wobei das Gerät zur 55 enthält eine Anzahl von Registern, z. B. 12 Register
schnellen Durchführung von Programmen dienen sowie ein Adressenregister, welches den Platz im
soll. Das Gerät arbeitet parallel mit Hilfe von Pro- Speicher 122 steuert, dem der nächste Befehl entgrammfolgen,
die so beschrieben sind, als ob sie nommen werden soll und auch zwei Zähler 301 und
schrittweise nacheinander auf üblichen, nicht parallel 302 (F i g. 3), welche die Zahl der Befehle, die in
arbeitenden Maschinen ausgeführt werden sollten. 60 der Vorrichtung 101 gerade enthalten sind, befolgen.
Die Befehlsfolge besteht aus Befehlen, die im Prinzip
etwa wie die Befehle für die Burroughs-B-5000- und
die Burroughs-B-5500-Maschine aufgebaut sind und
die in den folgenden Veröffentlichungen beschrieben
sind: »Burroughs Militarized Modular Data Processing System«, Burroughs' Corp., Paoli, Penna;
Handbuch »Burroughs B 5500, Information Processing Systems, Reference Manual, Copyright 1964,
etwa wie die Befehle für die Burroughs-B-5000- und
die Burroughs-B-5500-Maschine aufgebaut sind und
die in den folgenden Veröffentlichungen beschrieben
sind: »Burroughs Militarized Modular Data Processing System«, Burroughs' Corp., Paoli, Penna;
Handbuch »Burroughs B 5500, Information Processing Systems, Reference Manual, Copyright 1964,
Die beiden Zähler 301 und 302, die auch als Zeiger bezeichnet sein können, arbeiten als Ringzähler, wobei
der Ladezähler 301 viermal jedesmal um eins weiterschaltet, wenn zusätzliche vier Worte dem
Speicher entnommen werden, und der Entladezähler jedesmal um eins weiterschaltet, wenn ein Wort
der Vorrichtung 101 entnommen und in die Befehlssteuereinheit 102 überführt wird. Der Bereich hinter
509 511/123
9 10
dem Zähler 301 und vor dem Zähler 302 ist mit gül- nicht getrennt gezeigt; sie geht jedoch aus dem Block-
tigen Befehlen gefüllt. Der Bereich hinter dem Zäh- schaltbild der F i g. 8 genauer hervor,
ler 302 bis zu dem nächsten Zähler 301 ist mit ver- Bei der Beendigung des laufenden Befehls in der
arbeiteten Befehlen gefüllt. Vorverarbeitungsvorrichtung 104 zeigt der Zähler
Die beiden Zähler, von denen der Zähler 301 als 5 1010 den nächsten Befehl an, der der Vorrichtung
Ladezähler und der Zähler 302 als Entladezähler be- 104 zugeführt werden soll. Die Silbe, auf die der
zeichnet werden kann, arbeiten wie folgt. Der Lade- Zähler 1010 hinweist, und die nächsten drei Silben
zähler 301 ist ein üblicher Zähler, der bei dem Aus- werden alle auf die Vorrichtung 104 übertragen,
führungsbeispiel mit 12 Befehlen, z. B. zuerst von 0 wenn der Befehl vier Silben lang ist, d. h. seine maxi-
bis 11 zählt, entsprechend den 12 Registern bei der io male Befehlslänge hat. Der neue, auf die Vorrichtung
Ausführung nach F i g. 3. Wenn nicht ein Sprung- 104 übertragene Befehl wird decodiert, um festzu-
befehl durch das Programm ausgeführt wird, dann stellen, wie lang er tatsächlich ist, und der Zähler
schaltet der Ladezähler immer vom fünften Register 1010 zählt ihn dann zur ersten Silbe des nächsten
auf das zwölfte Register zurück, bis ein Sprung aus- Befehls hinzu, und dies kann eine der bereits auf die
geführt wird. 15 Vorrichtung 104 übertragenen Silben sein.
Im Falle eines Sprunges wird auf das erste Register Die Vorverarbeitungsvorrichtung 104 enthält das
zurückgeschaltet. Die Zahl der Register in einer vier-Silben-Befehlsregister, welches bei der Beschrei-Schaltung
soll nur als Beispiel dienen; es können bung der Befehlssteuereinheit 102 zur Silbenbestimnach
der Erfindung auch andere Zahlen von Re- mung erwähnt worden ist, ferner die Codiereinrichgistern,
die größer oder kleiner sind, z.B. 16 oder 20 timoen «ir diese Befehle, die von dem Programm-8
Register, verwendet werden. Der Zähler 301 be- zähler 106 gezählt werden, ferner verschiedene Arten
stimmt, in welches Register das nächste Wort vom von Basisadressenregistern und andere Register.
Speicher 122 eingeführt wird. Beim Umlauf ist das Hauptzweck der Vorrichtung 104 ist, diejenigen BeRegister,
auf welches der Zähler 301 gerade hinweist, fehle, die mit der Berechnung von Adressen zusamdasjenige,
welches das Befehlswort vom Speicher 122 25 menhängen und mit dem Herb&ihplen von Daten zu
erhält. Außerdem ist ein ILAR-Zählei 304 vorge- tun haben, zu decodieren, so daß das. Herbeiholen
sehen. Der ILAR-Zahler 304 entnimmt vier Worte von Daten eingeleitet werden kann, bevor die Verauf
einmal aus dem Speicher 122. Um dies zu tun, rechnung der Daten ausgeführt wird. Befehle, die mit
zählt der ILAR.-Zähler 304 von 0 bis 218 jeweils um Berechnungen zu tun haben, werden lediglich von
vier. Der ILAR-Zähler 304 steuert daher die Vier- 30 der Vorrichtung 104 an die Warteschaltung 108
fach-Schritte in der Vorrichtung 101. Der Entlade- weitergeleitet, wo sie auf die Ausführung v/arten,
zähler 302 weist gleichzeitig auf eines der zwölf Re- Befehle zum Berechnen von Adressen werden dazu
gister in der Vorrichtung 101 hin. Der Entladezähler benutzt, diese Adressen zu berechnen; die Adressen
302 entleert jeweils ein Register. Der Entladezähler werden nach ihrer Erstellung der Verbindungsschal-
302 jagt den Ladezähler 301. Wenn jedoch der Ent- 35 tung 100 zugeführt, um dem Speicher die Daten zu
ladezähler 302 sich bis auf vier Register demjenigen entnehmen. Sprungbefehle werden auch in der Vornähert,
auf welches der Ladezähler 301 hinweist, Verarbeitungsvorrichtung 104 ausgeführt. Wenn der
dann bewirkt die Vorrichtung 101, daß weitere vier Sprung eine Prüfung an einem Indexregister ist, dann
Worte dem Speicher 122 entnommen werden, und wird das Indexregister mit dem endgültigen Wert in
der Zähler 301 wird viermal um eins weitergeschal- 40 der Vorrichtung 104 verglichen und der Sprung austet,
so daß der Abstand jeweils auf vier oder mehr geführt, selbst wenn nicht alle Berechnungen, die mit
Register gehalten wird. Jedoch kann eine Verzöge- diesem Sprung zusammenhängen, in der Endverrung,
die durch einen Konflikt mit anderen Speicher- arbeitungsvorrichtung 110 beendet sind. Wenn anzugängen
entsteht, der Grund dafür sein, daß der dererseits der Sprung eine Prüfung von Daten ver-Abstand
sich auf drei, zwei oder sogar eins ver- 45 langt, dann wartet die Anlage, bis die Endverarbeimindert.
tungsvorrichtung 110 die Daten errechnet hat, die Die Befehle, auf ^ie der Entladezähler 302 hin- geprüft werden sollen. Auf diese Weise wird im allweist,
werden der Befehlssteuereinheit 102 zur Silben- gemeinen die Warteschaltung 108 ausgeleert. Eine
bestimmung zugeleitet. Die Befehlssteuereinheit 102 Berücksichtigung dieses zuletzt genannten Punktes
enthält einen Schalter 1080, dessen Tore zwei Be- 50 ist einer der Umstände, die den bisherigen Versuchen
fehlsworte für diesen Zweck enthalten. Diese beiden im Wege standen, eine richtige Vorausschau ohne die
Worte enthalten den nächsten Befehl, der von der Erfindung durchzuführen. Bei solchen Anlagen ohne
Vorrichtung 104 gefordert wird, einschließlich eines die erfindungsgemäße Einrichtung wurde vor Herzusätzlichen
Wortes. Die Befehlssteuereinheit 102 zur stellung der Daten lediglich geraten, welchen Weg
Silbentrennung enthält einen Zähler, der die Silben 55 die Programmfolge gehen würde. Daher mußten diese
zählt. Es befinden sich acht Silben zu sechs Bits in Anlagen oft von neuem beginnen und eine große
jedem Befehlswort. In jedem Befehl sind eine An- Zahl von Datenvorgängen löschen,
zahl, z. B. eine oder mehrere Silben, enthalten. Die
beiden Befehlsworte, die in der Befehlssteuereinheit INDEX-Vorgänge
102 enthalten sind, enthalten 16 Silben von je 6 Bits. 60
Diese 16 Silben bilden einen Teil der Programmkette. Der Indexvorgang ist ein Verfahrensschritt, der
Individuelle Befehle können ein, zwei oder mehrere beim Programmieren verwendet wird, wenn eine
Silben lang sein. Die Befehlssteuereinheit 102 zur Anzahl von Angaben vorliegt und der gleiche Vor-
Silbenbestimmung enthält auch einen Silbenschiebe- gang mit allen Angaben durchgeführt werden soll,
zähler (5SC) und einen 16er-Zähler 1010 (Fig. 8), 65 Dabei wird die Adresse einer Angabe jeweils um eine
der die nächste Silbe anzeigt, die nicht auf die Vor- Zahl erhöht. Diese Zahl kann jedesmal hinzugezählt
richtung 104 übertragen worden ist. Die Befehls- werden, wenn ein Vorgang mit den Datenangaben
Steuereinheit zur Silbenbestimmung ist im einzelnen ausgeführt ist. Da die Operationen, die mit den be-
treffenden Datenangaben durchgeführt werden sollen, jedesmal die gleichen sind, wird jedesmal der gleiche
Programmcode zum Ablauf gebracht. Dies bedeutet, daß am Ende dieses Teils des Programmcodes das
Indexregister um einen Schritt weitergeschaltet wird, so daß es beim nächstenmal die nächste Datengruppe
verarbeitet. Das Indexregister wird auch darauf geprüft, ob es seinen Grenzwert erreicht hat, d. h., ob
alle Datengruppen verarbeitet worden sind oder nicht. Dieser Vorgang kann im voraus vom Programmierer
angegeben werden. Er befindet sich daher in der Programmfolge und hängt nicht davon ab, was
mit den Daten passiert. Es wird also im voraus bestimmt, was mit den Daten getan werden soll, unabhängig
davon, was mit den Daten passiert. Der Ablauf der Operation wird daher nicht gestört, wenn die
Datenverarbeitungsbefehle noch in der Warteschaltung 108 unausgeführt zurückgehalten werden, solange
die Vorrichtung 104 das Indexregister IDXQ (F i g. 6 und 8) auf seinen Grenzwert prüft und in
Abhängigkeit davon die Verarbeitung in Überein-. Stimmung mit den Programmstufen einleitet, die an
* der Stelle des Speichers festgehalten sind, der durch den Indexprüfbefehl gekennzeichnet ist. Es ist bekannt,
daß diese Befehle schließlich dann vollzogen werden, wenn die Warteschaltung 108 ausgeleert
wird.
Ein praktisches Beispiel der Befehlsvorausschauvorrichtung 101 wird im folgenden beschrieben. Bei
dem Beispiel werden Zähler oder Zeiger in Verbindung mit der Speicherfläche verwendet. Bei dem Beispiel,
das in F i g. 3 dargestellt ist, sind Lade- und Entladezähler 301 und 302 vorgesehen, die nur eine
Fläche von 12 Worten in der Vorrichtung 101 überstreichen. Dem Beispiel liegt die Absicht zugrunde,
in der Befehlsvorausschauvorrichtung 101 einen Block von z. B. vier Programmworten zu haben, der
einen Abschnitt eines Programms enthält, auf den die Programmfolge bei der nächsten Übertragung
springen kann. Die Ausdrücke »Übertragung«, »Sprung« und »Verzweigung« sind alle synonym.
In der Befehlsvorausschauvorrichtung 101 ist eine Gruppe von 12 Worten enthalten, wobei die Worte
) 52 Bits aufweisen können, von denen 48 Befehle sind. Zwei Bits sind sogenannte Bezeichnungs-Bits, und ein
Bit dient der Paritätsprüfung.
Wenn der Entladezähler 302 dem Ladezähler 301 folgt und den Abstand auf vier Worte oder weniger
verringert, wird ein weiterer Entnahmezyklus automatisch von dem Hauptspeicher 122 ausgeführt, um
die Speicherfläche mit Befehlen zu versorgen. Ein unabhängiges Register, nämlich der Adressenzähler
oder Vorschauadressenzähler 304 (F i g. 3), ist vorgesehen, das die erste Adresse in dem Speicher 122
liefert, aus dem die Entnahme gemacht wird.
Bei dem Ausführungsbeispiel der Fig. 3 ist ein Bereich der Befehlsvorausschauvorrichtung 101 vorgesehen,
mit dem das Herbeiholen von Befehlen beim Sprung abgekürzt werden soll. Der vier-Worte-Block
mit der Bezeichnung »alte Sprungeingangsfläche«, welche den »alten Sprungeingangspunkt«
enthält, wird beibehalten. Die Vorrichtung 101 enthält einen Umlaufzwischenspeicher für 12 Worte mit
dem Entladezähler 302 und dem Ladezähler 301. Die vier zusätzlichen Worte unter den zwölfen enthalten
den Eingangspunkt beim letzten Sprung. Die Überlegung ist hier, daß ziemlich häufig Programme wiederholt
zum selben Eingangspunkt springen. Beim Springen zum gleichen Eingangspunkt werden die
Worte, die bereits in der Vorrichtung 101 vorhanden sind, nochmals benutzt. Wenn ein Sprung zu einem
neuen Eingangspunkt gemacht wird, werden die vier Worte des alten Sprungeingangs ignoriert und neue
Befehle herbeigeholt.
Die Bezeichnung Adressenspeicher bezieht sich auf kleine Speicher mit gleichmäßigen Zugriffs- und Umlaufzeiten,
die dem Taktgeber angepaßt sind und die mit der Herkunft und/oder dem Verbleib der Daten
eng gekoppelt sind. Diese Speicher können örtliche Register 126, vorübergehende Speicher 114, einen
Stapelanhang 500 und örtliche Zwischenspeicher 124 enthalten, die einen ersten Adressenspeicher und eine
Vorrichtung 101 bilden können, wobei der assoziative Speicher 19 eine Programmbezugstabelle und eine
Warteschaltung für Indexworte aufweist, sowie einen Wartespeicher, die einen zweiten Adressenspeicher
bilden können.
Es wird nun wieder auf F i g. 1 und insbesondere auf den assoziativen Speicher 19 Bezug genommen.
Der assoziative Speicher 19 enthält zwei Teile 118' und 120. Er enthält Raum für 28 Adressen und
Raum für 28 Datenworte, d. h. einen Adressenspeicher 118 und einen Datenspeicher "Γ20-. Jede Adresse
ist eine Speicheradresse, jedes Datenwort'1st unter entsprechenden Bedingungen eine Wiedergabe des
Datenwortes, die in dem Speicher 122 von der zugehörigen Adresse aufgefunden wird. Der assoziative
Speicher 19 wird dazu benutzt, den Entnahmezyklus für den Speicher 122 kurzzuschließen. Wenn eine
Adresse dem Speicher 122 zugeführt wird, wird sie mit dem Adressenfeld (in 118) des assoziativen Speichers
19 verglichen. Wenn der Vergleich erfolgreich ist, wird das Datenfeld in dem assoziativen Speicher
19 an Stelle des Datenfeldes in dem Hauptspeicher 122 ausgewählt. Der assoziative Speicher 19 wird für
drei Arten von Daten benutzt. Er wird für diejenigen Worte benutzt, die als Indexworte verwendet werden.
Er wird für indirekte Adressen in der Programmbezugstabelle benutzt und er wird für Worte benutzt,
die gespeichert werden. Diese drei Funktionen sind in dem Block 19 der F i g. 8 dargestellt und werden nun
der Reihe nach erläutert.
In dem Speicher 122 werden Indexworte festgehalten und mit Speicheradressen versehen. Wenn auf
ein Indexwort Bezug genommen wird, das nicht in dem assoziativen Speicher 19 enthalten ist, wird ein
alter Eintrag aus dem assoziativen Speicher in den Hauptspeicher 122 zurückgespeichert, und der neue
Eintrag, auf den Bezug genommen wird, wird dem Speicher 122 entnommen und verwendet. Seine
Adresse und Daten werden in dem assoziativen Speicher 19 zurückgelassen, in dem sie einmal benutzt
worden sind, in der Annahme, daß Indexworte bald und häufig benutzt werden.
Die zweite Verwendung des assoziativen Speichers 19 liegt bei den indirekten Adressen in der Programmbezugstabelle.
Die Programmbezugstabelle wird abgekürzt als PRT bezeichnet. Die indirekten Adressen der Programmbezugstabelle sind in gewisser
Beziehung ähnlich den Indexworten. Sie werden aus dem Speicher 122 abgerufen, damit die Vorrichtung
104 sie zur Erzeugung von Adressen von Daten benutzen kann. Ein Abschnitt von 24 Worten
des assoziativen Speichers 19 (IDXQ und PRTQ, F i g. 8) ist für Indexworte und Programmbezugstabellenleitungen
reserviert. Dieser Abschnitt von
24 Worten des assoziativen Speichers 19 arbeitet als umlaufender Zwischenspeicher, ähnlich wie die Vorrichtung
101 als umlaufender Zwischenspeicher arbeitet. Wenn auf eine PRT-Leitung oder ein Indexwort
Bezuggenommen wird, das sich nicht in dem assoziativen Speicher 19 befindet, dann wird die
älteste Leitung oder das älteste Wort aus dem assoziativen Speicher 19 entfernt und durch das neu eingeführte
Wort oder die Leitung an dem alten Platz ersetzt. Da PRT-Leitungen niemals verändert werden,
werden auch PRT-Leitungen nicht in den Hauptspeicher 122 zurückübertragen. Die Indexworte
jedoch werden beim Gebrauch abgeändert. Daher müssen alte Indexworte in dem Hauptspeicher 122
wieder eingetragen werden, so daß die erhöhten Indexworte nach dem neuesten Stand in dem Hauptspeicher
122 enthalten sind. Der Adressenspeicher 118 des assoziativen Speichers 19 wird dazu benutzt,
um die Adressen zu kontrollieren, unter denen diese Worte in den Hauptspeicher 122 wieder eingetragen
werden.
Der assoziative Speicher 19 kann außer dem Indexwortabschnitt IDXQ und dem Programmbezug-tabellenabschnitt
PRTQ eine Hauptwarteschaltung STORQ enthalten (dit alle in F i g. 8 dargestellt, aber
nicht mit Bezugsziffern versehen sind).
Die dritte Aufgabe des assoziativen Speichers ist die einer Hauptspeicherwarteschaltung. Ein Speicherbefehl
an den Hauptspeicher ergibt die Berechnung einer Adresse in der Vorrichtung 104. Diese Adresse
wird in den nächsten freien Platz in der Warteschaltung STORQ (F i g. 8) eingeführt. Die Warteschaltung
STORQ arbeitet auch als umlaufender Zwischenspeicher, wie die Schaltungen IDXQ und PRTQ
des assoziativen Speichers 19 und der Zwölf-Worte-Abschnitt der Befehlsvorausschauvorrichtung 101.
Die Adresse wird in die Schaltung STORQ eingeführt und der zugehörige Datenabschnitt mit dem
Zeichen »leer« versehen. Dieser leere Datenabschnitt ist für diejenigen Daten bestimmt, die unter der
Adresse gespeichert werden, wenn die Vorrichtung 110 den gleichen Punkt in der Programmfolge erreicht.
Eine einzelne Zelle der Schaltung STORQ des assoziativen Speichers 19 besteht aus einer Adresse
und einem Datenabschjiitt. Der Befehl »im Speicher
festhalten«, hat das folgende Ergebnis. Wenn der Befehl über die Vorrichtung 104 ankommt, wird eine
Adresse errechnet und in dem Adressenteil der Zelle des assoziativen Speichers 19 festgehalten. Der
Datenteil wird in diesem Fall mit der Bezeichnung »leer« versehen. Wenn dieser Befehl bis zur Warteschaltung
108 vorgedrungen ist, werden die Daten vom obersten Platz des Operandenstapels 116 durch
die Vorrichtung FINSTIlO entfernt und in den Datenabschnitt dieser Zelle der Warteschaltung
STORQ eingeführt. In diesem Zeitpunkt wird die Bezeichnung »leer« wieder entfernt, und die Schaltung
100 darf die Speicherung ausführen.
Die Warteschaltung STORQ hat zwei Aufgaben. Zuerst soll sie dafür sorgen, daß der Vorgang des
Speicherns in dem Speicher 122 durch die Schaltung 100 beliebig ausgeführt werden kann und nicht mit
anderen Vorgängen zeitlich zusammentrifft, die den Speicher 122 betreffen. An zweiter Stelle und wesentlieh
wichtiger jedoch ist die Tatsache, daß die Schaltung STORQ benötigt wird, um die folgenden
Schwierigkeiten zu beseitigen. Wenn Daten dem Speicher 122 entnommen werden, muß sichergestellt
werden, daß die entnommenen Daten der letzten Wiedergabe entsprechen, die in der Programmfolge
erzeugt worden ist. Wenn die Vorrichtung 104 schneller arbeitet als die Vorrichtung FINSTIlO, ist
es möglich, daß die Vorrichtung 104 dem Speicher 122 Worte zu entnehmen sucht, bevor die Endverarbeitungsvorrichtung
110 die Worte hergestellt hat, die herbeigeholt oder vorbereitet werden sollen. Dadurch,
daß die Adresse in der WarteschaltungSTORQ enthalten ist, wird jedes Wort, das in dem Speicher
122 festgehalten werden soll, aber dort noch nicht angekommen ist, erkannt. Die Adresse eines solchen
Wortes wird erkannt, wenn die Adresse des Befehls zum Herbeiholen mit dem umlaufenden Speicher verglichen
wird. Wenn die Daten die Bezeichnung »leer« enthalten, dann bedeutet dies, daß das Wort noch
nicht herbeigeholt werden kann.
Es wird nunmehr auf die Warteschaltung 108 und den vorübergehenden Speicher 114 der F i g. 1 Bezug
genommen. Die Schaltung 108 enthält so viele Regij ster, daß sie vier Befehle in einem_ umlaufenden
Zwischenspeicher aufnehmen kann, ähnlich wie die drei umlaufenden Zwischenspeicher in dem oben
beschriebenen Bauteil. Ein Ladezahler 411, nämlich der Zähler FINQ-TEMP (FTLP von F i g. 4) ist
hauptsächlich zur Verwendung in der Vorrichtung 104 vorgesehen und markiert den Punkt, an dem die
Vorrichtung 104 Befehle einsetzt, die sie erledigt hat, deren Durchführung jedoch noch nicht beendet ist.
Die Ausführung solcher Befehle wird von der Endverarbeitungsvorrichtung 110 beendet. Ein Entnahme-
oder Ablesezähler 412, nämlich der Zähler FINQ-TEMP (FTRP in F i g. 4), bezeichnet das Ende
des Wartevorgangs und stellt den Platz dar, an den die Befehle auf die Endverarbeitungsvorrichtung 110
zur Durchführung übertragen werden. Die Schaltung 108 und der vorübergehende Speicher 114 sind in
F i g. 4 schematisch dargestellt. Der vorübergehende Speicher 114 kann vier Zellen von je 52 Bits enthalten
zur Aufnahme von Datenworten, die im Verhältnis 1 : 1 den vier Zellen der Schaltung 108 entsprechen.
Die Zellen der Schaltung 108 andererseits enthalten nur kurze Speicherwerte, z. B. je sieben Bits
für Befehle.
Einige Befehle in der Warteschaltung 108 nutzen die vorübergehende ^Speicherung in dem vorübergehenden
Speicher 114 nicht aus. Beispiele für solche Befehle sind Multiplizieren, Dividieren, Addieren
und Prüfbefehle, die die beiden obersten Worte des Stapels vergleichen usw. Einige dieser Befehle sind
solche, die speziell auf die zugehörigen Zellen in dem Speicher 114 hinweisen. Diese Befehle enthalten in
erster Linie den einen Befehl, der die Übertragung von dem Speicher 114 zum obersten Platz des Stapels
116 bewirkt (vgl. T. O. S., F i g. 5 und 8). Dieser Befehl in der Schaltung 108 kann von einer Anzahl
von Befehlen herrühren, die in der Befehlsvorausschauvorrichtung 104 betrachtet wurden, wozu auch
Übertragungen von dem Speicher zum vorübergehenden Speicher 114, Übertragungen vom örtlichen
Datenzwischenspeicher 124 zum vorübergehenden Speicher 114, Übertragungen von dem Adressenregister
AAR602 (Fig. 8) zum vorübergehenden Speicher 115 gehören, und die alle in der Warteschaltung
108 erscheinen, um eine Übertragung vom vorübergehenden Speicher 114 zum oberen Platz des
Stapels durchzuführen. Die Schaltung AAR602 ist
der zentrale Akkumulator der Vorverarbeitungsvorrichtung
(s. F i g. 8).
Es wird nun auf die Endverarbeitungsvorrichtung IiO in Fig. 1 Bezug genommen. Endverarbeitungsvorrichtung
110 erhält nach Beendigung eines gegebenen Befehls ihren nächsten Befehl von der Stelle,
auf die der Entnahmezähler 412 der Lesekontrollschaltung 1022 hinweist. Das Befehlsregister der
Endverarbeitungsvorrichtung 110 hat eine Decodiermatrix 1023 (F i g. 8), die bei der Ausführung der
Befehle mithilft. Die Ausgangsimpulse der Decodiermatrix 1023 betätigen Addierer, Vergleicher 1021,
ein Schieberegister 1020 und andere logische Schaltungen. F i g. 8 zeigt diese Schaltungen und ihre Zusammenarbeit.
Fig. 2 zeigt die Vorrichtung FINSTIlQ im einzelnen.
Es wird nun in Fig. 1 auf den Operandenstapel 116 Bezug genommen, der in F i g. 5 im einzelnen
dargestellt ist. Es ist ein Operandenstapel, bei dem der letzte Eintrag als erster ausgegeben wird, und
arbeitet mit einem Code, der auch als »Polish-Code« » bezeichnet wird. Das Gerät der vorliegenden Erfindung
ermöglicht es, eine unbegrenzte Länge des Stapels zu erreichen, indem überschüssige Stapelworte
in dem Speicher festgehalten werden. Ein Teil des Operandenstapels 116 (Fig. 5) ist in der Baueinheit
der Stapelworte reserviert, die sich in der Baueinheit befinden. Wenn dieser Teil 12 volle Worte
enthält, dann werden 4 Worte an dem Speicher 122 durch die Geräte abgegeben, da der Stapel 116 voll
ist. Wenn der in dem DV vorhandene Teil kleiner als 4 Worte ist, dann wird eine Entnahme in dem
Speicher 122 eingeleitet. Es sei darauf hingewiesen, daß bei dieser Anlage der Speicher 122 einer der
Speicherbaueinheiten angehört, aber die Erfindung ist nicht auf die Verwendung eines derartigen Speichers
beschränkt. Alle Stapeloperationen, welche dem Stapel 116 weniger als 12 Worte zuführen, oder ihn
um mehr als 4 Worte entleeren, werden daher ohne Zuhilfenahme des Speichers durchgeführt. Da bei
einem normalen Betrieb der Stapel 116 jeweils nur um wenige Worte zunimmt oder abnimmt, bedeutet
dies, daß Speicherübergänge vom Boden des Stapels * 116 auf einem Minimum gehalten werden. Diese 12
eben beschriebenen Worte werden auch als Stapelanhang 500 in F i g. 5 bezeichnet und sind in F i g. 1
durch die Aufschrift »Stapelanhang« auf der Verbindungslinie zwischen dem Stapel 116 und der Schaltung
100 angegeben.
Mit dem zwölfwortigen Stapelanhang 500 in F i g. 5 sind zusätzliche Register verbunden. Einige,
z. B. zwei Datenregister, sind in dem Ausführungsbeispiel nach F i g. 5 angegeben, wobei die beiden
Register die ersten beiden Worte oben im Stapel getrennt von dem zwölfwortigen Stapelanhang 500
festhalten. Im Stapelanhang 500 ist ein oberster Zähler 503 vorhanden, der das oberste Wort in dem
Stapelanhang 500 anzeigt. Es können auch zwei Register, nämlich ein Stapelregister 501 und ein zweites
Stapelregister 502, vorgesehen sein, von denen die beiden ersten Worte oben im Stapel aufgenommen
werden können, d. h., daß sie nicht im Stapelanhang 500 des Operandenstapels 116 enthalten sind. Mit
dem Stapelanhang 500 ist ein oberer Zähler 503 verbunden, der auf das Datenwort hinweist, dessen Lage
im Stapelanhang 500 direkt unter den Datenworten ist, die sich in den Stapelregistern bzw. Flipflop-Stapelregistern
501 und 502 befinden. Ein unterer Zähler 510 deutet auf das letzte Wort in dem Stapelanhang
500 hin.
Eine Differenzschaltung 508 stellt die Differenz zwischen den Ordnungszahlen der Worte fest, auf
die der obere Zähler 503 und der untere Zähler 510 hinweisen. Wenn der untere Zähler 510 und der
obere Zähler 503 eine Differenz von 12 in der Differenzschaltung 508 ergeben, werden die untersten
4 Worte an den Speicher zurückübertragen an die Stelle, die von dem Stapelzähler 504 angezeigt wird.
Wenn der untere Zähler 510 und der obere Zähler 503 sich einander nähern und die Differenz in der
Differenzschaltung 508 kleiner als 4 wird, dann bedeutet dies, daß der Stapelanhang 500 4 Worte oder
weniger enthält. In diesem Fall werden dem Speicher 122 4 Worte an der Stelle entnommen, auf die der
Stapelzähler 504 hinweist. Jedesmal beim Speichern oder Auslesen am Speicher 122 wird der Zähler 504
4 Worte zurück- oder vorgezählt.
Der Stapelzähler 504 wird anfangs durch das Befehlsprogramm so eingestellt·, daß er auf den Teil des
Speichers hinweist, der dem Stapelanhang zugeordnet-· ist. Er zählt automatisch hinauf oder herunter, je
nachdem, ob dem Speicher Worte zu- oder abgeführt werden. Eine Schwierigkeit, die mögtteherweise auftritt,
ist die, daß der Stapelzähler 504 versucht, zu viele Worte an den Speicher 122 zurückzugeben, weil
der Stapel zu hoch wird. In einem späteren Abschnitt wird eine Schutzschaltung für die Speichergrenzen
beschrieben, die mit der Vorrichtung 104 zusammengebaut ist. Der Stapelzähler 504 wird mit den Speichergrenzen
verglichen, was weiter unten näher erläutert wird. Dies ist notwendig, falls der Stapelanhang
500 zu voll wird und die im Speicher zur Verfügung stehende Fläche überschreitet.
Eine Rechenschaltung 505 ist in üblicher Weise ausgeführt und kann Additionen, Multiplikationen,
Divisionen, Subtraktionen, Vergleiche und andere logische Funktionen wie UND, NICHT, IMPLIZIERE,
exclusives ODER und Überträge ausführen. In Abhängigkeit von der Decodierung in der Endverarbeitungsvorrichtung
110 bewirkt die Rechenschaltung 505, daß die Daten oben in dem Stapelregister 501 und im zweiten Stapelregister 502 zur Ausführung
der Rechenvorgänge benutzt werden und daß das Ergebnis oben im Stapelregister 501 wieder eingeführt
wird. Ein zusätzliches Register 507 ist vorgesehen, damit bei Rechnungsarten wie Division oder ■
Multiplikation die betreffenden Reste oder Multiplikationsprodukte größerer Länge in dieses zusätzliche
Register 507 aufgenommen werden können.
Außer den eben beschriebenen Geräten und Schaltungen enthält das Ausführungsbeispiel der
Fig. 1 in dem Adressenspeicher eine Fläche oder
Ebene, die als örtlicher Zwischenspeicher 124 bezeichnet worden ist und eine andere Fläche oder
Ebene als ein örtliches Register 126. Die beiden Flächen oder Ebenen 124 und 126 werden direkt
von Befehlen an das Laderegister, Leseregister und Abgaberegister usw. adressiert. Das Laderegister und
Abgaberegister bewirken vier Entnahmen aus dem Speicher und vier Abgaben an den Speicher. Sie
bilden daher ein Mittel, mit dem der Programmierer jeweils vier Daten-Entnahmen und vier Daten-Abgaben
an und von dem Register ausführen kann. Im allgemeinen sind in dem Ausführungsbeispiel alle
Register durch Adressen ansprechbar. Etwa 32 dieser Register sind in dem Adressenspeicher enthalten und
509 511/123
nicht als Flipflops ausgebildet. Außer den Adressenspeicherregistern,
die spezielle Verwendungszwecke haben, sind noch 16 Adressenspeicherregister ohne
Aufgaben vorgesehen, so daß der Programmierer sie in einer beliebigen Weise verwenden kann. Dieser
Teil, der normalerweise ein Teil des örtlichen Registers sein würde, ist als örtlicher Zwischenspeicher
124 bezeichnet worden.
Die Vorverarbeitungsvorrichtung 104 ist in F i g. 6
Die Vorverarbeitungsvorrichtung 104 ist in F i g. 6
chungsregister BIAR 624 weist auf den Code des Programms hin, das im Zeitpunkt der Unterbrechung
ausgeführt werden soll. Der Zweck des Basisunterbrechungsspeicherregisters BISR 625 ist, auf eine
5 Fläche im Speicher hinzuweisen, in der die Inhalte verschiedener Rechenregister gespeichert werden
können. Der Grund für eine solche Speicherung ist, daß die Befehlsroutine Rechenregister für ihren
eigenen Zweck benötigt, und es müssen daher die
im einzelnen dargestellt. In der Mitte der Vorrichtung io Inhalte dieser Register, die bei dem Programm be-104
ist das Steuergerät 600 in gestrichelten Linien nutzt werden, erhalten bleiben,
angedeutet. Das Steuergerät 600 enthält ein Adressen- Das Λ/F/IST-Befehlsregister 604 in Fig. 6 erhält
register (AAR) 602 und einen Addierer 601, die als seine Eingangswerte von der Befehlssteuereinheit 102,
Akkumulator dienen. Als Teil des Steuergerätes 600 wenn die Ausgangsimpulse des Registers 604 in einer
ist auch ein Indexadressenregister (IAR) 603 vorge- 15 Decodierschaltung 606 decodiert werden. Die Decosehen,
das zusammen mit dem Addierer 601 als dierschaltung 606 hat zwei Hauptausgänge. Sie liefert
Hilfsakkumulator dient. Im allgemeinen werden die den transformierten Code, der in die Warteschaltung
Adressen durch Addierung von drei Größen gebildet. 108 (Fig. 1) eingegeben wird. Die Ausgangsimpulse
Diese drei Größen sind: erstens der Inhalt des dienen auch dazu, alle Operationen der Vorrichtung
Grundregisters, zweitens der frühere Inhalt des 20 104 zu steuern.
Adressenregisters 602 und drittens das Adressenfeld Die Aufgabe der Vorrichtung 104 ist hauptsäch-
aus dem Befehl. Ein Befehlsregister (AIR) 604 nimmt lieh, Adressen zu berechnen. Diese Adressen werden
das Adressenfeld in dem Befehl auf, das unter drittens in dem Adressenregister 602 gespeichert, nachdem sie
oben genannt ist. Der vorhergehende Inhalt des Re- berechnet sind. Aus diesem Adressenregister 602 gegisters
604 wird irf dem Adressenregister 602 fest- 25 langen die Adressen an drei'"Stellen: sie gehen zu
gehalten. Es sind eine Anzahl von verschiedenen einem Begrenzungssprüfgerät 645, zu dem Adressen-Basisregistern
vorgesehen, und der Basisregister- speicher 118 des assoziativen Speichers 19 und zu
gegenstand wird einem dieser Basisregister entnom- der Verbindungsschaltung 100, so daß sie bei der
men. Zu diesen Basisregistern gehören das Basis- Entnahme von Daten aus dem Speicher 122 wirksam
register für die Programmbezugstabelle (PETB) 620, 30 werden können. Jede Adresse, die einem adreßgebenein
Basisindexregister (BIR) 621, ein Basisdatenregi- den Befehl in dem Befehlsregister 604 (F i g. 8) entster
(DER) 622, ein Basisunterbrechungsadressen- stammt, ist die Summe von drei Gegenständen: dem
register (BIAR)624 und ein Basisunterbrechungs- Adressenfeld, welche dem Befehl entspricht (Einspeicherregister
(BISR)625. Der Programmzähler gang 2, Fig. 8), einem der verschiedenen Basis-
(PCR) 106 kann auch als Basisregister benutzt wer- 35 register, das entsprechend dem Befehl ausgewählt ist
den. Außerdem ist ein Basisprogrammregister (Eingang3, Fig. 8) und dem Ergebnis von vorheri-
(BPR) 626 vorgesehen. gen Indexvorgängen, die in der Schaltung AAR 602
Es werden nun die Verwendungszwecke dieser ver- gespeichert sind (Eingang 1, Fig. 8). Nach jedem
schiedenen Register beschrieben. Das Basisregister Gebrauch von AAR 107 wird AAR602 auf 0 ge-
620 (PHTB) weist auf die Basis der Programmbezugs- 40 führt, so daß vorhergehende Adressen nicht fälschtabelle
hin. Die Programmbezugstabelle ist eine Lese- Hcherweise mit nachfolgenden Adressen addiert
tabelle für indirekte Adressen und andere Informa- werden können. Jede auf diese Weise erzeugte
tionen. Adresse wird an drei Stellen übertragen: an das
Das Basisindexregister 621 weist auf eine Speicher- Grenzprüfgerät 645, den Adressenspeicher 118 des
fläche hin, die dazu benutzt wird, Indexregister zu 45 assoziativen Speichers 19 und die Verbindungsschalspeichern. Das Basisindexregister 621 wird bei jedem tung 100.
Eintrag auf einen anderen Subroutine-Pegel weiter- Der assoziative Speicher 19 ist eben schon begeschaltet.
Das Weiterschalten des Basisindexregisters schrieben worden. Er nimmt die Adresse auf, die er-
621 ergibt einen Stapel von Speicher- und Index- rechnet worden ist, und sieht nach, ob die mit der
flächen für jeden Subroutine-Pegel. Das Basisindex- 5° Adresse zusammenstehenden Daten bereits in dem
register 621 weist normalerweise auf eine Fläche hin, DV enthalten sind oder nicht. Wenn dies der Fall ist,
die innerhalb der normalen Speienergrenzen liegt.
Die normalen Speichergrenzen werden weiter unten erläutert. Das Basisdatenregister 622 weist auf eine
Fläche des Arbeitsspeichers hin. Einige Programme 55 können aber auch diese zuletzt genannte Arbeitsspeicherfläche
DBR 622 außer acht lassen. Das Basisprogrammregister 626 weist auf den Beginn des
Segments des gerade verarbeiteten Codes hin. Der
Programmzähler 106 weist auf den Befehl in dem 60 auf die Speichergrenzen. Wenn kein anderer Befehl
laufenden Segment des Codes hin, der sich in diesem vorliegt, dann erfolgt diese Prüfung gegenüber den
Augenblick in der Vorrichtung 104 befindet. Eine sogenannten normalen Speichergrenzen. Es sind so-Vorbereitung
in bezug auf den Programmzähler 106 wohl normale obere Speichergrenzen und normale
kann nur für solche Gegenstände benutzt werden, die untere Speichergrenzen vorhanden (Fig. 1). Die
mit dem Programm gespeichert werden können und 65 beiden Grenzregister 1025 und 1026 kann man sich
sich niemals ändern. Zwei der Basisregister, nämlich in dem normalen Grenzregister (NBR) 640 vereinigt
BIAR624 und BISR625, werden nur für Unter- denken. Abgesehen von Ausnahmen, die weiter unten
brechungszwecke verwendet. Das Basisunterbre- noch erläutert werden, ist die Tatsache, daß eine
wird der Befehl zur Verbindungsschaltung 100 unterbrochen, und die Daten, die bereits örtlich verfügbar
sind, werden verwendet.
Die Verbindungsschaltung 100 schickt, wenn sie nicht anders instruiert wird, die Adresse an den
Speicher 122 und entnimmt dem Speicher 122 die Daten, die unter dieser Adresse gespeichert sind.
Das Prüfgerät 645 prüft die Adresse mit Bezug
Adresse, die nicht innerhalb der normalen Speichergrenzen 640 liegt, ein Grund für eine Unterbrechung.
Eine Abänderung dieser Vorgänge bei der Entnahme von Daten aus dem Speicher 122 ergibt sich,
wenn die Programmbezugstabelle benutzt wird. Bei diesem Vorgang wird ein Programmbezugstabellen-Grenzregister
(PRTL) 641 benutzt. Ein Befehl für eine Entnahme aus dem Speicher 122 und Abgabe an
das Adressenregister 602 unter Angabe des Inhalts des Programmbezugstabellen-Basisregisters 620 bewirkt
einen Vorgang, durch den eine Adresse für die PRT (Programmbezugstabelle) berechnet wird. Diese
Adresse wird nun geprüft, um zu sehen, ob sie zwi- ■■ sehen dem Inhalt, der in dem Programmbezugstabellen-Basisregister
620 gespeichert ist, und dem Programmbezugstabellen-Grenzregister
641 liegt, das als obere Grenze dient. Wenn ein Befehl für das Adressenregister 602 aus dem Speicher 122 mit Bezug auf
die PRT eine Entnahme zu machen, eine gültige Adresse zwischen dem PRT-Basisregister 620 und
dem PRT-Grenzregister oder dem PRT oberen Grenzregister 641 ergibt, wird das Wort der PRT
entnommen und dem ßRR-Register 1071 (Fig. 8)
zugeführt. Das Wort, welches der PRT entnommen wird, kann in verschiedener Weise bezeichnet werden.
Das einfachste Verfahren der Bezeichnung ist ein »tag-Code«, der bedeutet, abwechselnde Speichergrenzen
zu verwenden. Wenn das Wort mit der Bezeichnung »abwechselnde Speichergrenzen« versehen
wird, werden die letzten 18 Bits des Wortes in das Adressenregister 602 eingeführt, damit sie bei
dem nächsten Adressenherstellungsbefehl verwendet werden. Ein zusätzliches Adressenfeld auf der linken
Seite des rechten Adressenfeldes wird in das wechselnde Speichergrenzenregister 642 eingeführt und
dient dazu, die Fläche des Speichers 122 zu begrenzen, die über diese PRT-Leitung zugänglich ist. Es
wird daher unmöglich, mit Hilfe der PRT-Leitung einen Gegenstand anzusteuern, der außerhalb der
Fläche liegt, die durch die Befehlsroutine bezeichnet worden ist. Ein zusätzlicher Code, der an die PRT-Leitung
angeschlossen werden kann, ist ein Sprung-Code. In diesem Fall wird die PRT-Leitung zum Anfang
einer Subroutine gemacht, und das Register 642 wird nicht benutzt. In machen Fällen kann die PRT-Leitung
auch mit dem Wort »Unterbrechung« bezeichnet werden. Dies tritt z. B. dann ein, wenn die
Daten, auf die durch die PRT-Leitung hingewiesen werden soll, keinen angehörigen Platz im Speicher
haben, oder wenn aus irgendeinem Grund das Befehlsprogramm nicht wünscht, daß der betreffenden
PRT-Leitung Zugriff zu diesen Daten gegeben wird.
Das Indexadressenregister 603 wird als Akkumulator bei der Berechnung der Adressen benutzt, die
auf Indexworte hinweisen. Ein getrennter Akkumulator wird zum Hinweis auf Indexworte verwendet,
weil das reguläre Adressenregister 602 die Ergebnisse von früheren Indexvorgängen enthalten kann
oder auch den Inhalt von PRT-Eingaben, die unberührt bleiben müssen, während das Indexwort herbeigeholt
wird. Spezielle Indexbefehle machen von dem Indexadressenregister 603 Gebrauch.
Für jeden in der Schaltung (FINQ) 108 vorhandenen Befehl kann entweder am entsprechenden Platz
in dem vorübergehenden Speicher (TEMP) 114 ein Operand oder Variant vorhanden sein oder auch
nicht vorhanden sein. Es können bis zu vier Befehle in der Schaltung (FINQ) 108 bei dem dargestellten
Beispiel vorhanden sein, und es ist möglich, bis zu vier entsprevhende Operanden und/oder Varianten
in dem vorübergehenden Speicher (TEMP) 114 zu haben. Das F77VQ-T£MP-Steuergerät 211 gibt an, an
welcher Stelle von FINQ106 und TEMP114 die Information
zugeführt wird und von wo die Information in diesen Geräten kommt. Der FINQ-TEMP-Steuermechanismus
211 (der den FINQ-TEMP-Lesezähler
412 von F i g. 4 enthält), zeigt ebenfalls an,
ίο wann FINQ108 leer ist. In diesem Fall wird das
Ρ/Λ/ST-Steuergerät 214 daran gehindert, den Inhalt
der Schaltung (FINQ) 108 als neuen Befehl zu er-, kennen. Die Befehle, die am Ausgang der Schaltung
(FINQ) 108 entnommen werden, werden in dem Opcode- und dem Variantdecodierer 212 decodiert.
Wenn jedoch die Ausgangsimpulse der Schaltung (PINQ) 103 anzeigen, daß ein Variant erforderlich
ist, darin muß auch der entsprechende Variant dem vorübergehenden Speicher (TEMP) 114 durch den
Opcode- und Variantdecodierer 212 gleichzeitig decodiert werden.
Wenn festgestellt wird, daß die Information in dem· vorübergehenden Speicher (TEMP) 114 e-in Operand
ist, dann wird sie in das T-Register 501 eingeführt.
Wenn festgestellt wird, daß die~-Iaformation ein
Variant ist, der nicht decodiert werden soli, jedoch in ein Register, z.B. das T-Register501 oder das
Schieberegister 224 eingeführt werden soll, dann wird dieser Variante in das Register entsprechend dem
speziellen Befehl in der Schaltung (F/iVß)108 eingegeben.
Die FINST-Steuerschaltung 214 enthält die logischen
Schaltungen, Flipflops, Tore usw., welche die decodierten Befehle von dem Opcode- und Variantdecodierer
212 ausführen und bewirken, daß die entsprechenden Datenverarbeitungen in dem Rechenteil
der Vorrichtung 110 stattfinden. Die Steuerschaltung 214 liefert die Befehle, die notwendig sind, um die
Verarbeitung der in dem Operandenstapel 116 enthaltenen Daten zu bewirken. Das heißt, die Steuerschaltung
214 führt die Rechenvorgänge aus und manipuliert den Operandenstapel 116. Der Taktgeberzähler
213 der Endverarbeitungsvorrichtung liefert die Taktimpulse, die für den Betrieb der Steuerschaltung
214 erforderlich sind.
Der Rechenanteil der Steuerschaltung 214 arbeitet wie folgt: Die Addiersohaltung 220 führt alle arithmetischen
Operationen des Addierens, Subtrahierens und Dividierens aus. Der Addierer führt auch einen
Teil der Multiplikationsbefehle aus. Die Multipliziervorrichtung 221 wird zusammen mit dem Addierer
220 benutzt, um die Multiplikationsbefehle auszuführen. Es ist klar, daß es verschiedene Addier- und
verschiedene Multiplizierbefehle gibt, und das Wort »Befehl« wird für alle diese verschiedenen Vorgänge
benutzt.
Bei einem arithmetischen Operanden-Wort ist das erste Bit das Mantissen-Zeichen, das zweite Bit das
Exponenten-Zeichen und das dritte bis dreizehnte Bit die Exponenten-Größe. Der Rest vom vierzehnten
Bit an ist die Mantissen-Größe.
Bei diesen arithmetischen Befehlen wird die gleichförmige Notierung beibehalten, so daß die ganze Zahl
die gleiche Darstellung hat wie eine Zahl mit gleitendem Komma. Eine ganze Zahl hat einen Exponenten
0, eine Zahl mit gleitendem Komma hat einen Exponenten, der nicht gleich 0 ist. Auf diese Weise
kann ein und derselbe arithmetische Befehl entweder
21 22
für Operanden mit einer ganzen Zahl oder auch mit und das P-Register 507 zeigt kein Ergebnis außer in
gleitendem Komma benutzt werden. einigen wenigen speziellen Fällen. Im Falle eines
Der Detektor 228 für die führende Eins und der Multiplikationsvorganges enthält am Schluß das
Codierer 229 bestimmen zusammen den Betrag der T-Register 501 die höchsten Stellen des Produktes,
Verschiebung, die notwendig ist, um die führende 5 und die niedrigeren Stellen erscheinen in dem P-Re-
Eins einer Mantissengröße in die 14. Stelle eines gister 507. Im Falle einer Division erscheint am
Operanden einzuführen. Schluß der Quotient in dem T-Register 501, und der
Die Stelle des 14. Bits des Operanden ist die Rest erscheint im P-Register 507. Bei dem DV der
höchste Stelle der Mantissengröße. Diese Arbeits- Erfindung sind Befehle und Operationen mit dopweise
des Detektors 228 für die führende Eins und io pelter Präzision möglich. Bei solchen Fällen doppeldes
Codierers 229 ergibt eine Normierung der arith- ter Genauigkeit erscheinen die höchsten Stellen der
metischen Eingangsimpulses. Gleichzeitig muß der Hälfte des Resultats in dem T-Register 501, die nied-Ausgang
des Codierers 229 von dem Exponenten ab- rigeren Stellen des Resultats erscheinen im S-Register
gezogen werden. 502, und weitere Stellen erscheinen im P-Register
Der Comparator und die logische Einheit23 haben 15 507, z.B. die niedrigsten Stellen einer Summe oder
zwei Funktionen. Die logische Einheit 23 vergleicht eines Produktes.
das auch als T-Register bezeichnete Stapelregister Das T-Register 501 ist direkt oder indirekt mit den
501 und das auch als 5-Register bezeichnete Stapel- meisten anderen Registern des zentralen DV verbun-
register 502 bezüglich der Ausgangsimpulse, um ent- den. Der erste Weg des normalen Datenflusses führt
weder die Gleichheit oder das Überwiegen des einen 20 von dem vorübergehenden Speicher (TEMP) 114 zum
oder anderen festzustellen. T-Register 501, dann zum S-Register 502 und von
Diese Eigenschaft wird auch verwendet, um einige da zum Stapelanhang 500. Der zweite Weg des rror:
der Befehle auszuführen, die weter unten noch be- malen Datenflusses führt vom Stapelanhang 500 über
schrieben werden, wobei es notwendig ist, die Expo- das S-Register 502, dann zum T-Register 501 und
nenten und die Mantissen je getrennt zu vergleichen. 25 von dort zu anderen Teilen der-©aueinheiten, z. B.
Bei der Durchführung der ersten Funktion, näm- zur Schaltung STCRQ des Datenspeichers 120 des
lieh eines Vergleichs auf »gleich«, »größer als« kann assoziativen Speichers 19. Es sind auch Wege zu
die Schaltung 230 das ganze Wort für den Vergleich anderen Registern vorhanden,
nehmen, oder sie kann in Verbindung mit der Vor- Die Arbeitsweise des Stapelanhangs ist im Zusamrichtung 222 auch einen Teil eines Wortes zum 30 menhang mit F i g. 5 beschrieben worden. Der Stapel-Vergleich mit dem Teil eines anderen Wortes aus- zähler504, der sowohl in Fig. 5 als auch in Fig. 2 wählen. zu sehen ist, enthält die Adresse der nächsten 4
nehmen, oder sie kann in Verbindung mit der Vor- Die Arbeitsweise des Stapelanhangs ist im Zusamrichtung 222 auch einen Teil eines Wortes zum 30 menhang mit F i g. 5 beschrieben worden. Der Stapel-Vergleich mit dem Teil eines anderen Wortes aus- zähler504, der sowohl in Fig. 5 als auch in Fig. 2 wählen. zu sehen ist, enthält die Adresse der nächsten 4
Die zweite Funktion der Schaltung 230 besteht Worte im Speicher 122, die in den Stapelzähler 504
darin, die Ausgangsimpulse des T-Registers 501 und gebracht werden, wenn es notwendig ist. Der Zähler
des S-Registers 502 zu kombinieren, um Ergebnisse 35 504 kann um vier weitergeschaltet werden, und die
von logischen Funktionen zu erhalten, z. B. von sich ergebende Adresse definiert den Platz im Spei-
UND, ODER, WENDE AN, BILDE DAS KOM- eher des Blocks von 4 Worten, in dem die vier älte-
PLEMENT. Wenn diese zweite Funktion benutzt sten Operanden in dem Speicheranhang 500 gespei-
wird, werden die Ausgangsimpulse der Schaltung 230 chert werden können, wenn es notwendig ist.
dem T-Register 501 zugeführt. 40 Es wird nun auf F i g. 7 übergegangen. F i g. 7 zeigt
Es wird nun auf den dritten Teil der Schaltung, im Blockschaltbild den Aufbau der Verbindungs-
der auf der rechten Seite der F i g. 2 dargestellt ist, schaltung 100 des DV. In der Verbindungsschaltung
eingegangen. Dieser gibt die Einzelheiten des Ope- 100 können Sender 758 und Empfänger 762 vorge-
randenstapels 116 bei seinem Betrieb in Verbindung sehen sein. Die Sender 758 und die Empfänger 762
mit der Endverarbeitungsvorrichtung 110 wieder. Die 45 können einen Teil einer Schaltverbindung darstellen,
Register sind in Fig. 5 dargestellt. Das T-Register die für die Maschine vorgesehen ist, von der das DV
501 ist das oberste Register des Stapelanhangs, das einen Teil der Erfindung bildet, um die Verbindung
zweite oder S-Register 502 ist das nächste Register zwischen Baueinheiten der Maschine herzustellen und
über dem Stapelanhang. Das T-Register 501 wird bei um den Vorrang für den Zugriff zum Speicher, z. B.
jedem arithmetischen Befehl benutzt. In manchen 50 für DVs und I/O-Steuerbauteile der Maschine herzu-
Fällen wird das T-Register 501 in Verbindung mit stellen.
dem S-Register 502 oder mit einem P-Register 507 Die Verbindungsschaltung 100 kann einen Taktverwendet.
Das T-Register 501 kann entweder allein geber 77 enthalten, sowie die obenerwähnten Empverwendet
werden oder auch in Verbindung mit dem fänger (CSR) 762 und Sender (CXM) 758, ein Verbin-S-Register
502 oder das T-Register 501 kann in Ver- 55 dungsadressenregister (CvlÄ) 754, ein Verbindungsabbindung
mit dem P-Register 507 benutzt werden. Es frageregister (CER) 760, ein Verbindungsvorbereigibt
auch einige Befehle, die das T- und S-Register tungsregister (CFR) 756, ein Verbindungsspeicherregi-
501 und 502 zusammen benutzen und die zusammen ster (CSR) 752) ein Verbindungswortzähler (CWC) 750
einige Register des Stapelanhangs 500 benutzen. Die und einen Paritätsprüfer 764. Der Taktgeber ist als
Register T 501 und S 502 können auch als Teil des 60 20-MHs-Taktgeber dargestellt, zu dem die Synchro-Stapels
betrachtet werden. Das P-Register ist jedoch nisierungsleitungen führen; der Taktgeber kann jeein
Hilfsregister, das verwendet wird, um Befehle doch auch wahlweise an einer anderen Stelle angenach
Bedarf auszuführen. Das T-Register 501 ent- ordnet werden, und es können auch andere Frequenhält
die Summe, nachdem eine Addition oder Sub- zen benutzt werden. Bei dem Beispiel ist als Takttraktion
von der Addierschaltung 220 durchgeführt 65 geber eine Synchronmaschine dargestellt, es ist aber
worden ist, d. h., im Falle einer Subtraktion oder auch möglich, bei der Erfindung eine asynchrone
einer Addition erscheint die algebraische Differenz Arbeitsweise vorzusehen. Alle Informationen, die
oder die algebraische Summe in dem T-Register 501, dem Speicher 122 zugeführt werden, werden erst dem
23 24
Verbindungsspeicherregister 752 zugeleitet. Der Aus- ziativen Speichers 19 (F i g. 1 und 8) kommen, die
gang des Verbindungsspeicherregisters 752 ist direkt alle einen Zugang zu der Schaltung 100 zu erhalten
mit dem Sender 758 verbunden. Alle Informtionen, wünschen. Die Schaltung 100 enthält nach F i g. 7
die von dem Speicher 122 kommen, werden dem ein logisches Netzwerk, das zwischen drei Gruppen
Verbindungsentnahmeregister zugeführt. Dieses Re- 5 oder Pegeln unterscheidet. Sie stellt eine feste Priori-
gister756 wird direkt von den Empfänger762 be- tätsordnung und/oder -reihenfolge für die verschie-
trieben. Alle aufgenommenen Informationen werden denen Gruppen fest, die alle einen Zugang zu der
in dem Paritätsprüfer 764 geprüft. Schaltung 100 haben wollen.
Die Speicheradressen werden dem Verbindungs- Die Priorität unter den verschiedenen Gruppen
adressenregister 754 zugeleitet. Einige Operationen in io wird durch die Verdrahtung des Gerätes bestimmt,
der Verbindungsschaltung 100 greifen aufeinander Wenn die Vorrichtuno 104 einen Zugang zur Verüber
oder finden gleichzeitig miteinander statt; z.B. bindungsschaltung 100 haben will, um eine einzige
können die letzten drei Worte einer Vierfach-Ent- Entnahme zu machen, dann enthält, sie diesen. Bei
nähme aufgenommen werden, während der nächste einem derartigen Aufbau liegt entweder die Warte-Vorgang
über den Speicher 122 schon eingeleitet 15 schaltung STORQ des assoziativen Speichers 19 oder
wird. Wegen eines solchen Übergreifens ist es not- die Vorrichtung 101 am hinteren Ende der Prioritätswendig,
manchmal die Adresse des letzten Vorgangs liste. Andere Befehle, die getrennte Befehle für die
in Erinnerung zu behalten, während der neue Vor- Vorrichtung 101 sind, können durch Befehle des
gang eingeleitet wird. Dies ist z. B. notwendig, wenn Dump-Registers und des Laderegisters ausgeführt
der letzte Vorgang einen Fehler der Parität ergibt, 20 werden.
nachdem das Adressenregister 754 eine neue Adresse Der Taktgeber für 20 MHz kann durch einen Takterhalten
hat. Um die Steuerung in einem solchen geberoszillator in jeder Baueinheit betrieben werden.-Fall
nicht durcheinanderzubringen, wird die letzte Die Taktgeberoszillatoren werden von einem zentra-Adresse
in dem Verbindungsabfrageregister 760 fest- len Haupttaktgeber synchronisiert, wie es in dem dargehalten.
Da zwei Vorgänge gleichzeitig ablaufen 25 gestellten Beispiel der Fall ist, obwohk-ajuch eine synkönnen,
sind zwei effektive Adressenregister EAR 1 chrone Betriebsweise, ohne den Erfindungsgedanken
und EARl vorgesehen, für den Fall, daß beide zu verlassen, bewirkt werden kann. Der zentrale
Adressen Fehler enthalten. Der Zähler 750 zählt eins Haupttaktgeber befindet sich in irgendeiner der Bauoder
vier, je nachdem, ob die Entnahme eine ein- einheilen, z.B. in der I/O-Steuereinheit. Die Taktgeber
fache oder eine vierfache Entnahme ist. Die Schal- 30 aller Baueinheiten sind miteinander synchronisiert,
tung 100 führt entweder eine einfache oder eine vier- In anderen Maschinen können Baueinheiten entfache
Entnahme aus; durch diese Möglichkeit wird halten sein, die oberflächlich den Blockschaltungen
Zeit gespart. Die Leitungen zum Speicher 122 kön- ähneln, die für die Adressenschaltung, die Endvernen
parallel 53 Bits führen, und zwar 52 Datenbits arbeitungsvorrichtung und die Warteschaltung der
und 1 Bit zur Synchronisierung. Bei einer praktischen 35 Erfindung vorgesehen sind. Die ausgeführten Funk-Ausführungsform
erfordert eine vierfache Entnahme tionen sind jedoch andere, und die bekannten Ma-
oder eine Vierfach-Speicherung vier Zeitperioden. schinen verarbeiten alle Befehle über ihre Endver-Bei
Verwendung eines Taktgebers von 20 MHz kann arbeitungsvorrichtung, so daß diese Maschinen mit
z. B. eine Periode von zwei Taktimpulsen oder den Sprüngen fertig werden müssen, wenn sie auf-100
Nanosekunden pro Wert verwendet werden, so 40 treten. Dies führt zu Vorgängen, durch die die Madaß
eine 4-Wort-Übertragung 4 Zehntel einer Mikro- schine zu stark verlangsamt wird. Bei der Maschine
Sekunde erfordert. Wenn nur ein Wort erforderlich der vorliegenden Erfindung ist die Vorverarbeiist,
dann wird auch nur ein Wort auf der Leitung tungsvorrichtung 104, die Schaltung (FIZQ) 108 vorausgesandt
oder empfangen. gesehen, wobei die Vorrichtung 101 zur Vorschau
In dem Gerät der F i g. 7 sind nicht dargestellte 45 auf die Befehle funktionsmäßig, jedoch nicht not-Leitungen
vorhanden, die eine Vielzahl von Befehlen wendigerweise auch mechanisch, von der Vorrichder
Schaltung zuführen, Velche einer Vielzahl von tung 104 getrennt ist, s-o daß die Vorrichtung 104
Adressenquellen für das Register (CAR) 754 ent- wirkungsvoller arbeiten kann,
sprechen. Zu den möglichen Quellen von Adressen Bei der Maschine der Erfindung braucht die Vorgehören
die Befehlsadressen der Befehlsvorausschau- 50 Verarbeitungsvorrichtung 104 keine Arbeiten auszuvorrichtungen
101, die Adressenregister 602 der Vor- führen, die später wieder rückgängig gemacht werden
Verarbeitungsvorrichtung 104, die Indexadressen- müssen. Insbesondere wird die Vorrichtung 104,
register 603, die Stapelzähler 504 am Operanden- wenn sie einen Sprungbefehl feststellt, keinen Befehl
stapel 116 (F i g. 5), die Adressen von dem Adressen- ausführen, bevor sie weiß, welchen Weg der Sprung
speicher 118 eines Wortes in der Warteschaltung 55 nehmen wird und ob der Sprung ausgeführt werden
STORQ, der Adressenspeicher 118 für ein Wort im soll oder nicht.
PRT-Bereich des assoziativen Speichers PRTQ oder Die funktionell Trennung der Befehlsvorausder
Adressenspeicher 118 eines Indexwortes in der schauvorrichtung 101 von der Vorverarbeitungsvor-Indexwarteschaltung
IDXQ, die sich ebenfalls in dem richtung 104 ist in der Zeichnung dargestellt. Es ist
assoziativen Speicher 19 befindet und die in den 60 ersichtlich, daß die Befehle der Vorrichtung 101 zuSpeicher
122 zurückgelangen müssen. Diesen ver- geführt werden. Die Vorverarbeitungsvorrichtung 104
schiedenen Herkünften von Adressen entsprechen decodiert die Sprünge, so daß, wenn ein Sprung voreine
Vielzahl von Befehlen für die Schaltung 100. handen ist, während die Befehle in der Vorrichtung
Die Befehle können von der Vorrichtung 101 101 verarbeitet werden, und auch in der Vorrichtung
(F i g. 3) von dem Stapelanhang 500 (F i g. 5), von 65 102 verarbeitet werden, der Sprungbefehl noch nicht
der Warteschaltung STORQ des assoziativen Spei- ausgeführt werden darf, bis es bekannt ist, ob ein
chers 19 (F i g. 1 und 8), von der Vorrichtung 104 Sprung ausgeführt werden soll und wohin der Sprung
(F i g. 6), von der Indexwortfläche IDXQ des asso- führen soll.
5095Π/123
Befehle und Sprungoperationen
Das Sprungsteuerwort ist ein Eintrag in der Programmbezugstabelle.
In Bezugnahme auf eine bestimmte Zeile der Programmbezugstabelle, die ein Sprungsteuerwort enthält, bewirkt im Programm die
Ausführung eines Sprunges, wie es durch das Sprungsteuerwort festgestellt wird. Die ersten 3 Bits des
Sprungsteuerwortes enthalten den Sprungtypus. Zu den Arten von Sprüngen, die in dem Sprungsteuerwort
vorgeschrieben werden, gehören ein nicht rückkehrender Sprung, bei dem die Steuerung lediglich
auf ein anderes Programmsegment übertragen wird, ein interner Segmentsprung, bei dem ein Sprungrückkehrwort
gesetzt wird, das weiter unten näher erläutert wird und bei dem der Code, auf den übergesprungen
wird, in dem gleichen Segment wie das folgende Segment liegt, ein Segmentsprung, der gleich
einem internen Segmentsprung ist, außer daß der ausgeführte Code in einem neuen Programmsegment
steht und schließlich der Verfahrenssprung, der die Einstellung des Sprungrückkehrwertes für die Rückinformation
und das Springen auf ein neues Programmsegment bewirkt und außerdem auch eine neue
Programmbezugstabelle für das weitere Arbeiten bildet.
Im letzteren Falle befindet sich der Eintrag am Kopf der neuen Bezugstabelle, welche die Adresse
des Programmsegmentes enhält, auf das übersprungen wird. In der Beschreibung ist schon erwähnt
worden, daß die Programmbezugstabelle Zeiger oder Zähler enthält, die auf verschiedene Codesegmente
und verschiedene Datensegmente hinweisen. Die Sprungsteuerworte sind die Zeiger, welche auf andere
Codesegmente hinweisen. Die zweiten 12 Bits enthalten ein Inkrement für die Einstellung des Basis-Indexregisters
621, um die Routine, auf die übergesprungen wird, eine neue Arbeitsfläche, neue Indexworte
und ein Sprungrückkehrwort zu geben, das unter der Basisindexregisteradresse bei Null gespeichert
wird. Die nächsten 15 Bits des Sprungsteuer-Wortes sind eine relative Programmzählereinstellung.
Die ersten 12 Bits werden dem Basisprogrammregister 626 hinzuaddiert, um die effektive Adresse
zu erhalten, auf die übergesprungen werden soll; die letzten drei Bits sind die Silbenadresse in dem gerade
aufgefundenen Wort. Die nächsten 18 Bits des Sprungsteuerwortes s^nd ein Adressenfeld. Für diejenigen
Sprungtypen, die eine neue Programmbezugstabelle verlangen, würde dies das Adressenfeld der
neuen Programmbezugstabelle sein. Für diejenigen Sprungtypen, die keine neue Programmbezugstabelle
verlangen, ist dies das Adressenfeld für das Basisprogrammregister 626. Bei denjenigen Sprungtypen,
bei denen weder eine Änderung des Basisprogrammregisters 626 noch eine neue Programmbezugstabelle
verlangt wird, werden diese Bits nicht benutzt. Die letzten 3 Bits sind die Bezeichnungsbits. Sie enthalten
den 3-Bit-Code, der anzeigt, daß dies ein Sprungsteuerwort ist. Dieser Code wird von dem DV dekodiert,
um anzuzeigen, daß ein derartiger Sprung vorliegt. Wenn das Segment, auf das übergesprungen
werden soll, nicht im Hauptspeicher, sondern anderweitig, z. B. in einem Plattenspeicher, gespeichert ist,
dann bewirken die Bezeichnungsbits eine Unterbrechung des Exekutivprogramms.
Außer der Information, die in der Programmbezugstabelle gespeichert ist, ist noch eine Information,
welche die Rückkehr vom Sprung in das DV steuert, in dem Sprungrückkehrwort enthalten. Das
Sprungrückkehrwort wird stets unter der Adresse Null in bezug auf das Basisindexregister 621 gefunden.
Die ersten 3 Bits des Sprungrückkehrwortes geben den Sprungtypus an und zeigen an, ob eine
Rückkehr zu einer alten Programmbezugstabelle oder eine Neueinstellung auf das Basisprogrammregister
626 erforderlich ist. Die nächsten 12 Bits enthalten ein Basisindexregisterdekrement und werden
von dem Basisindexregisterinkrement des Sprungsteuerwortes gesetzt. Jeder Pegel der Subroutine erhöht
das Basisindexregister 621 beim Eintritt in Abhängigkeit von dem Inkrement,, das in dem Sprungsteuerwort
gespeichert ist. Bei der Rückkehr der Subroutine wird das Basisindexregister 621 entsprechend
dem Inkrement erniedrigt, das in dem Sprungrückkehrwort enthalten ist. Da das Sprungrückkehrwort
an einer Stelle gespeichert ist, auf die von dem Basisindexregister 621 hingewiesen wird, ergibt jede'Erniedrigung
des Basisindexregisters 621 eine Erniedrigung des vorhergehenden Rückkehrwortes. Eine
vollständige Folge von Rückkehrworten klettert- daher immer höher, bis eins der W.orte.die erste Stufe
erreicht.
Die nächsten 15 Bits sind -sine, Programmzählereinstellung.
Dies ist ein relative Einstellung; sie muß dem Basisprogrammregister 625 hinzuaddiert werden,
um eine absolute Adresse zur Einstellung des Programmzählers 106 zu erhalten. Die letzten 18 Bits
bilden ein Adressenfeld, welches gegebenenfalls die alte Basisprogrammregistereinstellung enthält. Im
Fall derjenigen Sprünge, die eine neue Programmbezugstabelle verlangen, werden die alten Basisprogrammregistereinstellungen
nicht benutzt. Die Bezeichnungsbits sind auf leer eingestellt.
Arbeitsweise: Verarbeitung von Befehlen, die die Maschinen verlassen
Es wird nun zur Erläuterung eine einfache Folge von Programmschritten angegeben, die in dem Speicher
122 an irgendeiner Stelle gespeichert sein können, bis sie in dem DV verarbeitet werden. Das Beispiel
soll eine Programmfolge zur Multiplikation von X und Y und Addition yon W und Speicherung
des Ergebnisses unter der Adresse Z betreffen. Dies kann durch die Gleichung dargestellt werden
2 = XY+ W.
In der »Polish«-Schreibweise würde die Gleichung lauten:
XY-W +Z =
Die Befehlsfolge zur Ausführung dieser Gleichung könnte aus den folgenden Befehlen bestehen:
»FMA«, dieser Befehl holt eine Leitung des PRT. Diese Leitung des PRT enthält die Adresse
des Beginns einer Datengruppe X. Das Adressenfeld wird an das Adressenregister 602
(F i g. 6) übertragen. (Die Buchstaben FMA bedeuten: fetch for memory to address register.)
»Index«, ein Befehl zum Herbeiholen des Indexwortes, dessen Inhalt mit dem Adressenregister
602 addiert wird, um einen Gegenstand anzudeuten, d. h. einen der Datengegenstände X;
»FMS«, ein Befehl, der angibt, daß ein Wort aus dem Speicher dem Stapel oben zuzuführen
ist. Die Ausführung dieses Befehls wird weiter
unten ausführlich erläutert. Es ergibt sich ein Gegenstand X, der im obersten Platz in dem
Stapel steht, wobei der laufende Inhalt des Adressenregisters 602 als Anzeichen benutzt
wird, wo in dem Speicher 122 die Daten gefunden werden können;
»FMA« wird dazu benutzt, von der Programmbezugstabelle
die Basisadresse einer Gruppe von Gegenständen Y abzurufen;
»Index«, wenn notwendig;
»SMS« für ein spezielles Datenwort Y;
»Multipliziere«;
»Index«, wenn notwendig;
»SMS« für ein spezielles Datenwort Y;
»Multipliziere«;
»FMA«, FMA wird benutzt, um den Basisindex einer Gruppe von Gegenständen W zu erhalten;
»Index«;
»FMS«;
»ABD«;
»FMS«;
»ABD«;
»FMA«: Dies FMA bezieht sich auf die PRT-Leitung, welche eine Gruppe von Gegenständen
Z anzeigt. Zur Vereinfachung sei angenommen, daß nur ein einzelner Gegenstand in der
Gruppe ist, so daß ein Indexvorgang nicht erforderlich ist;
»SSM«: Speichere vom Stapel zum Speicher.
»SSM«: Speichere vom Stapel zum Speicher.
j/
Die Folge der Programmschritte würde in der »Polish«-Schreibweise wie folgt aussehen: Entnimm
unter Verwendung der Unterfolge FMA, möglicherweise durch Indexbildung, und FMS entspricht dem
Auftreten einer einzigen Veränderlichen.
Diese Unterfolge »Entnimm« tritt einmal für X und einmal für Y auf. Der Befehl zum Multiplizieren
entspricht dem Multiplikationssymbol. Die Unterfolge tritt wieder für W auf, gefolgt von einem Befehl
zum Addieren. Eine etwas verschiedene Unterfolge bewirkt, daß das Resultat, das oben im Stapel
enthalten ist, wieder in den Speicher an der Stelle Z gespeichert wird. Diese leichte abweichende Unterfolge
ist »FMA, möglicherweise Index, SSM«.
Es sei angenommen, daß diese Befehle in dem Speicher 122 an irgendeinem Punkt des Vorgangs
gespeichert werden. Bei der Ausführung des Programms, in dem diese Instruktionen enthalten sind,
bewirkt das Vorschau-Register 304 (Fig. 3), daß diese Instruktionsbefehle aus dem Speicher entnommen
und in die Vorrichtung 101 überführt werden. In einem späteren Zeitpunkt wird der erste FMA-Befehl
durch die Schaltung 102 herausgezogen und der Vorrichtung 104 zugeführt.
Am Ende jeder Ausführung eines solchen Befehls in der Vorrichtung 104 wird der nächste Befehl der
Folge von der Vorrichtung 101 durch die Einheit 102 angerufen und in die Vorrichtung 104 eingeführt.
Die Ausführung der Befehle, die einer nach dem anderen in die Vorrichtung 104 eingeführt werden,
ist dabei die folgende:
Der erste FMA wird von der Vorrichtung 104 dekodiert und eine Adresse an den Speicher 122 abgegeben.
Die Adresse kann ihre Daten von dem Datenspeicher 120 des assoziativen Speichers 19 erhalten,
wenn auf den Gegenstand X kürzlich Bezug genommen worden ist. Andernfalls wird die Programmbezugstabellenleitung
von dem Speicher 122 geholt, und eines der zwei 18-Bit-Adressenfelder dieser Leitung
wird in das Adressenregister AAR 602 eingeführt. Wenn der Bezeichnungsbit-Teil der PRT-Leitung
durch das Exekutivprogramm auf den Grenzcode eingestellt ist, dann befinden sich die beiden
Adressenfelder der PRT-Leitung in den beiden Registern ABL 1027 und ,4Bt/1028 (Fig. 8) und dienen
zur Begrenzung der nächsten Entnahme für den Speicher. Der erste Befehl wird von der Vorrichtung
104 vollständig durchgeführt und bewirkt, daß kein Befehl in die Warteschaltung 108 eingeführt wird.
Bei der Beendigung der Ausführung des ersten Befehls hat die Befehlssteuereinheit 102 nun den
zweiten Befehl, einen Indexbefehl, in die Vorrichtung 104 eingeführt.
Die Decodierung eines Indexbefehls bewirkt die Berechnung einer Adresse eines Indexwortes. Das
Indexwort kann in dem assoziativen Speicher 19 gefunden werden, ebenso wie die PRT-Leitung. An-
dernfalls wird das Indexwort aus dem Speicher 122 herbeigeholt. Der Inhalt des Indexwortes wird zu
dem vorhergehenden Inhalt des Adressenregisters 602 (Fi g. 6) hinzugefügt. Hiermit ist der Vorgang
beendet, der durch den Indexbefehl verlangt wird, und der Indexbefehl bewirkt keinen Eintrag in der
Warteschaltung 108. -
Der dritte Befehl lautet: »Entnimm aus dem Spei=·' *
eher und überführe in den Stapel«.-Der· Inhalt des ' Adressenregisters 602, der nun die Summe des
Adressenfeldes der PRT-Leitung umUdes Adressenfeldes
des Indexwortes darstellt, wird mit dem Adresseninhalt des FMS-Befehls addiert, wenn er
vorhanden ist, und auf den Speicher 122 als Adresse übertragen. In die Warteschaltung 108 wird ein Befehl
eingetragen, um eine Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapels
zu bewirken. Der Platz in dem vorübergehenden Speicher 114 wird der Verbindungsschaltung 100 zusammen
mit der Adresse zugeleitet, die gerade hergestellt worden ist. Die Verbindungsschaltung 100
erhält die Adresse von der Vorrichtung 104 und bewirkt, daß diese Adresse auf den Speicher 122 übertragen
wird. Wenn Daten von dem Speicher 122 aufgenommen werden, bewirkt die Verbindungsschaltung
100, daß die Daten in den vorübergehenden Speicher 114 an einer Stelle eingetragen werden, die
der Verbindungsschaltung 100 mitgeteilt worden ist. Der Platz in dem vorübergehenden Speicher 114, der
der Verbindungsschaltung 100 mitgeteilt worden ist, entspricht dem Platz in der Warteschaltung 108,
welche den Befehl enthält: »Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels«.
Wenn dieser Befehl unten in der Warteschaltung · 108 eintrifft, enthält der Platz in dem vorübergehenden
Speicher 114 die Daten, die aus dem Speicher 122 entnommen worden sind.
Es folgt nun ein Befehl FMA. Gerade wie der vorhergehende FMA-Befehl überträgt er eine Adresse
aus der Programmbezugstabelle in das Adressenregister 602 der Vorrichtung 104. Der nächste Befehl
ist ein Indexbefehl, welcher den Inhalt eines Indexwortes zum Adressenregister (AAR) 602 addiert.
Der nächste Befehl ist ein FMS, der in die Warteschaltung 108 einen Befehl zur Übertragung
aus dem vorübergehenden Speicher zum obersten Platz des Stapels einsetzt und auf die Verbindungsschaltung 100 eine Adresse im Speicher 122 und
einen Platz im vorübergehenden Speicher 114 überträgt. Zu diesem Zeitpunkt enthält die Warteschaltung
108 zwei Befehle, nämlich nacheinander zweimal eine Übertragung von dem vorübergehenden
Speicher zum obersten Platz des Stapels vorzunehmen. Wenn zwei Plätze im vorübergehenden Spei-
eher 114 zugeordnet worden sind, enthält mindestens einer Daten, welche die Verbindungsschaltung 100
aus dem Speicher 122 entnommen hat. Nur ein Platz des vorübergehenden Speichers wird in einem gegebenen
Zeitpunkt geleert. Die Verbindungsschaltung 100 muß erst den einen füllen, bevor sie einen Befehl
annimmt, den anderen zu füllen, da nur eine Verbindungsschaltung 100 vorhanden ist.
Jedesmal, wenn die Endverarbeitungsvorrichtung 110 einen Befehl ausgeführt hat, kann sie einen
neuen Befehl aus der Warteschaltung entnehmen und diesen Befehl ausführen. In dem vorliegenden Fall
kann die Endverarbeitungsvorrichtung 110 diese Befehle zur Übertragung von dem vorübergehenden
Speicher zum obersten Platz des Stapels ausführen, sobald der vorübergehende Speicher 114 gefüllt ist,
oder sie kann einige Zeit warten, weil die früheren Befehle in der Warteschaltung 108 von der Vorrichtung
110 noch nicht ausgeführt sind. Es besteht keine notwendige Zeitbeziehung zwischen dem Zeitpunkt,
in dem die Vorrichtung 104 den Befehl beendet und in dem die Vorrichtung 110 den Befehl
aufnimmt, um ihn auszuführen.
In der Zwischenzeit ist in der Vorrichtung 104 ein Befehl zu multiplizieren decodiert worden. Der
Multiplikationsbefehl betrifft nicht die Vorrichtung 104 und wird ungeändert auf die Warteschaltung
108 als dritter Eintrag übertragen.
Die nächsten drei Befehle bestehen aus der Folge FMA, Index, FMS, die im Ablauf ähnlich sind wie
die oben beschriebenen Befehle. Das Ergebnis ist ein Befehl an die Warteschaltung 108, eine Übertragung
von dem vorübergehenden Speicher zum obersten Platz des Stapels vorzunehmen. Der nächste
Befehl ist ein Additionsbefehl; er wird in der Vorrichtung 104 decodiert. Es wird festgestellt, daß kein
Vorgang in der Vorrichtung 104 erforderlich ist, und der Addierungsbefehl wird daher als solcher als
fünfter Eintrag der Warteschaltung 108 zugeleitet. Der nächste Befehl ist ein FMA-Befehl, der eine
Adresse aus der Programmbezugstabelle entnimmt. Auf ihn kann ein Indexbefehl folgen, der eine Indexänderung
der Adresse 620 hinzuaddiert, die aus der Programmbezugstabelle entnommen ist und die in
dem Adressenregister AAR 602 festgehalten wird.
Der nächste Befehl fordert eine Speicherung vom Stapel in den Speicher. Dieser Befehl bewirkt, daß
die gerade hergestellte Adresse, die sich in dem Adressenregister 602 befindet, an den Adressenspeieher
118 des nächsten leeren Platzes in der Warteschaltuhg STORQ übertragen wird. Der nächste in
die Vorrichtung 110 übertragene Gegenstand ist ein Kommando, das eine Speicherung in der Warteschaltung
verlangt mit einem Hinweis darauf, welcher der vier Plätze in der Speicherschaltung (STORQ)IlOB
diesem Speichervorgang zugeordnet ist.
In diesem Zeitpunkt sind die folgenden Befehle in der folgenden Ordnung' in die Warteschaltung 108
eingegeben worden:
Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable X);
Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable Y); MuI-tipliziere;
Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable
W); Addiere; Übertrage vom obersten Platz des Speichers in die Warteschaltung. Diese Folge
von Befehlen und Operanden, die sich in der Warteschaltung 108 und in dem vorübergehenden Speicher
114 befinden, entsprechen sehr genau der Folge von Operatoren und Operanden nach der »Polish«-
Schreibweise des obigen Beispiels. Der einzige Mangel an Übereinstimmung besteht darin, daß die Variable
Z nicht in dem vorübergehenden Speicher 114 spezifiziert ist. Die Variable Z ist in dem Adressenfeld
spezifiziert, das der Speicherschaltung 120 B zugeordnet ist.
Die Vorrichtung 110 führt diese Folge von Befehlen in der Reihenfolge aus, in der sie auf sie trifft.
Es ist nicht wichtig, wie viele Befehle in der Warteschaltung 108 in dem Zeitpunkt, in dem die Vorrichtung
110 sie ausführt, enthalten sind. Die Vorrichtung 110 kann die Befehle so schnell ausführen,
wie die Vorrichtung 104 sie abgibt, wenn es möglieh ist, oder die Vorrichtung 110 kann auch hinter
der "Vorrichtung 104 nachlaufen. Es besteht keine notwendige Zeitbeziehung zwischen den beiden.
Um das vorteilhafte Verhalten der Maschine gemaß der Erfindung bei der Ausführung von Sprün^
gen zu würdigen, sei nunmehr beschrieben, was eih:
tritt, wenn der Befehl, der auf einen Speicherbefehl folgt, einen Sprung zu einem anderen Teil des gleichen
Programmcodes fordert. Ifl-diesem Fall ist der
Befehl, der dem SSM folgt, der in der Vorrichtung 104 aufgefunden wird, ein Sprungbefehl. Dieser
Sprungbefehl wird decodiert. Es kann z. B. ein Set-up-Sprungbefehl sein, bei dem das unbedingte
Bit so gesetzt ist, daß es einen unbedingten Sprung bewirkt. In der Vorrichtung 104 bewirkt die unbedingte
Sprungvariante des Set-up-Sprungbefehls, daß der Programmzähler 106 auf den neuen Wert gebracht
wird, der in dem Set-up-Sprungbefehl angegeben ist. Die Vorrichtung 104 wird daher Programmschritte
ausführen, die von dem neuen Programmsegment erhalten werden. In diesem Fall hat
die Anwesenheit eines unbedingten Sprunges in der Programmfolge der Vorrichtung 104 den Hinweis
gegeben, daß der Sprung ausgeführt werden soll, onne Rücksicht darauf, was in der Vorrichtung 110
passiert, und es ist daher richtig, den Sprung ohne Rücksicht auf die Tatsache auszuführen, daß die
Vorrichtung 110 diejenigen Berechnungen noch nicht fertiggestellt hat, welche dem Sprung vorausgehen.
Die Vorrichtung 110 wird natürlich die notwendigen Berechnungen beenden, wenn die Warteschaltung
108 ausgeleert wird. *
Wenn andererseits der Vorgang in diesem Punkt der Programmfolge keine Speicherung des Resultats
Z, sondern eine Prüfung des Resultats Z fordert, um zu sehen, ob es positiv oder negativ ist, und wenn
der Sprung von dieser Prüfung bedingt abhängig ist, dann würde die Vorrichtung 104 nicht weitergearbeitet
haben. Die Vorrichtung 104 würde in einem Zeitpunkt einen Set-up-Sprungbefehl decodiert
haben, um festzustellen, an welche Stelle er gehen soll. Der nächste Befehl, der von der Vorrichtung
104 decodiert wird, würde ein Sprung- oder »Prüf«- Befehl gewesen sein. Der Sprung-Befehl würde eine
spezielle Prüfung des Resultats Z, z. B. eine Prüfung, ob Z größer als 0 ist, vorgeschrieben haben. In diesem
Fall würde die Vorrichtung 104 anhalten und warten, daß die Warteschaltung 108 leer wird, und
nur dann würde die Vorrichtung 104 wissen, daß das gewünschte Resultat in der Vorrichtung 110 hergestellt
worden ist. Die Prüfung würde dann der nächste von der Warteschaltung 108 zur Vorrich-
tung 110 übertragene Gegenstand sein und würde unter Verwendung der Vergleichsschaltung 230 der
Vorrichtung 110 ausgeführt. Die Vorrichtung 104 würde dann den Sprung in Abhängigkeit von dem
Ergebnis der Prüfung ausführen. Wenn der Sprung ausgeführt würde, dann würde es notwendig sein,
weitere Befehle der Vorrichtung 101 zuzuführen. Die neue Einstellung des Befehlsadressenzählers,
nämlich das Register 304, würde vom Sprungsteuerregister 1090 (Fig. 8) aufgefunden werden. Die
Adresse in dem Sprungsteuerregister (/Ci?) 1090 würde dann in das Register 304 übertragen, damit
die Befehle, auf die das Programm springt, in die Vorrichtung 101 gelangen. Nach dieser Übertragung
sorgt die normale Arbeitsweise der Befehlssteuereinheit 102 dafür, daß der Befehl, auf den gesprungen
wird, in die Vorrichtung 104 eintritt.
Die Vorrichtung 101 kann möglicherweise Befehle aufgenommen haben, die auf den Sprungbefehl folgen
und die nicht ausgeführt werden sollen. Dies Herbeiholen von Befehlen ist jedoch ohne Schaden,
da keine Daten und keine Programmfolge geändert
" worden sind.
Die Bedingungen, welche die Vorrichtung 104 zum Anhalten bringen/ sind stets durch spezielle
Op-Codes angegeben. Hierzu gehören der bedingte Sprung, der Sprung zur Prüfung für ein Feld, und
ein spezieller Befehl, die Warteschaltung ohne Sprung auszuleeren. Bei allen anderen Op-Codes
arbeitet die Vorrichtung 104 weiter, nachdem sie den laufenden Befehl ausgeführt hat. Bei diesen drei genannten
Op-Codes hält die Vorrichtung 104 jedoch an, bis die Warteschaltung 108 leer ist; sie weiß, daß
in dem Zeitpunkt, in dem die Warteschaltung 108 leer ist, alle früheren in der Programmfolge geforderten
Resultate nunmehr im obersten Platz des Stapelregisters 501 berechnet worden sind.
Wir kehren nunmehr zur vorigen Ausführungsform des Ausführungsbeispiels zurück. Dabei befindet sich
ein Code von Befehlen in der Warteschaltung 108, der eine Übertragung von dem vorübergehenden
Speicher zum obersten Platz des Stapelregisters, eine zweite Übertragung von dem vorübergehenden Spei-
' eher zum obersten Platz des Stapelregisters, eine
Multiplikation, eine Übertragung vom vorübergehenden Speicher zum obesrt^p Platz des Stapelregisters,
eine Addition und eine Übertragung zur Warteschaltung enthält. Der erste Befehl, nämlich die Übertragung
vom vorübergehenden Speicher zum obersten Platz des Stapelregisters bewirkt, daß eine Größe X
von der Vorrichtung 104 zum obersten Platz des Stapelregisters 501 übertragen wird. Die nächste
Übertragung vom vorübergehenden Speicher zum obersten Platz des Stapelregisters bewirkt, daß die
Größe Y in dem Stapelregister 501 an oberster Stelle eingeführt wird und der Wert X um eine Stelle nach
unten in die zweite Stelle des Stapelregisters 502 gelangt. Bei der Multiplikation werden die beiden
obersten Werte des Stapels des Γ-Registers 501 und S-Registers 502 miteinander multipliziert, und das
Ergebnis wird am obersten Platz des Stapelregisters 501 festgehalten. Der oberste Platz des Stapelregisters
501 enthält nunmehr das Produkt ATF. Der nächste
Befehl ist eine Übertragung vom vorübergehenden Speicher zum obersten Platz des Stapelregisters 501
und bewirkt, daß ein Wert W in den obersten Platz des Stapelregisters 501 eingeführt wird. Das bereits
berechnete Produkt rutscht eine Stelle in dem zweiten Stapelregister 502 nach unten. Der nächste Befehl,
der auf Addieren lautet, bewirkt, daß die obersten beiden Einträge in den Stapelregistern 501 und
502 miteinander addiert werden. Der Wert W wird mit dem Produkt XY addiert, worauf sich das Produkt in dem zweiten Stapelregister 502 des Stapels
befindet. Die beiden Zahlen, die miteinander addiert werden, werden einzeln gelöscht, und nur die Summe
bleibt erhalten. Zu diesem Zeitpunkt befindet sich das Resultat im obersten Platz des Speichers und ist die
einzige Zahl in dem Platz des Stapels.
Der nächste Befehl, das ist der letzte Befehl in dem Ausführungsbeispiel, der in die Warteschaltung 108
eingeführt worden ist, lautet auf Speichern. Er bewirkt, daß das Ergebnis, das nun in dem obersten
Platz des Stapels vorhanden ist, in den Datenspeicher 120 der. Speicherschaltung STORQ120 B des assoziativen
Speichers 19 übertragen wird. In einem späteren Zeitpunkt spricht die Verbindungsschaltung 100
auf das Signal von der Speicherschaltung 120B an, das besagt, daß die Warteschaltung Daten enthält, die -;
gespeichert werden sollen und bewirkt, daß das Re-* sultat, das sich in der Speicherschaltung 120 B befindet,
in den Speicher 122 zurückübertragen wird.
Nachdem nunmehr der Aufbau, die'Wirkungsweise
und das Betriebsverfahren des Erfindungegenstandes beschrieben worden sind, wird es für nützlich gehalten,
auf einige wichtige Eigenschaften des DV der Erfindung nochmals hinzuweisen.
Charakteristische Eigenschaften und Merkmale
Das Ausführungsbeispiel der Erfindung, das hier beschrieben worden ist, bezieht sich auf ein DV, das
als das Zentralsystem einer Rechenmaschine hoher Geschwindigkeit zur Verarbeitung komplexer Daten
benutzt werden kann.
Damit können arithmetische Berechnungen von Steuerfunktionen Datenübertragungen und auch Unterbrechungsvorgänge
bewirkt werden, die unter der Leitung eines Exklusivprogramms ausgeführt werden.
Es können mehrere Vorgänge gleichzeitig durchgeführt werden. Es sind Zwischenspeicher vorhanden,
welche viel Zeit benötigende Vorgänge, wie die Ausführung von Befehlen an Operanden, überbrücken.
Das zentrale DV der Erfindung enthält drei Hauptteile: eine Verbindungsschalfung, eine Vorverarbeitungsvorrichtung
und eine Endverarbeitungsvorrichtung. Diese drei Vorrichtungen arbeiten im wesentlichen
unabhängig voneinander.
Die Verbindungsschaltung
Die Verbindungsschaltung steuert und verarbeitet alle Beziehungen zwischen dem Hauptspeicher und
dem zentralen Rechengerät. Die Verbindungsschaltung 100 überwacht die verschiedenen Einheiten in
der Vorrichtung 104 und der Endverarbeitungsvorrichtung 110, die vorübergehend Zugang zum Hauptspeicher
benötigen. Die Verbindungsschaltung kann vier Einheiten in dem zentralen DV bedienen, nämlich
den Stapelanhang 500, den Zwischenspeicher 114, die Befehlsvorausschauvorrichtung 101 und den
assoziativen Speicher 19. Der assoziative Speicher 19 enthält die Speicherwarteschaltung, die Indexwarteschaltung
und die Warteschaltung für die Programmbezugstabelle. Der Stapelanhang 500 befindet sich in
der Endverarbeitungsvorrichtung 110 und wird je nach Bedarf bedient. Die Verbindungsschaltung 100
führt automatisch Speicher- und Entnahmevorgänge
5095Π/123
aus, um eine vorbestimmte Anzahl von Operanden zur Verarbeitung durch die Endverarbeitungsvorrichtung
110 bereitzuhalten. Auch der vorübergehende Speicher 114 befindet sich in der Endverarbeitungsvorrichtung
110 und kann von der Verbindungsschaltung 100 nach Bedarf bedient werden. Die Vorverarbeitungsvorrichtung
104 kann alle Anfragen zur Bedienung des vorübergehenden Speichers 114 einleiten.
Die Befehlsvorausschauworrichtung 101 kann eine räumlich getrennte Baueinheit sein, oder sie kann
auch in der Vorverarbeitungsvorrichtung 104 enthalten sein; die Befehlsvorausschauvorrichtung 101 kann
nach Bedarf bedient werden. Die Verbindungsschaltung 100 überwacht die Befehlsvorausschauvorrichtung
101 in ähnlicher Weise, wie sie den Stapelanhang 500 überwacht, jedoch ist der Vorgang bei der Befehlsvorausschauvorrichtung
101 einseitig, da niemals die Notwendigkeit einer Speicherung von der Befehlsvorausschauvorrichtung
101 aus auftritt. Die Speicherwarteschaltung des assoziativen Speichers 119 ist in der Vorverarbeitungsvorrichtung 104 angeordnet
und wird ständig durch die Verbindungsschaltung 100 überwacht und nach Bedarf bedient. Die Verbindungsschaltung
100 speichert Daten aus der Speicherwarteschaltung in dem Hauptspeicher 122 periodisch,
um sie zur Verwendung in der Endverarbeitungsvorrichtung 110 zur Verfügung zu halten. Die Indexwarteschaltung
und die Programmbezugstabellenwarteschaltung des assoziativen Speichers 19 können
sowohl auf Anforderungen als auch nach Bedarf bedient werden. Wenn das zentrale DV eine Entnahme
aus dem Hauptspeicher 122 machen will, die sich auf das Basisindex-Register 621 oder die Programmbezugstabelle
bezieht, dann wird diese in den assoziativen Speicher 19 durch die Verbindungsschaltung
100 eingegeben. Wenn die Indexwarteschaltung und die Programmbezugstabellenwarteschaltung des assoziativen
Speichers 19 in diesem Zeitpunkt gefüllt sind, dann entnimmt die Verbindungsschaltung 100 den
ältesten Dateneintrag in der Warteschaltung und bringt ihn in den Hauptspeicher 122 zurück.
Andere Funktionen der Verbindungsschaltung 100 können die Erzeugung eines Paritätsbits bei abgehenden
Adressen und Daten, die Prüfung der Parität bei ankommenden Daten und die ständige Überwachung
von Unterbrechungsleitungen von den Speichereinheiten der I/0-Steuereinneit und anderen Einheiten des
zentralen DV sein. Die Verbindungsschaltung 100 kann die Empfänger 762 enthalten (um Signale zu
empfangen und zu normieren, die dem DV von dem Speicher und I/O-Steuergerät zugeführt werden), sowie
die Sender 758, für die Übertragung zwischen den Baueinheiten (wobei die Treiberstufen Antriebs-Energie
an die Signalleitungen von dem DV an den Speicher und die I/0-Steuereinheiten liefern), ferner Verbindungsadressenregister
754 für Adressenzwischenspeicherung, das Verbindungsspeicherregister 752 zur Zwischenspeicherung von zu schreibenden Daten,
das Verbindungsvorbereitungsregister 756, welches zwischengespeichert und als Verteilungszentrum für
ankommende Daten dient, und das Verbindungssteuersystem (Fig. 11), welches zur Überwachung,
zur Prioritäts- und Reihenfolgenfeststellung und zur
Steuerung aller Operationen zwischen dem DV und dem Hauptspeicher dient.
Das DV kann mit dem Hauptspeicher und dem I/O-Steuergerät mit Hilfe der Verbindungsschaltung
100 in Verbindung treten. Die Verbindungsschaltung kann die Übertragung von Informationen zwischen
dem DV und dem Hauptspeicher sowie dem I/O-Steuergerät koordinieren. Es kann eine Zeitsteuerung
bewirken, die die Reihenfolge der Operationen sicherstellt.
Die Vorverarbeitungsvorrichtung
Die Vorverarbeitungsvorrichtung 104 ist der das Programm ausführende Teil des zentralen DV. Alle
ίο Operationen der Vorrichtung 104 beginnen in der
Vorrichtung 101 zur Vorausschau auf die Befehle. Die Vorrichtung 101 enthält ein örtliches Speichergerät,
das zur Zwischenspeicherung von Befehlsworten des laufenden Programms vor der Verarbeitung
dient. Die Kapazität der Vorrichtung 101 kann 12 Worte zu 52 Bits pro Wert betragen. Da der
längste Befehl bei dem Beispiel 4 Silben zu 6 Bits hat, steht ein Speicherraum für 24 Befehle zur Verfügung.
Bei. einer derartigen Vorausschaumöglichkeit ist es nicht schwierig, daß die Verbindungsschaltung 100
die Vorrichtung 101 genügend im Vorlauf vor den tatsächlichen Berechnungen in der Vorrichtung 104
hält, so daß die Zeit für das Herbeiholen der Programme überbrückt wird.
as Die Befehle werden der Vorrichtung 101 der Reihe
nach entnommen und in das Advast-Btfehlsregister 604 gebracht. Dieses Register 604 hält den laufenden
Op-Code, Silben und Varianten und/oder die Adressensilben fest. Die Operations- und Variantsilben
werden von der Advaat-Steuerschaltung 1101 decodiert, um festzustellen, welche Operationen von
der Vorrichtung 104 ausgeführt werden sollen. Aus der Kombination von Op-Code und Variant ergibt
sich, ob eine Adressenberechnung ausgeführt werden muß, und wenn dies der Fall ist, welches Basisregister angewendet werden soll und welche Grenzen
bei der Speichergrenzprüfung in der Advast-Vergleichseinheit benutzt werden sollen. Wenn die Befehle
eine Adressenberechnung verlangen, die eine Bezugnahme afu den Speicher erfordern, dann wird
die Adresse bezüglich der Speichergrenzen in der Advast-Vergleichsschaltung geprüft, und bei Feststellung
eines Fehlers wird eine Unterbrechung herbeigeführt. Die Adresse wird auch dem assoziativen
Speicher 19 zugeführt, um festzustellen, ob das verlangte Wort in der Speicherwarteschaltung, der
Indexwarteschaltung oder der Programmbezugstabellenwarteschaltung örtlich gespeichert ist. Wenn
sich das verlangte Wort nicht in dem örtlichen Speieher befindet, dann wird die Adresse an das Verbindungsadressenregister
754 zusammen mit der Kontrollinformation weitergegeben, die angibt, wo die Verbindungsschaltung diese Adresse abgeben
soll, die aus dem Speicher kommt. Wenn daher das Wort für die Endverarbeitungsvorrichtung 110 bestimmt
ist, dann braucht die Vorrichtung 104 nicht zu warten, bis die Entnahme beendet ist.
Nachdem einmal die Verbindungsschaltung 100 in Gang gesetzt ist, kann sich die Vorrichtung 104 frei
zum nächsten Befehl begeben. Wenn die nächste Adresse örtlich gespeichert ist, dann wird durch
den assoziativen Speicher 19 automatisch die örtliche Warteschaltung betätigt, und das gewünschte
Wort erscheint am Ausgang. Wenn das gewünschte Wort von der Vorrichtung 104 verwendet werden
soll, dann steht es für die Berechnung am Ausgang der Warteschaltung zur Verfügung. Wenn es für die
Endverarbeitungsvorrichtung 110 bestimmt ist, dann
35 36
überträgt die Vorrichtung 104 das Wort an den vor- die auch für logische Funktionen, z. B. »IMP«,
übergehenden Speicher 114, der die Warteschaltung »UND/ODER« oder für Vorgänge wie »Gib Feld
der Endschaltung für örtliche Operanden ist. Die frei« und »Ergänze das Feld« benutzt werden. Ein
Additionsschaltung 601 der Vorverarbeitungsvorrich- Detektor für Einsen wird zur Normierung benutzt
tung kann eine Addierschaltung mit drei Eingängen 5 und zur Umwandlung von ganzzahligem Rechnen
sein, die in einem Additionsvorgang die Adressen- auf Rechnen mit gleitendem Komma. Er wird auch
silben der Befehlsfolge, ein Basisregister und einen bei Stapel- und Feldprüfungen gegenüber dem NuIl-Indexbetrag
addiert. Ein Indexvorgang, d. h. eine wert benutzt. Eine Addierschaltung 220 wird ledig-Erhöhung
der Adresse um einen festen Betrag, wird lieh für arithmetische Operationen benutzt. Verschiemit
Hilfe des Advast-Adressenregisters 602 durch- io bungen und Feldmanipulationen werden mit Hilfe
geführt. Das Advast-Adressenregister 602 ist der von Schiebeschaltungen durchgeführt.
Akkumulator für die Indexberechnung. Die örtliche Die Endverarbeitungsvorrichtung 110 arbeitet Warteschaltung in dem assoziativen Speicher 19 kann unter der Steuerung der Vorrichtung 104, kann aber bis zu 24 Indexworte enthalten, so daß ein guter Teil nicht angehalten werden, solange Befehle in der sämtlicher Indexvorgänge ohne Bezugnahme auf den 15 Warteschaltung 108 vorhanden sind. Es gibt einen Hauptspeicher ausgeführt werden kann. speziellen Befehl, der die Endverarbeitungsvorrich-Die Programmbezugstabellenwarteschaltung des tung HD anhält, wenn er oben in der Warteschaltung assoziativen Speichers 19 ist der örtliche Speicher 108 erscheint. Die Warteschaltung 108 wird erst für die zuletzt benutzte Programmbezugstabelle für abgearbeitet, bevor irgendeine der Unterbrechungs-Bezugnahmen auf den Hauptspeicher 122. Sie ist 20 routinen beginnt. Alle Übertragungen von Daten ein örtlicher Speicher für Steuerworte, die bei Pro- zum Hauptspeicher 122 werden von der oberstea. grammsprüngen benutzt werden, für Worte, die ab- Stelle des Stapelregisters 501 aus _ vorgenommen, wechselnde Speicheradressengrenzen enthalten und Beim Vorliegen eines Befehls »Speichere vom Stapel für Worte, die indirekte Adressen enthalten. Die zum Hauptspeicher« überträgt die^Vorrichtung 110 Ausführung aller Progfammsprünge wird von der 25 den Inhalt des T-Registers SOl an'^die Speicher-Vorrichtung 104 gesteuert. Die verschiedenen Arten warteschaltung in dem assoziativen Speicher 19. Die von Sprüngen sind oben im einzelnen aufgeführt. Endverarbeitungsvorrichtung 110 hängt von der Die Einleitung des Sprung-Steuerregisters 1090 wird Vorverarbeitungsvorrichtung 104 und der Verbindurch die Vorrichtung 104 bewirkt, ebenso wie die dungsschaltung 100 nur so weit ab, daß für ihren Verteilung der Sprung-Steuerworte und die Bildung 30 Betrieb irgendeine Angabe in der Warteschaltung des Rücklaufsteuerwortes. Die Vorrichtung 104 stellt 108 und in dem vorübergehenden Speicher 114 entauch alle Bedingungen für Unterbrechungen fest, halten sein muß. Solange noch Befehle für die Endspricht auf spezielle Unterbrechungsvorgänge an und Verarbeitungsvorrichtung vorhanden sind, braucht die steuert die Vorgänge für eine vorläufige Unter- Endverarbeitungsvorrichtung nicht auf die Vorverbrechung. 35 arbeitungsvorrichtung 104 oder die Verbindungs-
Akkumulator für die Indexberechnung. Die örtliche Die Endverarbeitungsvorrichtung 110 arbeitet Warteschaltung in dem assoziativen Speicher 19 kann unter der Steuerung der Vorrichtung 104, kann aber bis zu 24 Indexworte enthalten, so daß ein guter Teil nicht angehalten werden, solange Befehle in der sämtlicher Indexvorgänge ohne Bezugnahme auf den 15 Warteschaltung 108 vorhanden sind. Es gibt einen Hauptspeicher ausgeführt werden kann. speziellen Befehl, der die Endverarbeitungsvorrich-Die Programmbezugstabellenwarteschaltung des tung HD anhält, wenn er oben in der Warteschaltung assoziativen Speichers 19 ist der örtliche Speicher 108 erscheint. Die Warteschaltung 108 wird erst für die zuletzt benutzte Programmbezugstabelle für abgearbeitet, bevor irgendeine der Unterbrechungs-Bezugnahmen auf den Hauptspeicher 122. Sie ist 20 routinen beginnt. Alle Übertragungen von Daten ein örtlicher Speicher für Steuerworte, die bei Pro- zum Hauptspeicher 122 werden von der oberstea. grammsprüngen benutzt werden, für Worte, die ab- Stelle des Stapelregisters 501 aus _ vorgenommen, wechselnde Speicheradressengrenzen enthalten und Beim Vorliegen eines Befehls »Speichere vom Stapel für Worte, die indirekte Adressen enthalten. Die zum Hauptspeicher« überträgt die^Vorrichtung 110 Ausführung aller Progfammsprünge wird von der 25 den Inhalt des T-Registers SOl an'^die Speicher-Vorrichtung 104 gesteuert. Die verschiedenen Arten warteschaltung in dem assoziativen Speicher 19. Die von Sprüngen sind oben im einzelnen aufgeführt. Endverarbeitungsvorrichtung 110 hängt von der Die Einleitung des Sprung-Steuerregisters 1090 wird Vorverarbeitungsvorrichtung 104 und der Verbindurch die Vorrichtung 104 bewirkt, ebenso wie die dungsschaltung 100 nur so weit ab, daß für ihren Verteilung der Sprung-Steuerworte und die Bildung 30 Betrieb irgendeine Angabe in der Warteschaltung des Rücklaufsteuerwortes. Die Vorrichtung 104 stellt 108 und in dem vorübergehenden Speicher 114 entauch alle Bedingungen für Unterbrechungen fest, halten sein muß. Solange noch Befehle für die Endspricht auf spezielle Unterbrechungsvorgänge an und Verarbeitungsvorrichtung vorhanden sind, braucht die steuert die Vorgänge für eine vorläufige Unter- Endverarbeitungsvorrichtung nicht auf die Vorverbrechung. 35 arbeitungsvorrichtung 104 oder die Verbindungs-
AlIe in dem DV ausgeführten Befehle werden in schaltung 100 zu warten,
der Vorrichtung 104 verarbeitet. Diejenigen Befehle,
der Vorrichtung 104 verarbeitet. Diejenigen Befehle,
die ausdrückliche Operationen der Endverarbeitungs- Di6 zeitlichen Bedingungen
vorrichtung 110 verlangen, werden lediglich von der
vorrichtung 110 verlangen, werden lediglich von der
Vorrichtung 104 decodiert und an die Vorrichtung 40 Die Erfindung ist nicht auf das Ausführungs-
110 übertragen. beispiel beschränkt, in dem drei verschiedene Zeiten
~. _ , ' .. ... für die Ausführung jedes Befehls angegeben sind,
Die Endverarbeitungsvorrichtung nämlich eme m d°r Vorrichtung 1047 eine in der
Die Endverarbeitungsvorrichtung HO ist derjenige Verbindungsschaltung 100 und eine in der Endver-
Teil des zentralen DV, der arithmetische und logische 45 arbeitungsvorrichtung 110. Die Vorverarbeitungs-
Operationen durchführt ^ind auch alle Daten und vorrichtung 104 berechqet Adressen und befaßt sich
Datenprüfoperationen ausführt. Alle Vorgänge der mit den Indexvorgängen und Indexprüfungen. Die
Endverarbeitungsvorrichtung werden durch Befehle Verbindungsschaltung 100 stellt die Verbindung zwi-
ausgelöst, die der Reihe nach der Warteschaltung sehen dem Rechengerät und dem Speicher her, und
108 entnommen werden. 50 die Endverarbeitungsvorrichtung 110 verarbeitet die
Wenn die Vorverarbeitungsvorrichtung 104 die Daten und prüft die Daten.
Vorbereitung der Befehle für die Endverarbeitungs- Alle Befehle werden von der Vorverarbeitungsvorrichtung
vollendet hat, dann werden die Op-Codes vorrichtung 104 verarbeitet, in der auch die Decoin
die Warteschaltung 108 eingeführt und die züge- dierung der Befehle erfolgt. Einige Befehle wurden
hörigen Variantsilben und örtlich gesteuerten Ope- 55 auch in der Verbindungsschaltung 100 und in der
randen in dem vorübergehenden Speicher 114 fest- Endverarbeitungsvorrichtung HO verarbeitet. Diese
gehalten. Wenn ein Operand betroffen ist, der aus Schaltungen sind durch Zwischenspeicher verbunden,
dem Hauptspeicher entnommen werden muß, dann so daß sie unabhängig voneinander arbeiten können,
liefert die Vorrichtung 104 an die Verbindungs- Wenn z. B. der Befehl »Addiere« von der Vorverarschaltung
100 eine vorübergehende Adresse, unter 60 beitungsvorrichtung 104 verarbeitet wird, wird er in
der die Verbindungsschaltung 100 den Operanden die Warteschaltung 108 eingegeben, damit er von
festhält, wenn er ankommt. Alle Vorgänge in der der Endverarbeitungsvorrichtung 110 verarbeitet wer-Endverarbeitungsvorrichtung
betreffen den Stapel- den kann. Die Vorverarbeitungsvorrichtung 104 anhang 500 und insbesondere die ersten zwei Plätze, kann daher schon mit der Verarbeitung des nächsten
die durch das T-Register 501 und S-Register 502 65 Befehls beginnen, ohne darauf warten zu müssen,
gebildet werden. Die Endverarbeitungsvorrichtung daß die Endverarbeitungsvorrichtung HO verfügbar
110 enthält eine Vergleichsschaltung 230, die für ist. Die Verbindungsschaltung 100 kann ebenfalls
alle Stapel- und Feld-Prüfvorgänge benutzt wird und über Zwischenspeicher angeschlossen sein, und so-
lange diese Zwischenspeicher nicht voll sind, arbeiten die Vorrichtungen unabhängig voneinander und
gleichzeitig. Die Ausführungszeit für eine Folge von Befehlen kann dadurch angenähert werden, daß man
einzeln die Zeiten für jede Schaltung addiert und dann die größte dieser drei Summen feststellt..
Bei einigen Befehlen kann es notwendig sein, zwei Schaltungen gleichzeitig zu verwenden, und die Unabhängigkeit
zwischen den Schaltungen braucht für diese Befehle nicht zuzutreffen. Zum Beispiel kann
ein Indexbefehl, der erstmalig auf ein Indexwort Bezug nimmt (nicht im örtlichen Speicher), verlangen,
daß die Vorrichtung 104 wartet, bis die Verbin-
dungsschaltung 100 das Indexwort gefunden hat, bevor die Vorrichtung 104 mit der Indexberechnung
fortfahren kann.
Die Zeit, die erforderlich ist, damit die Verbindungsschaltung
100 Befehlsworte herbeiholt, wird hierbei nicht berücksichtigt, da die Verbindungsschaltung 100 in der Lage ist, Befehlsworte weit im
voraus vor ihrer Verwendung in der Vorverarbeitungsvorrichtung 104 herbeizuholen. Diese Befehlsworte
werden der Vorrichtung 101 während einer Zeit zugeführt, in der die anderen Vorrichtungen
und Schaltungen des DV die Verbindung nicht benutzen.
Hierzu 9 Blatt Zeichnungen
Claims (10)
1. Datenverarbeitungsgerät zur Verarbeitung einer Folge von in Bearbeitung befindlichen und
zur Bearbeitung anstehenden Befehlen mit einer Befehle ausführenden Endverarbeitungsvorrichtung
und einer davorgeschalteten Befehlsvorausschauvorrichtung, dadurch gekennzeichnet,
daß
IO
a) eine die von der Endverarbeitungsvorrichtung (110) auszuführenden Befehle vorverarbeitende
Vorverarbeitungsvorrichtung (104) zwischen die Befehlsvorausschauvorrichtung
(101) und die Endverarbeitungsvorrichtung (110) geschaltet ist, daß
b) die Vorverarbeitungsvorrichtung (104) eine Bestimmungsschaltung (606) aufweist zur
Ausführung von Sprungbefehlen oder zur Feststellung, daß weitere vorverarbeitende
Schritte und die Aufbereitung von Daten unerwünscht sind, bis die Endverarbeitungsschaltung
(110) die dem BedingungsverT gleich zugrunde zu legenden Daten ermittelt
hat, daß '
c) eine eine Vorverarbeitung durch die Vorverarbeitungsvorrichtung
(104) verhindernde Sperrschaltung (1101) vorgesehen ist, die auf die Feststellung, daß weitere Verarbeitungsschritte und die Aufbereitung von Daten
unerwünscht sind, anspricht, und daß
d) zwischen die Endverarbeitungsvorrichtung (110) und die Vorverarbeitungsvorrichtung
(104) eine Warteschaltung (108) zur zeitweisen Speicherung der Befehle nach der
Vorverarbeitung, jedoch vor der Verarbeitung in der Endverarbeitungsvorrichtung
(110) geschaltet ist.
2. Datenverarbeitungsgerät nach Anspruch 1, dadurch gekennzeichnet, daß die Vorverarbeitung
in der Vorverarbeitungsvorrichtung (104) unabhängig und gleichzeitig mit der Verarbeitung
der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung (110) erfolgt.
3. Datenverarbeitungsgerät nach Anspruch 1 oder 2, dadurch^gekennzeichnet, daß mit der
Warteschaltung (108) ein Zwischenspeicher (114) verbunden ist, der eine vorübergehende Speicherung
für diejenigen zu verarbeitenden Daten ermöglicht, die zu den Befehlen in der Warteschaltung
(108) gehören.
4. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
a) die Bestimmungsschaltung (606) auf Bedingungen der Befehlsvorausschauvorrichtung
(101) anspricht, um einen bedingten Sprung, einen Sprung zum Prüfen des Feldes und
einen speziellen Befehl, die Warteschaltung (108) zu löschen, auszuführen, daß
b) ferner eine Befehlssteuereinheit (102) vorgesehen ist, die die Vorverarbeitungsvorrichtung
(104) nach Beendung des laufenden Befehls bei Fehlen der drei genannten Bedingungen
kontinuierlich fortschreiten läßt, daß
c) die Sperrschaltung (1101) die Vorverarbeitungsvorrichtung
(104) anhält, während die Warteschaltung (108) davon unabhängig weiterverarbeitet, bis sie keine Befehle mehr
enthält.
5. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß
a) die Bestimmungsschaltung (606) einerseits Befehle an die Warteschaltung (108) direkt
weiterleitet und andererseits Befehle, zu deren Ausführung Daten erforderlich sind,
zuerst decodiert und dann an die Warteschaltung (108) weiterleitet, daß
b) eine Sprungsteuerschaltung (1090) vorgesehen ist, die bei der Ausführung eines bedingten
Sprungbefehls das Ergebnis der Bedingungsprüfung von der Endverarbeitungsvorrichtung
(110) empfängt und entsprechend dem Ergebnis der Bedingungsprüfung die Ausführung des bedingten
Sprungbefehls steuert.
6. Datenverarbeitungsgerät nach einem -der vorhergehenden Ansprüche?·—dadurch gekennzeichnet,
daß ein Verbindungsgerät' (100) vorgesehen ist, das einerseits mit einem Speicher
(112) und andererseits mit der Vorverarbeitungsvorrichtung (104) und der Endverarbeitungsvorrichtung
(110) verbunden ist und so den beiden Vorrichtungen (104, 110) einen direkten Zugriff
zum Speicher (122) gestattet.
7. Datenverarbeitungsgerät nach Anspruch 6, dadurch gekennzeichnet, daß
a) das Verbindungsgerät (100) ein Verbindungsadressenregister
(754) enthält, welches feststellt, wann im Hauptspeicher ein Wort
aufgesucht werden soll, und ein Verbindungsanfrageregister (756), welches vom
Speicher entnommene Worte festhält, um sie einem schnellen Pufferspeicher zuzuführen,
wodurch der Vorverarbeitungsvorrichtung (104) ein schneller Zugriff zu den aus
dem Speicher (122) entnommenen Daten ermöglicht wird.
8. Datenverarbeitungsgerät nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß
die Vorverarbeitungsvorrichtung (104) eine Einrichtung (600) zur Berechnung von Adressen gespeicherter
Daten enthält, wobei diese Adressen durch die Decodierung von Befehlen in der Vorverarbeitungsvorrichtung
(104) erhalten wurden.
9. Datenverarbeitungsgerät nach Anspruch 8, dadurch gekennzeichnet, daß die Einrichtung
(600) zur Berechnung von Adressen
a) einen Addierer (601) zum Addieren von Adressensilben der zuvor berechneten Adressen
zu dem Inhalt eines Basisregisters (620
• bis 622, 624 bis 626) und zu einem Indexbetrag
aufweist und
b) ein Adressenregister (602) zur Speicherung der durch den Addierer (601) berechneten
Adressen enthält.
10. Datenverarbeitungsgerät nach Anspruch 9, dadurch gekennzeichnet, daß es
a) einen assoziativen Speicher (19) enthält, der
einen assoziativen Adressenspeicher (118) und einen assoziativen Datenspeicher (120)
aufweist, wobei der Adressenspeicher (118) die Speicheradressen der Daten speichert,
die im assoziativen Datenspeicher enthalten sind, und daß
b) der Inhalt des Adressenregisters (602) mit dem Inhalt des assoziativen Adressenspeichers
(118) verglichen wird, um zu bestimmen, ob Daten aus dem Speicher (122) geholt
werden sollen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US509908A US3401376A (en) | 1965-11-26 | 1965-11-26 | Central processor |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1524103A1 DE1524103A1 (de) | 1970-12-17 |
DE1524103B2 true DE1524103B2 (de) | 1975-03-13 |
DE1524103C3 DE1524103C3 (de) | 1979-06-21 |
Family
ID=24028601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1524103A Expired DE1524103C3 (de) | 1965-11-26 | 1966-11-26 | Datenverarbeitungsgerät |
Country Status (5)
Country | Link |
---|---|
US (1) | US3401376A (de) |
CA (1) | CA921609A (de) |
DE (1) | DE1524103C3 (de) |
FR (1) | FR1502315A (de) |
GB (1) | GB1164475A (de) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3546677A (en) * | 1967-10-02 | 1970-12-08 | Burroughs Corp | Data processing system having tree structured stack implementation |
US3577190A (en) * | 1968-06-26 | 1971-05-04 | Ibm | Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions |
US3573854A (en) * | 1968-12-04 | 1971-04-06 | Texas Instruments Inc | Look-ahead control for operation of program loops |
US3573745A (en) * | 1968-12-04 | 1971-04-06 | Bell Telephone Labor Inc | Group queuing |
US3631400A (en) * | 1969-06-30 | 1971-12-28 | Ibm | Data-processing system having logical storage data register |
US3593314A (en) * | 1969-06-30 | 1971-07-13 | Burroughs Corp | Multistage queuer system |
JPS514381B1 (de) * | 1969-11-24 | 1976-02-10 | ||
US3651476A (en) * | 1970-04-16 | 1972-03-21 | Ibm | Processor with improved controls for selecting an operand from a local storage unit, an alu output register or both |
US3656123A (en) * | 1970-04-16 | 1972-04-11 | Ibm | Microprogrammed processor with variable basic machine cycle lengths |
NL7102289A (de) * | 1971-02-20 | 1972-08-22 | ||
US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
BE789583A (fr) * | 1971-10-01 | 1973-02-01 | Sanders Associates Inc | Appareil de controle de programme pour machine de traitement del'information |
US3725876A (en) * | 1972-02-08 | 1973-04-03 | Burroughs Corp | Data processor having an addressable local memory linked to a memory stack as an extension thereof |
US3794981A (en) * | 1972-06-02 | 1974-02-26 | Singer Co | Realtime computer operation |
US3810117A (en) * | 1972-10-20 | 1974-05-07 | Ibm | Stack mechanism for a data processor |
US3858183A (en) * | 1972-10-30 | 1974-12-31 | Amdahl Corp | Data processing system and method therefor |
US3868644A (en) * | 1973-06-26 | 1975-02-25 | Ibm | Stack mechanism for a data processor |
US3889243A (en) * | 1973-10-18 | 1975-06-10 | Ibm | Stack mechanism for a data processor |
US3949378A (en) * | 1974-12-09 | 1976-04-06 | The United States Of America As Represented By The Secretary Of The Navy | Computer memory addressing employing base and index registers |
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
US4212060A (en) * | 1975-04-30 | 1980-07-08 | Siemens Aktiengesellschaft | Method and apparatus for controlling the sequence of instructions in stored-program computers |
US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
SE403322B (sv) * | 1977-02-28 | 1978-08-07 | Ellemtel Utvecklings Ab | Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne |
US4371927A (en) * | 1977-11-22 | 1983-02-01 | Honeywell Information Systems Inc. | Data processing system programmable pre-read capability |
US4521850A (en) * | 1977-12-30 | 1985-06-04 | Honeywell Information Systems Inc. | Instruction buffer associated with a cache memory unit |
US4197579A (en) * | 1978-06-06 | 1980-04-08 | Xebec Systems Incorporated | Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner |
US4312036A (en) * | 1978-12-11 | 1982-01-19 | Honeywell Information Systems Inc. | Instruction buffer apparatus of a cache unit |
US4539635A (en) * | 1980-02-11 | 1985-09-03 | At&T Bell Laboratories | Pipelined digital processor arranged for conditional operation |
JPS5927935B2 (ja) * | 1980-02-29 | 1984-07-09 | 株式会社日立製作所 | 情報処理装置 |
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
US4947369A (en) * | 1982-12-23 | 1990-08-07 | International Business Machines Corporation | Microword generation mechanism utilizing a separate branch decision programmable logic array |
US4872109A (en) * | 1983-09-29 | 1989-10-03 | Tandem Computers Incorporated | Enhanced CPU return address stack |
US4868735A (en) * | 1984-05-08 | 1989-09-19 | Advanced Micro Devices, Inc. | Interruptible structured microprogrammed sixteen-bit address sequence controller |
US4630195A (en) * | 1984-05-31 | 1986-12-16 | International Business Machines Corporation | Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage |
USRE34052E (en) * | 1984-05-31 | 1992-09-01 | International Business Machines Corporation | Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage |
JPS619734A (ja) * | 1984-06-26 | 1986-01-17 | Nec Corp | プロセツサ制御方式 |
US4714994A (en) * | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
US5062036A (en) * | 1985-06-10 | 1991-10-29 | Wang Laboratories, Inc. | Instruction prefetcher |
US4791557A (en) * | 1985-07-31 | 1988-12-13 | Wang Laboratories, Inc. | Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system |
US4991090A (en) * | 1987-05-18 | 1991-02-05 | International Business Machines Corporation | Posting out-of-sequence fetches |
JPH0769812B2 (ja) * | 1987-12-29 | 1995-07-31 | 富士通株式会社 | データ処理装置 |
CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
US6782407B1 (en) | 2000-09-26 | 2004-08-24 | Koninklijke Philips Electronics N.V. | System and method for low overhead boundary checking of java arrays |
US7139877B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7191291B2 (en) * | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
US7136990B2 (en) * | 2003-01-16 | 2006-11-14 | Ip-First, Llc. | Fast POP operation from RAM cache using cache row value stack |
US7139876B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US9910801B2 (en) | 2014-08-01 | 2018-03-06 | Universiti Teknologi Malaysia | Processor model using a single large linear registers, with new interfacing signals supporting FIFO-base I/O ports, and interrupt-driven burst transfers eliminating DMA, bridges, and external I/O bus |
DE102014111305A1 (de) | 2014-08-07 | 2016-02-11 | Mikro Pahlawan | Prozessor-Modell, das ein einziges großes, lineares Register verwendet, mit FIFO-basierten I/O-Ports unterstützenden neuen Interface-Signalen und unterbrechungsgesteuerten Bus-Transfers, die DMA, Brücken und einen externen I/O-Bus eliminieren |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3158844A (en) * | 1959-09-14 | 1964-11-24 | Ibm | Data processing system |
US3156897A (en) * | 1960-12-01 | 1964-11-10 | Ibm | Data processing system with look ahead feature |
US3223976A (en) * | 1961-05-26 | 1965-12-14 | Bell Telephone Labor Inc | Data communication system |
BE625673A (de) * | 1961-12-04 | |||
US3229260A (en) * | 1962-03-02 | 1966-01-11 | Ibm | Multiprocessing computer system |
USRE26171E (en) * | 1962-03-02 | 1967-03-07 | Multiprocessing computer system | |
US3319226A (en) * | 1962-11-30 | 1967-05-09 | Burroughs Corp | Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs |
US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US3287702A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer control |
US3323109A (en) * | 1963-12-30 | 1967-05-30 | North American Aviation Inc | Multiple computer-multiple memory system |
-
1965
- 1965-11-26 US US509908A patent/US3401376A/en not_active Expired - Lifetime
-
1966
- 1966-11-21 GB GB52077/66A patent/GB1164475A/en not_active Expired
- 1966-11-24 CA CA976318A patent/CA921609A/en not_active Expired
- 1966-11-25 FR FR85082A patent/FR1502315A/fr not_active Expired
- 1966-11-26 DE DE1524103A patent/DE1524103C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB1164475A (en) | 1969-09-17 |
FR1502315A (fr) | 1967-11-18 |
DE1524103A1 (de) | 1970-12-17 |
US3401376A (en) | 1968-09-10 |
CA921609A (en) | 1973-02-20 |
DE1524103C3 (de) | 1979-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1524103C3 (de) | Datenverarbeitungsgerät | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE1449531C3 (de) | Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem | |
DE1178623C2 (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE3424962C2 (de) | ||
DE1813916B2 (de) | Elektronische Datenverarbeitungsanlage | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE1299145B (de) | Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen | |
DE1299146B (de) | Befehlssteuereinheit | |
DE1524130B1 (de) | Datenverarbeitende Mehrfachanlage | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem | |
DE3638572A1 (de) | Vektorprozessor | |
DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE1499206C3 (de) | Rechenanlage | |
CH644461A5 (de) | Digitale multipliziereinrichtung. | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE2335991C3 (de) | Schaltung zur Lenkung eines zur Unterbrechung einer von mehreren Befehls-Recheneinheiten auffordernden Signals | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
DE1909477A1 (de) | Speichersteueranlage fuer ein Multiprogramm-Datenverarbeitungssystem | |
DE2906685A1 (de) | Instruktionsdecodierer | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) |