DE1524103B2 - Datenverarbeitungsgerät - Google Patents

Datenverarbeitungsgerät

Info

Publication number
DE1524103B2
DE1524103B2 DE1524103A DEB0090024A DE1524103B2 DE 1524103 B2 DE1524103 B2 DE 1524103B2 DE 1524103 A DE1524103 A DE 1524103A DE B0090024 A DEB0090024 A DE B0090024A DE 1524103 B2 DE1524103 B2 DE 1524103B2
Authority
DE
Germany
Prior art keywords
memory
register
circuit
data
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE1524103A
Other languages
English (en)
Other versions
DE1524103A1 (de
DE1524103C3 (de
Inventor
George Henry West Chester Barnes
Richard Elmer Wayne Bradley
Simon Edwin Malvern Gluck
Albert King Of Prussia Sankin
Joseph Villanova Shifman
Richard Arthur West Chester Stokes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE1524103A1 publication Critical patent/DE1524103A1/de
Publication of DE1524103B2 publication Critical patent/DE1524103B2/de
Application granted granted Critical
Publication of DE1524103C3 publication Critical patent/DE1524103C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

11. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Endverarbeitungsvorrichtung (110) zur Durchführung von arithmetischen und logischen Operationen folgende Teile enthält:
a) Addierer (220) und Multiplizierer (221) zur Durchführung arithmetischer Operationen entsprechend den in der Warteschaltung (108) enthaltenen Befehlen,
b) eine Verschiebeeinrichtung (224), die mit hoher Geschwindigkeit arbeitet, um Verschiebungen und Feldbearbeitungen durchzuführen,
c) Einrichtungen (116, 500 bis 502), die die Speicherung aller Daten der Endverarbeitungsvorrichtung (110) im Hauptspeicher bewirken.
12. Datenverarbeitungsgerät nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, daß die Vorverarbeitungsvorrichtung (104)
a) ein oberes Grenzregister (1025),
b) ein unteres Grenzregister (1026),
c) eine Grenzenprüfeinrichtung (645) zur Bestimmung, ob die Zahl der Adressen zwischen den Grenzen der oberen und unteren Grenzregister liegt, enthält.
13. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Befehlsvorausschauvorrichtung (101) folgende Einrichtungen aufweist:
a) mehrere Register zur Aufnahme von auszuführenden Befehlen, die dort bis zu ihrer Vorverarbeitung in der Vorverarbeitungsvorrichtung (104) gespeichert sind,
b) mehrere Zähler (301, 302) zur Steuerung des Ladens und Entladens der Befehlsvorausschauvorrichtung (101), und
c) ein Befehlsvorausschauregister (304) zur Aufnahme von Adressen von Befehlen, die der Befehlsvorausschauvorrichtung (101) zugeführt werden sollen.
14. Datenverarbeitungsgerät nach Anspruch 5, dadurch gekennzeichnet, daß die Sprungsteuerschaltung die Sprungsteueradresse auf die Befehlsvorausschauvorrichtung (101) überträgt, so daß die Befehle, auf die das Programm springt, auf die Befehlsvorausschauvorrichtung (101) übertragen werden können.
Die Erfindung befaßt sich mit einem Datenverarbeitungsgerät zur Verarbeitung einer Folge von in Bearbeitung befindlichen und zur Bearbeitung anstehenden Befehlen mit einer Befehle ausführenden Endverarbeitungsvorrichtung und einer davor geschalteten Befehlsvorausschauvorrichtung.
Die Erfindung eignet sich insbesondere für ein Datenverarbeitungsgerät, das einen Teil eines großen elektronischen Rechengerätes bildet, der aus einzelnen Bausteinen oder Moduln aufgebaut ist. Das erfindungsgemäße Datenverarbeitungsgerät läßt sich
ίο selbst als eine Baueinheit ausführen, die in einem aus einzelnen Baueinheiten aufgebauten elektrischen Rechengerät verwendet werden kann.
Es ist ein Gerät der eingangs erwähnten A:Z bereits aus den »Proceedings of the Eastern Joint Computer Conference«, 1959, S. 48 bis 57, bekannt, bei dem die Befehlsvorausschauvorrichtung die Operanden der Befehle, die einem augenblicklich ausgeführten Befehl folgen, bereitstellt, bei dem jedoch bei einem bedingten Sprungbefehl das negative Ergebnis der Bedingungsprüfung zunächst vorausgesetzt wird und die tatsächliche Bedingungsprü·^, fung parallel zur Ausführung weiterer Befehle ab-. lauft. Wird das Ergebnis der Bedingungsprüfung jedoch positiv, so wird mit Hilfe der in der Befehls-Vorausschauvorrichtung gespeicherten· Information der Zustand des Datenverarbeitungsgerätes vor Ausführung des bedingten Sprungbefehls wiederhergestellt. Bei einem positiven Ergebnis wird also der gleichmäßige kontinuierliche Datenfluß zeitweilig unterbrochen, so daß der Endverarbeitungsvorrichtung zeitweise gar keine Daten mehr zur Bearbeitung zugeführt werden. Dies führt zu einer Verminderung der Arbeitsgeschwindigkeit des Datenverarbeitungsgeräts, und zwar insbesondere dann, wenn die Be- dingungsprüfung häufig zu einem positiven Ergebnis führt. Der vorzeitige Zugriff zu neuen Daten ist also bei der Bedingungsprüfung mit positivem Ergebnis nachteilig und kann bei dem vorliegenden Gerät jeweils nur durch zeitraubende Routinearbeitsabläufe korrigiert werden.
Es ist andererseits auch nach einer Veröffentlichung von Werner Buchholz: »Planing a Computer System — Project Stretch«, McGraw Hill Book Company, 1962, S. 228 bis 247, bereits bekannt, eine Vorverarbeitungsvorrichtung in einem Datenverarbeitungsgerät vorzusehen". Die Vorverarbeitungsvorrichtung arbeitet jedoch so, daß der Datenfluß jeweils unterbrochen wird, bis die Recheneinheit eine Rechenoperation abgeschlossen hat, und daß erst dann der nächste Befehl abberufen wird. Bei dieser Arbeitsweise sind jedoch in jedem Fall Verzögerungen vorhanden, unabhängig davon, ob ein Sprung ausgeführt wird oder nicht.
Es ist ferner nach der Druckschrift IBM-System/360 »Principles of Operation, S. 63 und 64, und zwar insbesondere aus dem Abschnitt »Decisions-Making«, daß zwischen bedingten und unbebingten Sprungbefehlen zu unterscheiden ist, wobei die bedingten Sprungbefehle erfolgreich oder nicht erfolgreich sein können. Erfolgreich ist ein bedingter Sprungbefehl dann, wenn eine bestimmte Bedingung erfüllt wird; nicht erfolgreich ist er dann, wenn eine bestimmte Bedingung nicht erfüllt wird. Es ist dabei auch nach dieser Literaturstelle, und zwar insbesondere dem Abschnitt mit der Überschrift »Sequential Instruction Execution« bekannt, wie die Befehle und auch Sprungbefehle nacheinander ausgeführt werden. Es wird jeweils nur ein Befehl aus einer
Speichervorrichtung abgerufen. Erst wenn ein solcher Befehl ausgeführt ist, kann der nächste Befehl abgerufen werden. Folglich muß die Datenverarbeitungsvorrichtung nach Ausführung eines Befehls jeweils warten, bis der nächste abgerufene Befehl von seinem Speicherplatz übertragen worden ist. Es ist bei diesem Datenverarbeitungsgerät keine Befehlsvorausschauvorrichtung vorgesehen, wie beispielsweise bei dem oben beschriebenen Gerät der eingangs erwähnten Art. ίο
Es ist andererseits aus der deutschen Auslegeschrift 1181948 ein Datenverarbeitungsgerät bekannt, welches zwei Speicher verschiedener Eigenschaften enthält, die durch ein Hilfsrechenwerk miteinander verbunden sind. Alle Daten, die von dem einen Speicher in den anderen überführt werden, müssen das Hilfsrechenwerk passieren. Während des Durchlaufs durch das Hilfsrechenwerk werden die Daten, wenn ein entsprechender Befehl vorliegt, verarbeitet. Das Hilfsrechenwerk arbeitet daher zu bestimmten Zeiten als arithmetisches Rechenwerk und zu anderen Zeiten lediglich als Übertragungsglied. Man sieht, daß auch bei diesem Datenverarbeitungsgerät der Datenfluß unterbrochen wird, wenn nämlich das Hilfsrechenwerk als arithmetisches Rechenwerk verwendet wird.
Es ist darüber hinaus aus einer Veröffentlichung von F. P. B r ο ο k s aus dem Proc. of the Eastern Computer Conference, 9. bis 13. Dezember 1957, S. 128 bis 132, bekannt, eine »interruptÄ-Schaltung zu verwenden, bei der eine Unterbrechung nach Ausführung eines jeden Befehls auftritt. Diese bekannte Schaltung zeigt lediglich an, daß ein bereits fehlerhafter Zustand vorliegt, zu dessen Beseitigung wieder wertvolle Rechenzeit verlorengeht.
Bei all diesen bekannten Anordnungen werden die Daten nicht in einem kontinuierlichen Datenfluß verarbeitet, sondern es wird immer wieder zu Unterbrechungen des Datenflusses kommen. Damit wird die Verarbeitungsgeschwindigkeit erheblich verlangsamt.
Der Erfindung liegt die Aufgabe zugrunde, ein Datenverarbeitungsgerät der eingangs erwähnten Art zu schaffen, bei dem Daten in der Endverarbeitungsvorrichtung weitestgehend stetig und fortlaufend verarbeitet werden. ^
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Anspruchs 1 gelöst.
Eine wesentliche Verbesserung des erfindungsgemäßen Datenverarbeitungsgeräts ist durch die Warteschaltung bedingt. Die Warteschaltung ermöglicht es, daß die Vorverarbeitungsvorrichtung Befehle vorverarbeitet und weitere Datenübertragungen so schnell wie möglich einleitet. Diese vorverarbeiteten Befehle werden in der Warteschaltung gespeichert, wo sie auf die Verarbeitung in der Endverarbeitungsvorrichtung warten. Dadurch kann die Endverarbeitungsvorrichtung Befehle mit größtmöglicher Geschwindigkeit verarbeiten, wobei nur eine Begrenzung durch die Anzahl der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung gegeben ist. Folglich hängen die Vorverarbeitungsgeschwindigkeit der Vorverarbeitungsvorrichtung und die Verarbeitungsgeschwindigkeit der Endverarbeitungsvorrichtung in keiner Weise von der Endverarbeitungsvorrichtung bzw. der Vorverarbeitungsvorrichtung ab. Vielmehr sind die Vorverarbeitung und die Endverarbeitung unabhängig voneinander, wobei sowohl die Vorverarbeitungsvorrichtung als auch die Endverarbeitungsvorrichtung am Eingang jeweils eine Warteschlange von Befehlen aufweisen, die zur Bearbeitung anstehen. Sowohl die Vorverarbeitungsvorrichtung als auch die Endverarbeitungsvorrichtung können damit stetig die maximale Menge der Daten verarbeiten.
Bei der erfindungsgemäßen Anordnung werden in der Vorverarbeitungsvorrichtung die Adressen der nachfolgenden Befehle im voraus bestimmt. Wenn ein bedingter Sprungbefehl auftritt, wird eine weitere Verarbeitung von Befehlen durch die Vorverarbeitungsvorrichtung verhindert, bis über den bedingten Sprungbefehl entschieden ist. Zu dieser Zeit arbeitet jedoch die Endverarbeitungsvorrichtung noch die in der Warteschaltung enthaltenen Befehle ab, wodurch der Datenfluß in der Endverarbeitungsvorrichtung gleichmäßig weiterläuft. Erst wenn die Endverarbeitungsvorrichtung die Daten für einen Bedingungsvergleich ermittelt hat, und der Vergleich durchgeführt ist, werden weitere Befehle nach dem neuen Programm durch die Vorverarbeitungsvorrichtung ausgeführt.
Durch das erfindungsgemäße Datenverarbeitungsgerät wird die sogenannte zweiter Generation von Rechenmaschinen verbessert. Die erfindungsgemäßa Anordnung ermöglicht eine bessere Vorausschau auf Befehle oder eine bessere Vorbereitung. Das erfindungsgemäße Datenverarbeitungsgerät, das im folgenden mit der Abkürzung »DV« bezeichnet ist, ist so ausgebildet, daß sich weniger Unterbrechungen beim Betrieb des Geräts ergeben als bei den bekannten derartigen Geräten. Die erfindungsgemäße Lehre bringt den Vorteil mit sich, daß wesentlich weniger Operationen und Vorgänge erforderlich sind als bisher, um Rechenvorgänge auszuführen. So werden bei dem DV gemäß der Erfindung die Adressen für die Befehlsvorausschau der Vorverarbeitungsvorrichtung zugeführt, in der die Verarbeitung der Befehle vorgenommen wird. Die Befehle werden vorher der Befehlsvorausschauvorrichtung zugeleitet, so daß bei Auftreten eines Sprungs, wie bereits oben erwähnt, eine Wiederholung von unnötigen und unerwünschten Schritten nicht notwendig ist. Das heißt, die Vorausschau, ob ein Sprung eintreten wird, findet statt, bevor eine^ Vorverarbeitung in dem Rechner vorgenommen wird, und es wird über den Sprung entschieden, bevor irgendwelche Schritte oder Datenmanipulationen stattfinden.
Zweckmäßigerweise erfolgt die Vorverarbeitung in der Vorverarbeitungsvorrichtung unabhängig und gleichzeitig mit der Verarbeitung der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung.
Dadurch wird ein schnelleres Arbeiten und ein maximaler Wirkungsgrad der Ausnutzung der Einheiten des DV ohne Erhöhung der Programmierungsschwierigkeit erreicht. Die Funktionen der Einheiten des DV werden aufgeteilt. Da individuelle Einheiten für jede individuelle Funktion vorgesehen sind, und zwar die Befehlsvorausschauvorrichtung und ferner die Vorverarbeitungs- und die Endverarbeitungsvorrichtungen kann ein Parallelbetrieb bei der Ausführung von Befehlen erfolgen.
Der Parallelbetrieb bringt den Vorteil mit sich, daß sich der Programmierer nicht mit den Einzelheiten der Operationen in dem Gerät zu befassen braucht. Dies ist ein Vorteil, sogar gegenüber geplanten späteren Maschinen, als der vorliegenden,
ζ. B. bei Rechenanlagen, die in der Veröffentlichung von »AFIPS Conference Proceedings«, Band 26, Teil II, 1964, »Fall Joint Computer Conference« unter dem Titel »Very High Speed Computer System« von der Association for Computing Machinery usw., Copyright 1965, von der American Federation of Information Processing Societies, 211 East 43rd Street, New York, N. Y. 10017, Sparton Books, Inc., 1106 Conneticut Ave., N.W. Washington, D. C, auf den S. 33 bis 68 beschrieben sind.
Weitere wesentliche Ausgestaltungen des erfindungsgemäßen DV sind durch die weiteren Unteransprüche gekennzeichnet.
Der Ausdruck »Baueinheit« oder »Modul« soll im folgenden unabhängig funktionsfähige Einheiten bezeichnen. Für den Ausdruck »Eingabe-Ausgabe« wird die Abkürzung »I/O« verwendet.
Ausführungsbeispiele der Erfindung werden nachstehend an Hand der Zeichnungen beschrieben. Dabei zeigt
F i g. 1 ein Blockschaltbild, welches ein erstes Ausführungsbeispiel des Erfindungsgegenstandes darstellt, v
F i g. 2 ein Blockschaltbild einer Ausführungsform einer Endverarbeitungsvorrichtung, die zusammen mit dem Ausführungsbeispiel der Erfindung nach F i g. 1 verwendet werden kann,
F i g. 3 ein Blockschaltbild einer Ausführung einer Befehlsvorausschauvorrichtung, die in Verbindung mit der Ausführung der Erfindung nach F i g. 1 verwendet werden kann,
F i g. 4 ein Blockschaltbild, welches die Beziehung zwischen der Warteschaltung, einem Zwischenspei-Burroughs Corp. Detroit, Mich. Einige der Befehle haben kein Adressenfeld; einige Befehle haben ein Adressenfeld. Um z. B. ein Wort im Speicher dem Operandenstapel oben zuzuführen, sind zwei Befehle erforderlich. Der erste Befehl holt das Wort vom Speicher und setzt es oben auf den Stapel. Der zweite Befehl addiert die beiden oberen Worte des Stapels. Der Grund für die Aufteilung der Funktion auf verschiedene Befehle ist der, daß der Befehl ein Wort aus dem Speicher hervorzuholen, in einem frühen Zeitpunkt der Folge ausgeführt wird, so daß Daten in dem Zeitpunkt vorhanden sind, in dem der Befehl zur Durchführung der Addition ausgeführt wird.
In F i g. 1 sind folgende Schaltungen dargestellt. Eine Verbindungsschaltung 100, welche die Verbindungen ..vom und zum Speicher 122 herstellt; eine Befehlsvorausschauvorrichtung 101, die noch nicht ausgeführte Befehle festhält; eine Befehlssteuereinheit 102, die zur Feststellung von Silben zum Aufteilen von Befehlen dient; eine Vorverarbeitungsvorrichtung 104 mit der Bezeichnung »ADVAST«·' einen Programmzähler 106 mit einem Register (PCjR); eine Warteschaltung 108 Jiür Endbefehle (FINQ), die eine Gruppe von kurze? ^Registern enthält, eine Endverarbeitungsvorrichtung 110 (FINST); einen vorübergehenden Speicher 114 (TJEMP); einen Operandenstapel 116; einen assoziativen Speicher 19, der zwei Segmente hat, nämlich einen Teil 118, in dem die Adressen festgehalten werden und einen Teil 120, in dem die Daten festgehalten werden. In F i g. 1 sind ferner zwei Kanäle für Daten angegeben; ein Kanal 119 für Adressen, die einem Speicher 122 zugeführt werden und ein Kanal 117 für Daten, die
eher und der Endverarbeitungsvorrichtung des Aus- 35 zur Vorverarbeitungsvorrichtung 104 zurückgeführt führungsbeispiels zeigt, das in F i g. 1 dargestellt ist, werden. Der in F i g. 1 dargestellte Speicher 122 ist
F i g. 5 ein Blockschaltbild, das ausführlicher den Operandenstapel, die Endverarbeitungsvorrichtung und die zugehörigen Steuerschaltungen und Verbinder Hauptspeicher, der aber keinen Teil der Baueinheit bildet. Der Ausdruck »Baueinheit«, wie er hier verwendet wird, soll nicht auf mechanische Be-
dungsgeräte mit ihren zugehörigen Steuerschaltungen 40 grenzungen, wie Gehäuse, beschränkt sein, sondern für das Ausführungsbeispiel der F i g. 1 darstellt, '
F i g. 6 ein Blockschaltbild, welches die Vorverarbeitungsvorrichtung und die dazugehörigen Speichereinheiten der F i g. 1 zeigt,
F i g. 7 ein vereinfachtes Blockschaltbild, welches die Verbindungsgeräte für das Ausführungsbeispiel nach F i g. 1 darstellt,
F i g. 8 ein Blockschaltbild für das Ausführungsbeispiel nach F i g. 1, welches jedoch weitere Einzelheiten bringt, dieses Schaltbild zeigt die Zusammen-Setzung der Fig. 8A, 8B und 8C, die zusammen die F i g. 8 ergeben.
In F i g. 1 ist ein vereinfachtes Blockschaltbild eines bevorzugten Ausführungsbeispiels des DV geist ein Ausdruck, der sich auf die unabhängige Arbeitsweise und den Aufbau des DV gemäß der Erfindung bezieht.
Die Arbeitsweise des in Fig. 1 dargestellten DV ist wie folgt: Befehle werden dem Speicher 122 über die Verbindungsschaltung 100 entnommen und der Befehlsvorausschauvorrichtung 101 zugeführt. Mit der Vorrichtung 101 ist ein Adressenregister oder Adressenzähler ILAR oder auch ILAR-Zählei (F i g. 3) verbunden, das die Adressen für die Befehle enthält, die der Vorrichtung 101 zugeführt werden. Dieses Adressenregister enthält eine Adresse, die etwas vor der Adresse liegt, die in dem Programmzähler 106 enthalten ist. Die Vorrichtung 101
maß der Erfindung dargestellt, wobei das Gerät zur 55 enthält eine Anzahl von Registern, z. B. 12 Register schnellen Durchführung von Programmen dienen sowie ein Adressenregister, welches den Platz im soll. Das Gerät arbeitet parallel mit Hilfe von Pro- Speicher 122 steuert, dem der nächste Befehl entgrammfolgen, die so beschrieben sind, als ob sie nommen werden soll und auch zwei Zähler 301 und schrittweise nacheinander auf üblichen, nicht parallel 302 (F i g. 3), welche die Zahl der Befehle, die in arbeitenden Maschinen ausgeführt werden sollten. 60 der Vorrichtung 101 gerade enthalten sind, befolgen. Die Befehlsfolge besteht aus Befehlen, die im Prinzip
etwa wie die Befehle für die Burroughs-B-5000- und
die Burroughs-B-5500-Maschine aufgebaut sind und
die in den folgenden Veröffentlichungen beschrieben
sind: »Burroughs Militarized Modular Data Processing System«, Burroughs' Corp., Paoli, Penna;
Handbuch »Burroughs B 5500, Information Processing Systems, Reference Manual, Copyright 1964,
Die beiden Zähler 301 und 302, die auch als Zeiger bezeichnet sein können, arbeiten als Ringzähler, wobei der Ladezähler 301 viermal jedesmal um eins weiterschaltet, wenn zusätzliche vier Worte dem Speicher entnommen werden, und der Entladezähler jedesmal um eins weiterschaltet, wenn ein Wort der Vorrichtung 101 entnommen und in die Befehlssteuereinheit 102 überführt wird. Der Bereich hinter
509 511/123
9 10
dem Zähler 301 und vor dem Zähler 302 ist mit gül- nicht getrennt gezeigt; sie geht jedoch aus dem Block-
tigen Befehlen gefüllt. Der Bereich hinter dem Zäh- schaltbild der F i g. 8 genauer hervor,
ler 302 bis zu dem nächsten Zähler 301 ist mit ver- Bei der Beendigung des laufenden Befehls in der
arbeiteten Befehlen gefüllt. Vorverarbeitungsvorrichtung 104 zeigt der Zähler
Die beiden Zähler, von denen der Zähler 301 als 5 1010 den nächsten Befehl an, der der Vorrichtung
Ladezähler und der Zähler 302 als Entladezähler be- 104 zugeführt werden soll. Die Silbe, auf die der
zeichnet werden kann, arbeiten wie folgt. Der Lade- Zähler 1010 hinweist, und die nächsten drei Silben
zähler 301 ist ein üblicher Zähler, der bei dem Aus- werden alle auf die Vorrichtung 104 übertragen,
führungsbeispiel mit 12 Befehlen, z. B. zuerst von 0 wenn der Befehl vier Silben lang ist, d. h. seine maxi-
bis 11 zählt, entsprechend den 12 Registern bei der io male Befehlslänge hat. Der neue, auf die Vorrichtung
Ausführung nach F i g. 3. Wenn nicht ein Sprung- 104 übertragene Befehl wird decodiert, um festzu-
befehl durch das Programm ausgeführt wird, dann stellen, wie lang er tatsächlich ist, und der Zähler
schaltet der Ladezähler immer vom fünften Register 1010 zählt ihn dann zur ersten Silbe des nächsten
auf das zwölfte Register zurück, bis ein Sprung aus- Befehls hinzu, und dies kann eine der bereits auf die
geführt wird. 15 Vorrichtung 104 übertragenen Silben sein.
Im Falle eines Sprunges wird auf das erste Register Die Vorverarbeitungsvorrichtung 104 enthält das zurückgeschaltet. Die Zahl der Register in einer vier-Silben-Befehlsregister, welches bei der Beschrei-Schaltung soll nur als Beispiel dienen; es können bung der Befehlssteuereinheit 102 zur Silbenbestimnach der Erfindung auch andere Zahlen von Re- mung erwähnt worden ist, ferner die Codiereinrichgistern, die größer oder kleiner sind, z.B. 16 oder 20 timoen «ir diese Befehle, die von dem Programm-8 Register, verwendet werden. Der Zähler 301 be- zähler 106 gezählt werden, ferner verschiedene Arten stimmt, in welches Register das nächste Wort vom von Basisadressenregistern und andere Register. Speicher 122 eingeführt wird. Beim Umlauf ist das Hauptzweck der Vorrichtung 104 ist, diejenigen BeRegister, auf welches der Zähler 301 gerade hinweist, fehle, die mit der Berechnung von Adressen zusamdasjenige, welches das Befehlswort vom Speicher 122 25 menhängen und mit dem Herb&ihplen von Daten zu erhält. Außerdem ist ein ILAR-Zählei 304 vorge- tun haben, zu decodieren, so daß das. Herbeiholen sehen. Der ILAR-Zahler 304 entnimmt vier Worte von Daten eingeleitet werden kann, bevor die Verauf einmal aus dem Speicher 122. Um dies zu tun, rechnung der Daten ausgeführt wird. Befehle, die mit zählt der ILAR.-Zähler 304 von 0 bis 218 jeweils um Berechnungen zu tun haben, werden lediglich von vier. Der ILAR-Zähler 304 steuert daher die Vier- 30 der Vorrichtung 104 an die Warteschaltung 108 fach-Schritte in der Vorrichtung 101. Der Entlade- weitergeleitet, wo sie auf die Ausführung v/arten, zähler 302 weist gleichzeitig auf eines der zwölf Re- Befehle zum Berechnen von Adressen werden dazu gister in der Vorrichtung 101 hin. Der Entladezähler benutzt, diese Adressen zu berechnen; die Adressen 302 entleert jeweils ein Register. Der Entladezähler werden nach ihrer Erstellung der Verbindungsschal- 302 jagt den Ladezähler 301. Wenn jedoch der Ent- 35 tung 100 zugeführt, um dem Speicher die Daten zu ladezähler 302 sich bis auf vier Register demjenigen entnehmen. Sprungbefehle werden auch in der Vornähert, auf welches der Ladezähler 301 hinweist, Verarbeitungsvorrichtung 104 ausgeführt. Wenn der dann bewirkt die Vorrichtung 101, daß weitere vier Sprung eine Prüfung an einem Indexregister ist, dann Worte dem Speicher 122 entnommen werden, und wird das Indexregister mit dem endgültigen Wert in der Zähler 301 wird viermal um eins weitergeschal- 40 der Vorrichtung 104 verglichen und der Sprung austet, so daß der Abstand jeweils auf vier oder mehr geführt, selbst wenn nicht alle Berechnungen, die mit Register gehalten wird. Jedoch kann eine Verzöge- diesem Sprung zusammenhängen, in der Endverrung, die durch einen Konflikt mit anderen Speicher- arbeitungsvorrichtung 110 beendet sind. Wenn anzugängen entsteht, der Grund dafür sein, daß der dererseits der Sprung eine Prüfung von Daten ver-Abstand sich auf drei, zwei oder sogar eins ver- 45 langt, dann wartet die Anlage, bis die Endverarbeimindert. tungsvorrichtung 110 die Daten errechnet hat, die Die Befehle, auf ^ie der Entladezähler 302 hin- geprüft werden sollen. Auf diese Weise wird im allweist, werden der Befehlssteuereinheit 102 zur Silben- gemeinen die Warteschaltung 108 ausgeleert. Eine bestimmung zugeleitet. Die Befehlssteuereinheit 102 Berücksichtigung dieses zuletzt genannten Punktes enthält einen Schalter 1080, dessen Tore zwei Be- 50 ist einer der Umstände, die den bisherigen Versuchen fehlsworte für diesen Zweck enthalten. Diese beiden im Wege standen, eine richtige Vorausschau ohne die Worte enthalten den nächsten Befehl, der von der Erfindung durchzuführen. Bei solchen Anlagen ohne Vorrichtung 104 gefordert wird, einschließlich eines die erfindungsgemäße Einrichtung wurde vor Herzusätzlichen Wortes. Die Befehlssteuereinheit 102 zur stellung der Daten lediglich geraten, welchen Weg Silbentrennung enthält einen Zähler, der die Silben 55 die Programmfolge gehen würde. Daher mußten diese zählt. Es befinden sich acht Silben zu sechs Bits in Anlagen oft von neuem beginnen und eine große jedem Befehlswort. In jedem Befehl sind eine An- Zahl von Datenvorgängen löschen, zahl, z. B. eine oder mehrere Silben, enthalten. Die
beiden Befehlsworte, die in der Befehlssteuereinheit INDEX-Vorgänge
102 enthalten sind, enthalten 16 Silben von je 6 Bits. 60
Diese 16 Silben bilden einen Teil der Programmkette. Der Indexvorgang ist ein Verfahrensschritt, der
Individuelle Befehle können ein, zwei oder mehrere beim Programmieren verwendet wird, wenn eine
Silben lang sein. Die Befehlssteuereinheit 102 zur Anzahl von Angaben vorliegt und der gleiche Vor-
Silbenbestimmung enthält auch einen Silbenschiebe- gang mit allen Angaben durchgeführt werden soll,
zähler (5SC) und einen 16er-Zähler 1010 (Fig. 8), 65 Dabei wird die Adresse einer Angabe jeweils um eine
der die nächste Silbe anzeigt, die nicht auf die Vor- Zahl erhöht. Diese Zahl kann jedesmal hinzugezählt
richtung 104 übertragen worden ist. Die Befehls- werden, wenn ein Vorgang mit den Datenangaben
Steuereinheit zur Silbenbestimmung ist im einzelnen ausgeführt ist. Da die Operationen, die mit den be-
treffenden Datenangaben durchgeführt werden sollen, jedesmal die gleichen sind, wird jedesmal der gleiche Programmcode zum Ablauf gebracht. Dies bedeutet, daß am Ende dieses Teils des Programmcodes das Indexregister um einen Schritt weitergeschaltet wird, so daß es beim nächstenmal die nächste Datengruppe verarbeitet. Das Indexregister wird auch darauf geprüft, ob es seinen Grenzwert erreicht hat, d. h., ob alle Datengruppen verarbeitet worden sind oder nicht. Dieser Vorgang kann im voraus vom Programmierer angegeben werden. Er befindet sich daher in der Programmfolge und hängt nicht davon ab, was mit den Daten passiert. Es wird also im voraus bestimmt, was mit den Daten getan werden soll, unabhängig davon, was mit den Daten passiert. Der Ablauf der Operation wird daher nicht gestört, wenn die Datenverarbeitungsbefehle noch in der Warteschaltung 108 unausgeführt zurückgehalten werden, solange die Vorrichtung 104 das Indexregister IDXQ (F i g. 6 und 8) auf seinen Grenzwert prüft und in Abhängigkeit davon die Verarbeitung in Überein-. Stimmung mit den Programmstufen einleitet, die an * der Stelle des Speichers festgehalten sind, der durch den Indexprüfbefehl gekennzeichnet ist. Es ist bekannt, daß diese Befehle schließlich dann vollzogen werden, wenn die Warteschaltung 108 ausgeleert wird.
Ein praktisches Beispiel der Befehlsvorausschauvorrichtung 101 wird im folgenden beschrieben. Bei dem Beispiel werden Zähler oder Zeiger in Verbindung mit der Speicherfläche verwendet. Bei dem Beispiel, das in F i g. 3 dargestellt ist, sind Lade- und Entladezähler 301 und 302 vorgesehen, die nur eine Fläche von 12 Worten in der Vorrichtung 101 überstreichen. Dem Beispiel liegt die Absicht zugrunde, in der Befehlsvorausschauvorrichtung 101 einen Block von z. B. vier Programmworten zu haben, der einen Abschnitt eines Programms enthält, auf den die Programmfolge bei der nächsten Übertragung springen kann. Die Ausdrücke »Übertragung«, »Sprung« und »Verzweigung« sind alle synonym.
In der Befehlsvorausschauvorrichtung 101 ist eine Gruppe von 12 Worten enthalten, wobei die Worte ) 52 Bits aufweisen können, von denen 48 Befehle sind. Zwei Bits sind sogenannte Bezeichnungs-Bits, und ein Bit dient der Paritätsprüfung.
Wenn der Entladezähler 302 dem Ladezähler 301 folgt und den Abstand auf vier Worte oder weniger verringert, wird ein weiterer Entnahmezyklus automatisch von dem Hauptspeicher 122 ausgeführt, um die Speicherfläche mit Befehlen zu versorgen. Ein unabhängiges Register, nämlich der Adressenzähler oder Vorschauadressenzähler 304 (F i g. 3), ist vorgesehen, das die erste Adresse in dem Speicher 122 liefert, aus dem die Entnahme gemacht wird.
Bei dem Ausführungsbeispiel der Fig. 3 ist ein Bereich der Befehlsvorausschauvorrichtung 101 vorgesehen, mit dem das Herbeiholen von Befehlen beim Sprung abgekürzt werden soll. Der vier-Worte-Block mit der Bezeichnung »alte Sprungeingangsfläche«, welche den »alten Sprungeingangspunkt« enthält, wird beibehalten. Die Vorrichtung 101 enthält einen Umlaufzwischenspeicher für 12 Worte mit dem Entladezähler 302 und dem Ladezähler 301. Die vier zusätzlichen Worte unter den zwölfen enthalten den Eingangspunkt beim letzten Sprung. Die Überlegung ist hier, daß ziemlich häufig Programme wiederholt zum selben Eingangspunkt springen. Beim Springen zum gleichen Eingangspunkt werden die Worte, die bereits in der Vorrichtung 101 vorhanden sind, nochmals benutzt. Wenn ein Sprung zu einem neuen Eingangspunkt gemacht wird, werden die vier Worte des alten Sprungeingangs ignoriert und neue Befehle herbeigeholt.
Die Bezeichnung Adressenspeicher bezieht sich auf kleine Speicher mit gleichmäßigen Zugriffs- und Umlaufzeiten, die dem Taktgeber angepaßt sind und die mit der Herkunft und/oder dem Verbleib der Daten eng gekoppelt sind. Diese Speicher können örtliche Register 126, vorübergehende Speicher 114, einen Stapelanhang 500 und örtliche Zwischenspeicher 124 enthalten, die einen ersten Adressenspeicher und eine Vorrichtung 101 bilden können, wobei der assoziative Speicher 19 eine Programmbezugstabelle und eine Warteschaltung für Indexworte aufweist, sowie einen Wartespeicher, die einen zweiten Adressenspeicher bilden können.
Es wird nun wieder auf F i g. 1 und insbesondere auf den assoziativen Speicher 19 Bezug genommen. Der assoziative Speicher 19 enthält zwei Teile 118' und 120. Er enthält Raum für 28 Adressen und Raum für 28 Datenworte, d. h. einen Adressenspeicher 118 und einen Datenspeicher "Γ20-. Jede Adresse ist eine Speicheradresse, jedes Datenwort'1st unter entsprechenden Bedingungen eine Wiedergabe des Datenwortes, die in dem Speicher 122 von der zugehörigen Adresse aufgefunden wird. Der assoziative Speicher 19 wird dazu benutzt, den Entnahmezyklus für den Speicher 122 kurzzuschließen. Wenn eine Adresse dem Speicher 122 zugeführt wird, wird sie mit dem Adressenfeld (in 118) des assoziativen Speichers 19 verglichen. Wenn der Vergleich erfolgreich ist, wird das Datenfeld in dem assoziativen Speicher 19 an Stelle des Datenfeldes in dem Hauptspeicher 122 ausgewählt. Der assoziative Speicher 19 wird für drei Arten von Daten benutzt. Er wird für diejenigen Worte benutzt, die als Indexworte verwendet werden. Er wird für indirekte Adressen in der Programmbezugstabelle benutzt und er wird für Worte benutzt, die gespeichert werden. Diese drei Funktionen sind in dem Block 19 der F i g. 8 dargestellt und werden nun der Reihe nach erläutert.
In dem Speicher 122 werden Indexworte festgehalten und mit Speicheradressen versehen. Wenn auf ein Indexwort Bezug genommen wird, das nicht in dem assoziativen Speicher 19 enthalten ist, wird ein alter Eintrag aus dem assoziativen Speicher in den Hauptspeicher 122 zurückgespeichert, und der neue Eintrag, auf den Bezug genommen wird, wird dem Speicher 122 entnommen und verwendet. Seine Adresse und Daten werden in dem assoziativen Speicher 19 zurückgelassen, in dem sie einmal benutzt worden sind, in der Annahme, daß Indexworte bald und häufig benutzt werden.
Die zweite Verwendung des assoziativen Speichers 19 liegt bei den indirekten Adressen in der Programmbezugstabelle. Die Programmbezugstabelle wird abgekürzt als PRT bezeichnet. Die indirekten Adressen der Programmbezugstabelle sind in gewisser Beziehung ähnlich den Indexworten. Sie werden aus dem Speicher 122 abgerufen, damit die Vorrichtung 104 sie zur Erzeugung von Adressen von Daten benutzen kann. Ein Abschnitt von 24 Worten des assoziativen Speichers 19 (IDXQ und PRTQ, F i g. 8) ist für Indexworte und Programmbezugstabellenleitungen reserviert. Dieser Abschnitt von
24 Worten des assoziativen Speichers 19 arbeitet als umlaufender Zwischenspeicher, ähnlich wie die Vorrichtung 101 als umlaufender Zwischenspeicher arbeitet. Wenn auf eine PRT-Leitung oder ein Indexwort Bezuggenommen wird, das sich nicht in dem assoziativen Speicher 19 befindet, dann wird die älteste Leitung oder das älteste Wort aus dem assoziativen Speicher 19 entfernt und durch das neu eingeführte Wort oder die Leitung an dem alten Platz ersetzt. Da PRT-Leitungen niemals verändert werden, werden auch PRT-Leitungen nicht in den Hauptspeicher 122 zurückübertragen. Die Indexworte jedoch werden beim Gebrauch abgeändert. Daher müssen alte Indexworte in dem Hauptspeicher 122 wieder eingetragen werden, so daß die erhöhten Indexworte nach dem neuesten Stand in dem Hauptspeicher 122 enthalten sind. Der Adressenspeicher 118 des assoziativen Speichers 19 wird dazu benutzt, um die Adressen zu kontrollieren, unter denen diese Worte in den Hauptspeicher 122 wieder eingetragen werden.
Der assoziative Speicher 19 kann außer dem Indexwortabschnitt IDXQ und dem Programmbezug-tabellenabschnitt PRTQ eine Hauptwarteschaltung STORQ enthalten (dit alle in F i g. 8 dargestellt, aber nicht mit Bezugsziffern versehen sind).
Die dritte Aufgabe des assoziativen Speichers ist die einer Hauptspeicherwarteschaltung. Ein Speicherbefehl an den Hauptspeicher ergibt die Berechnung einer Adresse in der Vorrichtung 104. Diese Adresse wird in den nächsten freien Platz in der Warteschaltung STORQ (F i g. 8) eingeführt. Die Warteschaltung STORQ arbeitet auch als umlaufender Zwischenspeicher, wie die Schaltungen IDXQ und PRTQ des assoziativen Speichers 19 und der Zwölf-Worte-Abschnitt der Befehlsvorausschauvorrichtung 101. Die Adresse wird in die Schaltung STORQ eingeführt und der zugehörige Datenabschnitt mit dem Zeichen »leer« versehen. Dieser leere Datenabschnitt ist für diejenigen Daten bestimmt, die unter der Adresse gespeichert werden, wenn die Vorrichtung 110 den gleichen Punkt in der Programmfolge erreicht.
Eine einzelne Zelle der Schaltung STORQ des assoziativen Speichers 19 besteht aus einer Adresse und einem Datenabschjiitt. Der Befehl »im Speicher festhalten«, hat das folgende Ergebnis. Wenn der Befehl über die Vorrichtung 104 ankommt, wird eine Adresse errechnet und in dem Adressenteil der Zelle des assoziativen Speichers 19 festgehalten. Der Datenteil wird in diesem Fall mit der Bezeichnung »leer« versehen. Wenn dieser Befehl bis zur Warteschaltung 108 vorgedrungen ist, werden die Daten vom obersten Platz des Operandenstapels 116 durch die Vorrichtung FINSTIlO entfernt und in den Datenabschnitt dieser Zelle der Warteschaltung STORQ eingeführt. In diesem Zeitpunkt wird die Bezeichnung »leer« wieder entfernt, und die Schaltung 100 darf die Speicherung ausführen.
Die Warteschaltung STORQ hat zwei Aufgaben. Zuerst soll sie dafür sorgen, daß der Vorgang des Speicherns in dem Speicher 122 durch die Schaltung 100 beliebig ausgeführt werden kann und nicht mit anderen Vorgängen zeitlich zusammentrifft, die den Speicher 122 betreffen. An zweiter Stelle und wesentlieh wichtiger jedoch ist die Tatsache, daß die Schaltung STORQ benötigt wird, um die folgenden Schwierigkeiten zu beseitigen. Wenn Daten dem Speicher 122 entnommen werden, muß sichergestellt werden, daß die entnommenen Daten der letzten Wiedergabe entsprechen, die in der Programmfolge erzeugt worden ist. Wenn die Vorrichtung 104 schneller arbeitet als die Vorrichtung FINSTIlO, ist es möglich, daß die Vorrichtung 104 dem Speicher 122 Worte zu entnehmen sucht, bevor die Endverarbeitungsvorrichtung 110 die Worte hergestellt hat, die herbeigeholt oder vorbereitet werden sollen. Dadurch, daß die Adresse in der WarteschaltungSTORQ enthalten ist, wird jedes Wort, das in dem Speicher 122 festgehalten werden soll, aber dort noch nicht angekommen ist, erkannt. Die Adresse eines solchen Wortes wird erkannt, wenn die Adresse des Befehls zum Herbeiholen mit dem umlaufenden Speicher verglichen wird. Wenn die Daten die Bezeichnung »leer« enthalten, dann bedeutet dies, daß das Wort noch nicht herbeigeholt werden kann.
Es wird nunmehr auf die Warteschaltung 108 und den vorübergehenden Speicher 114 der F i g. 1 Bezug genommen. Die Schaltung 108 enthält so viele Regij ster, daß sie vier Befehle in einem_ umlaufenden Zwischenspeicher aufnehmen kann, ähnlich wie die drei umlaufenden Zwischenspeicher in dem oben beschriebenen Bauteil. Ein Ladezahler 411, nämlich der Zähler FINQ-TEMP (FTLP von F i g. 4) ist hauptsächlich zur Verwendung in der Vorrichtung 104 vorgesehen und markiert den Punkt, an dem die Vorrichtung 104 Befehle einsetzt, die sie erledigt hat, deren Durchführung jedoch noch nicht beendet ist. Die Ausführung solcher Befehle wird von der Endverarbeitungsvorrichtung 110 beendet. Ein Entnahme- oder Ablesezähler 412, nämlich der Zähler FINQ-TEMP (FTRP in F i g. 4), bezeichnet das Ende des Wartevorgangs und stellt den Platz dar, an den die Befehle auf die Endverarbeitungsvorrichtung 110 zur Durchführung übertragen werden. Die Schaltung 108 und der vorübergehende Speicher 114 sind in F i g. 4 schematisch dargestellt. Der vorübergehende Speicher 114 kann vier Zellen von je 52 Bits enthalten zur Aufnahme von Datenworten, die im Verhältnis 1 : 1 den vier Zellen der Schaltung 108 entsprechen. Die Zellen der Schaltung 108 andererseits enthalten nur kurze Speicherwerte, z. B. je sieben Bits für Befehle.
Einige Befehle in der Warteschaltung 108 nutzen die vorübergehende ^Speicherung in dem vorübergehenden Speicher 114 nicht aus. Beispiele für solche Befehle sind Multiplizieren, Dividieren, Addieren und Prüfbefehle, die die beiden obersten Worte des Stapels vergleichen usw. Einige dieser Befehle sind solche, die speziell auf die zugehörigen Zellen in dem Speicher 114 hinweisen. Diese Befehle enthalten in erster Linie den einen Befehl, der die Übertragung von dem Speicher 114 zum obersten Platz des Stapels 116 bewirkt (vgl. T. O. S., F i g. 5 und 8). Dieser Befehl in der Schaltung 108 kann von einer Anzahl von Befehlen herrühren, die in der Befehlsvorausschauvorrichtung 104 betrachtet wurden, wozu auch Übertragungen von dem Speicher zum vorübergehenden Speicher 114, Übertragungen vom örtlichen Datenzwischenspeicher 124 zum vorübergehenden Speicher 114, Übertragungen von dem Adressenregister AAR602 (Fig. 8) zum vorübergehenden Speicher 115 gehören, und die alle in der Warteschaltung 108 erscheinen, um eine Übertragung vom vorübergehenden Speicher 114 zum oberen Platz des Stapels durchzuführen. Die Schaltung AAR602 ist
der zentrale Akkumulator der Vorverarbeitungsvorrichtung (s. F i g. 8).
Es wird nun auf die Endverarbeitungsvorrichtung IiO in Fig. 1 Bezug genommen. Endverarbeitungsvorrichtung 110 erhält nach Beendigung eines gegebenen Befehls ihren nächsten Befehl von der Stelle, auf die der Entnahmezähler 412 der Lesekontrollschaltung 1022 hinweist. Das Befehlsregister der Endverarbeitungsvorrichtung 110 hat eine Decodiermatrix 1023 (F i g. 8), die bei der Ausführung der Befehle mithilft. Die Ausgangsimpulse der Decodiermatrix 1023 betätigen Addierer, Vergleicher 1021, ein Schieberegister 1020 und andere logische Schaltungen. F i g. 8 zeigt diese Schaltungen und ihre Zusammenarbeit. Fig. 2 zeigt die Vorrichtung FINSTIlQ im einzelnen.
Es wird nun in Fig. 1 auf den Operandenstapel 116 Bezug genommen, der in F i g. 5 im einzelnen dargestellt ist. Es ist ein Operandenstapel, bei dem der letzte Eintrag als erster ausgegeben wird, und arbeitet mit einem Code, der auch als »Polish-Code« » bezeichnet wird. Das Gerät der vorliegenden Erfindung ermöglicht es, eine unbegrenzte Länge des Stapels zu erreichen, indem überschüssige Stapelworte in dem Speicher festgehalten werden. Ein Teil des Operandenstapels 116 (Fig. 5) ist in der Baueinheit der Stapelworte reserviert, die sich in der Baueinheit befinden. Wenn dieser Teil 12 volle Worte enthält, dann werden 4 Worte an dem Speicher 122 durch die Geräte abgegeben, da der Stapel 116 voll ist. Wenn der in dem DV vorhandene Teil kleiner als 4 Worte ist, dann wird eine Entnahme in dem Speicher 122 eingeleitet. Es sei darauf hingewiesen, daß bei dieser Anlage der Speicher 122 einer der Speicherbaueinheiten angehört, aber die Erfindung ist nicht auf die Verwendung eines derartigen Speichers beschränkt. Alle Stapeloperationen, welche dem Stapel 116 weniger als 12 Worte zuführen, oder ihn um mehr als 4 Worte entleeren, werden daher ohne Zuhilfenahme des Speichers durchgeführt. Da bei einem normalen Betrieb der Stapel 116 jeweils nur um wenige Worte zunimmt oder abnimmt, bedeutet dies, daß Speicherübergänge vom Boden des Stapels * 116 auf einem Minimum gehalten werden. Diese 12 eben beschriebenen Worte werden auch als Stapelanhang 500 in F i g. 5 bezeichnet und sind in F i g. 1 durch die Aufschrift »Stapelanhang« auf der Verbindungslinie zwischen dem Stapel 116 und der Schaltung 100 angegeben.
Mit dem zwölfwortigen Stapelanhang 500 in F i g. 5 sind zusätzliche Register verbunden. Einige, z. B. zwei Datenregister, sind in dem Ausführungsbeispiel nach F i g. 5 angegeben, wobei die beiden Register die ersten beiden Worte oben im Stapel getrennt von dem zwölfwortigen Stapelanhang 500 festhalten. Im Stapelanhang 500 ist ein oberster Zähler 503 vorhanden, der das oberste Wort in dem Stapelanhang 500 anzeigt. Es können auch zwei Register, nämlich ein Stapelregister 501 und ein zweites Stapelregister 502, vorgesehen sein, von denen die beiden ersten Worte oben im Stapel aufgenommen werden können, d. h., daß sie nicht im Stapelanhang 500 des Operandenstapels 116 enthalten sind. Mit dem Stapelanhang 500 ist ein oberer Zähler 503 verbunden, der auf das Datenwort hinweist, dessen Lage im Stapelanhang 500 direkt unter den Datenworten ist, die sich in den Stapelregistern bzw. Flipflop-Stapelregistern 501 und 502 befinden. Ein unterer Zähler 510 deutet auf das letzte Wort in dem Stapelanhang 500 hin.
Eine Differenzschaltung 508 stellt die Differenz zwischen den Ordnungszahlen der Worte fest, auf die der obere Zähler 503 und der untere Zähler 510 hinweisen. Wenn der untere Zähler 510 und der obere Zähler 503 eine Differenz von 12 in der Differenzschaltung 508 ergeben, werden die untersten 4 Worte an den Speicher zurückübertragen an die Stelle, die von dem Stapelzähler 504 angezeigt wird. Wenn der untere Zähler 510 und der obere Zähler 503 sich einander nähern und die Differenz in der Differenzschaltung 508 kleiner als 4 wird, dann bedeutet dies, daß der Stapelanhang 500 4 Worte oder weniger enthält. In diesem Fall werden dem Speicher 122 4 Worte an der Stelle entnommen, auf die der Stapelzähler 504 hinweist. Jedesmal beim Speichern oder Auslesen am Speicher 122 wird der Zähler 504 4 Worte zurück- oder vorgezählt.
Der Stapelzähler 504 wird anfangs durch das Befehlsprogramm so eingestellt·, daß er auf den Teil des Speichers hinweist, der dem Stapelanhang zugeordnet-· ist. Er zählt automatisch hinauf oder herunter, je nachdem, ob dem Speicher Worte zu- oder abgeführt werden. Eine Schwierigkeit, die mögtteherweise auftritt, ist die, daß der Stapelzähler 504 versucht, zu viele Worte an den Speicher 122 zurückzugeben, weil der Stapel zu hoch wird. In einem späteren Abschnitt wird eine Schutzschaltung für die Speichergrenzen beschrieben, die mit der Vorrichtung 104 zusammengebaut ist. Der Stapelzähler 504 wird mit den Speichergrenzen verglichen, was weiter unten näher erläutert wird. Dies ist notwendig, falls der Stapelanhang 500 zu voll wird und die im Speicher zur Verfügung stehende Fläche überschreitet.
Eine Rechenschaltung 505 ist in üblicher Weise ausgeführt und kann Additionen, Multiplikationen, Divisionen, Subtraktionen, Vergleiche und andere logische Funktionen wie UND, NICHT, IMPLIZIERE, exclusives ODER und Überträge ausführen. In Abhängigkeit von der Decodierung in der Endverarbeitungsvorrichtung 110 bewirkt die Rechenschaltung 505, daß die Daten oben in dem Stapelregister 501 und im zweiten Stapelregister 502 zur Ausführung der Rechenvorgänge benutzt werden und daß das Ergebnis oben im Stapelregister 501 wieder eingeführt wird. Ein zusätzliches Register 507 ist vorgesehen, damit bei Rechnungsarten wie Division oder ■ Multiplikation die betreffenden Reste oder Multiplikationsprodukte größerer Länge in dieses zusätzliche Register 507 aufgenommen werden können.
Außer den eben beschriebenen Geräten und Schaltungen enthält das Ausführungsbeispiel der Fig. 1 in dem Adressenspeicher eine Fläche oder Ebene, die als örtlicher Zwischenspeicher 124 bezeichnet worden ist und eine andere Fläche oder Ebene als ein örtliches Register 126. Die beiden Flächen oder Ebenen 124 und 126 werden direkt von Befehlen an das Laderegister, Leseregister und Abgaberegister usw. adressiert. Das Laderegister und Abgaberegister bewirken vier Entnahmen aus dem Speicher und vier Abgaben an den Speicher. Sie bilden daher ein Mittel, mit dem der Programmierer jeweils vier Daten-Entnahmen und vier Daten-Abgaben an und von dem Register ausführen kann. Im allgemeinen sind in dem Ausführungsbeispiel alle Register durch Adressen ansprechbar. Etwa 32 dieser Register sind in dem Adressenspeicher enthalten und
509 511/123
nicht als Flipflops ausgebildet. Außer den Adressenspeicherregistern, die spezielle Verwendungszwecke haben, sind noch 16 Adressenspeicherregister ohne Aufgaben vorgesehen, so daß der Programmierer sie in einer beliebigen Weise verwenden kann. Dieser Teil, der normalerweise ein Teil des örtlichen Registers sein würde, ist als örtlicher Zwischenspeicher 124 bezeichnet worden.
Die Vorverarbeitungsvorrichtung 104 ist in F i g. 6
chungsregister BIAR 624 weist auf den Code des Programms hin, das im Zeitpunkt der Unterbrechung ausgeführt werden soll. Der Zweck des Basisunterbrechungsspeicherregisters BISR 625 ist, auf eine 5 Fläche im Speicher hinzuweisen, in der die Inhalte verschiedener Rechenregister gespeichert werden können. Der Grund für eine solche Speicherung ist, daß die Befehlsroutine Rechenregister für ihren eigenen Zweck benötigt, und es müssen daher die
im einzelnen dargestellt. In der Mitte der Vorrichtung io Inhalte dieser Register, die bei dem Programm be-104 ist das Steuergerät 600 in gestrichelten Linien nutzt werden, erhalten bleiben, angedeutet. Das Steuergerät 600 enthält ein Adressen- Das Λ/F/IST-Befehlsregister 604 in Fig. 6 erhält
register (AAR) 602 und einen Addierer 601, die als seine Eingangswerte von der Befehlssteuereinheit 102, Akkumulator dienen. Als Teil des Steuergerätes 600 wenn die Ausgangsimpulse des Registers 604 in einer ist auch ein Indexadressenregister (IAR) 603 vorge- 15 Decodierschaltung 606 decodiert werden. Die Decosehen, das zusammen mit dem Addierer 601 als dierschaltung 606 hat zwei Hauptausgänge. Sie liefert Hilfsakkumulator dient. Im allgemeinen werden die den transformierten Code, der in die Warteschaltung Adressen durch Addierung von drei Größen gebildet. 108 (Fig. 1) eingegeben wird. Die Ausgangsimpulse Diese drei Größen sind: erstens der Inhalt des dienen auch dazu, alle Operationen der Vorrichtung Grundregisters, zweitens der frühere Inhalt des 20 104 zu steuern.
Adressenregisters 602 und drittens das Adressenfeld Die Aufgabe der Vorrichtung 104 ist hauptsäch-
aus dem Befehl. Ein Befehlsregister (AIR) 604 nimmt lieh, Adressen zu berechnen. Diese Adressen werden das Adressenfeld in dem Befehl auf, das unter drittens in dem Adressenregister 602 gespeichert, nachdem sie oben genannt ist. Der vorhergehende Inhalt des Re- berechnet sind. Aus diesem Adressenregister 602 gegisters 604 wird irf dem Adressenregister 602 fest- 25 langen die Adressen an drei'"Stellen: sie gehen zu gehalten. Es sind eine Anzahl von verschiedenen einem Begrenzungssprüfgerät 645, zu dem Adressen-Basisregistern vorgesehen, und der Basisregister- speicher 118 des assoziativen Speichers 19 und zu gegenstand wird einem dieser Basisregister entnom- der Verbindungsschaltung 100, so daß sie bei der men. Zu diesen Basisregistern gehören das Basis- Entnahme von Daten aus dem Speicher 122 wirksam register für die Programmbezugstabelle (PETB) 620, 30 werden können. Jede Adresse, die einem adreßgebenein Basisindexregister (BIR) 621, ein Basisdatenregi- den Befehl in dem Befehlsregister 604 (F i g. 8) entster (DER) 622, ein Basisunterbrechungsadressen- stammt, ist die Summe von drei Gegenständen: dem register (BIAR)624 und ein Basisunterbrechungs- Adressenfeld, welche dem Befehl entspricht (Einspeicherregister (BISR)625. Der Programmzähler gang 2, Fig. 8), einem der verschiedenen Basis- (PCR) 106 kann auch als Basisregister benutzt wer- 35 register, das entsprechend dem Befehl ausgewählt ist den. Außerdem ist ein Basisprogrammregister (Eingang3, Fig. 8) und dem Ergebnis von vorheri- (BPR) 626 vorgesehen. gen Indexvorgängen, die in der Schaltung AAR 602
Es werden nun die Verwendungszwecke dieser ver- gespeichert sind (Eingang 1, Fig. 8). Nach jedem schiedenen Register beschrieben. Das Basisregister Gebrauch von AAR 107 wird AAR602 auf 0 ge-
620 (PHTB) weist auf die Basis der Programmbezugs- 40 führt, so daß vorhergehende Adressen nicht fälschtabelle hin. Die Programmbezugstabelle ist eine Lese- Hcherweise mit nachfolgenden Adressen addiert tabelle für indirekte Adressen und andere Informa- werden können. Jede auf diese Weise erzeugte tionen. Adresse wird an drei Stellen übertragen: an das
Das Basisindexregister 621 weist auf eine Speicher- Grenzprüfgerät 645, den Adressenspeicher 118 des fläche hin, die dazu benutzt wird, Indexregister zu 45 assoziativen Speichers 19 und die Verbindungsschalspeichern. Das Basisindexregister 621 wird bei jedem tung 100.
Eintrag auf einen anderen Subroutine-Pegel weiter- Der assoziative Speicher 19 ist eben schon begeschaltet. Das Weiterschalten des Basisindexregisters schrieben worden. Er nimmt die Adresse auf, die er-
621 ergibt einen Stapel von Speicher- und Index- rechnet worden ist, und sieht nach, ob die mit der flächen für jeden Subroutine-Pegel. Das Basisindex- 5° Adresse zusammenstehenden Daten bereits in dem register 621 weist normalerweise auf eine Fläche hin, DV enthalten sind oder nicht. Wenn dies der Fall ist, die innerhalb der normalen Speienergrenzen liegt.
Die normalen Speichergrenzen werden weiter unten erläutert. Das Basisdatenregister 622 weist auf eine Fläche des Arbeitsspeichers hin. Einige Programme 55 können aber auch diese zuletzt genannte Arbeitsspeicherfläche DBR 622 außer acht lassen. Das Basisprogrammregister 626 weist auf den Beginn des Segments des gerade verarbeiteten Codes hin. Der
Programmzähler 106 weist auf den Befehl in dem 60 auf die Speichergrenzen. Wenn kein anderer Befehl laufenden Segment des Codes hin, der sich in diesem vorliegt, dann erfolgt diese Prüfung gegenüber den Augenblick in der Vorrichtung 104 befindet. Eine sogenannten normalen Speichergrenzen. Es sind so-Vorbereitung in bezug auf den Programmzähler 106 wohl normale obere Speichergrenzen und normale kann nur für solche Gegenstände benutzt werden, die untere Speichergrenzen vorhanden (Fig. 1). Die mit dem Programm gespeichert werden können und 65 beiden Grenzregister 1025 und 1026 kann man sich sich niemals ändern. Zwei der Basisregister, nämlich in dem normalen Grenzregister (NBR) 640 vereinigt BIAR624 und BISR625, werden nur für Unter- denken. Abgesehen von Ausnahmen, die weiter unten brechungszwecke verwendet. Das Basisunterbre- noch erläutert werden, ist die Tatsache, daß eine
wird der Befehl zur Verbindungsschaltung 100 unterbrochen, und die Daten, die bereits örtlich verfügbar sind, werden verwendet.
Die Verbindungsschaltung 100 schickt, wenn sie nicht anders instruiert wird, die Adresse an den Speicher 122 und entnimmt dem Speicher 122 die Daten, die unter dieser Adresse gespeichert sind.
Das Prüfgerät 645 prüft die Adresse mit Bezug
Adresse, die nicht innerhalb der normalen Speichergrenzen 640 liegt, ein Grund für eine Unterbrechung.
Eine Abänderung dieser Vorgänge bei der Entnahme von Daten aus dem Speicher 122 ergibt sich, wenn die Programmbezugstabelle benutzt wird. Bei diesem Vorgang wird ein Programmbezugstabellen-Grenzregister (PRTL) 641 benutzt. Ein Befehl für eine Entnahme aus dem Speicher 122 und Abgabe an das Adressenregister 602 unter Angabe des Inhalts des Programmbezugstabellen-Basisregisters 620 bewirkt einen Vorgang, durch den eine Adresse für die PRT (Programmbezugstabelle) berechnet wird. Diese Adresse wird nun geprüft, um zu sehen, ob sie zwi- ■■ sehen dem Inhalt, der in dem Programmbezugstabellen-Basisregister 620 gespeichert ist, und dem Programmbezugstabellen-Grenzregister 641 liegt, das als obere Grenze dient. Wenn ein Befehl für das Adressenregister 602 aus dem Speicher 122 mit Bezug auf die PRT eine Entnahme zu machen, eine gültige Adresse zwischen dem PRT-Basisregister 620 und dem PRT-Grenzregister oder dem PRT oberen Grenzregister 641 ergibt, wird das Wort der PRT entnommen und dem ßRR-Register 1071 (Fig. 8) zugeführt. Das Wort, welches der PRT entnommen wird, kann in verschiedener Weise bezeichnet werden. Das einfachste Verfahren der Bezeichnung ist ein »tag-Code«, der bedeutet, abwechselnde Speichergrenzen zu verwenden. Wenn das Wort mit der Bezeichnung »abwechselnde Speichergrenzen« versehen wird, werden die letzten 18 Bits des Wortes in das Adressenregister 602 eingeführt, damit sie bei dem nächsten Adressenherstellungsbefehl verwendet werden. Ein zusätzliches Adressenfeld auf der linken Seite des rechten Adressenfeldes wird in das wechselnde Speichergrenzenregister 642 eingeführt und dient dazu, die Fläche des Speichers 122 zu begrenzen, die über diese PRT-Leitung zugänglich ist. Es wird daher unmöglich, mit Hilfe der PRT-Leitung einen Gegenstand anzusteuern, der außerhalb der Fläche liegt, die durch die Befehlsroutine bezeichnet worden ist. Ein zusätzlicher Code, der an die PRT-Leitung angeschlossen werden kann, ist ein Sprung-Code. In diesem Fall wird die PRT-Leitung zum Anfang einer Subroutine gemacht, und das Register 642 wird nicht benutzt. In machen Fällen kann die PRT-Leitung auch mit dem Wort »Unterbrechung« bezeichnet werden. Dies tritt z. B. dann ein, wenn die Daten, auf die durch die PRT-Leitung hingewiesen werden soll, keinen angehörigen Platz im Speicher haben, oder wenn aus irgendeinem Grund das Befehlsprogramm nicht wünscht, daß der betreffenden PRT-Leitung Zugriff zu diesen Daten gegeben wird.
Das Indexadressenregister 603 wird als Akkumulator bei der Berechnung der Adressen benutzt, die auf Indexworte hinweisen. Ein getrennter Akkumulator wird zum Hinweis auf Indexworte verwendet, weil das reguläre Adressenregister 602 die Ergebnisse von früheren Indexvorgängen enthalten kann oder auch den Inhalt von PRT-Eingaben, die unberührt bleiben müssen, während das Indexwort herbeigeholt wird. Spezielle Indexbefehle machen von dem Indexadressenregister 603 Gebrauch.
Für jeden in der Schaltung (FINQ) 108 vorhandenen Befehl kann entweder am entsprechenden Platz in dem vorübergehenden Speicher (TEMP) 114 ein Operand oder Variant vorhanden sein oder auch nicht vorhanden sein. Es können bis zu vier Befehle in der Schaltung (FINQ) 108 bei dem dargestellten Beispiel vorhanden sein, und es ist möglich, bis zu vier entsprevhende Operanden und/oder Varianten in dem vorübergehenden Speicher (TEMP) 114 zu haben. Das F77VQ-T£MP-Steuergerät 211 gibt an, an welcher Stelle von FINQ106 und TEMP114 die Information zugeführt wird und von wo die Information in diesen Geräten kommt. Der FINQ-TEMP-Steuermechanismus 211 (der den FINQ-TEMP-Lesezähler 412 von F i g. 4 enthält), zeigt ebenfalls an,
ίο wann FINQ108 leer ist. In diesem Fall wird das Ρ/Λ/ST-Steuergerät 214 daran gehindert, den Inhalt der Schaltung (FINQ) 108 als neuen Befehl zu er-, kennen. Die Befehle, die am Ausgang der Schaltung
(FINQ) 108 entnommen werden, werden in dem Opcode- und dem Variantdecodierer 212 decodiert. Wenn jedoch die Ausgangsimpulse der Schaltung (PINQ) 103 anzeigen, daß ein Variant erforderlich ist, darin muß auch der entsprechende Variant dem vorübergehenden Speicher (TEMP) 114 durch den Opcode- und Variantdecodierer 212 gleichzeitig decodiert werden.
Wenn festgestellt wird, daß die Information in dem· vorübergehenden Speicher (TEMP) 114 e-in Operand ist, dann wird sie in das T-Register 501 eingeführt.
Wenn festgestellt wird, daß die~-Iaformation ein Variant ist, der nicht decodiert werden soli, jedoch in ein Register, z.B. das T-Register501 oder das Schieberegister 224 eingeführt werden soll, dann wird dieser Variante in das Register entsprechend dem speziellen Befehl in der Schaltung (F/iVß)108 eingegeben.
Die FINST-Steuerschaltung 214 enthält die logischen Schaltungen, Flipflops, Tore usw., welche die decodierten Befehle von dem Opcode- und Variantdecodierer 212 ausführen und bewirken, daß die entsprechenden Datenverarbeitungen in dem Rechenteil der Vorrichtung 110 stattfinden. Die Steuerschaltung 214 liefert die Befehle, die notwendig sind, um die Verarbeitung der in dem Operandenstapel 116 enthaltenen Daten zu bewirken. Das heißt, die Steuerschaltung 214 führt die Rechenvorgänge aus und manipuliert den Operandenstapel 116. Der Taktgeberzähler 213 der Endverarbeitungsvorrichtung liefert die Taktimpulse, die für den Betrieb der Steuerschaltung 214 erforderlich sind.
Der Rechenanteil der Steuerschaltung 214 arbeitet wie folgt: Die Addiersohaltung 220 führt alle arithmetischen Operationen des Addierens, Subtrahierens und Dividierens aus. Der Addierer führt auch einen Teil der Multiplikationsbefehle aus. Die Multipliziervorrichtung 221 wird zusammen mit dem Addierer 220 benutzt, um die Multiplikationsbefehle auszuführen. Es ist klar, daß es verschiedene Addier- und verschiedene Multiplizierbefehle gibt, und das Wort »Befehl« wird für alle diese verschiedenen Vorgänge benutzt.
Bei einem arithmetischen Operanden-Wort ist das erste Bit das Mantissen-Zeichen, das zweite Bit das Exponenten-Zeichen und das dritte bis dreizehnte Bit die Exponenten-Größe. Der Rest vom vierzehnten Bit an ist die Mantissen-Größe.
Bei diesen arithmetischen Befehlen wird die gleichförmige Notierung beibehalten, so daß die ganze Zahl die gleiche Darstellung hat wie eine Zahl mit gleitendem Komma. Eine ganze Zahl hat einen Exponenten 0, eine Zahl mit gleitendem Komma hat einen Exponenten, der nicht gleich 0 ist. Auf diese Weise kann ein und derselbe arithmetische Befehl entweder
21 22
für Operanden mit einer ganzen Zahl oder auch mit und das P-Register 507 zeigt kein Ergebnis außer in
gleitendem Komma benutzt werden. einigen wenigen speziellen Fällen. Im Falle eines
Der Detektor 228 für die führende Eins und der Multiplikationsvorganges enthält am Schluß das
Codierer 229 bestimmen zusammen den Betrag der T-Register 501 die höchsten Stellen des Produktes,
Verschiebung, die notwendig ist, um die führende 5 und die niedrigeren Stellen erscheinen in dem P-Re-
Eins einer Mantissengröße in die 14. Stelle eines gister 507. Im Falle einer Division erscheint am
Operanden einzuführen. Schluß der Quotient in dem T-Register 501, und der
Die Stelle des 14. Bits des Operanden ist die Rest erscheint im P-Register 507. Bei dem DV der höchste Stelle der Mantissengröße. Diese Arbeits- Erfindung sind Befehle und Operationen mit dopweise des Detektors 228 für die führende Eins und io pelter Präzision möglich. Bei solchen Fällen doppeldes Codierers 229 ergibt eine Normierung der arith- ter Genauigkeit erscheinen die höchsten Stellen der metischen Eingangsimpulses. Gleichzeitig muß der Hälfte des Resultats in dem T-Register 501, die nied-Ausgang des Codierers 229 von dem Exponenten ab- rigeren Stellen des Resultats erscheinen im S-Register gezogen werden. 502, und weitere Stellen erscheinen im P-Register
Der Comparator und die logische Einheit23 haben 15 507, z.B. die niedrigsten Stellen einer Summe oder
zwei Funktionen. Die logische Einheit 23 vergleicht eines Produktes.
das auch als T-Register bezeichnete Stapelregister Das T-Register 501 ist direkt oder indirekt mit den
501 und das auch als 5-Register bezeichnete Stapel- meisten anderen Registern des zentralen DV verbun-
register 502 bezüglich der Ausgangsimpulse, um ent- den. Der erste Weg des normalen Datenflusses führt
weder die Gleichheit oder das Überwiegen des einen 20 von dem vorübergehenden Speicher (TEMP) 114 zum
oder anderen festzustellen. T-Register 501, dann zum S-Register 502 und von
Diese Eigenschaft wird auch verwendet, um einige da zum Stapelanhang 500. Der zweite Weg des rror:
der Befehle auszuführen, die weter unten noch be- malen Datenflusses führt vom Stapelanhang 500 über
schrieben werden, wobei es notwendig ist, die Expo- das S-Register 502, dann zum T-Register 501 und
nenten und die Mantissen je getrennt zu vergleichen. 25 von dort zu anderen Teilen der-©aueinheiten, z. B.
Bei der Durchführung der ersten Funktion, näm- zur Schaltung STCRQ des Datenspeichers 120 des lieh eines Vergleichs auf »gleich«, »größer als« kann assoziativen Speichers 19. Es sind auch Wege zu die Schaltung 230 das ganze Wort für den Vergleich anderen Registern vorhanden,
nehmen, oder sie kann in Verbindung mit der Vor- Die Arbeitsweise des Stapelanhangs ist im Zusamrichtung 222 auch einen Teil eines Wortes zum 30 menhang mit F i g. 5 beschrieben worden. Der Stapel-Vergleich mit dem Teil eines anderen Wortes aus- zähler504, der sowohl in Fig. 5 als auch in Fig. 2 wählen. zu sehen ist, enthält die Adresse der nächsten 4
Die zweite Funktion der Schaltung 230 besteht Worte im Speicher 122, die in den Stapelzähler 504
darin, die Ausgangsimpulse des T-Registers 501 und gebracht werden, wenn es notwendig ist. Der Zähler
des S-Registers 502 zu kombinieren, um Ergebnisse 35 504 kann um vier weitergeschaltet werden, und die
von logischen Funktionen zu erhalten, z. B. von sich ergebende Adresse definiert den Platz im Spei-
UND, ODER, WENDE AN, BILDE DAS KOM- eher des Blocks von 4 Worten, in dem die vier älte-
PLEMENT. Wenn diese zweite Funktion benutzt sten Operanden in dem Speicheranhang 500 gespei-
wird, werden die Ausgangsimpulse der Schaltung 230 chert werden können, wenn es notwendig ist.
dem T-Register 501 zugeführt. 40 Es wird nun auf F i g. 7 übergegangen. F i g. 7 zeigt
Es wird nun auf den dritten Teil der Schaltung, im Blockschaltbild den Aufbau der Verbindungs-
der auf der rechten Seite der F i g. 2 dargestellt ist, schaltung 100 des DV. In der Verbindungsschaltung
eingegangen. Dieser gibt die Einzelheiten des Ope- 100 können Sender 758 und Empfänger 762 vorge-
randenstapels 116 bei seinem Betrieb in Verbindung sehen sein. Die Sender 758 und die Empfänger 762
mit der Endverarbeitungsvorrichtung 110 wieder. Die 45 können einen Teil einer Schaltverbindung darstellen,
Register sind in Fig. 5 dargestellt. Das T-Register die für die Maschine vorgesehen ist, von der das DV
501 ist das oberste Register des Stapelanhangs, das einen Teil der Erfindung bildet, um die Verbindung
zweite oder S-Register 502 ist das nächste Register zwischen Baueinheiten der Maschine herzustellen und
über dem Stapelanhang. Das T-Register 501 wird bei um den Vorrang für den Zugriff zum Speicher, z. B.
jedem arithmetischen Befehl benutzt. In manchen 50 für DVs und I/O-Steuerbauteile der Maschine herzu-
Fällen wird das T-Register 501 in Verbindung mit stellen.
dem S-Register 502 oder mit einem P-Register 507 Die Verbindungsschaltung 100 kann einen Taktverwendet. Das T-Register 501 kann entweder allein geber 77 enthalten, sowie die obenerwähnten Empverwendet werden oder auch in Verbindung mit dem fänger (CSR) 762 und Sender (CXM) 758, ein Verbin-S-Register 502 oder das T-Register 501 kann in Ver- 55 dungsadressenregister (CvlÄ) 754, ein Verbindungsabbindung mit dem P-Register 507 benutzt werden. Es frageregister (CER) 760, ein Verbindungsvorbereigibt auch einige Befehle, die das T- und S-Register tungsregister (CFR) 756, ein Verbindungsspeicherregi- 501 und 502 zusammen benutzen und die zusammen ster (CSR) 752) ein Verbindungswortzähler (CWC) 750 einige Register des Stapelanhangs 500 benutzen. Die und einen Paritätsprüfer 764. Der Taktgeber ist als Register T 501 und S 502 können auch als Teil des 60 20-MHs-Taktgeber dargestellt, zu dem die Synchro-Stapels betrachtet werden. Das P-Register ist jedoch nisierungsleitungen führen; der Taktgeber kann jeein Hilfsregister, das verwendet wird, um Befehle doch auch wahlweise an einer anderen Stelle angenach Bedarf auszuführen. Das T-Register 501 ent- ordnet werden, und es können auch andere Frequenhält die Summe, nachdem eine Addition oder Sub- zen benutzt werden. Bei dem Beispiel ist als Takttraktion von der Addierschaltung 220 durchgeführt 65 geber eine Synchronmaschine dargestellt, es ist aber worden ist, d. h., im Falle einer Subtraktion oder auch möglich, bei der Erfindung eine asynchrone einer Addition erscheint die algebraische Differenz Arbeitsweise vorzusehen. Alle Informationen, die oder die algebraische Summe in dem T-Register 501, dem Speicher 122 zugeführt werden, werden erst dem
23 24
Verbindungsspeicherregister 752 zugeleitet. Der Aus- ziativen Speichers 19 (F i g. 1 und 8) kommen, die
gang des Verbindungsspeicherregisters 752 ist direkt alle einen Zugang zu der Schaltung 100 zu erhalten
mit dem Sender 758 verbunden. Alle Informtionen, wünschen. Die Schaltung 100 enthält nach F i g. 7
die von dem Speicher 122 kommen, werden dem ein logisches Netzwerk, das zwischen drei Gruppen
Verbindungsentnahmeregister zugeführt. Dieses Re- 5 oder Pegeln unterscheidet. Sie stellt eine feste Priori-
gister756 wird direkt von den Empfänger762 be- tätsordnung und/oder -reihenfolge für die verschie-
trieben. Alle aufgenommenen Informationen werden denen Gruppen fest, die alle einen Zugang zu der
in dem Paritätsprüfer 764 geprüft. Schaltung 100 haben wollen.
Die Speicheradressen werden dem Verbindungs- Die Priorität unter den verschiedenen Gruppen adressenregister 754 zugeleitet. Einige Operationen in io wird durch die Verdrahtung des Gerätes bestimmt, der Verbindungsschaltung 100 greifen aufeinander Wenn die Vorrichtuno 104 einen Zugang zur Verüber oder finden gleichzeitig miteinander statt; z.B. bindungsschaltung 100 haben will, um eine einzige können die letzten drei Worte einer Vierfach-Ent- Entnahme zu machen, dann enthält, sie diesen. Bei nähme aufgenommen werden, während der nächste einem derartigen Aufbau liegt entweder die Warte-Vorgang über den Speicher 122 schon eingeleitet 15 schaltung STORQ des assoziativen Speichers 19 oder wird. Wegen eines solchen Übergreifens ist es not- die Vorrichtung 101 am hinteren Ende der Prioritätswendig, manchmal die Adresse des letzten Vorgangs liste. Andere Befehle, die getrennte Befehle für die in Erinnerung zu behalten, während der neue Vor- Vorrichtung 101 sind, können durch Befehle des gang eingeleitet wird. Dies ist z. B. notwendig, wenn Dump-Registers und des Laderegisters ausgeführt der letzte Vorgang einen Fehler der Parität ergibt, 20 werden.
nachdem das Adressenregister 754 eine neue Adresse Der Taktgeber für 20 MHz kann durch einen Takterhalten hat. Um die Steuerung in einem solchen geberoszillator in jeder Baueinheit betrieben werden.-Fall nicht durcheinanderzubringen, wird die letzte Die Taktgeberoszillatoren werden von einem zentra-Adresse in dem Verbindungsabfrageregister 760 fest- len Haupttaktgeber synchronisiert, wie es in dem dargehalten. Da zwei Vorgänge gleichzeitig ablaufen 25 gestellten Beispiel der Fall ist, obwohk-ajuch eine synkönnen, sind zwei effektive Adressenregister EAR 1 chrone Betriebsweise, ohne den Erfindungsgedanken und EARl vorgesehen, für den Fall, daß beide zu verlassen, bewirkt werden kann. Der zentrale Adressen Fehler enthalten. Der Zähler 750 zählt eins Haupttaktgeber befindet sich in irgendeiner der Bauoder vier, je nachdem, ob die Entnahme eine ein- einheilen, z.B. in der I/O-Steuereinheit. Die Taktgeber fache oder eine vierfache Entnahme ist. Die Schal- 30 aller Baueinheiten sind miteinander synchronisiert, tung 100 führt entweder eine einfache oder eine vier- In anderen Maschinen können Baueinheiten entfache Entnahme aus; durch diese Möglichkeit wird halten sein, die oberflächlich den Blockschaltungen Zeit gespart. Die Leitungen zum Speicher 122 kön- ähneln, die für die Adressenschaltung, die Endvernen parallel 53 Bits führen, und zwar 52 Datenbits arbeitungsvorrichtung und die Warteschaltung der und 1 Bit zur Synchronisierung. Bei einer praktischen 35 Erfindung vorgesehen sind. Die ausgeführten Funk-Ausführungsform erfordert eine vierfache Entnahme tionen sind jedoch andere, und die bekannten Ma- oder eine Vierfach-Speicherung vier Zeitperioden. schinen verarbeiten alle Befehle über ihre Endver-Bei Verwendung eines Taktgebers von 20 MHz kann arbeitungsvorrichtung, so daß diese Maschinen mit z. B. eine Periode von zwei Taktimpulsen oder den Sprüngen fertig werden müssen, wenn sie auf-100 Nanosekunden pro Wert verwendet werden, so 40 treten. Dies führt zu Vorgängen, durch die die Madaß eine 4-Wort-Übertragung 4 Zehntel einer Mikro- schine zu stark verlangsamt wird. Bei der Maschine Sekunde erfordert. Wenn nur ein Wort erforderlich der vorliegenden Erfindung ist die Vorverarbeiist, dann wird auch nur ein Wort auf der Leitung tungsvorrichtung 104, die Schaltung (FIZQ) 108 vorausgesandt oder empfangen. gesehen, wobei die Vorrichtung 101 zur Vorschau
In dem Gerät der F i g. 7 sind nicht dargestellte 45 auf die Befehle funktionsmäßig, jedoch nicht not-Leitungen vorhanden, die eine Vielzahl von Befehlen wendigerweise auch mechanisch, von der Vorrichder Schaltung zuführen, Velche einer Vielzahl von tung 104 getrennt ist, s-o daß die Vorrichtung 104 Adressenquellen für das Register (CAR) 754 ent- wirkungsvoller arbeiten kann, sprechen. Zu den möglichen Quellen von Adressen Bei der Maschine der Erfindung braucht die Vorgehören die Befehlsadressen der Befehlsvorausschau- 50 Verarbeitungsvorrichtung 104 keine Arbeiten auszuvorrichtungen 101, die Adressenregister 602 der Vor- führen, die später wieder rückgängig gemacht werden Verarbeitungsvorrichtung 104, die Indexadressen- müssen. Insbesondere wird die Vorrichtung 104, register 603, die Stapelzähler 504 am Operanden- wenn sie einen Sprungbefehl feststellt, keinen Befehl stapel 116 (F i g. 5), die Adressen von dem Adressen- ausführen, bevor sie weiß, welchen Weg der Sprung speicher 118 eines Wortes in der Warteschaltung 55 nehmen wird und ob der Sprung ausgeführt werden STORQ, der Adressenspeicher 118 für ein Wort im soll oder nicht.
PRT-Bereich des assoziativen Speichers PRTQ oder Die funktionell Trennung der Befehlsvorausder Adressenspeicher 118 eines Indexwortes in der schauvorrichtung 101 von der Vorverarbeitungsvor-Indexwarteschaltung IDXQ, die sich ebenfalls in dem richtung 104 ist in der Zeichnung dargestellt. Es ist assoziativen Speicher 19 befindet und die in den 60 ersichtlich, daß die Befehle der Vorrichtung 101 zuSpeicher 122 zurückgelangen müssen. Diesen ver- geführt werden. Die Vorverarbeitungsvorrichtung 104 schiedenen Herkünften von Adressen entsprechen decodiert die Sprünge, so daß, wenn ein Sprung voreine Vielzahl von Befehlen für die Schaltung 100. handen ist, während die Befehle in der Vorrichtung Die Befehle können von der Vorrichtung 101 101 verarbeitet werden, und auch in der Vorrichtung (F i g. 3) von dem Stapelanhang 500 (F i g. 5), von 65 102 verarbeitet werden, der Sprungbefehl noch nicht der Warteschaltung STORQ des assoziativen Spei- ausgeführt werden darf, bis es bekannt ist, ob ein chers 19 (F i g. 1 und 8), von der Vorrichtung 104 Sprung ausgeführt werden soll und wohin der Sprung (F i g. 6), von der Indexwortfläche IDXQ des asso- führen soll.
5095Π/123
Befehle und Sprungoperationen
Das Sprungsteuerwort ist ein Eintrag in der Programmbezugstabelle. In Bezugnahme auf eine bestimmte Zeile der Programmbezugstabelle, die ein Sprungsteuerwort enthält, bewirkt im Programm die Ausführung eines Sprunges, wie es durch das Sprungsteuerwort festgestellt wird. Die ersten 3 Bits des Sprungsteuerwortes enthalten den Sprungtypus. Zu den Arten von Sprüngen, die in dem Sprungsteuerwort vorgeschrieben werden, gehören ein nicht rückkehrender Sprung, bei dem die Steuerung lediglich auf ein anderes Programmsegment übertragen wird, ein interner Segmentsprung, bei dem ein Sprungrückkehrwort gesetzt wird, das weiter unten näher erläutert wird und bei dem der Code, auf den übergesprungen wird, in dem gleichen Segment wie das folgende Segment liegt, ein Segmentsprung, der gleich einem internen Segmentsprung ist, außer daß der ausgeführte Code in einem neuen Programmsegment steht und schließlich der Verfahrenssprung, der die Einstellung des Sprungrückkehrwertes für die Rückinformation und das Springen auf ein neues Programmsegment bewirkt und außerdem auch eine neue Programmbezugstabelle für das weitere Arbeiten bildet. Im letzteren Falle befindet sich der Eintrag am Kopf der neuen Bezugstabelle, welche die Adresse des Programmsegmentes enhält, auf das übersprungen wird. In der Beschreibung ist schon erwähnt worden, daß die Programmbezugstabelle Zeiger oder Zähler enthält, die auf verschiedene Codesegmente und verschiedene Datensegmente hinweisen. Die Sprungsteuerworte sind die Zeiger, welche auf andere Codesegmente hinweisen. Die zweiten 12 Bits enthalten ein Inkrement für die Einstellung des Basis-Indexregisters 621, um die Routine, auf die übergesprungen wird, eine neue Arbeitsfläche, neue Indexworte und ein Sprungrückkehrwort zu geben, das unter der Basisindexregisteradresse bei Null gespeichert wird. Die nächsten 15 Bits des Sprungsteuer-Wortes sind eine relative Programmzählereinstellung. Die ersten 12 Bits werden dem Basisprogrammregister 626 hinzuaddiert, um die effektive Adresse zu erhalten, auf die übergesprungen werden soll; die letzten drei Bits sind die Silbenadresse in dem gerade aufgefundenen Wort. Die nächsten 18 Bits des Sprungsteuerwortes s^nd ein Adressenfeld. Für diejenigen Sprungtypen, die eine neue Programmbezugstabelle verlangen, würde dies das Adressenfeld der neuen Programmbezugstabelle sein. Für diejenigen Sprungtypen, die keine neue Programmbezugstabelle verlangen, ist dies das Adressenfeld für das Basisprogrammregister 626. Bei denjenigen Sprungtypen, bei denen weder eine Änderung des Basisprogrammregisters 626 noch eine neue Programmbezugstabelle verlangt wird, werden diese Bits nicht benutzt. Die letzten 3 Bits sind die Bezeichnungsbits. Sie enthalten den 3-Bit-Code, der anzeigt, daß dies ein Sprungsteuerwort ist. Dieser Code wird von dem DV dekodiert, um anzuzeigen, daß ein derartiger Sprung vorliegt. Wenn das Segment, auf das übergesprungen werden soll, nicht im Hauptspeicher, sondern anderweitig, z. B. in einem Plattenspeicher, gespeichert ist, dann bewirken die Bezeichnungsbits eine Unterbrechung des Exekutivprogramms.
Außer der Information, die in der Programmbezugstabelle gespeichert ist, ist noch eine Information, welche die Rückkehr vom Sprung in das DV steuert, in dem Sprungrückkehrwort enthalten. Das Sprungrückkehrwort wird stets unter der Adresse Null in bezug auf das Basisindexregister 621 gefunden. Die ersten 3 Bits des Sprungrückkehrwortes geben den Sprungtypus an und zeigen an, ob eine Rückkehr zu einer alten Programmbezugstabelle oder eine Neueinstellung auf das Basisprogrammregister 626 erforderlich ist. Die nächsten 12 Bits enthalten ein Basisindexregisterdekrement und werden von dem Basisindexregisterinkrement des Sprungsteuerwortes gesetzt. Jeder Pegel der Subroutine erhöht das Basisindexregister 621 beim Eintritt in Abhängigkeit von dem Inkrement,, das in dem Sprungsteuerwort gespeichert ist. Bei der Rückkehr der Subroutine wird das Basisindexregister 621 entsprechend dem Inkrement erniedrigt, das in dem Sprungrückkehrwort enthalten ist. Da das Sprungrückkehrwort an einer Stelle gespeichert ist, auf die von dem Basisindexregister 621 hingewiesen wird, ergibt jede'Erniedrigung des Basisindexregisters 621 eine Erniedrigung des vorhergehenden Rückkehrwortes. Eine vollständige Folge von Rückkehrworten klettert- daher immer höher, bis eins der W.orte.die erste Stufe erreicht.
Die nächsten 15 Bits sind -sine, Programmzählereinstellung. Dies ist ein relative Einstellung; sie muß dem Basisprogrammregister 625 hinzuaddiert werden, um eine absolute Adresse zur Einstellung des Programmzählers 106 zu erhalten. Die letzten 18 Bits bilden ein Adressenfeld, welches gegebenenfalls die alte Basisprogrammregistereinstellung enthält. Im Fall derjenigen Sprünge, die eine neue Programmbezugstabelle verlangen, werden die alten Basisprogrammregistereinstellungen nicht benutzt. Die Bezeichnungsbits sind auf leer eingestellt.
Arbeitsweise: Verarbeitung von Befehlen, die die Maschinen verlassen
Es wird nun zur Erläuterung eine einfache Folge von Programmschritten angegeben, die in dem Speicher 122 an irgendeiner Stelle gespeichert sein können, bis sie in dem DV verarbeitet werden. Das Beispiel soll eine Programmfolge zur Multiplikation von X und Y und Addition yon W und Speicherung des Ergebnisses unter der Adresse Z betreffen. Dies kann durch die Gleichung dargestellt werden
2 = XY+ W.
In der »Polish«-Schreibweise würde die Gleichung lauten:
XY-W +Z =
Die Befehlsfolge zur Ausführung dieser Gleichung könnte aus den folgenden Befehlen bestehen:
»FMA«, dieser Befehl holt eine Leitung des PRT. Diese Leitung des PRT enthält die Adresse des Beginns einer Datengruppe X. Das Adressenfeld wird an das Adressenregister 602 (F i g. 6) übertragen. (Die Buchstaben FMA bedeuten: fetch for memory to address register.) »Index«, ein Befehl zum Herbeiholen des Indexwortes, dessen Inhalt mit dem Adressenregister 602 addiert wird, um einen Gegenstand anzudeuten, d. h. einen der Datengegenstände X; »FMS«, ein Befehl, der angibt, daß ein Wort aus dem Speicher dem Stapel oben zuzuführen ist. Die Ausführung dieses Befehls wird weiter
unten ausführlich erläutert. Es ergibt sich ein Gegenstand X, der im obersten Platz in dem Stapel steht, wobei der laufende Inhalt des Adressenregisters 602 als Anzeichen benutzt wird, wo in dem Speicher 122 die Daten gefunden werden können;
»FMA« wird dazu benutzt, von der Programmbezugstabelle die Basisadresse einer Gruppe von Gegenständen Y abzurufen;
»Index«, wenn notwendig;
»SMS« für ein spezielles Datenwort Y;
»Multipliziere«;
»FMA«, FMA wird benutzt, um den Basisindex einer Gruppe von Gegenständen W zu erhalten; »Index«;
»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.
j/
Die Folge der Programmschritte würde in der »Polish«-Schreibweise wie folgt aussehen: Entnimm unter Verwendung der Unterfolge FMA, möglicherweise durch Indexbildung, und FMS entspricht dem Auftreten einer einzigen Veränderlichen.
Diese Unterfolge »Entnimm« tritt einmal für X und einmal für Y auf. Der Befehl zum Multiplizieren entspricht dem Multiplikationssymbol. Die Unterfolge tritt wieder für W auf, gefolgt von einem Befehl zum Addieren. Eine etwas verschiedene Unterfolge bewirkt, daß das Resultat, das oben im Stapel enthalten ist, wieder in den Speicher an der Stelle Z gespeichert wird. Diese leichte abweichende Unterfolge ist »FMA, möglicherweise Index, SSM«.
Es sei angenommen, daß diese Befehle in dem Speicher 122 an irgendeinem Punkt des Vorgangs gespeichert werden. Bei der Ausführung des Programms, in dem diese Instruktionen enthalten sind, bewirkt das Vorschau-Register 304 (Fig. 3), daß diese Instruktionsbefehle aus dem Speicher entnommen und in die Vorrichtung 101 überführt werden. In einem späteren Zeitpunkt wird der erste FMA-Befehl durch die Schaltung 102 herausgezogen und der Vorrichtung 104 zugeführt.
Am Ende jeder Ausführung eines solchen Befehls in der Vorrichtung 104 wird der nächste Befehl der Folge von der Vorrichtung 101 durch die Einheit 102 angerufen und in die Vorrichtung 104 eingeführt. Die Ausführung der Befehle, die einer nach dem anderen in die Vorrichtung 104 eingeführt werden, ist dabei die folgende:
Der erste FMA wird von der Vorrichtung 104 dekodiert und eine Adresse an den Speicher 122 abgegeben. Die Adresse kann ihre Daten von dem Datenspeicher 120 des assoziativen Speichers 19 erhalten, wenn auf den Gegenstand X kürzlich Bezug genommen worden ist. Andernfalls wird die Programmbezugstabellenleitung von dem Speicher 122 geholt, und eines der zwei 18-Bit-Adressenfelder dieser Leitung wird in das Adressenregister AAR 602 eingeführt. Wenn der Bezeichnungsbit-Teil der PRT-Leitung durch das Exekutivprogramm auf den Grenzcode eingestellt ist, dann befinden sich die beiden Adressenfelder der PRT-Leitung in den beiden Registern ABL 1027 und ,4Bt/1028 (Fig. 8) und dienen zur Begrenzung der nächsten Entnahme für den Speicher. Der erste Befehl wird von der Vorrichtung 104 vollständig durchgeführt und bewirkt, daß kein Befehl in die Warteschaltung 108 eingeführt wird.
Bei der Beendigung der Ausführung des ersten Befehls hat die Befehlssteuereinheit 102 nun den zweiten Befehl, einen Indexbefehl, in die Vorrichtung 104 eingeführt.
Die Decodierung eines Indexbefehls bewirkt die Berechnung einer Adresse eines Indexwortes. Das Indexwort kann in dem assoziativen Speicher 19 gefunden werden, ebenso wie die PRT-Leitung. An- dernfalls wird das Indexwort aus dem Speicher 122 herbeigeholt. Der Inhalt des Indexwortes wird zu dem vorhergehenden Inhalt des Adressenregisters 602 (Fi g. 6) hinzugefügt. Hiermit ist der Vorgang beendet, der durch den Indexbefehl verlangt wird, und der Indexbefehl bewirkt keinen Eintrag in der Warteschaltung 108. -
Der dritte Befehl lautet: »Entnimm aus dem Spei=·' * eher und überführe in den Stapel«.-Der· Inhalt des ' Adressenregisters 602, der nun die Summe des Adressenfeldes der PRT-Leitung umUdes Adressenfeldes des Indexwortes darstellt, wird mit dem Adresseninhalt des FMS-Befehls addiert, wenn er vorhanden ist, und auf den Speicher 122 als Adresse übertragen. In die Warteschaltung 108 wird ein Befehl eingetragen, um eine Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapels zu bewirken. Der Platz in dem vorübergehenden Speicher 114 wird der Verbindungsschaltung 100 zusammen mit der Adresse zugeleitet, die gerade hergestellt worden ist. Die Verbindungsschaltung 100 erhält die Adresse von der Vorrichtung 104 und bewirkt, daß diese Adresse auf den Speicher 122 übertragen wird. Wenn Daten von dem Speicher 122 aufgenommen werden, bewirkt die Verbindungsschaltung 100, daß die Daten in den vorübergehenden Speicher 114 an einer Stelle eingetragen werden, die der Verbindungsschaltung 100 mitgeteilt worden ist. Der Platz in dem vorübergehenden Speicher 114, der der Verbindungsschaltung 100 mitgeteilt worden ist, entspricht dem Platz in der Warteschaltung 108, welche den Befehl enthält: »Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels«. Wenn dieser Befehl unten in der Warteschaltung · 108 eintrifft, enthält der Platz in dem vorübergehenden Speicher 114 die Daten, die aus dem Speicher 122 entnommen worden sind.
Es folgt nun ein Befehl FMA. Gerade wie der vorhergehende FMA-Befehl überträgt er eine Adresse aus der Programmbezugstabelle in das Adressenregister 602 der Vorrichtung 104. Der nächste Befehl ist ein Indexbefehl, welcher den Inhalt eines Indexwortes zum Adressenregister (AAR) 602 addiert. Der nächste Befehl ist ein FMS, der in die Warteschaltung 108 einen Befehl zur Übertragung aus dem vorübergehenden Speicher zum obersten Platz des Stapels einsetzt und auf die Verbindungsschaltung 100 eine Adresse im Speicher 122 und einen Platz im vorübergehenden Speicher 114 überträgt. Zu diesem Zeitpunkt enthält die Warteschaltung 108 zwei Befehle, nämlich nacheinander zweimal eine Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapels vorzunehmen. Wenn zwei Plätze im vorübergehenden Spei-
eher 114 zugeordnet worden sind, enthält mindestens einer Daten, welche die Verbindungsschaltung 100 aus dem Speicher 122 entnommen hat. Nur ein Platz des vorübergehenden Speichers wird in einem gegebenen Zeitpunkt geleert. Die Verbindungsschaltung 100 muß erst den einen füllen, bevor sie einen Befehl annimmt, den anderen zu füllen, da nur eine Verbindungsschaltung 100 vorhanden ist.
Jedesmal, wenn die Endverarbeitungsvorrichtung 110 einen Befehl ausgeführt hat, kann sie einen neuen Befehl aus der Warteschaltung entnehmen und diesen Befehl ausführen. In dem vorliegenden Fall kann die Endverarbeitungsvorrichtung 110 diese Befehle zur Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapels ausführen, sobald der vorübergehende Speicher 114 gefüllt ist, oder sie kann einige Zeit warten, weil die früheren Befehle in der Warteschaltung 108 von der Vorrichtung 110 noch nicht ausgeführt sind. Es besteht keine notwendige Zeitbeziehung zwischen dem Zeitpunkt, in dem die Vorrichtung 104 den Befehl beendet und in dem die Vorrichtung 110 den Befehl aufnimmt, um ihn auszuführen.
In der Zwischenzeit ist in der Vorrichtung 104 ein Befehl zu multiplizieren decodiert worden. Der Multiplikationsbefehl betrifft nicht die Vorrichtung 104 und wird ungeändert auf die Warteschaltung 108 als dritter Eintrag übertragen.
Die nächsten drei Befehle bestehen aus der Folge FMA, Index, FMS, die im Ablauf ähnlich sind wie die oben beschriebenen Befehle. Das Ergebnis ist ein Befehl an die Warteschaltung 108, eine Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapels vorzunehmen. Der nächste Befehl ist ein Additionsbefehl; er wird in der Vorrichtung 104 decodiert. Es wird festgestellt, daß kein Vorgang in der Vorrichtung 104 erforderlich ist, und der Addierungsbefehl wird daher als solcher als fünfter Eintrag der Warteschaltung 108 zugeleitet. Der nächste Befehl ist ein FMA-Befehl, der eine Adresse aus der Programmbezugstabelle entnimmt. Auf ihn kann ein Indexbefehl folgen, der eine Indexänderung der Adresse 620 hinzuaddiert, die aus der Programmbezugstabelle entnommen ist und die in dem Adressenregister AAR 602 festgehalten wird.
Der nächste Befehl fordert eine Speicherung vom Stapel in den Speicher. Dieser Befehl bewirkt, daß die gerade hergestellte Adresse, die sich in dem Adressenregister 602 befindet, an den Adressenspeieher 118 des nächsten leeren Platzes in der Warteschaltuhg STORQ übertragen wird. Der nächste in die Vorrichtung 110 übertragene Gegenstand ist ein Kommando, das eine Speicherung in der Warteschaltung verlangt mit einem Hinweis darauf, welcher der vier Plätze in der Speicherschaltung (STORQ)IlOB diesem Speichervorgang zugeordnet ist.
In diesem Zeitpunkt sind die folgenden Befehle in der folgenden Ordnung' in die Warteschaltung 108 eingegeben worden:
Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable X); Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable Y); MuI-tipliziere; Übertrage vom vorübergehenden Speicher zum obersten Platz des Stapels (dies ist die Variable W); Addiere; Übertrage vom obersten Platz des Speichers in die Warteschaltung. Diese Folge von Befehlen und Operanden, die sich in der Warteschaltung 108 und in dem vorübergehenden Speicher 114 befinden, entsprechen sehr genau der Folge von Operatoren und Operanden nach der »Polish«- Schreibweise des obigen Beispiels. Der einzige Mangel an Übereinstimmung besteht darin, daß die Variable Z nicht in dem vorübergehenden Speicher 114 spezifiziert ist. Die Variable Z ist in dem Adressenfeld spezifiziert, das der Speicherschaltung 120 B zugeordnet ist.
Die Vorrichtung 110 führt diese Folge von Befehlen in der Reihenfolge aus, in der sie auf sie trifft. Es ist nicht wichtig, wie viele Befehle in der Warteschaltung 108 in dem Zeitpunkt, in dem die Vorrichtung 110 sie ausführt, enthalten sind. Die Vorrichtung 110 kann die Befehle so schnell ausführen, wie die Vorrichtung 104 sie abgibt, wenn es möglieh ist, oder die Vorrichtung 110 kann auch hinter der "Vorrichtung 104 nachlaufen. Es besteht keine notwendige Zeitbeziehung zwischen den beiden.
Um das vorteilhafte Verhalten der Maschine gemaß der Erfindung bei der Ausführung von Sprün^ gen zu würdigen, sei nunmehr beschrieben, was eih: tritt, wenn der Befehl, der auf einen Speicherbefehl folgt, einen Sprung zu einem anderen Teil des gleichen Programmcodes fordert. Ifl-diesem Fall ist der Befehl, der dem SSM folgt, der in der Vorrichtung 104 aufgefunden wird, ein Sprungbefehl. Dieser Sprungbefehl wird decodiert. Es kann z. B. ein Set-up-Sprungbefehl sein, bei dem das unbedingte Bit so gesetzt ist, daß es einen unbedingten Sprung bewirkt. In der Vorrichtung 104 bewirkt die unbedingte Sprungvariante des Set-up-Sprungbefehls, daß der Programmzähler 106 auf den neuen Wert gebracht wird, der in dem Set-up-Sprungbefehl angegeben ist. Die Vorrichtung 104 wird daher Programmschritte ausführen, die von dem neuen Programmsegment erhalten werden. In diesem Fall hat die Anwesenheit eines unbedingten Sprunges in der Programmfolge der Vorrichtung 104 den Hinweis gegeben, daß der Sprung ausgeführt werden soll, onne Rücksicht darauf, was in der Vorrichtung 110 passiert, und es ist daher richtig, den Sprung ohne Rücksicht auf die Tatsache auszuführen, daß die Vorrichtung 110 diejenigen Berechnungen noch nicht fertiggestellt hat, welche dem Sprung vorausgehen.
Die Vorrichtung 110 wird natürlich die notwendigen Berechnungen beenden, wenn die Warteschaltung
108 ausgeleert wird. *
Wenn andererseits der Vorgang in diesem Punkt der Programmfolge keine Speicherung des Resultats Z, sondern eine Prüfung des Resultats Z fordert, um zu sehen, ob es positiv oder negativ ist, und wenn der Sprung von dieser Prüfung bedingt abhängig ist, dann würde die Vorrichtung 104 nicht weitergearbeitet haben. Die Vorrichtung 104 würde in einem Zeitpunkt einen Set-up-Sprungbefehl decodiert haben, um festzustellen, an welche Stelle er gehen soll. Der nächste Befehl, der von der Vorrichtung 104 decodiert wird, würde ein Sprung- oder »Prüf«- Befehl gewesen sein. Der Sprung-Befehl würde eine spezielle Prüfung des Resultats Z, z. B. eine Prüfung, ob Z größer als 0 ist, vorgeschrieben haben. In diesem Fall würde die Vorrichtung 104 anhalten und warten, daß die Warteschaltung 108 leer wird, und nur dann würde die Vorrichtung 104 wissen, daß das gewünschte Resultat in der Vorrichtung 110 hergestellt worden ist. Die Prüfung würde dann der nächste von der Warteschaltung 108 zur Vorrich-
tung 110 übertragene Gegenstand sein und würde unter Verwendung der Vergleichsschaltung 230 der Vorrichtung 110 ausgeführt. Die Vorrichtung 104 würde dann den Sprung in Abhängigkeit von dem Ergebnis der Prüfung ausführen. Wenn der Sprung ausgeführt würde, dann würde es notwendig sein, weitere Befehle der Vorrichtung 101 zuzuführen. Die neue Einstellung des Befehlsadressenzählers, nämlich das Register 304, würde vom Sprungsteuerregister 1090 (Fig. 8) aufgefunden werden. Die Adresse in dem Sprungsteuerregister (/Ci?) 1090 würde dann in das Register 304 übertragen, damit die Befehle, auf die das Programm springt, in die Vorrichtung 101 gelangen. Nach dieser Übertragung sorgt die normale Arbeitsweise der Befehlssteuereinheit 102 dafür, daß der Befehl, auf den gesprungen wird, in die Vorrichtung 104 eintritt.
Die Vorrichtung 101 kann möglicherweise Befehle aufgenommen haben, die auf den Sprungbefehl folgen und die nicht ausgeführt werden sollen. Dies Herbeiholen von Befehlen ist jedoch ohne Schaden, da keine Daten und keine Programmfolge geändert
" worden sind.
Die Bedingungen, welche die Vorrichtung 104 zum Anhalten bringen/ sind stets durch spezielle Op-Codes angegeben. Hierzu gehören der bedingte Sprung, der Sprung zur Prüfung für ein Feld, und ein spezieller Befehl, die Warteschaltung ohne Sprung auszuleeren. Bei allen anderen Op-Codes arbeitet die Vorrichtung 104 weiter, nachdem sie den laufenden Befehl ausgeführt hat. Bei diesen drei genannten Op-Codes hält die Vorrichtung 104 jedoch an, bis die Warteschaltung 108 leer ist; sie weiß, daß in dem Zeitpunkt, in dem die Warteschaltung 108 leer ist, alle früheren in der Programmfolge geforderten Resultate nunmehr im obersten Platz des Stapelregisters 501 berechnet worden sind.
Wir kehren nunmehr zur vorigen Ausführungsform des Ausführungsbeispiels zurück. Dabei befindet sich ein Code von Befehlen in der Warteschaltung 108, der eine Übertragung von dem vorübergehenden Speicher zum obersten Platz des Stapelregisters, eine zweite Übertragung von dem vorübergehenden Spei-
' eher zum obersten Platz des Stapelregisters, eine Multiplikation, eine Übertragung vom vorübergehenden Speicher zum obesrt^p Platz des Stapelregisters, eine Addition und eine Übertragung zur Warteschaltung enthält. Der erste Befehl, nämlich die Übertragung vom vorübergehenden Speicher zum obersten Platz des Stapelregisters bewirkt, daß eine Größe X von der Vorrichtung 104 zum obersten Platz des Stapelregisters 501 übertragen wird. Die nächste Übertragung vom vorübergehenden Speicher zum obersten Platz des Stapelregisters bewirkt, daß die Größe Y in dem Stapelregister 501 an oberster Stelle eingeführt wird und der Wert X um eine Stelle nach unten in die zweite Stelle des Stapelregisters 502 gelangt. Bei der Multiplikation werden die beiden obersten Werte des Stapels des Γ-Registers 501 und S-Registers 502 miteinander multipliziert, und das Ergebnis wird am obersten Platz des Stapelregisters 501 festgehalten. Der oberste Platz des Stapelregisters 501 enthält nunmehr das Produkt ATF. Der nächste Befehl ist eine Übertragung vom vorübergehenden Speicher zum obersten Platz des Stapelregisters 501 und bewirkt, daß ein Wert W in den obersten Platz des Stapelregisters 501 eingeführt wird. Das bereits berechnete Produkt rutscht eine Stelle in dem zweiten Stapelregister 502 nach unten. Der nächste Befehl, der auf Addieren lautet, bewirkt, daß die obersten beiden Einträge in den Stapelregistern 501 und 502 miteinander addiert werden. Der Wert W wird mit dem Produkt XY addiert, worauf sich das Produkt in dem zweiten Stapelregister 502 des Stapels befindet. Die beiden Zahlen, die miteinander addiert werden, werden einzeln gelöscht, und nur die Summe bleibt erhalten. Zu diesem Zeitpunkt befindet sich das Resultat im obersten Platz des Speichers und ist die einzige Zahl in dem Platz des Stapels.
Der nächste Befehl, das ist der letzte Befehl in dem Ausführungsbeispiel, der in die Warteschaltung 108 eingeführt worden ist, lautet auf Speichern. Er bewirkt, daß das Ergebnis, das nun in dem obersten Platz des Stapels vorhanden ist, in den Datenspeicher 120 der. Speicherschaltung STORQ120 B des assoziativen Speichers 19 übertragen wird. In einem späteren Zeitpunkt spricht die Verbindungsschaltung 100 auf das Signal von der Speicherschaltung 120B an, das besagt, daß die Warteschaltung Daten enthält, die -; gespeichert werden sollen und bewirkt, daß das Re-* sultat, das sich in der Speicherschaltung 120 B befindet, in den Speicher 122 zurückübertragen wird.
Nachdem nunmehr der Aufbau, die'Wirkungsweise und das Betriebsverfahren des Erfindungegenstandes beschrieben worden sind, wird es für nützlich gehalten, auf einige wichtige Eigenschaften des DV der Erfindung nochmals hinzuweisen.
Charakteristische Eigenschaften und Merkmale
Das Ausführungsbeispiel der Erfindung, das hier beschrieben worden ist, bezieht sich auf ein DV, das als das Zentralsystem einer Rechenmaschine hoher Geschwindigkeit zur Verarbeitung komplexer Daten benutzt werden kann.
Damit können arithmetische Berechnungen von Steuerfunktionen Datenübertragungen und auch Unterbrechungsvorgänge bewirkt werden, die unter der Leitung eines Exklusivprogramms ausgeführt werden. Es können mehrere Vorgänge gleichzeitig durchgeführt werden. Es sind Zwischenspeicher vorhanden, welche viel Zeit benötigende Vorgänge, wie die Ausführung von Befehlen an Operanden, überbrücken. Das zentrale DV der Erfindung enthält drei Hauptteile: eine Verbindungsschalfung, eine Vorverarbeitungsvorrichtung und eine Endverarbeitungsvorrichtung. Diese drei Vorrichtungen arbeiten im wesentlichen unabhängig voneinander.
Die Verbindungsschaltung
Die Verbindungsschaltung steuert und verarbeitet alle Beziehungen zwischen dem Hauptspeicher und dem zentralen Rechengerät. Die Verbindungsschaltung 100 überwacht die verschiedenen Einheiten in der Vorrichtung 104 und der Endverarbeitungsvorrichtung 110, die vorübergehend Zugang zum Hauptspeicher benötigen. Die Verbindungsschaltung kann vier Einheiten in dem zentralen DV bedienen, nämlich den Stapelanhang 500, den Zwischenspeicher 114, die Befehlsvorausschauvorrichtung 101 und den assoziativen Speicher 19. Der assoziative Speicher 19 enthält die Speicherwarteschaltung, die Indexwarteschaltung und die Warteschaltung für die Programmbezugstabelle. Der Stapelanhang 500 befindet sich in der Endverarbeitungsvorrichtung 110 und wird je nach Bedarf bedient. Die Verbindungsschaltung 100 führt automatisch Speicher- und Entnahmevorgänge
5095Π/123
aus, um eine vorbestimmte Anzahl von Operanden zur Verarbeitung durch die Endverarbeitungsvorrichtung 110 bereitzuhalten. Auch der vorübergehende Speicher 114 befindet sich in der Endverarbeitungsvorrichtung 110 und kann von der Verbindungsschaltung 100 nach Bedarf bedient werden. Die Vorverarbeitungsvorrichtung 104 kann alle Anfragen zur Bedienung des vorübergehenden Speichers 114 einleiten. Die Befehlsvorausschauworrichtung 101 kann eine räumlich getrennte Baueinheit sein, oder sie kann auch in der Vorverarbeitungsvorrichtung 104 enthalten sein; die Befehlsvorausschauvorrichtung 101 kann nach Bedarf bedient werden. Die Verbindungsschaltung 100 überwacht die Befehlsvorausschauvorrichtung 101 in ähnlicher Weise, wie sie den Stapelanhang 500 überwacht, jedoch ist der Vorgang bei der Befehlsvorausschauvorrichtung 101 einseitig, da niemals die Notwendigkeit einer Speicherung von der Befehlsvorausschauvorrichtung 101 aus auftritt. Die Speicherwarteschaltung des assoziativen Speichers 119 ist in der Vorverarbeitungsvorrichtung 104 angeordnet und wird ständig durch die Verbindungsschaltung 100 überwacht und nach Bedarf bedient. Die Verbindungsschaltung 100 speichert Daten aus der Speicherwarteschaltung in dem Hauptspeicher 122 periodisch, um sie zur Verwendung in der Endverarbeitungsvorrichtung 110 zur Verfügung zu halten. Die Indexwarteschaltung und die Programmbezugstabellenwarteschaltung des assoziativen Speichers 19 können sowohl auf Anforderungen als auch nach Bedarf bedient werden. Wenn das zentrale DV eine Entnahme aus dem Hauptspeicher 122 machen will, die sich auf das Basisindex-Register 621 oder die Programmbezugstabelle bezieht, dann wird diese in den assoziativen Speicher 19 durch die Verbindungsschaltung 100 eingegeben. Wenn die Indexwarteschaltung und die Programmbezugstabellenwarteschaltung des assoziativen Speichers 19 in diesem Zeitpunkt gefüllt sind, dann entnimmt die Verbindungsschaltung 100 den ältesten Dateneintrag in der Warteschaltung und bringt ihn in den Hauptspeicher 122 zurück.
Andere Funktionen der Verbindungsschaltung 100 können die Erzeugung eines Paritätsbits bei abgehenden Adressen und Daten, die Prüfung der Parität bei ankommenden Daten und die ständige Überwachung von Unterbrechungsleitungen von den Speichereinheiten der I/0-Steuereinneit und anderen Einheiten des zentralen DV sein. Die Verbindungsschaltung 100 kann die Empfänger 762 enthalten (um Signale zu empfangen und zu normieren, die dem DV von dem Speicher und I/O-Steuergerät zugeführt werden), sowie die Sender 758, für die Übertragung zwischen den Baueinheiten (wobei die Treiberstufen Antriebs-Energie an die Signalleitungen von dem DV an den Speicher und die I/0-Steuereinheiten liefern), ferner Verbindungsadressenregister 754 für Adressenzwischenspeicherung, das Verbindungsspeicherregister 752 zur Zwischenspeicherung von zu schreibenden Daten, das Verbindungsvorbereitungsregister 756, welches zwischengespeichert und als Verteilungszentrum für ankommende Daten dient, und das Verbindungssteuersystem (Fig. 11), welches zur Überwachung, zur Prioritäts- und Reihenfolgenfeststellung und zur Steuerung aller Operationen zwischen dem DV und dem Hauptspeicher dient.
Das DV kann mit dem Hauptspeicher und dem I/O-Steuergerät mit Hilfe der Verbindungsschaltung 100 in Verbindung treten. Die Verbindungsschaltung kann die Übertragung von Informationen zwischen dem DV und dem Hauptspeicher sowie dem I/O-Steuergerät koordinieren. Es kann eine Zeitsteuerung bewirken, die die Reihenfolge der Operationen sicherstellt.
Die Vorverarbeitungsvorrichtung
Die Vorverarbeitungsvorrichtung 104 ist der das Programm ausführende Teil des zentralen DV. Alle
ίο Operationen der Vorrichtung 104 beginnen in der Vorrichtung 101 zur Vorausschau auf die Befehle. Die Vorrichtung 101 enthält ein örtliches Speichergerät, das zur Zwischenspeicherung von Befehlsworten des laufenden Programms vor der Verarbeitung dient. Die Kapazität der Vorrichtung 101 kann 12 Worte zu 52 Bits pro Wert betragen. Da der längste Befehl bei dem Beispiel 4 Silben zu 6 Bits hat, steht ein Speicherraum für 24 Befehle zur Verfügung. Bei. einer derartigen Vorausschaumöglichkeit ist es nicht schwierig, daß die Verbindungsschaltung 100 die Vorrichtung 101 genügend im Vorlauf vor den tatsächlichen Berechnungen in der Vorrichtung 104 hält, so daß die Zeit für das Herbeiholen der Programme überbrückt wird.
as Die Befehle werden der Vorrichtung 101 der Reihe nach entnommen und in das Advast-Btfehlsregister 604 gebracht. Dieses Register 604 hält den laufenden Op-Code, Silben und Varianten und/oder die Adressensilben fest. Die Operations- und Variantsilben werden von der Advaat-Steuerschaltung 1101 decodiert, um festzustellen, welche Operationen von der Vorrichtung 104 ausgeführt werden sollen. Aus der Kombination von Op-Code und Variant ergibt sich, ob eine Adressenberechnung ausgeführt werden muß, und wenn dies der Fall ist, welches Basisregister angewendet werden soll und welche Grenzen bei der Speichergrenzprüfung in der Advast-Vergleichseinheit benutzt werden sollen. Wenn die Befehle eine Adressenberechnung verlangen, die eine Bezugnahme afu den Speicher erfordern, dann wird die Adresse bezüglich der Speichergrenzen in der Advast-Vergleichsschaltung geprüft, und bei Feststellung eines Fehlers wird eine Unterbrechung herbeigeführt. Die Adresse wird auch dem assoziativen Speicher 19 zugeführt, um festzustellen, ob das verlangte Wort in der Speicherwarteschaltung, der Indexwarteschaltung oder der Programmbezugstabellenwarteschaltung örtlich gespeichert ist. Wenn sich das verlangte Wort nicht in dem örtlichen Speieher befindet, dann wird die Adresse an das Verbindungsadressenregister 754 zusammen mit der Kontrollinformation weitergegeben, die angibt, wo die Verbindungsschaltung diese Adresse abgeben soll, die aus dem Speicher kommt. Wenn daher das Wort für die Endverarbeitungsvorrichtung 110 bestimmt ist, dann braucht die Vorrichtung 104 nicht zu warten, bis die Entnahme beendet ist.
Nachdem einmal die Verbindungsschaltung 100 in Gang gesetzt ist, kann sich die Vorrichtung 104 frei zum nächsten Befehl begeben. Wenn die nächste Adresse örtlich gespeichert ist, dann wird durch den assoziativen Speicher 19 automatisch die örtliche Warteschaltung betätigt, und das gewünschte Wort erscheint am Ausgang. Wenn das gewünschte Wort von der Vorrichtung 104 verwendet werden soll, dann steht es für die Berechnung am Ausgang der Warteschaltung zur Verfügung. Wenn es für die Endverarbeitungsvorrichtung 110 bestimmt ist, dann
35 36
überträgt die Vorrichtung 104 das Wort an den vor- die auch für logische Funktionen, z. B. »IMP«, übergehenden Speicher 114, der die Warteschaltung »UND/ODER« oder für Vorgänge wie »Gib Feld der Endschaltung für örtliche Operanden ist. Die frei« und »Ergänze das Feld« benutzt werden. Ein Additionsschaltung 601 der Vorverarbeitungsvorrich- Detektor für Einsen wird zur Normierung benutzt tung kann eine Addierschaltung mit drei Eingängen 5 und zur Umwandlung von ganzzahligem Rechnen sein, die in einem Additionsvorgang die Adressen- auf Rechnen mit gleitendem Komma. Er wird auch silben der Befehlsfolge, ein Basisregister und einen bei Stapel- und Feldprüfungen gegenüber dem NuIl-Indexbetrag addiert. Ein Indexvorgang, d. h. eine wert benutzt. Eine Addierschaltung 220 wird ledig-Erhöhung der Adresse um einen festen Betrag, wird lieh für arithmetische Operationen benutzt. Verschiemit Hilfe des Advast-Adressenregisters 602 durch- io bungen und Feldmanipulationen werden mit Hilfe geführt. Das Advast-Adressenregister 602 ist der von Schiebeschaltungen durchgeführt.
Akkumulator für die Indexberechnung. Die örtliche Die Endverarbeitungsvorrichtung 110 arbeitet Warteschaltung in dem assoziativen Speicher 19 kann unter der Steuerung der Vorrichtung 104, kann aber bis zu 24 Indexworte enthalten, so daß ein guter Teil nicht angehalten werden, solange Befehle in der sämtlicher Indexvorgänge ohne Bezugnahme auf den 15 Warteschaltung 108 vorhanden sind. Es gibt einen Hauptspeicher ausgeführt werden kann. speziellen Befehl, der die Endverarbeitungsvorrich-Die Programmbezugstabellenwarteschaltung des tung HD anhält, wenn er oben in der Warteschaltung assoziativen Speichers 19 ist der örtliche Speicher 108 erscheint. Die Warteschaltung 108 wird erst für die zuletzt benutzte Programmbezugstabelle für abgearbeitet, bevor irgendeine der Unterbrechungs-Bezugnahmen auf den Hauptspeicher 122. Sie ist 20 routinen beginnt. Alle Übertragungen von Daten ein örtlicher Speicher für Steuerworte, die bei Pro- zum Hauptspeicher 122 werden von der oberstea. grammsprüngen benutzt werden, für Worte, die ab- Stelle des Stapelregisters 501 aus _ vorgenommen, wechselnde Speicheradressengrenzen enthalten und Beim Vorliegen eines Befehls »Speichere vom Stapel für Worte, die indirekte Adressen enthalten. Die zum Hauptspeicher« überträgt die^Vorrichtung 110 Ausführung aller Progfammsprünge wird von der 25 den Inhalt des T-Registers SOl an'^die Speicher-Vorrichtung 104 gesteuert. Die verschiedenen Arten warteschaltung in dem assoziativen Speicher 19. Die von Sprüngen sind oben im einzelnen aufgeführt. Endverarbeitungsvorrichtung 110 hängt von der Die Einleitung des Sprung-Steuerregisters 1090 wird Vorverarbeitungsvorrichtung 104 und der Verbindurch die Vorrichtung 104 bewirkt, ebenso wie die dungsschaltung 100 nur so weit ab, daß für ihren Verteilung der Sprung-Steuerworte und die Bildung 30 Betrieb irgendeine Angabe in der Warteschaltung des Rücklaufsteuerwortes. Die Vorrichtung 104 stellt 108 und in dem vorübergehenden Speicher 114 entauch alle Bedingungen für Unterbrechungen fest, halten sein muß. Solange noch Befehle für die Endspricht auf spezielle Unterbrechungsvorgänge an und Verarbeitungsvorrichtung vorhanden sind, braucht die steuert die Vorgänge für eine vorläufige Unter- Endverarbeitungsvorrichtung nicht auf die Vorverbrechung. 35 arbeitungsvorrichtung 104 oder die Verbindungs-
AlIe in dem DV ausgeführten Befehle werden in schaltung 100 zu warten,
der Vorrichtung 104 verarbeitet. Diejenigen Befehle,
die ausdrückliche Operationen der Endverarbeitungs- Di6 zeitlichen Bedingungen
vorrichtung 110 verlangen, werden lediglich von der
Vorrichtung 104 decodiert und an die Vorrichtung 40 Die Erfindung ist nicht auf das Ausführungs-
110 übertragen. beispiel beschränkt, in dem drei verschiedene Zeiten
~. _ , ' .. ... für die Ausführung jedes Befehls angegeben sind,
Die Endverarbeitungsvorrichtung nämlich eme m d°r Vorrichtung 1047 eine in der
Die Endverarbeitungsvorrichtung HO ist derjenige Verbindungsschaltung 100 und eine in der Endver-
Teil des zentralen DV, der arithmetische und logische 45 arbeitungsvorrichtung 110. Die Vorverarbeitungs-
Operationen durchführt ^ind auch alle Daten und vorrichtung 104 berechqet Adressen und befaßt sich
Datenprüfoperationen ausführt. Alle Vorgänge der mit den Indexvorgängen und Indexprüfungen. Die
Endverarbeitungsvorrichtung werden durch Befehle Verbindungsschaltung 100 stellt die Verbindung zwi-
ausgelöst, die der Reihe nach der Warteschaltung sehen dem Rechengerät und dem Speicher her, und
108 entnommen werden. 50 die Endverarbeitungsvorrichtung 110 verarbeitet die
Wenn die Vorverarbeitungsvorrichtung 104 die Daten und prüft die Daten.
Vorbereitung der Befehle für die Endverarbeitungs- Alle Befehle werden von der Vorverarbeitungsvorrichtung vollendet hat, dann werden die Op-Codes vorrichtung 104 verarbeitet, in der auch die Decoin die Warteschaltung 108 eingeführt und die züge- dierung der Befehle erfolgt. Einige Befehle wurden hörigen Variantsilben und örtlich gesteuerten Ope- 55 auch in der Verbindungsschaltung 100 und in der randen in dem vorübergehenden Speicher 114 fest- Endverarbeitungsvorrichtung HO verarbeitet. Diese gehalten. Wenn ein Operand betroffen ist, der aus Schaltungen sind durch Zwischenspeicher verbunden, dem Hauptspeicher entnommen werden muß, dann so daß sie unabhängig voneinander arbeiten können, liefert die Vorrichtung 104 an die Verbindungs- Wenn z. B. der Befehl »Addiere« von der Vorverarschaltung 100 eine vorübergehende Adresse, unter 60 beitungsvorrichtung 104 verarbeitet wird, wird er in der die Verbindungsschaltung 100 den Operanden die Warteschaltung 108 eingegeben, damit er von festhält, wenn er ankommt. Alle Vorgänge in der der Endverarbeitungsvorrichtung 110 verarbeitet wer-Endverarbeitungsvorrichtung betreffen den Stapel- den kann. Die Vorverarbeitungsvorrichtung 104 anhang 500 und insbesondere die ersten zwei Plätze, kann daher schon mit der Verarbeitung des nächsten die durch das T-Register 501 und S-Register 502 65 Befehls beginnen, ohne darauf warten zu müssen, gebildet werden. Die Endverarbeitungsvorrichtung daß die Endverarbeitungsvorrichtung HO verfügbar 110 enthält eine Vergleichsschaltung 230, die für ist. Die Verbindungsschaltung 100 kann ebenfalls alle Stapel- und Feld-Prüfvorgänge benutzt wird und über Zwischenspeicher angeschlossen sein, und so-
lange diese Zwischenspeicher nicht voll sind, arbeiten die Vorrichtungen unabhängig voneinander und gleichzeitig. Die Ausführungszeit für eine Folge von Befehlen kann dadurch angenähert werden, daß man einzeln die Zeiten für jede Schaltung addiert und dann die größte dieser drei Summen feststellt..
Bei einigen Befehlen kann es notwendig sein, zwei Schaltungen gleichzeitig zu verwenden, und die Unabhängigkeit zwischen den Schaltungen braucht für diese Befehle nicht zuzutreffen. Zum Beispiel kann ein Indexbefehl, der erstmalig auf ein Indexwort Bezug nimmt (nicht im örtlichen Speicher), verlangen, daß die Vorrichtung 104 wartet, bis die Verbin-
dungsschaltung 100 das Indexwort gefunden hat, bevor die Vorrichtung 104 mit der Indexberechnung fortfahren kann.
Die Zeit, die erforderlich ist, damit die Verbindungsschaltung 100 Befehlsworte herbeiholt, wird hierbei nicht berücksichtigt, da die Verbindungsschaltung 100 in der Lage ist, Befehlsworte weit im voraus vor ihrer Verwendung in der Vorverarbeitungsvorrichtung 104 herbeizuholen. Diese Befehlsworte werden der Vorrichtung 101 während einer Zeit zugeführt, in der die anderen Vorrichtungen und Schaltungen des DV die Verbindung nicht benutzen.
Hierzu 9 Blatt Zeichnungen

