DE2234867C2 - Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen - Google Patents
Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger BefehlsfolgenInfo
- Publication number
- DE2234867C2 DE2234867C2 DE2234867A DE2234867A DE2234867C2 DE 2234867 C2 DE2234867 C2 DE 2234867C2 DE 2234867 A DE2234867 A DE 2234867A DE 2234867 A DE2234867 A DE 2234867A DE 2234867 C2 DE2234867 C2 DE 2234867C2
- Authority
- DE
- Germany
- Prior art keywords
- command
- register
- circuit
- instruction
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000012545 processing Methods 0.000 title claims description 82
- 230000015654 memory Effects 0.000 claims description 48
- 239000000872 buffer Substances 0.000 claims description 44
- 230000000903 blocking effect Effects 0.000 claims description 26
- 238000012360 testing method Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 10
- 238000000034 method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 240000004808 Saccharomyces cerevisiae Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Description
Die Erfindung betrifft eine Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung
zweier voneinander unabhängiger Befehlsfolgen nach dem Oberbegriff des Patentanspruchs 1. Bei
solchen Anlagen sind viele spezielle Verfahren entwikkelt worden, um die Verarbeitungsgeschwindigkeit von
Befehlen zu erhöhen. Dazu hat man beispielsweise versucht, die Systemarchitektur zu optimalisieren. Ein
Datenverarbeitungssystem dieser Art ist beispielsweise in der US-Patentschrift 34 00 371 dargestellt.
Zum Stand der Technik ist aus der DE-OS 20 01 664 eine Anordnung und ein Verfahren zur Programmverzweigung
in einer Datenverarbeitungsanlage bekannt, bei der mehrere Instruktionen gleichzeitig oder
überlappt verarbeitet werden können, mit einer Vorausschau für eine bedingte Verzweigung. Wenn bei
dieser Art Vorausschau eine bedingte Verzweigung festgestellt wird, dann wird die eigentliche Verzweigungsadresse
berechnet so daß beim Eintreten der Verzweigungsbedingung die Anlage vom Hauptprogramm
in das Unterprogramm verzweigen kann.
Ein anderer Weg, der in vielen fortschrittlichen Datenverarbeitungsanlagen beschritten wurde, besteht
darin, die Speicherfunktion zwischen einem langsam arbeitenden Speicher hoher Kapazität und einem sehr
schnell arbeitenden Speicher geringerer Kapazität aufzuteilen. Die Datenverarbeitungsanlage verarbeitet
ίο dabei normalerweise die in dem sehr schnell arbeitenden
Speicher geringer Kapazität eingespeicherten Befehle, wodurch die Verarbeitungsgeschwindigkeit für
diese Befehle beträchtlich erhöht wird, da sich die benötigten Befehle sehr viel schneller aus dem Speicher
entnehmen lassen, als in dem in der oben genannten Patentschrift beschriebenen System.
Andere Systeme sind über das oben beschriebene System mit zwei oder mehreren Speicherbereichen
hinausgegangen und man hat Datenverarbeitungsanlagen
entwickelt, die man allgemein als »Fließband«-Zentraleinheiten bezeichnet. Diese Zentraleinheiten bearbeiten
im allgemienen die in dem sehr schnell arbeitenden Speicher geringer Kapazität eingespeicherten
Informationen in der Weise, daß zu jedem gegebenen Zeitpunkt tatsächlich mehr al? ein Befehl
verarbeitet wird. In einer solchen Maschine kann beispielsweise ein Befehl innerhalb eines vorgegebenen
Maschinenzyklus zum gleichen Zeitpunkt beendet sein in dem ein anderer Befehl noch nicht vollständig
durchgeführt ist. Systeme dieser Art stellen dabei mit ihrer Arbeitsweise sicher, daß die Datenverarbeitungsanlage
einen wesentlich höheren Wirkungsgrad erreicht, wenn innerhalb der Datenverarbeitungsanlage
gleichzeitig mehr als ein Befehl einer vorgegebenen Befehlsfolge verarbeitet werden kann.
Obgleich sogenannte »Fließband«-Datenverarbeitungseinheiten im Vergleich mit anderen Zentraleinheiten
einen sehr hohen Wirkungsgrad haben, tritt doch bei diesen Fließband-Datenverarbeitungseinheiten ein ihnen
eigenes besonderes Problem auf, das die maximale Ausnutzung dieser Fließband-Datenverarbeitungseinheit
nur mit Schwierigkeiten erzielen läßt. Es wurde beispielsweise festgestellt, daß eine solche Zentraleinheit,
die gerade den Befehl einer einzigen Befehlsfolge verarbeitet, ihre Möglichkeiten zur Befehlsverarbeitung
nicht vollständig ausnutzt, wenn der schnell arbeitende Pufferspeicher von Zeit zu Zeit vom Hauptspeicher her
auf den letzten Stand gebracht werden muß. Während dieser Zeitabschnitte hat die Verarbeitungseinheit
so nichts zu tun und wartet auf den Befehl, der in den schnell arbeitenden Pufferspeicher eingespeichert werden
soll. Außerdem treten dann in einer einzigen Befehlsfolge noch weitere Verarbeitungsengpässe auf,
die zwangsläufig zur Folge haben, daß die Fließband-Datenverarbeitangseinheit
einen geringeren Wirkungsgrad aufweist als theoretisch möglich wäre. Beispielsweise
bewirken verschiedene Verzweigungen oder Programmabhängigkeiten eine Unterbrechung in der
Befehlsfolge und es mag nötig sein, einen Zielbefehl
W) abzurufen. In solchen Situationen ist es nicht möglich,
die Fließband-Datenverarbeitungseinheit mit ihrer vollen Kapazität zu betreiben.
Die der Erfindung zugrundeliegende Aufgabe besteht also darin, eine Anordnung der eingangs genannten Art
hi so auszugestalten, daß bei Auftreten einer Blockierbedingung
bei einem Befehl einer Befehlsfolge unverzüglich die Verarbeitung der Befehle der anderen
BefehlsfolKC solange freigegeben wird, bis die Blockier-
bedingungen aufgehoben sind. Dies wird erfindungsgemäß dadurch erreicht, daß zur Feststellung von
Blockierbedingungen für einzelne Befehle der einen oder der anderen Befehlsfolge das Befehlsregister über
Torschaltungen, sich gegenseitig ausschließend, entweder an den einen Befehlspufferspeicher oder den
anderen Befehlspufferspeicher anschaltbar ist, daß die an das Befehlsregister angeschlossene Prüfschaltung
feststellt, ob der gerade im Befehlsregister liegende Befehl der einen oder der anderen Befehlsfolge
verarbeitbar ist, daß Blockierprüfstufen vorgesehen sind, die eine Weiterverarbeitung eines Befehls der
einen oder der anderen 3efehslsfolge sperren, solange eine Blockierbedingung für diesen einen Befehl besteht,
und daß eine an die Blockierprüfstufen angeschlossene logische Auswahlschaltung vorgesehen ist, durch die je
nach den an den Ausgängen der Blockierprüfstufen auftretenden Signalen die Weitergabe von Befehlen der
einen oder der anderen Befehlsfolge an das Befehlsregister über die eine oder die andere Torschaltung an deren
zweiten Eingang steuerbar ist
Durch eine solche Auswahlschaltung wird erreicht, Befehle aus zwei vollständig voneinander unabhängigen
Befehlsfolgen zur Verarbeitung auszuwählen. Dies erfordert eine Analyse des in den voneinander
unabhängigen Befehlsfolgen enthaltenen Befehls. Durch diese Analyse wird bestimmt, ob die eine oder die
andere Befehlsfolge gerade warten muß, bevor sie in der Datenverarbeitungsanlage verarbeitet werden kann,
weil eine bestimmte Programmabhängigkeit gegeben ist oder weil ein vorhergehender Befehl in der gleichen
Befehlsfolge Daten aus dem Hauptspeicher nach dem Pufferspeicher abgerufen hat, die noch nicht vollständig
übertragen sind. Wenn eine der Befehlsfolgen im nächsten Zyklus in der Fließband-Befehlseinheit nicht
verarbeitet werden kann, dann werden die Befehle der anderen Befehlsfolgen in die Fließband-Schaltung für
nachfolgende Verarbeitung durchgelassen. Sollte es vorkommen, daß beide Befehlsfolgen »hängen«, wird
kein Befehl nach der Fließband-Schaltung der Befehlseinheit durchgelassen und jede weitere Durchschaltung
von Befehlen wird solange verzögert, bis die verschiedenen benötigten Verarbeitungsstufen für die eine oder
die andere Befehlsfolge wieder zur Verfügung stehen. In vielen Fällen werden die beiden Befehlsfolgen für
Programmabhängigkeiten frei sein, so daß ein Befehl von der einen oder der anderen Folge in die
Fließband-Schaltung durchgelassen werden könnte.
Vorzugsweise ist die Anordnung dabei so getroffen, daß das I-Register mit der Zentraleinheit in der Weise
verbunden ist, daß die Verarbeitung des Befehls gleichzeitig mit der Blockierprüfung erfolgt und bei
entsprechendem Prüfergebnis die Verarbeiung des gerade im I-Register liegenden Befehls zumindest
zeitweilig gesperrt wird, wobei zur gemeinsamen Benutzung einer Zentraleinheit für Instruktionen zweier
voneinander unabhängiger ßefehlsfolgen zwei Befehls-Pufferspeicher vorgesehen sind, die an jeweils einen
Eingang der Torschaltungen über Eingangsleitungen angeschlossen sind und wobei die mit dem I-Register
verbundenen Torschaltungen an ihrem zweiten Eingang derart durch ein Steuersignal steuerbar sind, daß jeweils
nur ein Befehispufferspeicher Daten an das I-Register abgeben kann.
Die Anordnung arbeitet dabei wie folgt:
I. Auswählen eines Befehls aus einer der beiden Befehlsfolgen;
2. Durchführen der Biockierprüfung für den ausgewählten Befehl, um festzustellen, ob diese durchführbar
ist;
3. Verarbeiten des ausgewählten Befehls, während die Blockierprüfung gleichzeitig abläuft;
4. Sperren der weiteren Durchführung des ausgewählten Befehls, wenn eine Blcckierbedingung
festgestellt wird;
5. Verhindern der weiteren Auswahl von Befehlen aus ίο der Befehlsfolge, bei der eine Blockierbedingung
festgestellt wurde, solange diese Blockierbedingung besteht;
6. Abwechselnde Auswahl der Befehle aus den Befehlsfolgen, wenn keine Blockierbedingungen
festgestellt werden.
Die Erfindung wird nunmehr anhand des Ausführungsbeispiels in Verbindung mit den beigefügten
Zeichnungen näher beschrieben, dabei zeigt F i g. 1 eine schematische Darstellung der vorliegenden
Erfindung;
Fig. 2 Einzelheiten der Erfindung in einem Blockdiagramm;
F i g. 3 Einzelheiten eines Teils der Erfindung; Fig.4 zusätzliche in Fig.3 noch nicht dargestellte logische Schaltungen eines anderen Teils der Erfindung; Fig. 5 eine Tabelle, die anzeigt, unter welcher
F i g. 3 Einzelheiten eines Teils der Erfindung; Fig.4 zusätzliche in Fig.3 noch nicht dargestellte logische Schaltungen eines anderen Teils der Erfindung; Fig. 5 eine Tabelle, die anzeigt, unter welcher
Bedingung Befehle einer gegebenen Befehlsfolge im nächstfolgenden Zyklus nach dem I-Register durchgelassen
werden und
Fig.6 die Taktimpulse für die verschiedenen in der
Schaltung nach'F i g. 3 verwendeten Torschaltungen.
Wie bereits erwähnt, betrifft die Erfindung eine neuartige Anordnung, mit deren Hilfe eine Fließband-Datenverarbeitungseinheit
für Befehle aus zwei verschiedenen Befehlsfolgen zur Verfügung steht, wobei Verarbeitungsgeschwindigkeiten erzielt werden, die
etwa doppelt so hoch sind als sie mit einer einzigen Fließband-Datenverarbeitungseinheit erzielt werden
könnten, die nur Befehle aus einer einzigen Befehlsfolge verarbeitet. Aus Fig. 1 erkennt man den Speicher 10,
der mit der Zentraleinheit 12 verbunden ist. Der Speicher 10 kann von beliebiger Bauart sein, d. h.
entweder ein Kernspeicher oder ein aus integrierten Halbleiterschaltungen bestehender Speicher. Die Zentraleinheit
12 ist eine Fließband-Verarbeitungseinheit, die im vorliegenden Fall nicht näher besprochen werden
soll, da diese Art von Zentraleinheiten vielfältig im Stand der Technik beschrieben worden sind.
Beispielsweise ist ein solches Fließband-System in einem Aufsatz durch L. W. Cotten beschrieben, der in
den Proceedings der Fall Joint Computer Conference, 1965, auf Seite 489 ff. veröffentlicht wurde. Ein anderer
Aufsatz, der sich mit solchen Fließband-Systemen befaßt, ist in einer Abhandlung beschrieben der im
Januar 1967 im IBM Journal of Research and Development, Band 11, Nr. 1 auf Seite 34 zu finden ist.
In Fig. 1 ist die Zentraleinheit 12 über eine Datenleitung 18 mit zwei Befehlspufferspeichern 14 und
16 verbunden. Die Zentraleinheit 12 enthält Adressierschaltungen, mit deren Hilfe Befehle aus zwei
verschiedenen Befehlsfolgen vom Speicher 10 über die Datenleitung 11 und Operanden für die Zentraleinheit
12 über die Datenleitung 11 abgerufen werden können.
Die Zentraleinheit 12 ruft Befehle für die beiden verschiedenen Befehlsfolgen vom Speicher ab. Diese
Befehle gelangen über die Datenleitung 18 an die PuffersDeicher 14 und 16. Die Zentraleinheit 12 iüRt Hip
Befehle in der Weise an die Datenleitung 18 durch, daß der Pufferspeicher 14 nur Befehle der einen Befehlsfolge
und der Pufferspeicher 16 nur Befehle einer zweiten Befehlsfolge enthält. Jeder der Befehlspufferspeicher 14
und 16 liefert seine Befehle an andere Schaltungen innerhalb der Zentraleinheit 12 über unabhängige
Datenleitungen. Beispielsweise ist der Pufferspeicher 14 mit der Zentraleinheit J2 über die Datenleitung 20
verbunden, während der Befehlspufferspeicher 16 über die Datenleitung 22 mit der Zentraleinheit 12 verbunden
ist. Die Zentraleinheit 12 enthält außerdem spezielle Schaltungen, die sie veranlaßt, einen in dem einen
Befehlspufferspeicher 14 oder in dem Befehlspufferspeicher 16 eingespeicherten Befehl im nächsten Verarbeitungszyklus
zu verarbeiten. Diese Auswahlschaltung innerhalb der Zentraleinheit stellt den eigentlichen
Kern der Erfindung dar.
Diese Schaltungen werden in F i g. 2 näher erläutert. Die Befehlsfolge A erreicht den Befehlspufferspeicher
28 über die Datenleitung 24 und die Befehlsfolge B erreicht den Befehlspufferspeicher 30 über die Datenleitung
26. Es ist nicht notwendig, daß die Befehlsfolgen das in F i g. 2 gezeigte 1-Register 36 über zwei getrennte
Datenleitungen erreichen, da eine einzige Datenleitung gemeinsam von beiden Befehlsfolgen benutzt werden
könnte. Die Darstellung, bei der die Daten in zwei unabhängigen Befehlsfolgen ankommen, wurde hier
gewählt, um besonders darzulegen, daß die in der Verarbeitungsanlage zu verarbeitenden Befehle tatsächlich
von zwei vollständig voneinander unabhängig!- gen Befehlsfolgen stammen. Es muß weiter darauf
hingewiesen werden, daß der Ursprung dieser unabhängigen Befehlsfolgen tatsächlich keine Funktion der
vorliegenden Erfindung ist, obgleich ein getrennter Speicher an jede der Eingangsleitungen 24 und 26
angeschlossen sein kann. Jeder dieser Speicher würde durch normale Befehlsadressierschaltungen adressierbar
sein, wie sie heute üblicherweise in Datenverarbeitungsanlagen benutzt werden und wären so ausgelegt,
daß Befehle innerhalb unabhängiger Befehlsfolgen abgerufen werden könnten. Wenn dann die Befehle auf
voneinander unabhängigen oder auf einer gemeinsamen Datenleitung zur Verfügung stehen, dann würden die
Befehle nach den Befehlspufferspeichern 28 oder 30 durchgelassen.
Der Befehlspufferspeicher 28 dient lediglich der zeitweiligen Speicherung der Befehle einer Befehlsfolge
A. Diese Bezeichnung ist rein willkürlich und dient lediglich der Klarstellung der Unterschiede zwischen
den beiden Befehlsfolgen. Die im Befehlspufferspeicher 30 eingespeicherten Informationen sind die der
Befehlsfolge B. Der Befehlspufferspeicher 28 entspricht dabei dem Pufferspeicher 14 (F i g. 1), während Befehlspufferspeicher 30 dem Befehlspufferspeicher 16 in
F i g. 1 entspricht. Jeder Befehlspufferspeicher 28 und 30 ist ein üblicher elektronischer Pufferspeicher oder ein
Register, in dem Daten gespeichert werden können.
Der Befehlspufferspeicher 28 ist mit dem Registerbereich der Zentraleinheit über die Datenleitung 32
verbunden, während der Befehlspufferspeicher 30 mit dem Registerbereich der Zentraleinheit über die
Datenleitung 34 verbunden ist. Die Datenleitungen 32 und 34 gehen direkt nach dem I-Register 36. Das
!-Register 36 erhält auch Statusinformationen aus der
Zentraleinheit für die Befehlsfolge A auf der Datenlei- b5 stung 38 und für die Befehlsfolge B auf der Datenleitung
40. Die folgenden mögen als Beispiele für Statusinformation, wie sie für jede Befehlsfolge benötigt wird.
dienen. X-FeId gültig, Null, oder nicht benötigt; S-FeId
gültig, Null, oder nicht benötigt; Adressenregister für Einzelentnahme frei oder nicht benötigt; Adressenregister
steht zur Verfügung für Speicherung oder für I-Einheit-Befehl oder für I-Einheit-Abruf oder wird
nicht benötigt; EIN-Wort-Operand Pufferspeicher ist verfügbar oder wird nicht benötigt; Zwei-Wort-Operandenspeicher
ist verfügbar oder wird nicht benötigt; Allzweckregister Lese-Priorität verfügbar oder nicht
benötigt; Warteregister verfügbar, wenn keine Verzweigung verarbeitet wird bei Verzweigungsbefehl;
vollständiger Befehl im 1-Register; keine Blockier-Bedingung für das Programm.
Das Befehlsregister oder Instruktionsregister 36, kurz i-Register, enthält tatsächlich mehr als ein Register, da
es auch noch bestimmte Funktionen ausführt und sollte eigentlich besser als Funktionsregister bezeichnet
werden. Das I-Register 36 speichert nicht nur temporär die Befehle, die von den Befehlspufferspeichern
kommen, sondern bestimmt auch, welcher der von den Befehlspufferspeichern kommenden Befehle vorübergehend
in dem temporären Speicherbereich des 1-Registers 36 eingespeichert werden soll, da immer
zwei Befehle gleichzeitig über die Datenleitungen 32 und 34 an dem I-Register anliegen.
An dem I-Register 36 sind eine Anzahl von Schaltungsstufen angeschlossen, die innerhalb der
gestrichelten Linie 42 untergebracht sind. Diese Stufen sind in der DE-OS 22 24 537 offenbart.
Die Schaltung des I-Registers 36 von Fig. 2 ist im
einzelnen in den Fig. 3 —6 dargestellt. Die vom
Befehlspufferspeicher kommenden Daten der Befehlsfolge oder das Programms A liegen auf der Datenleitung
44. Die Datenleitung 44 (Fig. 3) entspricht dabei der Datenleitung 32 (F i g. 2). Die Eingangsdaten für das
Programm B kommen vom Befehlspufferspeicher über die Datenleitung 46 an, die der Datenleitung 34 in F i g. 2
entspricht. Die Datenleitung 44 liegt an einer Eingangsklemme einer Torschaltung 48, während die Datenleitung
46 an einer Eingangsklemme der Torschaltung 50 angeschlossen ist. Die Torschaltungen 48 und 50 stellen
tatsächlich zwei mit zwei Eingängen versehene UND-Schaltungen Har Hip mit Hen F.ingangsleitungen
für die entsprechenden Eingangsdaten verbunden sind. Der zweite Eingang der UND-Schaltung in der
Torschaltung 48 ist an der Leitung 52 angeschlossen, die ein Signal führt, das die Durchschaltung der in den
Befehlen des Programms A enthaltenen Daten nach dem 1-Register bewirkt, der zweite Eingang der
UND-Schaltung in der Torschaltung 50 ist mit der Leitung 54 verbunden, die ein Signal führt, das die
Durchschaltung der Daten vom Befehlspufferspeicher für das Programm B ermöglicht. Die auf den Leitungen
52 und 54 liegenden Signale sind sich gegenseitig ausschließende Signale, so daß jeweils nur ein in den
beiden Befehlspufferspeichern enthaltener Befehl durch die Torschaltungen 48 oder 50 nach der Datenleitung 56
durchgelassen werden kann. Die Datenleitung 56 bildet die Eingangsleitung für das I-Register 58, das ein echtes
Register für die zeitweilige Speicherung eines entweder aus der Datenfolge A oder aus der Datenfolge B
stammenden Befehls ist Der Einfachheit halber ist an dem I-Register 58 in Fig.3 keine Ausgangsleitung
vorgesehen, die als über die Leitung 41 (F i g. 2)mit den innerhalb der gestrichelten Linie 42 (F i g. 2) eingezeichneten
Schaltungen verbunden gedacht werden kann.
Es sei angenommen, daß ein Befehl aus dem Programm A nach dem I-Register hindurchgelassen
wurde. Die Arbeitsweise des I-Registers wird für diesen
Fall beschrieben und die verschiedenen Verblockungen mit den übrigen Teilen der Fließband Zentraleinheit
werden besprochen. Ferner wird der Algorithmus, der bestimmt, welcher Befehl während des nächstfolgenden
Torzyklus nach dem 1-Register 58 durchgelassen wird, im Zusammenhang mit einem Befehl aus der Befehlsfolge
A, die ursprünglich im !-Register 58 eingespeichert ist, besprochen.
Die Funktion der in Fig.3 und 4 dargestellten Schaltung besteht darin, einen Befehl einer der beiden
Datenfolgen zu entnehmen und mit der Verarbeitung dieses Befehls zu beginnen. Der Beginn der Verarbeitung
erfordert verschiedene Berechnungen und Überprüfungen der Verfügbarkeit der verschiedenen Einrichtungen
innerhalb der Fließband-Zentraleinheit. Beispielsweise gibt es verschiedene Arten von Befehlen,
die :n der Fließband-Schaltung nicht verarbeitet werden
können, während andere Befehle gerade verarbeitet werden. Wenn beispielsweise ein Verzweigungsbefehl
für eine Befehlsfolge in der Fließband-Schaltung verarbeitet wird, kann ein zweiter Verzweigungsbefehl
derselben Befehlsfolge nicht verarbeitet werden, bis der erste Verzweigungsbefehl verarbeitet ist, da der zweite
Verzweigungsbefehl tatsächlich in einem falschen Zweig des ersten Verzweigungsbefehls liegen kann. Das
heißt, daß beim Ausführen eines Verzweigungsbefehls eine Fließband-Zentraleinheit normalerweise einen
Programmzweig dem das Programm folgen wird, annimmt und die Befehle für diese Befehlsfolge unter
der Annahme dieses Verzweigungsergebnisses verarbeitet. Wenn die Verzweigung jedoch einen anderen
Weg als den angenommenen Weg nimmt, dann sind die unter dieser Annahme verarbeiteten Befehle wertlos
und die Ergebnisse sollten in dem Programm nicht verwendet werden. Ein anderes Problem besteht darin,
daß Befehle, die Befehle, die bereits in der Fließband-Verarbeitung enthalten sind, den Inhalt der Allzweckregister
ändern könnten die für die nachfolgenden Befehle benötigt werden. Somit kann also ein nachfolgender
Befehl solange nicht verarbeitet werden, bis die vorangegangenen Befehle tatsächlich die von dem
Allzweckregisters durchgeführt haben. Es ist daher Aufgabe der in F i g. 3 gezeigten Schaltungen, die bei
solcher gegenseitigen Verblockungen auftretenden Probleme zu lösen und zu bestimmen, weiche Befehlsfolge wegen einer solchen Verblockung zeitweise
angehalten werden muß.
Ein vom I-Register 58 kommendes Ausgangssignal Hegt auf der Datenieitung 62 und einspricht einem Teil
des Inhalts des I-Registers 58, das für den Operationscode innerhalb eines gegebenen Befehls bestimmt ist. Für
Befehle in dem für die Systemfamilie IBM System/360 verwendeten Datenformat würden die ersten acht
Datenbits des I-Registers 58 auf der Datenleitung 62 auftreten. Die Datenleitung 62 ist mit der Decodierschaltung
64 verbunden, die jedesmal dann ein Ausgangssignal liefert, wenn der Operationscode des im
I-Register 58 eingespeicherten Befehls ein SS-Befehl, ein Ausführ-Befehl oder ein Mehrfachspeicher-Befehl
ist. Das Ausgangssignal der Decodierschaltung 64 liegt an einem der Eingänge der UND-Schaltung 66.
Der zweite Eingang der UND-Schaltung 66 erhält ein Signal von der Leitung 60. Wenn auf der Leitung 60 ein
Signal mit dem binären Wert Eins liegt, so heißt das, daß die bistabile Kippstufe 68 durch ein Signal eingestellt
wurde, das einen Befehl aus dem Befehlspufferspeicher für das Programm A durchgelassen hat. Der dritte
Eingang der UN D-Schaltung 66 ist ein Takteingang mit der Bezeichnung »Befehlszyklus Ende«. Dieser Taktimpuls
und seine relative zeitliche Lage zu anderen Taktimpulsen ist in F i g. 6 gezeigt. Das Ausgangssignal
der UND-Schaltung 66 wird während der Taktperiode eine Eins sein, wenn die Decodierschaltung 64 die oben
genannten Befehlsarten decodiert hat und die bistabile Kippschaltung 68 eingestellt ist. Wenn die UND-Schaltung
66 ein Ausgangssignal liefert, hat dies zur Folge, daß die SS-Verriegelungsschaltung 70 für das Programm
A eingestellt wird. Die Wirkung der Einstellung dieser Verriegelungsschaltung wird noch später besprochen.
In F i g. 3 sind noch weitere Decodierschaltungen 72,
74 und 76 gezeigt. Diese Decodierschaltungen sind eingangsseitig an die Datenleitung 62 und an die Leitung
60 angeschlossen. Auf der Datenleitung 62 liegt der Operationscode der im I-Register 58 enthaltenen
Information und jede der Decodierschaltungen ist so aufgebaut, daß sie bestimmte Arten von Befehlen, die im
I-Register 58 eingespeichert sein können, decodiert. Die Leitung 60 ist deshalb vorgesehen, damit die Decodierschaltungen
72, 74 und 76 nur dann betätigt werden, wenn ein Befehl im I-Register 58 eingespeichert ist, der
zu dem Programm A gehört. Das heißt also, daß die Leitung 60 ein Entsperrsignal führt, das die Decodierschaltungen
72,74 und 76 betriebsbereit macht.
Die Decodierschaltung 72 liefert immer dann ein Ausgangssignal, wenn ein Befehl der Befehlsfolge A im
I-Register 58 eingespeichert ist, dessen Operationscode einem Befehl entspricht, der ein X-FeId benutzt. Dieses
X-FeId ist ein besonderes Feld innerhalb eines Befehls, wie er im IBM System/360 verwendet wird. Das X-FeId
enthält normalerweise eine Adresse eines Allzweckregisters /, das durch den im I-Register enthaltenen Befehl
benutzt werden soll. Da der Inhalt dieses Registers korrekt sein muß, muß die Fließband-Verarbeitungseinheit
abgetastet werden, um festzustellen, ob ein gerade für das Programm A verarbeiteter Befehl den Inhalt
dieses Allzweckregisters verändern wird, dessen Adresse in dem X-FeId des im I-Register 58 liegenden Befehls
enthalten ist. Urn diesen Vergleich durchzuführen, wird
das X-FeId des im I-Register 58 liegenden Befehls der Datenleitung 80 zugeführt, die am Eingang einer
Vergleichsschaltung 82 angeschlossen ist. Der zweite Eingang der Vergleichsschaltung 82 kommt von der
Zentraleinheit selbst und führt Signale, die bestimmen, welche Allzweckregister zur Speicherung durch bereits
in der Verarbeitung befindliche Befehle benutzt werden sollen. Wenn ein bereits in der Verarbeitung befindlicher
Befehl zum Abspeichern im gleichen Allzweckregister dient, das durch das X-FeId auf der Datenleitung 80
angezeigt ist, dann liefert die Vergleichsschaltung 82 ein Ausgangssignal, das dpr UND-Schaltung 86 zugeführt
wird. Die Decodierschaltung 72 liefert dann ebenfalls ein Ausgangssignal, das auch an der UND-Schaltung 86
liegt und dieses Ausgangssignal tritt immer dann auf, wenn im I-Register 58 ein Befehl mit einem X-FeId
eingespeichert ist. Das Ausgangssignal der UND-Schaltung 86 stellt die Verriegelungsschaltung 88 für das
Programm A ein. Dies bedeutet, daß eines der Allzweckregister für den Befehl der Befehlsfolge A, wie
er augenblicklich im I-Register 58 liegt, durch einen bereits in der Fließband-Verarbeitung liegenden Befehl
geändert werden wird. Das heißt aber, daß der im I-Register 58 liegende Befehl gesperrt werden muß und
solange nicht durchgelassen werden kann, bis die
Blockierung des Allzweckregisters aufgehoben ist. Diese Sperrung eines gerade innerhalb des I-Registers
58 liegenden Befehls wird erreicht, weil die Verriegelungsschaltung 88 für das Programm A mit ihrem
Ausgang an einer ODER-Schaltung 90 angeschlossen ist. Das Ausgangssignal der ODER-Schaltung 90 ist
dann Null, wenn irgendeiner der Eingänge aktiv ist, was anzeigt, daß eine der Verriegelungsschaltungen, die mit
dem Eingang der ODER-Schaltung 90 verbunden sind, eingestellt ist. Ein Null-Ausgangssignal der ODER-Schaltung
90 zeigt an, daß der gerade im !-Register 58 liegende Befehl blockiert werden muß und nicht nach
den Q-Registern durchgelassen werden darf.
Die SS-Verriegelungsschaltung 70 für das Programm A wird also immer dann eingestellt, wenn ein SS-Befehi,
ein Ausführ-Befehl oder ein Mehrfachspeicherbefehl im
1-Register 58 eingespeichert ist. Die Verriegelungsschaltung 70 wird jedoch erst dann eingestellt, wenn der
Taktimpuls für »Befehlszyklus Ende« auftritt, der gestattet, daß der gerade im Befehlsregister 58 liegende
Befehl verarbeitet wird, andererseits aber das Arbeiten nachfolgender in der Befehlsfolge A liegender Befehle
solange verhindert, bis der Verriegelungsschaltung. 70 ein Rückstellsignal für das Programm A zugeführt wird.
Das Signal für Befehlsende für das Programm A, das die Verriegelungsschaltung 70 zurückstellt, ist ein durch die
Zentraleinheit nach Beendigung der Verarbeitung des Befehls erzeugtes Signal, welches die Einstellung der
Verriegelungsschaltung 70 bewirkt hat. Es sei hier noch darauf hingewiesen, daß die Einstellung der Verriegelungsschaltung
70 für das Programm A bewirkt, daß ein Ausgangssignal an den Eingang der ODER-Schaltung
90 gelangt, was bewirkt, daß das Ausgangssignal der ODER-Schaltung 90 zu Null wird. Ein Null-Ausgangssignal
der ODER-Schaltung 90 verhindert aber, wie noch gezeigt wird, die weitere Verarbeitung von
Befehlen im Programm A.
Die zweite Blockierung für die Allzweckregister betrifft Befehle mit einem ß-Feld. Die Decodierschaltung
74 liefert dann ein Ausgangssignal an die UND-Schaltung 98, wenn der Operationscode des
gerade im Befehlsregister 58 befindlichen Befehls aus dem Programm A ein ß-Feld aufweist. Das ß-Feld des
im I-Register 58 liegenden Befehls wird über die Datenleitung 92 der Vergleichsschaltung 94 zugeführt
Die Adressen der Allzweckregister, die durch bereits in der Fließband-Zentraleinheit liegende Befehle geändert
werden, werden über die Datenleitung 84 an die Vergleichsschaltung 94 übertragen. Wenn die Vergleichsschaltung
94 ein Ausgangssignal auf der Leitung 96 abgibt dann bedeutet das das Vorhandensein eines
Befehls in der Fließband-Verarbeitung der das durch die Adresse im ß-Feld definierte Register verändern wird.
Dies bedeutet, daß der gerade im I-Register 58 liegende Befehl blockiert werden muß. Als Folge davon wird das
auf der Leitung 96 liegende Signa! der UND-Schaltung 98 zugeführt, deren Ausgangssignal die Verriegelungsschaltung
88 für das Programm A einstellen wird. Dies hat zur Folge, daß die Verarbeitung des im I-Register 58
liegenden Befehls solange blockiert wird, bis die Verriegelungsschaltung 88 für das Programm A
zurückgestellt ist Diese Rückstellung erfolgt durch ein Signal, das anzeigt, daß Information für das Programm
A in das Allzweckregister eingeschrieben worden ist
Wie zuvor besprochen, besteht eine andere unzulässige Bedingung darin, daß zwei Verzweigungen innerhalb
der Fließband-Verarbeitung zur selben Zeit durchgeführt werden. Am Ausgang der Decodierschaltung 76
tritt immer dann ein Ausgangssignal auf, wenn der im Befehlsregister 58 vom Programm A eingespeicherte
Befehl ein Verzweigungsbefehl ist. Dieses Signal dient der Einstellung der Verriegelungsschaltung 100. Das
Ausgangssignal der Verriegelungsschaltung 100 liegt an der UND-Schaltung 102. Der zweite Eingang der
UND-Schaltung 102 ist ein Taktsignal, das dem Taktsignal Befehlszyklus-Ende in F i g. 6 entspricht. Die
UND-Schaltung 102 liefert am Ende des Befehlszyklus für den im Befehlsregister 58 liegenden Befehl ein
Ausgangssignal, das die Verriegelungsschaltung 104 für die Verzweigung einstellt. Das Ausgangssignal dieser
Verriegelungsschaltung 104 liegt an der UND-Schaltung 106, die während des nächsten Taktzyklus für die
Durchschaltung von Befehlen entsperrt wird. Dieser Taktimpuls wird durch eine ODER-Schaltung geliefert,
der die Signale auf den Leitungen 52 und 54 zugeführt werden. Die UND-Schaltung 106 stellt damit die
Verriegelungsschaltung 100 zurück.
Wenn . der nächste Verzweigungsbefehl in der Decodierschaltung 76 decodiert wird, und wenn die
vorhergehende Verzweigung noch nicht beendet ist, dann wird die Verriegelungsschaltung 100 erneut
eingestellt. Das Ausgangssignal dieser Verriegelungsschaltung liegt an der UND-Schaltung 108 wie auch das
Ausgangssignal der Verriegelungsschaltung 104. Zum Zeitpunkt des Taktsignals A Hefen die UND-Schaltung
108 ein Ausgangssignal und stellt die Verriegelungsschaltung 110 für die zweite Verzweigung ein. Die
Verrieglungsschaltung 110 kann nur eingestellt werden, wenn der Versuch unternommen wird, zwei Verzweigungen
gleichzeitig in der Fließband-Datenverarbeitungsanlage zu verarbeiten, eine Bedingung, die nicht
zulässig ist. Die Einstellung der Verriegelungsschaltung 110 für die zweite Verzweigung hat daher zur Folge, daß
das Ausgangssignal der ODER-Schaltung 90 zu Null wird, was wiederum den im I-Register 58 liegenden
Befehl blockiert. Weitere Befehle aus dem Programm A können solange nicht ausgeführt werden, bis der
Verzweigungsbefehl in der Fließband-Verarbeitung abgearbeitet ist und ein Signal für die beendete
Verzweigung über die Leitung 112 übertragen worden ist. Dieses Signal ist ein taktmäßig durchgeschaltetes
Signal und steht in zeitlicher Beziehung mit den anderen in F i g. 6 gezeigten Taktsignalen. Dieses das Ende der
Verzweigung anzeigende Signal stellt die Verriegelungsstufen 100,104 und 110 zurück.
Die eben erwähnte Schaltung in Fig.3 dient dazu,
drei bestimmte Arten von Verblockungen für eine
so bestimmte Art von Fließband-Zentraleinheit durchzuführen. Man könnte natürlich auch noch andere
Verblockungen darstellen, doch erscheint diese Beschreibung nicht unbedingt nötig, da sie sich auf ganz
spezielle Fließband-Zentraleinheiten beziehen würde.
Die Bedeutung der bereits beschriebenen Verblockungen ist klar und für eine bestimmte Maschine
vorgesehen, andere Verblockungen, die die Verarbeitung von Befehlen in einem gegeben Programm
verhindern, sollten ebenfalls mit eingeschlossen werden.
Das Auftreten solcher Verblockungen hat Eingangssignale
an der ODER-Schaltung 90 zur Folge, wenn sie sich auf das Programm A beziehen. Für die hier
beschriebene Ausführungsform der Erfindung sind einige mögliche Eingangssignale für die ODER-Schaltung
90 nicht dargestellt, können aber durch den Fachmann leicht selbst angegeben werden. Wenn
beispielsweise die in Fig.2 gezeigten Q-Register voll
belegt sind und keinen weiteren Befehl aus dem
Programm A aufnehmen können, dann könnte dieser Befehl die weitere Verarbeitung von Befehlen aus dem
Programm A blockieren. Somit wird also ein Signal, das die volle Belegung eines Q-Registers aus dem
Programm A anzeigt, ebenfalls als Eingangssignal der ODER-Schaltung 90 zugeführt werden. Eine andere
Bedingung, die die Verarbeitung von Befehlen des Befehlspufferspeichers für das Programm A verhindern
kann, ist die, daß der Befehlspufferspeicher keinen Befehl des Programms A enthält. Auch diese Bedingung
sollte als Eingangssignal der ODER-Schaltung 90 zugeleitet werden. Eine weitere Bedingung, die ein
Eingangssignal an der ODER-Schaltung zur Folge haben sollte, ist die, daß ein in der Fließband-Verarbeitung
befindliche Befehl einen Zugriff zum Hauptspeicher gemacht hat. Diese Bedingung erfordert, daß der
Befehl der einen Zugriff zum Hauptspeicher zur Folge hatte, solange verzögert wird, bis der abzurufende
Operand verfügbar ist. Somit müssen also weitere im gleichen Programm zu verarbeitende Befehle verzögert
werden, da sie im Augenblick nicht verarbeitet werden können, da die Befehle der Reihe nach verarbeitet
werden müssen und ein früherer Befehl noch auf Daten aus dem Hauptspeicher wartet.
Die Diskussion war bisher für die Schaltung nach Fig. 3 auf Befehle aus dem Programm A beschränkt
worden. Die ODER-Schaltung 114 in Fig. 3 ist für das Programm B das Gegenstück zur ODER-Schaltung 90.
Eine mit den für das Programm A vorgesehenen Schaltungen gleichartige Schaltungsgruppe muß in der
Schaltung nach F i g. 3 ebenfalls vorgesehen sein, um die nötigen Eingangssignale an die ODER-Schaltung 114 zu
liefern und um für das Programm B für im I-Register 58 liegende Befehle die gleichen Funktionen durchzuführen.
Diese Schaltungen sind im wesentlichen mit denen für das Programm A in F i g. 3 gezeigten Schaltungen
identisch, mit der Ausnahme, daß die Durchlaßfunktion der Leitung 60 in F i g. 3 in der Weise durchgeführt
werden muß, daß für die zur Behandlung der Verblockung für das Programm B notwendigen
Schaltungen mit dem komplementären Signal zu dem auf der Leitung 60 liegenden Signal betrieben werden.
Die von den ODER-Schaltungen 90 bzw. 114 abgegebenen
Signale Pa bzw. Pb blockieren die Verarbeitung von
Befehlen aus dem Programm A bzw. Programm B, wenn diese Signale den binären Wert Null haben. Diese
Signale bestimmen außerdem, welcher Befehl als nächster von den Befehlspufferspeichern nach dem
!-Register 58 durchgelassen werden sollen.
Die Schaltung, die bestimmt, welcher Befehl als der Tabelle zeigen unter verschiedenen Maschinenbedingungen
die als nächste aus den derzeit im I-Register liegenden Befehlen auszuwählenden Befehle. Dies ist
die Tabelle für die Schaltung nach F i g. 4. Die verschiedenen Zeilen der Tabelle entsprechen
dabei den Eingangsbedingungen für die UND-Schaltungen 124,126,128,130,132 und 134 in F i g. 4.
Die ODER-Schaltung 136 wird durch die UND-Schaltungen 126, 130 oder 132 angesteuert. Jede dieser
ίο UND-Schaltungen liefert immer dann ein Ausgangssignal,
wenn der nächstfolgende Befehl aus dem Programm A durchgelassen werden sollte, wie dies in
F i g. 5 angedeutet worden ist. In gleicher Weise wird die ODER-Schaltung 138 durch die UND-Schaltungen 124,
128 und 134 angesteuert, die jeweils dann ein Ausgangssignal liefern, wenn die in F i g. 5 angegebenen
Bedingungen anzeigen, daß der nächste Befehl aus dem Programm ^durchgelassen werden sollte.
Das Ausgangssignal der ODER-Schaltung 136 liegt an der UND-Schaltung 140. Das zweite Eingangssignal
der UND-Schaltung 140 ist das auf Zeile 1 in Fig.6 gezeigte Signal »DurchschaltenBefehl«, das außerdem
als Eingangssignal für die UND-Schaltung 142 dient. Das Ausgangssignal der UND-Schaltung 140 erzeugt
ein Signal, das zum Durchschalten der Befehle vom Programm A nach dem I-Register dient und als
Eingangssignal in F i g. 3 an der Leitung 52 liegt. Das Ausgangssignal der Torschaltung 142 tritt nur dann auf,
wenn an der ODER-Schaltung 138 eine Eingangsleitung erregt ist und das Torschaltungssignal eine Eins ist. Das
Ausgangssignal der Torschaltung 142 dient der Durchschaltung der Befehle vom Programm ßzum I-Register
und dient als Eingangssignal auf der Leitung 54 in Fig. 3.
Zum gleichen Zeitpunkt, zu dem die Blockiertests mit dem im I-Register befindlichen Befehl durchgeführt
werden, werden durch die Zentraleinheit an den im I-Register liegenden Befehlen auch noch andere
Funktionen durchgeführt.
In jeder Stufe der Fließband-Verarbeitung wird der Befehl und zugehörige Steuerschaltungen in der
verschiedensten Weise geprüft, um festzustellen, ob der Befehl nach der nächsten Stufe weiterlaufen kann. Den
einzelnen Stufen der Fließband-Verarbeitung sind also verschiedene Kontrollfunktionen zugeordnet. Als Beispiel
dient der Zugriff zu den Allzweckregistern. Falls ein Befehl Zugriff zu diesen Registern benötigt, um eine
Adresse zu berechnen, muß dies durchgeführt werden, solange der Befehl im I-Register liegt,
so Diese Funktionen beziehen sich auf die Einstellung
au uas i-rvcgiaici
wuu, lsi im
F i g. 4 gezeigt. Die erste Eingangsleitung in F i g. 4 liefert den Status der I-Register-Verriegelungsschaltung
auf der Leitung 116. Dieses Signal kommt von der bistabilen Kippschaltung 68 in F i g. 3. Eine binäre Eins
auf der Leitung 116 zeigt an, daß zuletzt ein Befehl aus dem Programm A nach dem I-Register durchgelassen
wurde. Dieses Signal liegt als Eingangssignal an den UND-Schaltungen 124 und 132.
Aus der Tabelle in F i g. 5 sieht man die verschiedenen Bedingungen die bestimmen, welcher Befehlspufferspeicher
für den nächsten Torzyklus nach dem I-Register durchgeschaltet wird. Wenn beispielsweise, wie in Zeile
1 der Tabelle in Fig.5, der gerade im I-Register
liegende Befehl aus dem Programm A stammt und die Signale Pa und Pb einen binären Wert von Eins
aufweisen, dann muß als nächstes ein Befehl aus dem Programm B ausgewählt werden. Die weiteren Zeilen
der Fließband-Verarbeitungsanlage, so daß der Befehl, wenn er das Verarbeitungsregister erreicht, auch
verarbeitet werden kann. Die mit dem im I-Register liegenden Befehl durchzuführenden Funktionen können
jedoch blockiert werden, wenn für den entsprechenden im I-Register liegenden Befehl das Signal Pa oder faden
Binärwert Null aufweist
Während der Befehl im I-Register 58 (F i g. 3) liegt,
wird eine teilweise Verarbeitung des Befehls gleichzeitig mit der Verblockungsprüfung durchgeführt Die dazu
notwendige Information wird vom I-Register 58 über die Datenleitung 61 an die einzelnen Einrichtungen der
Zentraleinheit übertragen. Diese Einheiten sprechen auf die vom I-Register 58 übertragenen Daten an und leiten
unter Berücksichtigung der in dem Befehl angegebenen benötigten Allzweckregister die notwendige Adressenberechnung
ein. Außerdem werden diejenigen All-
zweckregister, die ausgelesen und deren Inhalt durch
den im !-Register 58 liegenden Befehl benutzt werden
müssen, ausgelesen, solange der Befehl noch im I-Register 58 liegt Mit anderen Worten, die ersten
Stufen der Verarbeitung des im Register 58 liegenden Berehls werden bereits durchgeführt und werden unter
der Annahme gemacht, daß keine Verblockung auftritt Sollte jedoch eine Verblockung auftreten, dann werden
die Adressenberechnungen nicht benötigt und die aus dem Allzweckregister ausgelesenen Daten werden von
der Zentraleinheit dann nicht beachtet wenn ein Maschinenstatussignal von Null aus der ODER-Schaltung
90 oder der ODER-Schaltung 114 ankommt
Wenn jedoch keine Verblockung auftritt, dann werden die einleitenden Tätigkeiten zur Berechnung
der Adressen und zum Abrufen der Allzweckregister bereits durchgeführt sein und in der Zentraleinheit zur
Verwendung für die tatsächliche Verarbeitung der Daten aufgehoben, wie sie durch die Befehlsbezeichnung
innerhalb des Operationscodes angegeben ist Während der nächsten Befehlsdurchlaßperiode wird der
im I-Register 58 liegende Befehl über die Datenleitung 59 nach den Q-Registern übertragen. Dieser Befehl wird
dabei entsprechend dem in F i g. 5 definierten Algorithmus ausgewählt werden.
Hierzu 3 Blatt Zeichnungen
Claims (2)
1. Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander
unabhängiger, aus einem Speicher abrufbarer Befehlsfolgen für die normalerweise wechselzeitige
gemeinsame Benutzung einer als Fließband-Prozessor aufgebauten Zentraleinheit, mit zwei Befehlspufferspeichern
und einem Befehlsregister zur Aufnahme des jeweils nächsten zu verarbeitenden Befehls
sowie mit Blockierprüfschaltungen, dadurch gekennzeichnet,
daß zur Feststellung von Blockierbedingungen für einzelne Befehle der einen oder der anderen
Befehlsfolge das Befehlsregister (I-Register 58) über Torschaltungen (48, 50), sich gegenseitig ausschließend,
entweder an den einen Befehlspufferspeicher (28) oder den anderen Befehlspufferspeicher (30)
anschaltbar ist,
daß die an das Befehlsregister (58) angeschlossene Prüfschaltung (64, 72, 74, 76; 82, 94, 100; 66, 86, 98,
102, 104, 108) feststellt, ob der gerade im Befehlsregister (58) liegende Befehl der einen oder
der anderen Befehlsfolge verarbeitbar ist, und
daß Blockierprüfstufen (70, 88, 110, 90, 114) vorgesehen sind, die eine Weiterverarbeitung eines Befehls der einen oder der anderen Befehlsfolge sperren, solange eine Blockierbedingung für diesen einen Befehl besteht, und
daß Blockierprüfstufen (70, 88, 110, 90, 114) vorgesehen sind, die eine Weiterverarbeitung eines Befehls der einen oder der anderen Befehlsfolge sperren, solange eine Blockierbedingung für diesen einen Befehl besteht, und
daß eine an die Blockierprüfstufen (70, 88, 110, 90, 114) angeschlossene logische Auswahlschaltung
(F i g. 4) vorgesehen ist, durch die je nach den an den Ausgängen (90,114, PA, PB) der Blockierprüfstufen
auftretenden Signalen die Weitergabe von Befehlen der einen oder der anderen Befehlsfolge an das
Befehlsregister (I-Register 58) aber die eine oder die andere Torschaltung (48 bzw. 50) an deren zweiten
Eingang steuerbar ist.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß das I-Register (58) mit der Zentraleinheit
in der Weise verbunden ist, daß die Verarbeitung des Befehls gleichzeitig mit der Blockierprüfung
erfolgt und bei entsprechendem Prüfergebnis die Verarbeitung des gerade im I-Register liegenden
Befehls zumindest zeitweilig gesperrt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17649471A | 1971-08-31 | 1971-08-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2234867A1 DE2234867A1 (de) | 1973-03-08 |
DE2234867C2 true DE2234867C2 (de) | 1983-12-08 |
Family
ID=22644574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2234867A Expired DE2234867C2 (de) | 1971-08-31 | 1972-07-15 | Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen |
Country Status (5)
Country | Link |
---|---|
US (1) | US3728692A (de) |
JP (1) | JPS5418540B2 (de) |
DE (1) | DE2234867C2 (de) |
FR (1) | FR2198661A5 (de) |
GB (1) | GB1397310A (de) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4229790A (en) * | 1978-10-16 | 1980-10-21 | Denelcor, Inc. | Concurrent task and instruction processor and method |
SE456051B (sv) * | 1980-02-11 | 1988-08-29 | Western Electric Co | Digital processoranordning anordnad for pipeline-databehandlingsoperationer |
JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
JPS60189851A (ja) * | 1984-03-12 | 1985-09-27 | Agency Of Ind Science & Technol | 電界レンズ |
US5226129A (en) * | 1986-10-30 | 1993-07-06 | Nec Corporation | Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address |
US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
US4935849A (en) * | 1988-05-16 | 1990-06-19 | Stardent Computer, Inc. | Chaining and hazard apparatus and method |
US4969117A (en) * | 1988-05-16 | 1990-11-06 | Ardent Computer Corporation | Chaining and hazard apparatus and method |
GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
GB2234613B (en) * | 1989-08-03 | 1993-07-07 | Sun Microsystems Inc | Method and apparatus for switching context of state elements in a microprocessor |
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
GB9123271D0 (en) * | 1991-11-02 | 1991-12-18 | Int Computers Ltd | Data processing system |
US6000026A (en) * | 1992-06-22 | 1999-12-07 | Texas Instrument Incorporated | Multiple processor apparatus having a protocol processor intended for the execution of a collection of instructions in a reduced number of operations |
US5619685A (en) * | 1994-11-04 | 1997-04-08 | Ball Corporation | Run-time dynamically adaptive computer process for facilitating communication between computer programs |
US5875294A (en) | 1995-06-30 | 1999-02-23 | International Business Machines Corporation | Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
US5752062A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system |
US5797019A (en) * | 1995-10-02 | 1998-08-18 | International Business Machines Corporation | Method and system for performance monitoring time lengths of disabled interrupts in a processing system |
US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
US5751945A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system |
US5748855A (en) * | 1995-10-02 | 1998-05-05 | Iinternational Business Machines Corporation | Method and system for performance monitoring of misaligned memory accesses in a processing system |
WO1998013759A1 (fr) * | 1996-09-27 | 1998-04-02 | Hitachi, Ltd. | Machine de traitement de donnees et systeme de traitement de donnees |
US6470376B1 (en) * | 1997-03-04 | 2002-10-22 | Matsushita Electric Industrial Co., Ltd | Processor capable of efficiently executing many asynchronous event tasks |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373408A (en) * | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3548384A (en) * | 1967-10-02 | 1970-12-15 | Burroughs Corp | Procedure entry for a data processor employing a stack |
GB1246128A (en) * | 1967-12-14 | 1971-09-15 | Olivetti & Co Spa | Electronic computer |
US3573851A (en) * | 1968-07-11 | 1971-04-06 | Texas Instruments Inc | Memory buffer for vector streaming |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
US3601812A (en) * | 1969-01-22 | 1971-08-24 | Rca Corp | Memory system |
JPS5317023A (en) * | 1976-07-30 | 1978-02-16 | Hitachi Ltd | Color picture tube |
-
1971
- 1971-08-31 US US00176494A patent/US3728692A/en not_active Expired - Lifetime
-
1972
- 1972-07-13 GB GB3270072A patent/GB1397310A/en not_active Expired
- 1972-07-14 JP JP7009272A patent/JPS5418540B2/ja not_active Expired
- 1972-07-15 DE DE2234867A patent/DE2234867C2/de not_active Expired
- 1972-07-26 FR FR7228838*A patent/FR2198661A5/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US3728692A (en) | 1973-04-17 |
GB1397310A (en) | 1975-06-11 |
JPS4834448A (de) | 1973-05-18 |
FR2198661A5 (de) | 1974-03-18 |
DE2234867A1 (de) | 1973-03-08 |
JPS5418540B2 (de) | 1979-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2234867C2 (de) | Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen | |
DE2714805C2 (de) | ||
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE1815078C3 (de) | Elektronisches Datenverarbeitungssystem | |
DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
DE3424962C2 (de) | ||
DE2855106A1 (de) | Einrichtung zur durchfuehrung von instruktionsverzweigungen | |
DE1915818B2 (de) | Steuerschaltung für ein elektronisches Datenverarbeitungssystem | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE19526008C2 (de) | Befehlsvorholeinheit für einen Computer | |
DE69130414T2 (de) | Prozessor und Verfahren zur parallelen Verarbeitung | |
DE3802025C1 (de) | ||
DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE3307194C2 (de) | ||
DE1805992C3 (de) | Einrichtung zur Adressierung von Zwischenspeichern beim Sortieren/Mischen von vorsortierten Datenfolgen | |
DE1179027B (de) | Speicherprogrammierte digitale Rechenanlage | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE69111778T2 (de) | Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits. | |
DE2906685A1 (de) | Instruktionsdecodierer | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE69020430T2 (de) | Steueranordnung zur Aenderung eines Microbefehls. | |
DE2545751C2 (de) | Ablaufsteuerung für eine Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8126 | Change of the secondary classification |
Ipc: G06F 9/38 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |