DE1524103C3 - Datenverarbeitungsgerät - Google Patents

Datenverarbeitungsgerät

Info

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

Claims (10)

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

Family

ID=24028601

Family Applications (1)

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

Country Status (5)

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

Families Citing this family (50)

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

Family Cites Families (10)

* 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
NL286251A (de) * 1961-12-04
USRE26171E (en) * 1962-03-02 1967-03-07 Multiprocessing computer system
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3287702A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer control
US3323109A (en) * 1963-12-30 1967-05-30 North American Aviation Inc Multiple computer-multiple memory system

Also Published As

Publication number Publication date
GB1164475A (en) 1969-09-17
CA921609A (en) 1973-02-20
US3401376A (en) 1968-09-10
FR1502315A (fr) 1967-11-18
DE1524103A1 (de) 1970-12-17
DE1524103B2 (de) 1975-03-13

Similar Documents

Publication Publication Date Title
DE1524103C3 (de) Datenverarbeitungsgerät
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE1449531C3 (de) Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE3424962C2 (de)
DE1942005B2 (de) Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten
DE3306084A1 (de) Rechnerarchitektur zur gleitkomma -addition
DE1524130B1 (de) Datenverarbeitende Mehrfachanlage
DE2556624C2 (de) Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung
DE2758830A1 (de) Rechenvorrichtung
DE1934365A1 (de) Automatische Programmschaltung bei Computern mit Multiprogrammierung
DE3638572A1 (de) Vektorprozessor
DE2725522A1 (de) Datenverarbeitungsvorrichtung
EP0134831B1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE1909477A1 (de) Speichersteueranlage fuer ein Multiprogramm-Datenverarbeitungssystem
DE2906685C2 (de)
DE10063915B4 (de) Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE2704560B1 (de) Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausfuehrung von Maschinenbefehlen
DE1474017C3 (de) Datenverarbeitungsanlage
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage

Legal Events

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