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 Befehlsfolgen

Info

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
Application number
DE2234867A
Other languages
English (en)
Other versions
DE2234867A1 (de
Inventor
John Wenard Beltsville Fennel jun., Md.
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2234867A1 publication Critical patent/DE2234867A1/de
Application granted granted Critical
Publication of DE2234867C2 publication Critical patent/DE2234867C2/de
Expired legal-status Critical Current

Links

Classifications

    • 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 or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction 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
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
UCl VCI St-IIlClJClIdI
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)

Patentansprüche:
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ß 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.
DE2234867A 1971-08-31 1972-07-15 Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen Expired DE2234867C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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