Claims (10)

Patentansprüche:
1. Datenverarbeitungsgerät zur Verarbeitung einer Folge von in Bearbeitung befindlichen und zur Bearbeitung anstehenden Befehlen mit einer Befehle ausführenden Endverarbeitungsvorrichtung und einer davorgeschalteten Befehlsvorausschauvorrichtung, dadurch gekennzeichnet, daß
IO
a) eine die von der Endverarbeitungsvorrichtung (110) auszuführenden Befehle vorverarbeitende Vorverarbeitungsvorrichtung (104) zwischen die Befehlsvorausschauvorrichtung (101) und die Endverarbeitungsvorrichtung (110) geschaltet ist, daß
b) die Vorverarbeitungsvorrichtung (104) eine Bestimmungsschaltung (606) aufweist zur Ausführung von Sprungbefehlen oder zur Feststellung, daß weitere vorverarbeitende Schritte und die Aufbereitung von Daten unerwünscht sind, bis die Endverarbeitungsschaltung (110) die dem BedingungsverT gleich zugrunde zu legenden Daten ermittelt hat, daß '
c) eine eine Vorverarbeitung durch die Vorverarbeitungsvorrichtung (104) verhindernde Sperrschaltung (1101) vorgesehen ist, die auf die Feststellung, daß weitere Verarbeitungsschritte und die Aufbereitung von Daten unerwünscht sind, anspricht, und daß
d) zwischen die Endverarbeitungsvorrichtung (110) und die Vorverarbeitungsvorrichtung (104) eine Warteschaltung (108) zur zeitweisen Speicherung der Befehle nach der Vorverarbeitung, jedoch vor der Verarbeitung in der Endverarbeitungsvorrichtung (110) geschaltet ist.
2. Datenverarbeitungsgerät nach Anspruch 1, dadurch gekennzeichnet, daß die Vorverarbeitung in der Vorverarbeitungsvorrichtung (104) unabhängig und gleichzeitig mit der Verarbeitung der vorverarbeiteten Befehle in der Endverarbeitungsvorrichtung (110) erfolgt.
3. Datenverarbeitungsgerät nach Anspruch 1 oder 2, dadurch^gekennzeichnet, daß mit der Warteschaltung (108) ein Zwischenspeicher (114) verbunden ist, der eine vorübergehende Speicherung für diejenigen zu verarbeitenden Daten ermöglicht, die zu den Befehlen in der Warteschaltung (108) gehören.
4. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
a) die Bestimmungsschaltung (606) auf Bedingungen der Befehlsvorausschauvorrichtung (101) anspricht, um einen bedingten Sprung, einen Sprung zum Prüfen des Feldes und einen speziellen Befehl, die Warteschaltung (108) zu löschen, auszuführen, daß
b) ferner eine Befehlssteuereinheit (102) vorgesehen ist, die die Vorverarbeitungsvorrichtung (104) nach Beendung des laufenden Befehls bei Fehlen der drei genannten Bedingungen kontinuierlich fortschreiten läßt, daß
c) die Sperrschaltung (1101) die Vorverarbeitungsvorrichtung (104) anhält, während die Warteschaltung (108) davon unabhängig weiterverarbeitet, bis sie keine Befehle mehr enthält.
5. Datenverarbeitungsgerät nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
a) die Bestimmungsschaltung (606) einerseits Befehle an die Warteschaltung (108) direkt weiterleitet und andererseits Befehle, zu deren Ausführung Daten erforderlich sind, zuerst decodiert und dann an die Warteschaltung (108) weiterleitet, daß
b) eine Sprungsteuerschaltung (1090) vorgesehen ist, die bei der Ausführung eines bedingten Sprungbefehls das Ergebnis der Bedingungsprüfung von der Endverarbeitungsvorrichtung (110) empfängt und entsprechend dem Ergebnis der Bedingungsprüfung die Ausführung des bedingten Sprungbefehls steuert.
6. Datenverarbeitungsgerät nach einem -der vorhergehenden Ansprüche?·—dadurch gekennzeichnet, daß ein Verbindungsgerät' (100) vorgesehen ist, das einerseits mit einem Speicher (112) und andererseits mit der Vorverarbeitungsvorrichtung (104) und der Endverarbeitungsvorrichtung (110) verbunden ist und so den beiden Vorrichtungen (104, 110) einen direkten Zugriff zum Speicher (122) gestattet.
7. Datenverarbeitungsgerät nach Anspruch 6, dadurch gekennzeichnet, daß
a) das Verbindungsgerät (100) ein Verbindungsadressenregister (754) enthält, welches feststellt, wann im Hauptspeicher ein Wort aufgesucht werden soll, und ein Verbindungsanfrageregister (756), welches vom Speicher entnommene Worte festhält, um sie einem schnellen Pufferspeicher zuzuführen, wodurch der Vorverarbeitungsvorrichtung (104) ein schneller Zugriff zu den aus dem Speicher (122) entnommenen Daten ermöglicht wird.
8. Datenverarbeitungsgerät nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß die Vorverarbeitungsvorrichtung (104) eine Einrichtung (600) zur Berechnung von Adressen gespeicherter Daten enthält, wobei diese Adressen durch die Decodierung von Befehlen in der Vorverarbeitungsvorrichtung (104) erhalten wurden.
9. Datenverarbeitungsgerät nach Anspruch 8, dadurch gekennzeichnet, daß die Einrichtung (600) zur Berechnung von Adressen
a) einen Addierer (601) zum Addieren von Adressensilben der zuvor berechneten Adressen zu dem Inhalt eines Basisregisters (620
• bis 622, 624 bis 626) und zu einem Indexbetrag aufweist und
b) ein Adressenregister (602) zur Speicherung der durch den Addierer (601) berechneten Adressen enthält.
10. Datenverarbeitungsgerät nach Anspruch 9, dadurch gekennzeichnet, daß es
a) einen assoziativen Speicher (19) enthält, der
einen assoziativen Adressenspeicher (118) und einen assoziativen Datenspeicher (120) aufweist, wobei der Adressenspeicher (118) die Speicheradressen der Daten speichert, die im assoziativen Datenspeicher enthalten sind, und daß
b) der Inhalt des Adressenregisters (602) mit dem Inhalt des assoziativen Adressenspeichers (118) verglichen wird, um zu bestimmen, ob Daten aus dem Speicher (122) geholt werden sollen.
DE1524103A 1965-11-26 1966-11-26 Datenverarbeitungsgerät Expired DE1524103C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US509908A US3401376A (en) 1965-11-26 1965-11-26 Central processor

