DE1524103C3 - Datenverarbeitungsgerät - Google Patents
DatenverarbeitungsgerätInfo
- Publication number
- DE1524103C3 DE1524103C3 DE1524103A DEB0090024A DE1524103C3 DE 1524103 C3 DE1524103 C3 DE 1524103C3 DE 1524103 A DE1524103 A DE 1524103A DE B0090024 A DEB0090024 A DE B0090024A DE 1524103 C3 DE1524103 C3 DE 1524103C3
- Authority
- DE
- Germany
- Prior art keywords
- memory
- circuit
- register
- 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.)
- Expired
Links
- 238000012545 processing Methods 0.000 title claims description 70
- 230000015654 memory Effects 0.000 claims description 265
- 238000007781 pre-processing Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 33
- 239000000872 buffer Substances 0.000 claims description 17
- 238000002360 preparation method Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims 2
- 238000011144 upstream manufacturing Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000000717 retained effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- MSHPNSVCEBDAJL-UHFFFAOYSA-N 4-(1H-benzimidazol-2-yldiazenyl)benzene-1,3-diol Chemical compound OC1=CC(O)=CC=C1N=NC1=NC2=CC=CC=C2N1 MSHPNSVCEBDAJL-UHFFFAOYSA-N 0.000 description 1
- 101150080661 Ear1 gene Proteins 0.000 description 1
- 101000633516 Homo sapiens Nuclear receptor subfamily 2 group F member 6 Proteins 0.000 description 1
- 101150081376 NR1D1 gene Proteins 0.000 description 1
- 102100023170 Nuclear receptor subfamily 1 group D member 1 Human genes 0.000 description 1
- 102100029528 Nuclear receptor subfamily 2 group F member 6 Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001052 transient effect 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
Vorverarbeitunj* 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
ίο 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 Art 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-·"'
läuft. Wird das Ergebnis der Bedingungeprü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 Ergebm's 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 Befehlsvorausschauvorrichtung in einem Datenverarbeitungsgerät vorzusehen. Die Befehlsvorausschauvorrichtung
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 11 81 948 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. Brooks 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 wirS 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 Vorverarbeitungsvo4>"-richtung
ausgeführt.
Durch das erfindungsgemäße Datenverarbeitungsgerät wird die sogenannte zweite,„Generation von
Rechenmaschinen verbessert. Die effindungsgemäß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 Daten;t
manipulationen 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.
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
Washington, D. C, auf den S. 33 bis 68 beschrieben io Wort aus dem Speicher hervorzuholen, in einem
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 nachfrü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 Fig. 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 Befehlssteuer-
stehend an Hand der Zeichnungen beschrieben. Da- 20 einheit 102, die zur Feststellung von Silben zum
bei zeigt Aufteilen von Befehlen dient; eine Vorverarbeitungs-
ein Blockschaltbild, welches ein erstes
Fig. 1
Ausführungsbeispiel des Erfindungsgegenstandes darstellt,
vorrichtung 104 mit der Bezeichnung »ADVAST<q
einen Programmzähler 106 mit (PCR); eine Warteschaltung 108
einem Register für Endbefehle
F i g. 2 ein Blockschaltbild einer Ausführungsform 25 (FINQ), die eine Gruppe von k«fzj?n Registern entemer
Endverarbeitungsvorrichtung, die zusammen hält, eine Endverarbeitungsvorrichtung 110 (FINST);
mit dem Ausführungsbeispiel der Erfindung nach einen vorübergehenden Speicher 114 (TEMP); einen
F i g. 1 verwendet werden kann, Operandenstapel 116; einen assoziativen Speicher
F i g. 3 ein Blockschaltbild einer Ausführung einer 19, der zwei Segmente hat, nämlich einen Teil 118,
Befehlsvorausschauvorrichtung, die in Verbindung 30 in dem die Adressen festgehalten werden und einen
mit der Ausführung der Erfindung nach F i g. 1 ver- Teil 120, in dem die Daten festgehalten werden. In
wendet werden kann, F i g. 1 sind ferner zwei Kanäle für Daten angegeben;
F i g. 4 ein Blockschaltbild, welches die Beziehung ein Kanal 119 für Adressen, die einem Speicher 122
zwischen der Warteschaltung, einem Zwischenspei- 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 der Hauptspeicher, der aber keinen Teil der Bau-Operandenstapel,
die Endverarbeitungsvorrichtung einheit bildet. Der Ausdruck »Baueinheit«, wie er
und die zugehörigen Steuerschaltungen und Verbin- hier verwendet wird, sol' nicht auf mechanische Bedungsgerä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, ist* ein Ausdruck, der sich auf die unabhängige
F i g. 6 ein Blockschaltbild, welches die Vorverar- Arbeitsweise und den Aufbau des DV gemäß der
beitungsvorrichtung und die dazugehörigen Speicher- Erfindung bezieht,
einheiten der Fig. 1 zeigt, Die Arbeitsweise des in Fig. 1 dargestellten DV
F i g. 7 ein vereinfachtes Blockschaltbild, welches 45 ist wie folgt: Befehle werden dem Speicher 122 über
die Verbindungsgeräte für das Ausführungsbeispiel die Verbindungsschaltung 100 entnommen und der
nach F i g. 1 darstellt, * --------
F i g. 8 ein Blockschaltbild für das Ausführungsbeispiel nach Fig. 1, welches jedoch weitere Einzelheiten
bringt, dieses Schaltbild zeigt die Zusammen- 50 (F i g. 3) verbunden, das die Adressen für die Besetzung
der Fig. 8A, 8B und 8C, die zusammen fehle enthält, die der Vorrichtung 101 zugeführt
die F i g. 8 ergeben. werden. Dieses Adressenregister enthält eine Adresse,
In Fig. 1 ist ein vereinfachtes Blockschaltbild die etwas vor der Adresse liegt, die in dem Proeines
bevorzugten Ausführungsbeispiels des DV ge- grammzä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
Speicher 122 steuert, dem der nächste Befehl entnommen werden soll und auch zwei Zähler 301 und
(Fig. 3), welche die Zahl der Befehle, die in
Befehlsvorausschauvorrichtung 101 zugeführt. Mit der Vorrichtung 101 ist ein Adressenregister oder,
Adressenzähler ILAR oder auch /L/4i?-Zähler
soll. Das Gerät arbeitet parallel mit Hilfe von Programmfolgen, die so beschrieben sind, als ob sie
schrittweise nacheinander auf üblichen, nicht parallel
schrittweise nacheinander auf üblichen, nicht parallel
arbeitenden Maschinen ausgeführt werden sollten. 60 der Vorrichtung 101 gerade enthalten sind, befolgen.
Die Befehlsfolge besteht aus Befehlen, die im Prinzip Die beiden Zähler 301 und 302, die auch als Zeiger
etwa wie die Befehle für die Burroughs-B-5000- und bezeichnet sein können, arbeiten als Ringzähler, wo-
die Burroughs-B-5500-Maschine aufgebaut sind und bei der Ladezähler 301 viermal jedesmal um eins
die in den folgenden Veröffentlichungen beschrieben weiterschaltet, wenn zusätzliche vier Worte dem
sind: »Burroughs Militarized Modular Data Pro- 65 Speicher entnommen werden, und der Entladezähler
cessing System«, Burroughs Corp., Paoli, Penna; 302 jedesmal um eins weiterschaltet, wenn ein Wort
Handbuch »Burroughs B 5500, Information Processing Systems, Reference Manual, Copyright 1964,
der Vorrichtung 101 entnommen und in die Befehlssteuereinheit 102 überführt wird. Der Bereich hinter
S09 625/3
dem Zähler 301 und vor dem Zähler 302 ist mit gültigen
Befehlen gefüllt. Der Bereich hinter dem Zähler 302 bis zu dem nächsten Zähler 301 ist mit verarbeiteten
Befehlen gefüllt.
Die beiden Zähler, von denen der Zähler 301 als Ladezähler und der Zähler 302 als Entladezähler bezeichnet
werden kann, arbeiten wie folgt. Der Ladezähler 301 ist ein üblicher Zähler, der bei dem Ausführungsbeispiel
mit 12 Befehlen, z. B. zuerst von 0 bis 11 zählt, entsprechend den 12 Registern bei der
Ausführung nach F i g. 3. Wenn nicht ein Sprungbefehl durch das Programm ausgeführt wird, dann
schaltet der Ladezähler immer vom fünften Register auf das zwölfte Register zurück, bis ein Sprung ausgeführt
wird.
Im Falle eines Sprunges wird auf das erste Register zurückgeschaltet. Die Zahl der Register in einer
Schaltung soll nur als Beispiel dienen; es können nach der Erfindung auch andere Zahlen von Registern,
die größer oder kleiner sind, z. B. 16 oder 8 Register, verwendet werden. Der Zähler 301 bestimmt,
in welches Register das nächste Wort vom Speicher 122 eingeführt wird. Beim Umlauf ist das
Register, auf welches der Zähler 301 gerade hinweist, dasjenige, welches das Befehlswort vom Speicher 122 as
erhält. Außerdem ist tin ILAR-Zähler 304 vorgesehen. Der ILAR-Zähler 304 entnimmt vier Worte
auf einmal aus dem Speicher 122. Um dies zu tun, zählt der /L<4jR-Zähler 304 von 0 bis 218 jeweils um
vier. Der ILAR-Zähler 304 steuert daher die Vierfach-Schritte
in der Vorrichtung 101. Der Entladezähler 302 weist gleichzeitig auf eines der zwölf Register
in der Vorrichtung 101 hin. Der Entladezähler 302 entleert jeweils ein Register. Der Entladezähler
302 jagt den Ladezähler 301. Wenn jedoch der Entladezähler 302 sich bis auf vier Register demjenigen
nähert, auf welches der Ladezähler 301 hinweist, dann bewirkt die Vorrichtung 101, daß weitere vier
Worte dem Speicher 122 entnommen werden, und der Zähler 301 wird viermal um eins weitergeschaltet,
so daß der Abstand jeweils auf vier oder mehr Register gehalten wird. Jedoch kann eine Verzögerung,
die durch einen Konflikt mit anderen Speicherzugängen entsteht, der Grund dafür sein, daß der
Abstand sich auf drei, zwei oder sogar eins vermindert.
Die Befehle, auf die^ der Entladezähler 302 hinweist,
werden der Befehlssteuereinheit 102 zur Silbenbestimmung zugeleitet. Die Befehlssteuereinheit 102
enthält einen Schalter 1080, dessen Tore zwei Befehlsworte für diesen Zweck enthalten. Diese beiden
Worte enthalten den nächsten Befehl, der von der Vorrichtung 104 gefordert wird, einschließlich eines
zusätzlichen Wortes. Die Befehlssteuereinheit 102 zur Silbentrennung enthält einen Zähler, der die Silben
zählt. Es befinden sich acht Silben zu sechs-Bits in jedem Befehlswort. In jedem Befehl sind eine Anzahl,
z. B. eine oder mehrere Silben, enthalten. Die beiden Befehlsworte, die in der Befehlssteuereinheit
enthalten sind, enthalten 16 Silben von je 6 Bits. Diese 16 Silben bilden einen Teil der Programmkette.
Individuelle Befehle können ein, zwei oder mehrere Silben lang sein. Die Befehlssteuereinheit 102 zur
Silbenbestimmung enthält auch einen Silbenschiebezähler (SSC) und einen 16er-Zähler 1010 (Fig. 8),
der die nächste Silbe anzeigt, die nicht auf die Vor- . richtung 104 übertragen worden ist. Die Befehlssteuereinheit zur Silbenbestimmung ist im einzelnen
nicht getrennt gezeigt; sie geht jedoch aus dem Blockschaltbild der F i g. 8 genauer hervor.
Bei der Beendigung des laufenden Befehls in der Vorverarbeitungsvorrichtung 104 zeigt der Zähler
1010 den nächsten Befehl an, der der Vorrichtung 104 zugeführt werden soll. Die Silbe, auf die der
Zähler 1010 hinweist, und die nächsten drei Silben werden alle auf die Vorrichtung 104 übertragen,
wenn der Befehl vier Silben lang ist, d. h. seine maximale Befehlslänge hat. Der neue, auf die Vorrichtung
104 übertragene Befehl wird decodiert, um festzustellen, wie lang er tatsächlich ist, und der Zähler
1010 zählt ihn dann zur ersten Silbe des nächsten Befehls hinzu, und dies kann eine der bereits auf die
Vorrichtung 104 übertragenen Silben sein.
Die Vorverarbeitungsvorrichtung 104 enthält das vier-Silben-Befehlsregister, welches bei der Beschreibung
der Befehlssteuereinheit 102 zur Silbenbestimmung erwähnt worden ist, ferner die Codiereinrichtu""en.
für diese Befehle, die von dem Programmzähler
106 gezählt werden, ferner verschiedene Arten von Basisadressenregistern und andere Register.
Hauptzweck der Vorrichtung 104 ist, diejenigen Befehle, die mit der Berechnung von Adressen zusammenhängen
und mit dem Herbeiholen von Daten zu tun haben, zu decodieren, so daft--das Herbeiholen
von Daten eingeleitet werden kann, bevor· die Verrechnung der Daten ausgeführt wird. Befehle, die mit
Berechnungen zu tun haben, werden lediglich von der Vorrichtung 104 an die Warteschaltung 108
weitergeleitet, wo sie auf die Ausführung warten. Befehle zum Berechnen von Adressen werden dazu
benutzt, diese Adressen zu berechnen; die Adressen werden nach ihrer Erstellung der Verbindungsschaltung
100 zugeführt, um dem Speicher die Daten zu entnehmen. Sprungbefehle werden auch in der Vorverarbeitungsvorrichtung
104 ausgeführt. Wenn der Sprung eine Prüfung an einem Indexregister ist, dann
wird das Indexregister mit dem endgültigen Wert in der Vorrichtung 104 verglichen und der Sprung ausgeführt,
selbst wenn nicht alle Berechnungen, die mit dies'em Sprung zusammenhängen, in der Endverarbeitungsvorrichtung
110 beendet sind. Wenn andererseits der Sprung eine Prüfung von Daten verlangt,
dann wartet die Anlage, bis die Endverarbeitungsvorrichtung 110 die Daten errechnet hat, die
geprüft werden sollen. Auf-diese Weise wird im allgemeinen die Warteschaltung 108 ausgeleert. Eine
Berücksichtigung dieses zuletzt genannten Punktes* ist einer der Umstände, die den bisherigen Versuchen
im Wege standen, eine richtige Vorausschau ohne die Erfindung durchzuführen. Bei solchen Anlagen ohne
die erfindungsgemäße Einrichtung wurde vor Herstellung der Daten lediglich geraten, welchen Weg
die Programmfolge gehen würde. Daher mußten diese Anlagen oft von neuem beginnen und eine große
Zahl von Datenvorgängen löschen.
INDEX-Vorgänge
Der Indexvorgang ist ein Verfahrensschritt, der beim Programmieren verwendet wird, wenn eine
Anzahl von Angaben vorliegt und der gleiche Vorgang mit allen Angaben durchgeführt werden soll.
Dabei wird die Adresse einer Angabe jeweils um eine Zahl erhöht. Diese Zahl kann jedesmal hinzugezählt
werden, wenn ein Vorgang mit den Datenangaben 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 vum 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 Übereinstimmung
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 F i g. 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 120. Jede Adresse ist eine Speicheradresse, jedes Datenwort ist 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 Programmbezugtabellenabschnitt
PRTQ eine Hauptwarteschaltung STORQ enthalten (die 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 Datenabschnitt. Der Befehl »im Speicher festhalten«, hat da$ 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 FINST UO entfernt und Jn 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 Fig. 1 Bezug genommen. Die Schaltung 108 enthält so viele Register, daß sie vier Befehle in einem umlaufenden Zwischenspeicher aufnehmen kann, ähnlich wie die drei umlaufenden Zwischenspeicher in dem oben beschriebenen Bauteil. Ein L^dezähler 411, nämlich der Zähler FINQ-TEMP (FTÜP 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
Es wird nunmehr auf die Warteschaltung 108 und den vorübergehenden Speicher 114 der Fig. 1 Bezug genommen. Die Schaltung 108 enthält so viele Register, daß sie vier Befehle in einem umlaufenden Zwischenspeicher aufnehmen kann, ähnlich wie die drei umlaufenden Zwischenspeicher in dem oben beschriebenen Bauteil. Ein L^dezähler 411, nämlich der Zähler FINQ-TEMP (FTÜP 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., Fig. 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
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
5 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
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
der zentrale Akkumulator der Vorverarbeitungsvorrichtung (s. F i g. 8).
Es wird nun auf die Endverarbeitungsvorrichtung 110 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 Lesekontrollschaitung 1022 hinweist. Das Befehlsregister der
Endverarbeitungsvorrichtung 110 hat eine Decodier-
matrix 1023 (Fig. 8), die bei der Ausführung der io Stelle, die von dem"Stapelzähler 504 angezeigt wird.
Befehle mithilft. Die Ausgangsimpulse der Decodier- Wenn der untere Zähler 510 und der obere Zähler
matrix 1023 betätigen Addierer, Vergleicher 1021, 503 sich einander nähern und die Differenz in der
ein Schieberegister 1020 und andere logische Schal- Differenzschaltung 508 kleiner als 4 wird, dann betungen.
F i g. 8 zeigt diese Schaltungen und ihre Zu- deutet dies, daß der Stapelanhang 500 4 Worte oder
sammenarbeit. F i g. 2 zeigt die Vorrichtung 15 weniger enthält. In diesem Fall werden dem Speicher
FINST110 im einzelnen. 122 4 Worte an der Stelle entnommen, auf die der
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 20
arbeitet mit einem Code, der auch als »Polish-Code« bezeichnet wird. Das Gerät der vorliegenden Erfin-
Odung ermöglicht es, eine unbegrenzte Länge des Stapels zu erreichen, indem überschüssige Stapel- -
worte in dem Speicher festgehalten werden. Ein Teil 25 werden. Eine Schwierigkeit, die r&öglicherweise auf
des Operandenstapelsy116 (Fig. 5) ist in der Bau- tritt, ist die, daß der Stapelzähler 504 versucht, zu
einheit der Stapelworte reserviert, die sich in der viele Worte an den Speicher 122 zurückzugeben, weil
Baueinheit befinden. Wenn dieser Teil 12 volle Worte der Stapel zu hoch wird. In einem späteren Abschnitt
enthält, dann werden 4 Worte an dem Speicher 122 wird eine Schutzschaltung für die Speichergrenzen
durch die Geräte abgegeben, da der Stapel 116 voll 30 beschrieben, die mit der Vorrichtung 104 zusammenist.
Wenn der in dem DV vorhandene Teil kleiner gebaut ist. Der Stapelzähler 504 wird mit den Speials
4 Worte ist, dann wird eine Entnahme in dem chergrenzen verglichen, was weiter unten näher
Speicher 122 eingeleitet. Es sei darauf hingewiesen, erläutert wird. Dies ist notwendig, falls der Stapeldaß
bei dieser Anlage der Speicher 122 einer der anhang 500 zu voll wird und die im Speicher zur
Speicherbaueinheiten angehört, aber die Erfindung 35 Verfügung stehende Fläche überschreitet,
ist nicht auf die Verwendung eines derartigen Spei- Eine Rechenschaltung 505 ist in üblicher Weise
chers beschränkt. Alle Stapeloperationen, welche dem ausgeführt und kann Additionen, Multiplikationen,
Stapel 116 weniger als 12 Worte zuführen, oder ihn Divisionen, Subtraktionen, Vergleiche und andere
um mehr als 4 Worte entleeren, werden daher ohne logische Funktionen wie UND, NICHT, IMPLI-Zuhilfenahme
des Speichers durchgeführt. Da bei 40 ZIERE, exclusives ODER und Überträge ausführen,
einem normalen Betrieb der Stapel 116 jeweils nur In Abhängigkeit von der Decodierung in der Endverum
wenige Worte zunimmt oder abnimmt, bedeutet arbeitungsvorrichtung 110 bewirkt die Rechenschaldies,
daß Speicherübergänge vom Boden des Stapels tung 505, daß die Daten oben in dem Stapelregister
116 auf einem Minimum gehalten werden. Diese 12 501 und im zweiten Stapelregister 502 zur Ausfüh-))
eben beschriebenen Worte werden auch als Stapel- 45 rung der Rechenvorgänge benutzt werden und daß
anhang 500 in Fig. 5 bezeichnet und sind in Fig. 1 das Ergebnis oben im Stapelregister 501 wieder eindurch
die Aufschrift »St^pelanhang« auf der Verbin- geführt wird. Ein zusätzliches Register 507 ist vordungslinie
zwischen dem Stapel 116 und der Schal- gesehen, damit bei Rechnungsarten wie Division oder
tung 100 angegeben. Multiplikation die betreffenden Reste oder Multipli- *
Mit dem zwölfwortigen Stapelanhang 500 in 5° kationsprodukte größerer Länge in dieses zusätzliche
F i g. 5 sind zusätzliche Register verbunden. Einige, Register 507 aufgenommen werden können.
z.B. zwei Datenregister, sind in dem Ausführungs- Außer den eben beschriebenen Geräten und
beispiel nach F i g. 5 angegeben, wobei die beiden Schaltungen enthält das Ausführungsbeispiel der
Register die ersten beiden Worte oben im Stapel Fig. 1 in dem Adressenspeicher eine Fläche oder
getrennt von dem zwölfwortigen Stapelanhang 500 55 Ebene, die als örtlicher Zwischenspeicher 124 be-
festhalten. Im Stapelanhang 500 ist ein oberster zeichnet worden ist und eine andere Fläche oder
Zähler 503 vorhanden, der das oberste Wort in dem Ebene als ein örtliches Register 126. Die beiden
Stapelanhang 500 anzeigt. Es können auch zwei Re- Flächen oder Ebenen 124 und 126 werden direkt
gister, nämlich ein Stapel register 501 und ein zweites von Befehlen an das Laderegister, Leseregister und
Stapelregister 502, vorgesehen sein, von denen die 6o Abgaberegister usw. adressiert. Das Laderegister und
beiden ersten Worte oben im Stapel aufgenommen Abgaberegister bewirken vier Entnahmen aus dem
werden können, d. h., daß sie nicht im Stapelanhang Speicher und vier Abgaben an den Speicher. Sie
500 des Operandenstapels 116 enthalten sind. Mit bilden daher ein Mittel, mit dem der Programmierer
dem Stapelanhang 500 ist ein oberer Zähler 503 ver- jeweils vier Daten-Entnahmen und vier Daten-Ab-
bunden, der auf das Datenwort hinweist, dessen Lage 65 gaben an und von dem Register ausführen kann. Im
im Stapelanhang 500 direkt unter den Datenworten allgemeinen sind in dem Ausführungsbeispiel alle
ist, die sich in den Stapelregistern bzw. Flipflop- Register durch Adressen ansprechbar. Etwa 32 dieser
Stapelregistern 501 und 502 befinden. Ein unterer Register sind in dem Adressenspeicher enthalten und
909 625/3
17 18
nicht als Flipflops ausgebildet. Außer den Adressen- chungsregister BIAR624 weist auf den Code des
Speicherregistern, die spezielle Verwendungszwecke Programms hin, das im Zeitpunkt der Unterbrechung
haben, sind noch 16 Adressenspeicherregister ohne ausgeführt werden soll. Der Zweck des Basisunter-Aufgaben
vorgesehen, so daß der Programmierer sie brechungsspeicherregisters BISR 625 ist, auf eine
in einer beliebigen Weise verwenden kann. Dieser 5 Fläche im Speicher hinzuweisen, in der die Inhalte
Teil, der normalerweise ein Teil des örtlichen Regi- verschiedener Rechenregister gespeichert werden
sters sein würde, ist als örtlicher Zwischenspeicher können. Der Grund für eine solche Speicherung ist,
124 bezeichnet worden. daß die Befehlsroutine Rechenregister für ihren
Die Vorverarbeitungsvorrichtung 104 ist in F i g. 6 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 /I/IMST-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 in d&m 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-
62U(PHTB) weist auf die Basis der Programmbezugs- 40 führt, so daß vorhergehende Adressen nicht fälschtabelle
hin. Die Programmbezugstabelle ist eine Lese- lichßrweise 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 Speichergrenzen liegt. wird der Befehl zur Verbindungsschaltung 100 unter-Die
normalen Speichergrenzen werden weiter unten brachen, und die Daten, die bereits örtlich verfügbar
erläutert. Das Basisdatenregister 622 weist auf eine sind, werden verwendet.
Fläche des Arbeitsspeichers hin. Einige Programme 55 Die Verbindungsschaltung 100 schickt, wenn sie
können aber auch diese zuletzt genannte Arbeits- nicht anders instruiert wird, die Adresse an den
speicherfläche DBR 622 außer acht lassen. Das Basis- Speicher 122 und entnimmt dem Speicher 122 die
Programmregister 626 weist auf den Beginn des Daten, die unter dieser Adresse gespeichert sind.
Segments des gerade verarbeiteten Codes hin. Der Das Prüfgerät 645 prüft die Adresse mit Bezug
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 (F i g. 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 B/S/?625, 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
19 20
Adresse, die nicht innerhalb der normalen Speicher- Beispiel vorhanden sein, und es ist möglich, bis zu
grenzen 640 liegt, ein Grund für eine Unterbrechung. vier entsprevhende Operanden und/oder Varianten
Eine Abänderung dieser Vorgänge bei der Ent- in dem vorübergehenden Speicher (TEMP) 114 zu
nähme von Daten aus dem Speicher 122 ergibt sich, haben. Das F/NQ-TiiMP-Steuergerät 211 gibt an, an
wenn die Programmbezugstabelle benutzt wird. Bei 5 welcher Stelle von FINQ106 und TEMP114 die Indiesem
Vorgang wird ein Programmbezugstabellen- formation zugeführt wird und von wo die Infor-Grenzregister
(PRTL) 641 benutzt. Ein Befehl für mation in diesen Geräten kommt. Der FINQ-TEMP-eine
Entnahme aus dem Speicher 122 und Abgabe an Steuermechanismus 211 (der den FINQ-TEMP-Lesedas
Adressenregister 602 unter Angabe des Inhalts zähler 412 von F i g. 4 enthält), zeigt ebenfalls an,
des Programmbezugstabellen-Basisregistcrs 620 be- ίο wann FINQ108 leer ist. In diesem Fall wird das
wirkt einen Vorgang, durch den eine Adresse für die P/MST-Steuergerät 214 daran gehindert, den Inhalt
PRT (Programmbezugstabelle) berechnet wird. Diese der Schaltung (FINQ) 108 als neuen Befehl zu erAdresse
wird nun geprüft, um zu sehen, ob sie zwi- kennen. Die Befehle, die am Ausgang der Schaltung
sehen dem Inhalt, der in dem Programmbezugstabel- (FINQ) 108 entnommen werden, werden in dem Oplen-Basisregister
620 gespeichert ist, und dem Pro- 15 code- und dem Variantdecodierer 212 decodiert.
grammbezugstabellen-Grenzregister641 liegt, das als Wenn jedoch die Ausgangsimpulse der Schaltung
obere Grenze dient. Wenn ein Befehl für das Adres- (PINQ) 103 anzeigen, daß ein Variant erforderlich
senregister 602 aus dem Speicher 122 mit Bezug auf ist, dann- muß auch der entsprechende Variant dem
die PRT eine Entnahme zu machen, eine gültige vorübergehenden Speicher (TEMP) 114 durch den
Adresse zwischen dem PRT-Basisregister 620 und 20 Opcode- und Variantdecodierer 212 gleichzeitig dedem
PRT-Grenzregister oder dem PRT oberen codiert werden.
Grenzregister641 ergibt, wird das Wort der PRT Wenn festgestellt wird, daß die Information in dem-·
Grenzregister641 ergibt, wird das Wort der PRT Wenn festgestellt wird, daß die Information in dem-·
Λ entnommen und dem QßZ?-Register 1071 (Fig. 8) vorübergehenden Speicher (TEMP) 114 ein Operand
zugeführt. Das Wort, welches der PRT entnommen ist, dann wird sie in das T-Register 501 eingeführt,
wird, kann in verschiedener Weise bezeichnet wer- 25 Wenn festgestellt wird, daß die information ein
den. Das einfachste Verfahren der Bezeichnung ist Variant ist, der nicht decodiert werden' soll,.jedoch
ein »tag-Code«, der bedeutet, abwechselnde Spei- in ein Register, z. B. das T-Register 501 oder das
chergrenzen zu verwenden. Wenn das Wort mit der Schieberegister 224 eingeführt werden soll, dann wird
Bezeichnung »abwechselnde Speichergrenzen« ver- dieser Variante in das Register entsprechend dem
sehen wird, werden die letzten 18 Bits des Wortes in 30 speziellen Befehl in der Schaltung (FINQ) 108 ein-
das Adressenregister 602 eingeführt, damit sie bei gegeben.
dem nächsten Adressenherstellungsbefehl verwendet Die FINST-Steuerschaltung 214 enthält die lowerden.
Ein zusätzliches Adressenfeld auf der linken gischen Schaltungen, Flipflops, Tore usw., welche die
Seite des rechten Adressenfeldes wird in das wech- decodierten Befehle von dem Opcode- und Variantselnde
Speichergrenzenregister 642 eingeführt und 35 decodierer 212 ausführen und bewirken, daß die entdient
dazu, die Fläche des Speichers 122 zu begren- sprechenden Datenverarbeitungen in dem Rechenteil
zen, die über diese PRT-Leitung zugänglich ist. Es der Vorrichtung 110 stattfinden. Die Steuerschaltung
wird daher unmöglich, mit Hilfe der PRT-Leitung 214 liefert die Befehle, die notwendig sind, um die
einen Gegenstand anzusteuern, der außerhalb der Verarbeitung der in dem Operandenstapel 116 entFläche
liegt, die durch die Befehlsroutine bezeichnet 40 haltenen Daten zu bewirken. Das heißt, die Steuerworden
ist. Ein zusätzlicher Code, der an die PRT- schaltung 214 führt die Rechenvorgänge aus und
Leitung angeschlossen werden kann, ist ein Sprung- manipuliert den Operandenstapel 116. Der Takt-Code.
In diesem Fall wird die PRT-Leitung zum An- geberzähler 213 der Endverarbeitungsvorrichtung
\ fang einer Subroutine gemacht, und das Register 642 liefert die Taktimpulse, die für den Betrieb der St'eu-
*' wird nicht benutzt. In machen Fällen kann die PRT- 45 erschaltung 214 erforderlich sind.
Leitung auch mit dem Wort »Unterbrechung« be- Der Rechenanteil der Steuerschaltung 214 arbeitet
zeichnet werden. Dies tritKz. B. dann ein, wenn die wie folgt: Die Addierschaltung 220 führt alle arith-
Daten, auf die durch die PRT-Leitung hingewiesen metischen Operationen des Addierens, Subtrahierens
werden soll, keinen angehörigen Platz im Speicher und Dividierens aus. Der Addierer führt auch einen
haben, oder wenn aus irgendeinem Grund das Be- 50 Teil der Multiplikationsbefehle aus. Die Multiplizier-
fehlsprogramm nicht wünscht, daß der betreffenden vorrichtung 221 wird zusammen mit dem Addierer
PRT-Leitung Zugriff zu diesen Daten gegeben wird. 220 benutzt, um die Multiplikationsbefehle auszu-
Das Indexadressenregister 603 wird als Akkumu- führen. Es ist klar, daß es verschiedene Addier- und
lator bei der Berechnung der Adressen benutzt, die verschiedene Multiplizierbefehle gibt, und das Wort
auf Indexworte hinweisen. Ein getrennter Akkumu- 55 »Befehl« wird für alle diese verschiedenen Vorgänge
lator wird zum Hinweis auf Indexworte verwendet, benutzt.
weil das reguläre Adressenregister 602 die Ergeb- Bei einem arithmetischen Operanden-Wort ist das
nisse von früheren Indexvorgängen enthalten kann erste Bit das Mantissen-Zeichen, das zweite Bit das
oder auch den Inhalt von PRT-Eingaben, die unbe- Exponenten-Zeichen und das dritte bis dreizehnte Bit
rührt bleiben müssen, während das Indexwort her- 60 die Exponenten-Größe. Der Rest vom vierzehnten
beigeholt wird. Spezielle Indexbefehle machen von Bit an ist die Mantissen-Größe,
dem Indexadressenregister 603 Gebrauch. Bei diesen arithmetischen Befehlen wird die gleich-Für jeden in der Schaltung (FINQ) 108 Vorhände- förmige Notierung beibehalten, so daß die ganze Zahl nen Befehl kann entweder am entsprechenden Platz die gleiche Darstellung hat wie eine Zahl mit gleitenin dem vorübergehenden Speicher (TEMP) 114 ein 65 dem Komma. Eine ganze Zahl hat einen Exponenten Operand oder Variant vorhanden sein oder auch 0, eine Zahl mit gleitendem Komma hat einen Exnicht vorhanden sein. Es können bis zu vier Befehle ponenten, der nicht gleich 0 ist. Auf diese Weise in der Schaltung (FINQ) 108 bei dem dargestellten kann ein und derselbe arithmetische Befehl entweder
dem Indexadressenregister 603 Gebrauch. Bei diesen arithmetischen Befehlen wird die gleich-Für jeden in der Schaltung (FINQ) 108 Vorhände- förmige Notierung beibehalten, so daß die ganze Zahl nen Befehl kann entweder am entsprechenden Platz die gleiche Darstellung hat wie eine Zahl mit gleitenin dem vorübergehenden Speicher (TEMP) 114 ein 65 dem Komma. Eine ganze Zahl hat einen Exponenten Operand oder Variant vorhanden sein oder auch 0, eine Zahl mit gleitendem Komma hat einen Exnicht vorhanden sein. Es können bis zu vier Befehle ponenten, der nicht gleich 0 ist. Auf diese Weise in der Schaltung (FINQ) 108 bei dem dargestellten kann ein und derselbe arithmetische Befehl entweder
für Operanden mit einer ganzen Zahl oder auch mit gleitendem Komma benutzt werden.
Der Detektor 228 für die führende Eins und der Codierer 229 bestimmen zusammen den Betrag der
Verschiebung, die notwendig ist, um die führende Eins einer Mantissengröße in die 14. Stelle eines
Operanden einzuführen.
Die Stelle des 14. Bits des Operanden ist die höchste Stelle der Mantissengröße. Diese Arbeitsweise
des Detektors 228 für die führende Eins und des Codierers 229 ergibt eine Normierung der arithmetischen
Eingangsimpulses. Gleichzeitig muß der Ausgang des Codierers 229 von dem Exponenten abgezogen
werden.
Der Comparator und die logische Einheit 23 haben zwei Funktionen. Die logische Einheit 23 vergleicht
das auch als T-Register bezeichnete Stapelregister 501 und das auch als 5-Register bezeichnete Stapelregister
502 bezüglich der Ausgangsimpulse, um entweder die Gleichheit oder das Überwiegen des einen
oder anderen festzustellen.
Diese Eigenschaft wird auch verwendet, um einige der Befehle auszuführen, die weter unten noch beschrieben
werden, wobei es notwendig ist, die ExpOr
nenten und die Mantissen je getrennt zu vergleichen.
Bei der Durchführung der ersten Funktion, nämlich eines Vergleichs auf »gleich«, »größer als« kann
die Schaltung 230 das ganze Wort für den Vergleich nehmen, oder sie kann in Verbindung mit der Vorrichtung
222 auch einen Teil eines Wortes zum Vergleich mit dem Teil eines anderen Wortes auswählen.
Die zweite Funktion der Schaltung 230 besteht darin, die Ausgangsimpulse des T-Registers 501 und
des 5-Registers 502 zu kombinieren, um Ergebnisse von logischen Funktionen zu erhalten, z. B. von
UND, ODER, WENDE AN, BILDE DAS KOMPLEMENT. Wenn diese zweite Funktion benutzt wird, werden die Ausgangsimpulse der Schaltung 230
dem T-Register 501 zugeführt.
Es wird nun auf den dritten Teil der Schaltung, der auf der rechten Seite der F i g. 2 dargestellt ist,
eingegangen. Dieser gibt die Einzelheiten des Operandenstapels 116 bei seinem Betrieb in Verbindung
mit der Endverarbeitungsvorrichtung 110 wieder. Die Register sind in F i g. 5 dargestellt. Das T-Register
501 ist das oberste Register des Stapelanhangs, das zweite oder 5-Register 502 ist das nächste Register
über dem Stapelanhang. Das T-Register 501 wird bei jedem arithmetischen Befehl benutzt. In manchen
Fällen wird das T-Register 501 in Verbindung mit dem S-Register 502 oder mit einem P-Register 507
verwendet. Das T-Register 501 kann entweder allein verwendet werden oder auch in Verbindung mit dem
5-Register 502 oder das T-Register 501 kann in Verbindung mit dem P-Register 507 benutzt werden. Es
gibt auch einige Befehle, die das T- und 5-Register 501 und 502 zusammen benutzen und die zusammen
einige Register des Stapelanhangs 500 benutzen. Die Register T501 und S 502 können auch als Teil des
Stapels betrachtet werden. Das P-Register ist jedoch ein Hilfsregister, das verwendet wird, um Befehle
nach Bedarf auszuführen. Das T-Register 501 enthält die Summe, nachdem eine Addition oder Subtraktion
von der Addierschaltung 220 durchgeführt worden ist, d. h., im Falle einer Subtraktion oder
einer Addition erscheint die algebraische Differenz oder die algebraische Summe in dem T-Register 501,
und das P-Register 507 zeigt kein Ergebnis außer in einigen wenigen speziellen Fällen. Im Falle eines
Multiplikationsvorganges enthält am Schluß das T-Register 501 die höchsten Stellen des Produktes,
und die niedrigeren Stellen erscheinen in dem P-Register 507. Im Falle einer Division erscheint am
Schluß der Quotient in dem T-Register 501, und der Rest erscheint im P-Register507. Bei dem DV der
Erfindung sind Befehle und Operationen mit doppelter Präzision möglich. Bei solchen Fällen doppelter
Genauigkeit erscheinen die höchsten Stellen der Hälfte des Resultats in dem T-Register 501, die niedrigeren
Stellen des Resultats erscheinen im 5-Register 502, und weitere Stellen erscheinen im P-Register
507, z.B. die niedrigsten Stellen einer Summe oder eines Produktes.
Das T-Register 501 ist direkt oder indirekt mit den meisten anderen Registern des zentralen DV verbunden."
Der erste Weg des normalen Datenflusses führt von dem vorübergehenden Speicher (TEMP) 114 zum
T-Register 501, dann zum 5-Register 502 und von da zum Stapelanhang 500. Der zweite Weg des normalen
Datenflusses führt vom Stapelanhang 500 über das 5-Register 502, dann zum T-Register 501 und
von dort zu anderen Teilen der Baueinheiten, z.B. zur Schaltung STCRQ des Datenspeichers 120 des
assoziativen Speichers 19. Es sind auch Wege zu anderen Registern vorhanden.
Die Arbeitsweise des Stapelanhangs ist im Zusammenhang mit F i g. 5 beschrieben worden. Der Stapelzähler
504, der sowohl in F i g. 5 als auch in F i g. 2 zu sehen ist, enthält die Adresse der nächsten 4
Worte im Speicher 122, die in den Stapelzähler 504 gebracht werden, wenn es notwendig ist. Der Zähler
504 kann um vier weitergeschaltet werden, und die sich ergebende Adresse definiert den Platz im Speicher
des Blocks von 4 Worten, in dem die vier ältesten Operanden in dem Speicheranhang 500 gespeichert
werden können, wenn es notwendig ist.
Es wird nun auf F i g. 7 übergegangen. F i g. 7 zeigt im Blockschaltbild den Aufbau der Verbindungssthaltung
100 des DV. In der Verbindungsschaltung 100 können Sender 758 und Empfänger 762 vorgesehen
sein. Die Sender 758 und die Empfänger 762 können einen Teil einer Schaltverbindung darstellen,
die für die Maschine vorgesehen ist, von der das DV einen Teil der Erfindung- bildet, um die Verbindung
zwischen Baueinheiten der Maschine herzustellen und um den Vorrang für den Zugriff zum Speicher, z.B.
für DVs und I/O-Steuerbauteile der Maschine herzustellen.
Die Verbindungsschaltung 100 kann einen Taktgeber 77 enthalten, sowie die obenerwähnten Empfänger
(CSR) 762 und Sender (CXM) 758, ein Verbindungsadressenregister (CAR) 754, ein Verbindungsabfrageregister
(CER) 760, ein Verbindungsvorbereitungsregister (CFR) 756, ein Verbindungsspeicherregister
(CSR) 752) ein Verbindungswortzähler (CWC) 750 und einen Paritätsprüfer 764. Der Taktgeber ist als
20-MHs-Taktgeber dargestellt, zu dem die Synchronisierungsleitungen führen; der Taktgeber kann jedoch
auch wahlweise an einer anderen Stelle angeordnet werden, und es können auch andere Frequenzen
benutzt werden. Bei dem Beispiel ist als Taktgeber eine Synchronmaschine dargestellt, es ist aber
auch möglich, bei der Erfindung eine asynchrone Arbeitsweise vorzusehen. Alle Informationen, die
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änger 762 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
adressenregister754 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 schaltungSTORQ des assoziativen Speicherst oder
wird. Wegen eines solchen Ubergreifens 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 Takt-.
erhalten hat. Um die Steuerung in einem solchen geberoszillator in jeder Baueinheit betrieben werden.*1
Λ Fall nicht durcheinanderzubringen, wird die letzte Die Taktgeberoszillatoren werden von einem zentra-'
' Adresse in dem Verbindungsabfrageregister 760 fest- - Jen Haupttaktgeber synchronisiert, wie es in dem dargehalten.
Da zwei Vorgänge gleichzeitig ablaufen 25 gestellten Beispiel der Fall ist, obwohl auch eine synkönnen,
sind zwei effektive AdressenregisterEARl chrone Betriebsweise, ohne den Erfindungsgedanken
und EAR2 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- einheiten, 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 J) 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, welche einer Vielzahl von tung 104 getrennt ist, ^ so 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
(Fig. 6), von der Indexwortfläche IDXQ des asso- führen soll.
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
Programmbezugstabellevfü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 sin& 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 da- her immer höher, bis eins der Worte die erste Stufe
erreicht.
Die nächsten 15 Bits sind eine 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 Speichen
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 von W und Speicherung
des Ergebnisses unter der Adresse Z betreffen. Dies kann durch die Gleichung dargestellt werden
Z=-XY+W.
In der »Polishe-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.
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 ABU 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. Andernfalls
wird das Indexwort aus dem Speicher 122 herbeigeholt. Der Inhalt des Indexwortes wird zu
dem vorhergehenden Inhalt des Adressenregisters 602 (F i-g. 6) hinzugefügt. Hiermit ist der Vorgang
beendet, der durch den Indexbefehl verlangt wird,
ao 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 undv4.es 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-
29 30
eher 114 zugeordnet worden sind, enthält mindestens schaltung 108 und in dem vorübergehenden Speicher
einer Daten, welche die Verbindungsschaltung 100 114 befinden, entsprechen sehr genau der Folge von
aus dem Speicher 122 entnommen hat. Nur ein Platz Operatoren und Operanden nach der »Polish«-
des vorübergehenden Speichers wird in einem gege- Schreibweise des obigen Beispiels. Der einzige Mangel
benen Zeitpunkt geleert. Die Verbindungsschaltung 5 an Übereinstimmung besteht darin, daß die Va-100
muß erst den einen füllen, bevor sie einen Be- riable Z nicht in dem vorübergehenden Speicher 114
fehl annimmt, den anderen zu füllen, da nur eine spezifiziert ist. Die Variable Z ist in dem Adressen-Verbindungsschaltung
100 vorhanden ist. feld spezifiziert, das der Speicherschaltung 120 B zu-
Jedesmal, wenn die Endverarbeitungsvorrichtung geordnet ist.
110 einen Befehl ausgeführt hat, kann sie einen io Die Vorrichtung 110 führt diese Folge von Beneuen
Befehl aus der Warteschaltung entnehmen und fehlen in der Reihenfolge aus, in der sie auf sie trifft,
diesen Befehl ausführen. In dem vorliegenden Fall Es ist nicht wichtig, wie viele Befehle in der Wartekann
die Endverarbeitungsvorrichtung 110 diese Be- schaltung 108 in dem Zeitpunkt, in dem die Vorfehle
zur Übertragung von dem vorübergehenden richtung 110 sie ausführt, enthalten sind. Die VorSpeicher
zum obersten Platz des Stapels ausführen, 15 richtung 110 kann die Befehle so schnell ausführen,
sobald der vorübergehende Speicher 114 gefüllt ist, wie die Vorrichtung 104 sie abgibt, wenn es mög-
oder sie kann einige Zeit warten, weil die früheren lieh ist, oder die Vorrichtung 110 kann auch hinter
Befehle in der Warteschaltung 108 von der Vorrich- der -Vorrichtung 104 nachlaufen. Es besteht keine
tung 110 noch nicht ausgeführt sind. Es besteht notwendige Zeitbeziehung zwischen den beiden,
keine notwendige Zeitbeziehung zwischen dem Zeit- so Um das vorteilhafte Verhalten der Maschine gepunkt, in dem die Vorrichtung 104 den Befehl be- maß der Erfindung bei der Ausführung von Sprünendet und in dem die Vorrichtung 110 den Befehl gen zu würdigen, sei nunmehr beschrieben, was .einaufnimmt, um ihn auszuführen. tritt, wenn der Befehl, der auf einen .Speicherbefehl
keine notwendige Zeitbeziehung zwischen dem Zeit- so Um das vorteilhafte Verhalten der Maschine gepunkt, in dem die Vorrichtung 104 den Befehl be- maß der Erfindung bei der Ausführung von Sprünendet und in dem die Vorrichtung 110 den Befehl gen zu würdigen, sei nunmehr beschrieben, was .einaufnimmt, um ihn auszuführen. tritt, wenn der Befehl, der auf einen .Speicherbefehl
In der Zwischenzeit ist in der Vorrichtung 104 folgt, einen Sprung zu einem anderen Teil des glei-
ein Befehl zu multiplizieren decodiert worden. Der 25 chen Programmcodes fordert. In^diesem Fall ist der
Multiplikationsbefehl betrifft nicht die Vorrichtung Befehl, der dem SSM folgt, der in" der .Vorrichtung
104 und wird ungeändert auf die Warteschaltung 104 aufgefunden wird, ein Sprungbefehl. Dieser
108 als dritter Eintrag übertragen. Sprungbefehl wird decodiert. Es kann z. B. ein
Die nächsten drei Befehle bestehen aus der Folge Set-up-Sprungbefehl sein, bei dem das unbedingte
FMA, Index, FMS, die im Ablauf ähnlich sind wie 30 Bit so gesetzt ist, daß es einen unbedingten Sprung
die oben beschriebenen Befehle. Das Ergebnis ist bewirkt. In der Vorrichtung 104 bewirkt die unbeein
Befehl an die Warteschaltung 108, eine Über- dingte Sprungvariante des Set-up-Sprungbefehls, daß
tragung von dem vorübergehenden Speicher zum der Programmzähler 106 auf den neuen Wert geobersten
Platz des Stapels vorzunehmen. Der nächste bracht wird, der in dem Set-up-Sprungbefehl ange-Befehl
ist ein Additionsbefehl; er wird in der Vor- 35 geben ist. Die Vorrichtung 104 wird daher Prorichtung
104 decodiert. Es wird festgestellt, daß kein grammschritte ausführen, die von dem neuen Pro-Vorgang
in der Vorrichtung 104 erforderlich ist, und grammsegment erhalten werden. In diesem Fall hat
der Addierungsbefehl wird daher als solcher als die Anwesenheit eines unbedingten Sprunges in der
fünfter Eintrag der Warteschaltung 108 zugeleitet. Programmfolge der Vorrichtung 104 den Hinweis
Der nächste Befehl ist ein FMA-Befehl, der eine 4° gegeben, daß der Sprung ausgeführt werden soll,
Adresse aus der Programmbezugstabelle entnimmt. ojine Rücksicht darauf, was in der Vorrichtung 110
Auf ihn kann ein Indexbefehl folgen, der eine Index- passiert, und es ist daher richtig, den Sprung ohne
änderung der Adresse 620 hinzuaddiert, die aus der Rücksicht auf die Tatsache auszuführen, daß die
Programmbezugstabelle entnommen ist und die in Vorrichtung 110 diejenigen Berechnungen noch nicht
dem Adressenregister AAR 602 festgehalten wird. 45 fertiggestellt hat, welche dem Sprung vorausgehen.
Der nächste Befehl fordert eine Speicherung vom Die Vorrichtung 110 wird natürlich die notwendigen
Stapel in den Speicher. Dieser Befehl bewirkt, daß Berechnungen beenden," wenn die Warteschaltung
die gerade hergestellte Adresse, die sich in dem 108 ausgeleert wird/
Adressenregister 602 befindet, an den Adressenspei- Wenn andererseits der Vorgang in diesem Punkt
eher 118 des nächsten leeren Platzes in der Warte- 50 der Programmfolge keine Speicherung des Resul-
schaltung STORQ übertragen wird. Der nächste in tats Z, sondern eine Prüfung des Resultats Z fordert,
die Vorrichtung 110 übertragene Gegenstand ist ein um zu sehen, ob es positiv oder negativ ist, und wenn
Kommando, das eine Speicherung in der Warteschal- der Sprung von dieser Prüfung bedingt abhängig ist,
tung verlangt mit einem Hinweis darauf, welcher der dann würde die Vorrichtung 104 nicht weitergear-
vier Plätze in der Speicherschaltung (STORQ) 120 B 55 beitet haben. Die Vorrichtung 104 würde in einem
diesem Speichervorgang zugeordnet ist. Zeitpunkt einen Set-up-Sprungbefehl decodiert
In diesem Zeitpunkt sind die folgenden Befehle haben, um festzustellen, an welche Stelle er gehen
in der folgenden Ordnung in die Warteschaltung 108 soll. Der nächste Befehl, der von der Vorrichtung
eingegeben worden: 104 decodiert wird, würde ein Sprung- oder »Prüf «-
Übertrage vom vorübergehenden Speicher zum 60 Befehl gewesen sein. Der Sprung-Befehl würde eine
obersten Platz des Stapels (dies ist die Variable X); spezielle Prüfung des Resultats Z, z. B. eine Prüfung,
Übertrage vom vorübergehenden Speicher zum ober- ob Z größer als 0 ist, vorgeschrieben haben. In die-
sten Platz des Stapels (dies ist die Variable Y); MuI- sem Fall würde die Vorrichtung 104 anhalten und
tipliziere; Übertrage vom vorübergehenden Speicher warten, daß die Warteschaltung 108 leer wird, und
zum obersten Platz des Stapels (dies ist die Va- 65 nur dann würde die Vorrichtung 104 wissen, daß
riable W); Addiere; Übertrage vom obersten Platz das gewünschte Resultat in der Vorrichtung 110 her-
des Speichers in die Warteschaltung. Diese Folge gestellt worden ist. Die Prüfung würde dann der
von Befehlen und Operanden, die sich in der Warte- nächste von der Warteschaltung 108 zur Vorrich-
31 32
tung 110 übertragene Gegenstand sein und würde ten Stapelregister 502 nach unten. Der nächste Beunter
Verwendung der Vergleichsschaltung 230 der fehl, der auf Addieren lautet, bewirkt, daß die ober-Vorrichtung
110 ausgeführt. Die Vorrichtung 104 sten beiden Einträge in den Stapelregistern 501 und
würde dann den Sprung in Abhängigkeit von dem 502 miteinander addiert werden. Der Wert W wird
Ergebnis der Prüfung ausführen. Wenn der Sprung 5 mit dem Produkt XY addiert, worauf sich das Proausgeführt
würde, dann würde es notwendig sein, dukt in dem zweiten Stapelregister 502 des Stapels
weitere Befehle der Vorrichtung 101 zuzuführen. befindet. Die beiden Zahlen, die miteinander addiert
Die neue Einstellung des Befehlsadressenzählers, werden, werden einzeln gelöscht, und nur die Summe
nämlich das Register 304, würde vom Sprungsteuer- bleibt erhalten. Zu diesem Zeitpunkt befindet sich das
register 1090 (Fig. 8) aufgefunden werden. Die io Resultat im obersten Platz des Speichers und ist die
Adresse in dem Sprungsteuerregister (JCR) 1090 einzige Zahl in dem Platz des Stapels,
würde dann in das Register 304 übertragen, damit Der nächste Befehl, das ist der letzte Befehl in dem die Befehle, auf die das Programm springt, in die Ausführungsbeispiel, der in die Warteschaltung 108 Vorrichtung 101 gelangen. Nach dieser Übertragung eingeführt worden ist, lautet auf Speichern. Er besorgt die normale Arbeitsweise der Befehlssteuer- 15 wirkt, daß das Ergebnis, das nun in dem obersten einheit 102 dafür, daß der Befehl, auf den gesprun- Platz des Stapels vorhanden ist, in den Datenspeicher gen wird, in die Vorrichtung 104 eintritt. 120 der Speicherschaltung STORQ 120 B des assozi-
würde dann in das Register 304 übertragen, damit Der nächste Befehl, das ist der letzte Befehl in dem die Befehle, auf die das Programm springt, in die Ausführungsbeispiel, der in die Warteschaltung 108 Vorrichtung 101 gelangen. Nach dieser Übertragung eingeführt worden ist, lautet auf Speichern. Er besorgt die normale Arbeitsweise der Befehlssteuer- 15 wirkt, daß das Ergebnis, das nun in dem obersten einheit 102 dafür, daß der Befehl, auf den gesprun- Platz des Stapels vorhanden ist, in den Datenspeicher gen wird, in die Vorrichtung 104 eintritt. 120 der Speicherschaltung STORQ 120 B des assozi-
Die Vorrichtung 101 kann möglicherweise Befehle ativen Speichers 19 übertragen wird. In einem späteaufgenommen
haben, die auf den Sprungbefehl fol- ren Zeitpunkt spricht die Verbindungsschaltung 100
gen und die nicht ausgeführt werden sollen. Dies 20 auf das Signal von der Speicherschaltung 120 B an,
Herbeiholen von Befehlen ist jedoch ohne Schaden, das besagt, daß die Warteschaltung Daten enthält, die.
da keine Daten und keine Programmfolge geändert gespeichert werden sollen und bewirkt, daß das Reworden
sind. ■ sultat, das sich in der Speicherschaltung 120 B befin-
Die Bedingungen, welche die Vorrichtung 104" det, in den Speicher 122 zurückübertragen wird,
zum Anhalten bringen, sind stets durch spezielle 25 Nachdem nunmehr der Aufbatrpdie Wirkungsweise Op-Codes angegeben. Hierzu gehören der bedingte und das Betriebsverfahren des Erfindungegenstandes Sprung, der Sprung zur Prüfung für ein Feld, und beschrieben worden sind, wird es für nützlich gehalein spezieller Befehl, die Warteschaltung ohne ten, auf einige wichtige Eigenschaften des DV der ErSprung auszuleeren. Bei allen anderen Op-Codes findung nochmals hinzuweisen,
arbeitet die Vorrichtung 104 weiter, nachdem sie den 30 ^, . . , ^. , „ . ., , ,
laufenden Befehl ausgeführt hat. Bei diesen drei ge- Charakteristische Eigenschaften und Merkmale
zum Anhalten bringen, sind stets durch spezielle 25 Nachdem nunmehr der Aufbatrpdie Wirkungsweise Op-Codes angegeben. Hierzu gehören der bedingte und das Betriebsverfahren des Erfindungegenstandes Sprung, der Sprung zur Prüfung für ein Feld, und beschrieben worden sind, wird es für nützlich gehalein spezieller Befehl, die Warteschaltung ohne ten, auf einige wichtige Eigenschaften des DV der ErSprung auszuleeren. Bei allen anderen Op-Codes findung nochmals hinzuweisen,
arbeitet die Vorrichtung 104 weiter, nachdem sie den 30 ^, . . , ^. , „ . ., , ,
laufenden Befehl ausgeführt hat. Bei diesen drei ge- Charakteristische Eigenschaften und Merkmale
nannten Op-Codes hält die Vorrichtung 104 jedoch Das Ausführungsbeispiel der Erfindung, das hier
an, bis die Warteschaltung 108 leer ist; sie weiß, daß beschrieben worden ist, bezieht sich auf ein DV, das
in dem Zeitpunkt, in dem die Warteschaltung 108 als das Zentralsystem einer Rechenmaschine hoher
leer ist, alle früheren in der Programmfolge gefor- 35 Geschwindigkeit zur Verarbeitung komplexer Daten
derten Resultate nunmehr im obersten Platz des benutzt werden kann.
Stapelregisters 501 berechnet worden sind. Damit können arithmetische Berechnungen von
! Wir kehren nunmehr zur vorigen Ausführungsform Steuerfunktionen Datenübertragungen und auch Undes
Ausführungsbeispiels zurück. Dabei befindet sich terbrechungsvorgänge bewirkt werden, die unter der
ein Code von Befehlen in der Warteschaltung 108, 40 Leitung eines Exklusivprogramms ausgeführt werden,
der eine Übertragung von dem vorübergehenden Es* können mehrere Vorgänge gleichzeitig durchge-Speicher
zum obersten Platz des Stapelregisters, eine führt werden. Es sind Zwischenspeicher vorhanden,
zweite Übertragung von dem vorübergehenden Spei- welche viel Zeit benötigende Vorgänge, wie die Auscher
zum obersten Platz des Stapelregisters, eine führung von Befehlen an Operanden, überbrücken.
Multiplikation, eine Übertragung vom vorübergehen- 45 Das zentrale DV der Erfindung enthält drei Hauptden
Speicher zum obesrten Platz des Stapelregisters, teile: eine Verbindungsschaltung, eine Vorverarbeieine
Addition und eine^Übertragung zur Warteschal- tungsvorrichtung und ^eine Endverarbeitungsvorrichtung
enthält. Der erste Befehl, nämlich die Übertra- tung. Diese drei Vorrichtungen arbeiten im wesent-»
gung vom vorübergehenden Speicher zum obersten liehen unabhängig voneinander.
Platz des Stapelregisters bewirkt, daß eine Größe X 5° _. ,. , . , , ,'
von der Vorrichtung 104 zum obersten Platz des Die Verbindungsschaltung
Stapelregisters 501 übertragen wird. Die nächste Die Verbindungsschaltung steuert und verarbeitet Übertragung vom vorübergehenden Speicher zum alle Beziehungen zwischen dem Hauptspeicher und obersten Platz des Stapelregisters bewirkt, daß die dem zentralen Rechengerät. Die Verbindungsschal-Größe Y in dem Stapelregister 501 an oberster Stelle 55 tung 100 überwacht die verschiedenen Einheiten in eingeführt wird und der Wert X um eine Stelle nach der Vorrichtung 104 und der Endverarbeitungsvorunten in die zweite Stelle des Stapelregisters 502 ge- richtung 110, die vorübergehend Zugang zum Hauptlangt. Bei der Multiplikation werden die beiden speicher benötigen. Die Verbindungsschaltung kann obersten Werte des Stapels des Γ-Registers 501 und vier Einheiten in dem zentralen DV bedienen, näm-5-Registers 502 miteinander multipliziert, und das 60 Hch den Stapelanhang 500, den Zwischenspeicher Ergebnis wird am obersten Platz des Stapelregisters 114, die Befehlsvorausschauvorrichtung 101 und den 501 festgehalten. Der oberste Platz des Stapelregisters assoziativen Speicher 19. Der assoziative Speicher 19 501 enthält nunmehr das Produkt XY. Der nächste enthält die Speicherwarteschaltung, die Indexwarte-Befehl ist eine Übertragung vom vorübergehenden schaltung und die Warteschaltung für die Programm-Speicher zum obersten Platz des Stapelregisters 501 65 bezugstabelle. Der Stapelanhang 500 befindet sich in und bewirkt, daß ein Wert W in den obersten Platz der Endverarbeitungsvorrichtung 110 und wird je des Stapelregisters 501 eingeführt wird. Das bereits nach Bedarf bedient. Die Verbindungsschaltung 100 berechnete Produkt rutscht eine Stelle in dem zwei- führt automatisch Speicher- und Entnahmevorgänge
Platz des Stapelregisters bewirkt, daß eine Größe X 5° _. ,. , . , , ,'
von der Vorrichtung 104 zum obersten Platz des Die Verbindungsschaltung
Stapelregisters 501 übertragen wird. Die nächste Die Verbindungsschaltung steuert und verarbeitet Übertragung vom vorübergehenden Speicher zum alle Beziehungen zwischen dem Hauptspeicher und obersten Platz des Stapelregisters bewirkt, daß die dem zentralen Rechengerät. Die Verbindungsschal-Größe Y in dem Stapelregister 501 an oberster Stelle 55 tung 100 überwacht die verschiedenen Einheiten in eingeführt wird und der Wert X um eine Stelle nach der Vorrichtung 104 und der Endverarbeitungsvorunten in die zweite Stelle des Stapelregisters 502 ge- richtung 110, die vorübergehend Zugang zum Hauptlangt. Bei der Multiplikation werden die beiden speicher benötigen. Die Verbindungsschaltung kann obersten Werte des Stapels des Γ-Registers 501 und vier Einheiten in dem zentralen DV bedienen, näm-5-Registers 502 miteinander multipliziert, und das 60 Hch den Stapelanhang 500, den Zwischenspeicher Ergebnis wird am obersten Platz des Stapelregisters 114, die Befehlsvorausschauvorrichtung 101 und den 501 festgehalten. Der oberste Platz des Stapelregisters assoziativen Speicher 19. Der assoziative Speicher 19 501 enthält nunmehr das Produkt XY. Der nächste enthält die Speicherwarteschaltung, die Indexwarte-Befehl ist eine Übertragung vom vorübergehenden schaltung und die Warteschaltung für die Programm-Speicher zum obersten Platz des Stapelregisters 501 65 bezugstabelle. Der Stapelanhang 500 befindet sich in und bewirkt, daß ein Wert W in den obersten Platz der Endverarbeitungsvorrichtung 110 und wird je des Stapelregisters 501 eingeführt wird. Das bereits nach Bedarf bedient. Die Verbindungsschaltung 100 berechnete Produkt rutscht eine Stelle in dem zwei- führt automatisch Speicher- und Entnahmevorgänge
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 Befehlsvorausschauvvorrichtung 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-Steuereinheit 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.
Die Befehle werden der Vorrichtung 101 der Reihe nach entnommen und in das Advast-Befehlsregister
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
überträgt die Vorrichtung 104 das Wort an den vorübergehenden Speicher 114, der die Warteschaltung
der Endschaltung für örtliche Operanden ist. Die Additionsschaltung 601 der Vorverarbeitungsvorrichtung
kann eine Addierschaltung mit drei Eingängen sein, die in einem Additionsvorgang die Adressensilben
der Befehlsfolge, ein Basisregister und einen Indexbetrag addiert. Ein Indexvorgang, d. h. eine
Erhöhung der Adresse um einen festen Betrag, wird mit Hilfe des Advast-Adressenregisters 602 durchgeführt.
Das Advast-Adressenregister 602 ist der Akkumulator für die Indexberechnung. Die örtliche
Warteschaltung in dem assoziativen Speicher 19 kann bis zu 24 Indexworte enthalten, so daß ein guter Teil
sämtlicher Indexvorgänge ohne Bezugnahme auf den Hauptspeicher ausgeführt werden kann.
Die Programmbezugstabellenwarteschaltung des assoziativen Speichers 19 ist der örtliche Speicher
für die zuletzt benutzte Programmbezugstabelle für Bezugnahmen auf den Hauptspeicher 122. Sie ist
ein örtlicher Speicher für Steuerworte, die bei Programmsprüngen benutzt werden, für Worte, die ab-
^ wechselnde Speicheradressengrenzen enthalten und ' für Worte, die indirekte Adressen enthalten. Die
Ausführung aller Programmsprünge wird von der Vorrichtung 104 gesteuert. Die verschiedenen Arten
von Sprüngen sind oben im einzelnen aufgeführt. Die Einleitung des Sprung-Steuerregisters 1090 wird
durch die Vorrichtung 104 bewirkt, ebenso wie die Verteilung der Sprung-Steuerworte und die Bildung
des Rücklaufsteuerwortes. Die Vorrichtung 104 stellt
auch alle Bedingungen für Unterbrechungen fest, spricht auf spezielle Unterbrechungsvorgänge an und
steuert die Vorgänge für eine vorläufige Unterbrechung.
Alle in dem DV ausgeführten Befehle werden in der Vorrichtung 104 verarbeitet. Diejenigen Befehle,
die ausdrückliche Operationen der Endverarbeitungsvorrichtung 110 verlangen, werden lediglich von der
Vorrichtung 104 decodiert und an die Vorrichtung 110 übertragen.
Die Endverarbeitungsvorrichtung
\ Die Endverarbeitungsvorrichtung 110 ist derjenige )) Teil des zentralert DV, der arithmetische und logische
Operationen durchführt und auch alle Daten und Datenprüfoperationen ausführt. Alle Vorgänge der
Endverarbeitungsvorrichtung werden durch Befehle ausgelöst, die der Reihe nach der Warteschaltung
108 entnommen werden.
Wenn die Vorverarbeitungsvorrichtung 104 die Vorbereitung der Befehle für die Endverarbeitungsvorrichtung
vollendet hat, dann werden die Op-Codes in die Warteschaltung 108 eingeführt und die zugehörigen
Variantsilben und örtlich gesteuerten Operanden in dem vorübergehenden Speicher 114 festgehalten.
Wenn ein Operand betroffen ist, der aus dem Hauptspeicher entnommen werden muß, dann
liefert die Vorrichtung 104 an die Verbindungsschaltung 100 eine vorübergehende Adresse, unter
der die Verbindungsschaltung 100 den Operanden festhält, wenn er ankommt. Alle Vorgänge in der
Endverarbeitungsvorrichtung betreffen den Stapelanhang 500 und insbesondere die ersten zwei Plätze,
die durch das T-Register 501 und 5-Register 502 gebildet werden. Die Endverarbeitungsvorrichtung
110 enthält eine Vergleichsschaltung 230, die für alle Stapel- und Feld-Prüfvorgänge benutzt wird und
die auch für logische Funktionen, z. B. »IMP«, »UND/ODER« oder für Vorgänge wie »Gib Feld
frei« und »Ergänze das Feld« benutzt werden. Ein Detektor für Einsen wird zur Normierung benutzt
und zur Umwandlung von ganzzahligem Rechnen auf Rechnen mit gleitendem Komma. Er wird auch
bei Stapel- und Feldprüfungen gegenüber dem Nullwert benutzt. Eine Addierschaltung 220 wird lediglich
für arithmetische Operationen benutzt. Verschiebungen und Feldmanipulationen werden mit Hilfe
von Schiebeschaltungen durchgeführt.
Die Endverarbeitungsvorrichtung 110 arbeitet unter der Steuerung der Vorrichtung 104, kann aber
nicht angehalten werden, solange Befehle in der Warteschaltung 108 vorhanden sind. Es gibt einen
speziellen Befehl, der die Endverarbeitungsvorrichtung 110 anhält, wenn er oben in der Warteschaltung
108 erscheint. Die Warteschaltung 108 wird erst abgearbeitet, bevor irgendeine der Unterbrechungsroutinen
beginnt. Alle Übertragungen von Daten zum Hauptspeicher 122 werden von der obersten __
Stelle des Stapelregisters 501 aus vorgenommen. Beim Vorliegen eines Befehls »Speichere vom Stapel
zum Hauptspeicher« überträgt die Vorrichtung 110 den Inhalt des T-Registers 501 arT'die Speicherwarteschaltung
in dem assoziativen Speicher "19. Die Endverarbeitungsvorrichtung 110 hängt von der
Vorverarbeitungsvorrichtung 104 und der Verbindungsschaltung 100 nur so weit ab, daß für ihren
Betrieb irgendeine Angabe in der Warteschaltung 108 und in dem vorübergehenden Speicher 114 enthalten
sein muß. Solange noch Befehle für die Endverarbeitungsvorrichtung vorhanden sind, braucht die
Endverarbeitungsvorrichtung nicht auf die Vorverarbeitungsvorrichtung 104 oder die Verbindungsschaltung 100 zu warten.
Die zeitlichen Bedingungen
Die Erfindung ist nicht auf das Ausführungsbeispiol beschränkt, in dem drei verschiedene Zeiten
für die Ausführung jedes Befehls angegeben sind, nämlich eine in der Vorrichtung 104, eine in der
Verbindungsschaltung 100 und eine in der Endverarbeitungsvorrichtung 110. Die Vorverarbeitungsvorrichtung
104 berechnet Adressen und befaßt sich mit den Indexvorgängen" und Indexprüfungen. Die
Verbindungsschaltung 100 stellt die Verbindung zwischen dem Rechengerät und dem Speicher her, und
die Endverarbeitungsvorrichtung 110 verarbeitet die Daten und prüft die Daten.
Alle Befehle werden von der Vorverarbeitungsvorrichtung 104 verarbeitet, in der auch die Decodierung
der Befehle erfolgt. Einige Befehle wurden
auch in der Verbindungsschaltung 100 und in der Endverarbeitungsvorrichtung 110 verarbeitet. Diese
Schaltungen sind durch Zwischenspeicher verbunden, so daß sie unabhängig voneinander arbeiten können.
Wenn z. B. der Befehl »Addiere« von der Vorverarbeitungsvorrichtung
104 verarbeitet wird, wird er in die Warteschaltung 108 eingegeben, damit er von
der Endverarbeitungsvorrichtung 110 verarbeitet werden kann. Die Vorverarbeitungsvorrichtung 104
kann daher schon mit der Verarbeitung des nächsten Befehls beginnen, ohne darauf warten zu müssen,
daß die Endverarbeitungsvorrichtung 110 verfügbar ist. Die Verbindungsschaltung 100 kann ebenfalls
ü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 Befehls-
o worte 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 Bedingungsvergleich 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ß
55
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 DE1524103B2 (de) | 1975-03-13 |
DE1524103C3 true 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 (50)
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 |
US3593314A (en) * | 1969-06-30 | 1971-07-13 | Burroughs Corp | Multistage queuer system |
US3631400A (en) * | 1969-06-30 | 1971-12-28 | Ibm | Data-processing system having logical storage data register |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
CN111723920A (zh) * | 2019-03-22 | 2020-09-29 | 中科寒武纪科技股份有限公司 | 人工智能计算装置及相关产品 |
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 |
NL286251A (de) * | 1961-12-04 | |||
USRE26171E (en) * | 1962-03-02 | 1967-03-07 | Multiprocessing computer system | |
US3229260A (en) * | 1962-03-02 | 1966-01-11 | Ibm | 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 |
CA921609A (en) | 1973-02-20 |
US3401376A (en) | 1968-09-10 |
FR1502315A (fr) | 1967-11-18 |
DE1524103A1 (de) | 1970-12-17 |
DE1524103B2 (de) | 1975-03-13 |
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 | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3424962C2 (de) | ||
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE3306084A1 (de) | Rechnerarchitektur zur gleitkomma -addition | |
DE1524130B1 (de) | Datenverarbeitende Mehrfachanlage | |
DE2556624C2 (de) | Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE1934365A1 (de) | Automatische Programmschaltung bei Computern mit Multiprogrammierung | |
DE3638572A1 (de) | Vektorprozessor | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
EP0134831B1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
CH644461A5 (de) | Digitale multipliziereinrichtung. | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
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 | |
DE2906685C2 (de) | ||
DE10063915B4 (de) | Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2704560B1 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausfuehrung von Maschinenbefehlen | |
DE1474017C3 (de) | Datenverarbeitungsanlage | |
DE2507405A1 (de) | Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) |