Publications (3)

Publication Number Publication Date
DE1524103A1 DE1524103A1 (de) 1970-12-17
DE1524103B2 true DE1524103B2 (de) 1975-03-13
DE1524103C3 DE1524103C3 (de) 1979-06-21

Family

ID=24028601

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1524103A Expired DE1524103C3 (de) 1965-11-26 1966-11-26 Datenverarbeitungsgerät

Country Status (5)

Country Link
US (1) US3401376A (de)
CA (1) CA921609A (de)
DE (1) DE1524103C3 (de)
FR (1) FR1502315A (de)
GB (1) GB1164475A (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3546677A (en) * 1967-10-02 1970-12-08 Burroughs Corp Data processing system having tree structured stack implementation
US3577190A (en) * 1968-06-26 1971-05-04 Ibm Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3573745A (en) * 1968-12-04 1971-04-06 Bell Telephone Labor Inc Group queuing
US3631400A (en) * 1969-06-30 1971-12-28 Ibm Data-processing system having logical storage data register
US3593314A (en) * 1969-06-30 1971-07-13 Burroughs Corp Multistage queuer system
JPS514381B1 (de) * 1969-11-24 1976-02-10
US3651476A (en) * 1970-04-16 1972-03-21 Ibm Processor with improved controls for selecting an operand from a local storage unit, an alu output register or both
US3656123A (en) * 1970-04-16 1972-04-11 Ibm Microprogrammed processor with variable basic machine cycle lengths
NL7102289A (de) * 1971-02-20 1972-08-22
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US3725876A (en) * 1972-02-08 1973-04-03 Burroughs Corp Data processor having an addressable local memory linked to a memory stack as an extension thereof
US3794981A (en) * 1972-06-02 1974-02-26 Singer Co Realtime computer operation
US3810117A (en) * 1972-10-20 1974-05-07 Ibm Stack mechanism for a data processor
US3858183A (en) * 1972-10-30 1974-12-31 Amdahl Corp Data processing system and method therefor
US3868644A (en) * 1973-06-26 1975-02-25 Ibm Stack mechanism for a data processor
US3889243A (en) * 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US3949378A (en) * 1974-12-09 1976-04-06 The United States Of America As Represented By The Secretary Of The Navy Computer memory addressing employing base and index registers
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4212060A (en) * 1975-04-30 1980-07-08 Siemens Aktiengesellschaft Method and apparatus for controlling the sequence of instructions in stored-program computers
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4371927A (en) * 1977-11-22 1983-02-01 Honeywell Information Systems Inc. Data processing system programmable pre-read capability
US4521850A (en) * 1977-12-30 1985-06-04 Honeywell Information Systems Inc. Instruction buffer associated with a cache memory unit
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
US4312036A (en) * 1978-12-11 1982-01-19 Honeywell Information Systems Inc. Instruction buffer apparatus of a cache unit
US4539635A (en) * 1980-02-11 1985-09-03 At&T Bell Laboratories Pipelined digital processor arranged for conditional operation
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
US4947369A (en) * 1982-12-23 1990-08-07 International Business Machines Corporation Microword generation mechanism utilizing a separate branch decision programmable logic array
US4872109A (en) * 1983-09-29 1989-10-03 Tandem Computers Incorporated Enhanced CPU return address stack
US4868735A (en) * 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4630195A (en) * 1984-05-31 1986-12-16 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
USRE34052E (en) * 1984-05-31 1992-09-01 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
JPS619734A (ja) * 1984-06-26 1986-01-17 Nec Corp プロセツサ制御方式
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
JPH0769812B2 (ja) * 1987-12-29 1995-07-31 富士通株式会社 データ処理装置
CA2038264C (en) * 1990-06-26 1995-06-27 Richard James Eickemeyer In-memory preprocessor for a scalable compound instruction set machine processor
US6782407B1 (en) 2000-09-26 2004-08-24 Koninklijke Philips Electronics N.V. System and method for low overhead boundary checking of java arrays
US7139877B2 (en) * 2003-01-16 2006-11-21 Ip-First, Llc Microprocessor and apparatus for performing speculative load operation from a stack memory cache
US7191291B2 (en) * 2003-01-16 2007-03-13 Ip-First, Llc Microprocessor with variable latency stack cache
US7136990B2 (en) * 2003-01-16 2006-11-14 Ip-First, Llc. Fast POP operation from RAM cache using cache row value stack
US7139876B2 (en) * 2003-01-16 2006-11-21 Ip-First, Llc Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache
US9910801B2 (en) 2014-08-01 2018-03-06 Universiti Teknologi Malaysia Processor model using a single large linear registers, with new interfacing signals supporting FIFO-base I/O ports, and interrupt-driven burst transfers eliminating DMA, bridges, and external I/O bus
DE102014111305A1 (de) 2014-08-07 2016-02-11 Mikro Pahlawan Prozessor-Modell, das ein einziges großes, lineares Register verwendet, mit FIFO-basierten I/O-Ports unterstützenden neuen Interface-Signalen und unterbrechungsgesteuerten Bus-Transfers, die DMA, Brücken und einen externen I/O-Bus eliminieren

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3158844A (en) * 1959-09-14 1964-11-24 Ibm Data processing system
US3156897A (en) * 1960-12-01 1964-11-10 Ibm Data processing system with look ahead feature
US3223976A (en) * 1961-05-26 1965-12-14 Bell Telephone Labor Inc Data communication system
BE625673A (de) * 1961-12-04
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
USRE26171E (en) * 1962-03-02 1967-03-07 Multiprocessing computer system
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3287702A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer control
US3323109A (en) * 1963-12-30 1967-05-30 North American Aviation Inc Multiple computer-multiple memory system

Also Published As

Publication number Publication date
GB1164475A (en) 1969-09-17
FR1502315A (fr) 1967-11-18
DE1524103A1 (de) 1970-12-17
US3401376A (en) 1968-09-10
CA921609A (en) 1973-02-20
DE1524103C3 (de) 1979-06-21

Similar Documents

Publication Publication Date Title
DE1524103C3 (de) Datenverarbeitungsgerät
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE1449531C3 (de) Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE3424962C2 (de)
DE1813916B2 (de) Elektronische Datenverarbeitungsanlage
DE2411963B2 (de) Datenverarbeitungsanlage
DE1942005B2 (de) Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten
DE1299145B (de) Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen
DE1299146B (de) Befehlssteuereinheit
DE1524130B1 (de) Datenverarbeitende Mehrfachanlage
DE2758830A1 (de) Rechenvorrichtung
DE2725522A1 (de) Datenverarbeitungsvorrichtung
DE2835095A1 (de) Gekoppeltes, mikroprogrammiertes prozessorsystem
DE3638572A1 (de) Vektorprozessor
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE1499206C3 (de) Rechenanlage
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2335991C3 (de) Schaltung zur Lenkung eines zur Unterbrechung einer von mehreren Befehls-Recheneinheiten auffordernden Signals
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE1909477A1 (de) Speichersteueranlage fuer ein Multiprogramm-Datenverarbeitungssystem
DE2906685A1 (de) Instruktionsdecodierer
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)