DE2906685A1 - Instruktionsdecodierer - Google Patents

Instruktionsdecodierer

Info

Publication number
DE2906685A1
DE2906685A1 DE19792906685 DE2906685A DE2906685A1 DE 2906685 A1 DE2906685 A1 DE 2906685A1 DE 19792906685 DE19792906685 DE 19792906685 DE 2906685 A DE2906685 A DE 2906685A DE 2906685 A1 DE2906685 A1 DE 2906685A1
Authority
DE
Germany
Prior art keywords
instruction
register
general
address
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19792906685
Other languages
English (en)
Other versions
DE2906685C2 (de
Inventor
John Stephen Liptay
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 DE2906685A1 publication Critical patent/DE2906685A1/de
Application granted granted Critical
Publication of DE2906685C2 publication Critical patent/DE2906685C2/de
Granted 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

2 η η C s5 Q O U ν> O ri
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
jo/ib
Instruktionsdecodierer
Die Erfindung betrifft einen Instruktionsdecodierer für Instruktionen mehrerer separater Instruktionsströme nach dem Oberbegriff des Anspruchs 1.
Instruktionsdecodierer für Instruktionen mehrerer separater Instruktionsströme sind für elektronische Datenverarbeitungsanlagen sehr hoher Verarbeitungsgeschwindigkeit bestimmt. Die Architektur solcher Hochgeschwindigkeits-Datenverarbeitungsanlagen erfordert die Verwendung mehrerer allgemeiner Register, die durch die in bestimmten Feldern einer Instruktion enthaltene Information adressierbar sind. Die Architektur des IBM Systems/370 schreibt die Verwendung von 16 solcher allgemeiner Register vor. Diese können für die Zwischenspeicherung von Daten geladen werden oder die in ihnen gespeicherten Daten können für Adressenbildungen verwendet werden, bei denen ihr Inhalt als Basisadresse oder Adressenindexwert zu Adresseninformation addiert werden kann, die in der auszuführenden Instruktion selbst enthalten ist.
Datenverarbeitungsanlagen der genannten Art verfügen über eine Instruktionsvorverarbeitungseinheit, die in der Lage ist, vordecodierte Instruktionen zu stapeln oder in eine Warteschlange einzuordnen und sie dann sequentiell, eine
po 977023 S09838/06
I 2906695 j
i - 6 -
ι !
I I
!nach der anderen, für ihre Instruktionsausführung zu einer Ausführungseinheit zu übertragen. In Anbetracht der Tat- : sache, daß eine Instruktion, die auf ihre Abarbeitung in I einer Instruktionswarteschlange wartet, ein allgemeines Register bezeichnen kann, um neue Daten zu empfangen, muß die weitere Decodierung einer Instruktion in einem Instruktionsregister verhindert werden, wenn diese Instruktion 'die Benutzung des gleichen allgemeinen Registers für die Bildung einer Hauptspeicheradresse benötigt.
] Die oben erwähnte Architektur des IBM Systems/370 verfügt !über mehrere Instruktionstypen, die den Inhalt von allgemeinen Registern modifiziert. Alle diese Instruktionsarten I definieren ein allgemeines Register durch den Inhalt eines mit R1 bezeichneten Feldes, welches das Register identifiiziert, in das Information geladen werden soll. Die Daten, die in dieses R1 geladen werden sollen, können von anderen allgemeinen Registern, einer Hauptspeicheradressenstelle oder vom Ausgang einer arithmetischen Einheit her verfügbar sein. Bestimmte Instruktionen, die R1 spezifizieren, können auch beinhalten, daß ein allgemeines Register R1 + 1 ebenfalls geladen werden soll.
Einige Ladeinstruktionen spezifizieren auch, daß auf mehrere Hauptspeicherstellen zugegriffen werden soll, deren Inhalt in allgemeine Register zu laden ist, beginnend mit Register R1 und endend mit einem allgemeinen Register, das in einem anderen Feld der Instruktion, das mit R3 bezeichnet ist, bestimmt ist. Diese besondere Instruktion wird als "Lade mehrfach-Instruktion" bezeichnet.
po 977 O23 909838/0620
! ■■■-■■" 2306685 '
j "
j Bei bekannten elektronischen Datenverarbeitungsanlagen, wie
'beispielsweise IBM System/370 Modell 168 wird die Identität j ;des Registers R1 ebenfalls in die Instruktionswarteschlange
!eingegeben, und zwar zusammen mit der Instruktionsausführungs-:
I information, die der Ausführungseinheit vorgelegt wird, wann
!immer eine Instruktion decodiert und in die Instruktions- f
warteschlange eingegeben wird, die ein allgemeines Register j modifiziert. Diese Information blockiert bereits die Instruk- ; tionsausführung, wenn Adressenbildungsinformation von der
gerade auszuführenden Instruktion benötigt wurde, die R1
spezifizierte. Da jedoch eine "Lade mehrfach-Instruktion" eine: Bereich von allgemeinen Registern von R1 bis R3 spezifiziert,
ist die Information, die R1 betrifft nicht ausreichend, um
festzustellend, ob eine nachfolgende Instruktion, die decodiert wird, die Benutzung eines Registers erforderlich
macht, das jenseits des mit R1 spezifizierten Registers liegt.i Daher wird bei den bekannten Systemen immer dann, wenn eine
"Lade mehrfach-Instruktion" decodiert und in die Instruktions-j
i warteschlange eingegeben wird, eine weitere Instruktionsde-
codierung solange blockiert, bis die "Lade mehrfach-Instruktion" der Ausführungseinheit vorgelegt und von dieser vollständig ausgeführt wurde. j
Dadurch, daß bei der Decodierung einer "Lade mehrfach-Instruk-|
tion" die Vordecodierung nachfolgender Funktionen bis zur ■ ι j
I vollständigen Abarbeitung der "Lade mehrfach-Instruktion" | j blockiert wurde, ergibt sich der Nachteil eines Geschwin- I digkeitsverlustes, der sich bei Hochleistungsdatenverar-
\ . -
beitungsanlagen störend bemerkbar macht.
I Es ist daher die Aufgabe der vorliegenden Erfindung, einen
jInstruktionsdecodierer anzugeben, der einen solchen Geschwin-I digkeitsverlust vermeidet.
P0 977 023 909838/0620
230669
Gelöst wird diese Aufgabe der Erfindung durch die im Haupt-'anspruch angegebenen Merkmale.
Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegen-I Standes der Erfindung sind den Unteransprüchen zu entnehmen.
Durch die Erfindung wird nun der Vorteil erzielt, daß auch
I bei der Decodierung einer "Lade mehrfach-Instruktion" und deren j Einreihung in die Instruktionswarteschlange die Vordecodierung ;nachfolgender Instruktionen nicht unterbrochen wird, mit j einer Ausnahne, die darin besteht, das eine der nachfolgenden Instruktionen, im Instruktionsvordecodierer eine solche Instruktion ist, die Information aus einer nocht nicht erledigten "Lade mehrfach-Instruktion" für ihre Ausführung be-'nötigt. Durch den unterbrechungsfreien Betrieb des Instruk- !tionsdecodierers ergibt sich eine sehr vorteilhafte Steige-I rung der Verarbeitungsgeschwindigkeit elektronischer Datenverarbeitungsanlagen. Im folgenden wird ein Ausführungsbeijspiel der Erfindung anhand der beiliegenden Figuren näher i beschrieben.
Es zeigen: Fig. 1
Fig. 2 Fig. 3
das Blockschaltbild der wesentlichen Funktionseinheiten einer elektronischen Datenverarbeitungsanlage,
ein Blockschaltbild der wesentlichen Funktionseinheiten einer Instruktions-Vorverarbeitungseinheit,
ein Blockschaltbild der Instruktions-Vorverarbeitungseinheit, das Instruktionsdecodierungs, Adressenbildung und eine Instruktionswarteschlange zeigt,
PO 977 023
fi09838/0620
,Fig. 4 ein Blockschaltbild der Logikschaltungen/ die für die Decodierung einer Ladeinstruktion erforderlich sind, die wiederum den Zugang zu allgemeinen Registern steuert, in denen Felder der Instruktionswarteschlange gespeichert sind,
,Fig. 5 ein Blockschaltbild einer Vergleichsschaltung, ί die Eingangssignale von den allgemeinen Re-
i gistern empfängt und die Information einer
ί Instruktionswarteschlange und Felder einer
i Instuktion, die zu decodieren ist, identifi-
: ziert,
iFig. 6 das Blockschaltbild einer Anordnung von lo- : gischen Schaltungen, die auf Konflikte zwischen
den allgemeinen Registerfeldern in der Instruktionswarteschlange und allgemeinen Registerfeldern in einer Instruktion, die zu decodieren ist, mit der Blockierung der weiteren Decodierung anspricht,
Fig. 7 ein Blockschaltbild einer Vergleichsschaltung, : die ein Signal erzeugt, das angibt, das eine
Binärzahl gleich oder kleiner als eine andere Binärzahl ist und
Fign. 8, 9 Zeittaktdiagramme zur Darstellung des ünter- und 10 schiedes zwischen bekannten Sperrlogikschaltungen und der Sperrlogikschaltung gemäß der Erfindung.
P0 977 O23 §09838/0620
23066
Fig. 1 zeigt die wesentlichen Funktionseinheiten einer elek- !tronischen Datenverarbeitungsanlage der höheren Leistungsjklasse. Der Kern der vorliegenden Erfindung liegt in der Instruktionsvorverarbeitungsfunktion (IPPF) 20. Diese Instruktionsvorverarbeitungsfunktion 20 ist eine Einheit, die i mit einer weiteren Einheit verkehrt, die mit Prozessorspeichert
' I
!steuerfunktion (PSCF) 21 bezeichnet ist, die ihrerseits !
I I
I einen Hochgeschwindigkeitspufferspeicher enthält, um Folgen ' ;von Instruktionen vom Prozessorspeicher 22 zu empfangen und :die übertragung von Datenoperanden zu einer Ausführungsein- j :hext oder auch E-Funktionseinheit 23 genannt, einzuleiten. ι j Die Instruktionsvorverarbeitungsfunktion 20 verkehrt auch mit {der E-Funktionseinheit 23 mit dem Ziel, Instruktionen nacheinander zur E-Funktionseinheit 23 zu übertragen. Die Erigebnisse der Instruktionsausführungen in der E-Funktionsein-Iheit 23 werden zur Instruktionsvorverarbeitungseinheit 22
zurückübertragen, um auf diese Weise eine Steuerung herzu- ;stellen, welche die Folge der Instruktionsausführung diktiert. 'Die übrigen Komplexe einer elektronischen Datenverarbeitungsianlage, die für das Verständnis der vorliegenden Erfindung nicht unbedingt erforderlich sind, sind die Kanäle 24, eine ,Konsole 25 und eine Wartungs- und Wiederholgungsteuerung 26.
Fig. 2 zeigt vier wesentliche Funktionsbereiche innerhalb der Instruktionsvorverarbeitungseinheit 20 der Fig. 1. Diese sind eine Vorabruflogik 27 für drei Instruktionströme, ein Instruktionsvordecodierer 28, eine Einrichtung 29 zur Adressenbildung und ein Sperrmechanismus 30. Die Instruktionsvorverarbeitungs einheit 20 hat die Fähigkeit, vier vordecodierte Instruktionen zu speichern oder in eine Warteschlange einzureihen, um sie in Folge nacheinander der Instruktionsaus führungseinheit 23 zu präsentieren. Diese verfügt über Information bezüglich der Datenoperanden, die abgerufen werden müssen, die allgemeinen Register, die zu verwenden sind, die Anfangsadresse eines mikroprogrammgesteuerten
po 977 023 §09838/0620
; - 11 -
Steuerspeichers und verschiedener anderer Steuersignale, die ;noch ausführlich beschrieben werden. Eine große Anzahl von zu decodierenden Instruktionen benötigt eine Adressenarithmetik, damit sie in der Instruktionsvorverarbeitungseinheit 20 veriarbeitet werden können, so daß auch noch eine Logikschal- !tung 29 zur Adressenbildung vorgesehen ist. Zur Sicherstel-Ilung, daß geeignete Daten für eine Benutzung in der Adressenbildungslogik und der Instruktionsvordecodierung verfügbar 'sind, bevor decodierte Instruktionsinformation in die vieristellige Warteschlange eingegeben wird, ist eine Anzahl von [Sperren erforderlich.
!Fig. 3 zeigt drei getrennte Sätze von Instruktionspufferregistern, die mit 31, 32 und 33 bezeichnet sind. Jeder Satz von Instruktionspufferregistern empfängt, wenn er ausgewählt wurde, 64 Instruktionsbits, und zwar jedesmal, wenn eine Anforderung für einen Instruktionsabruf zur Prozessorspeichersteuerungsfunktionseinheit 21 übertragen wird. Daher können
32 aus jeweils acht Bits bestehende Instruktionsbytes vorabgerufen und in jedem Satz von Instruktionspuffern 31, 32 oder
33 gespeichert werden.
'Die Instruktionen werden bei der vorliegenden Datenverar-'beitungsanlage nacheinander in der Instruktionsvorverarbeitungseinheit 20 decodiert. Die jeweilige Instruktion, die in der entsprechenden Reihenfolge decodiert wird, wird 1ZU einem Instruktionsregister 35 (I-Register) übertragen, Idas in der Lage ist, 32 Instruktionsbits zu speichern. !Verschiedene Torschaltungen, die als ein Komplex 36 dargestellt sind, werden entsprechend einer Adresseninformation, die in einem Instruktionszähler vorliegt, betätigt, damit so die entsprechende von mehreren Instruktionen von dem gerade verwendeten Instruktionspufferspeicher während der Instruktionsausführung in das Instruktionsregister 35 übertragen werden kann, von wo aus ihre Decodierung erfolgt. Der Satz von Torschaltungen 36 muß der Steueraufgabe gerecht werden, daß gemäß der verwendeten Systemarchi-
po 977 023 909838/0 6 20
23 06635
! - 12 -
Itektur Instruktionen verarbeitet werden müssen, die verschiedene Längen aufweisen, beispielsweise zwei, vier oder sechs Bytes zu je acht Bits. Verschiedene Torkombinationen werden idabei betätigt, um sicherzustellen, daß für jede zu decodieirende Instruktion die acht Bits des Operationscodes in die Bit-i •stellen null bis sieben des Instruktionsregisters 35 gelangen. Abhängig vom Format der jeweiligen zu decodierenden Instruktion vom Instruktionsregister 35, können die Bits acht bis fünfzehn Maskenbits, codierte Information bezüglich der Länge variabler Feldoperanden oder Adressen der allgemeinen Register sein. Die Bits zwölf bis fünfzehn und sechszehn bis neunzehn können bestimmte allgemeine Register eines Satzes von sechzehn solcher Register bezeichen, und zwar ebenfalls wieder in Abhängigkeit von der verwendeten Systemarchitektur, beispielsweise der Architektur der IBM-Systeme/360 oder /370. Die Bits 20 bis 31 von Vier-Byte-Instruktionen sind ein Adressenversetzungsfeld, das bei der Bildung der Adresseninformation für den Zugriff von Datenoperanden vom Speicher verwendet wird.
Der Instruktionsdecodierungsmechanismus der Instruktionsvorverarbeitungseinheit 20 besteht aus einem (logischen) Schalt-
ikreisdecodierer 37, aus einem Matrixdecodierer und aus einem 'Steuerspeicher-Adreßregisterdecodierer 39 (CSAR-Decodierer). Die Codierung jeder Instruktion im Instruktionsregister 35 !erfordert innerhalb der Anlage zwei Taktzyklen. Während des Ablaufs des ersten Taktzyklus muß bestimmte Information, welche die zu decodierende Instruktion betrifft, so schnell wie möglich verfügbar sein, wobei diese Information vom jSchaltkreisdecodierer 37 zur Verfügung gestellt wird. Nicht bis zum zweiten Zyklus jeder Instruktionsdecodierung sichere ,oder andere erforderliche Information wird vom Matrixde- ■■ codierer 38 geliefert, der die Bits null bis sieben des Ope-
jrationscodes verwendet, um den Lese-/Schreibspeicher zu adressieren, der über mehrer Steuersignalleitungen 40 und 41 Steuersignale ausgibt.
po 9?7 023 §09838/0620
2908G-35 '
Die Ergebnisse der Instruktionsdecodierungs-Funktionseinheit werden als Instruktionsausführungssteuerinformation in einem von vier Registern einer Instruktionswarteschlange 42 gespeichert. Ein Teil der AusführungsSteuerinformation wird über eine Leitung 43 empfangen, welche die acht Bits des Operationscodes führt, die ihrerseits die von der Ausführungseinheit durchzuführende Grundfunktion angeben. Bei bekannten mikroprogrammierten Steuersystemen, in denen ein Steuerspeicher Mikroprogramme enthält, werden die acht Operationscodebits dazu benutzt, die erste Mikroinstruktion einer Folge von Mikroinstruktionen zu adressieren, die letztlich die Ausführung einer Instruktion bewirken. Um die Leistung des Steuerspeichers zu steigern, werden zusätzliche binäre Bits, die für den ersten Zyklus des Zugriffs zum Steuerspeicher dienen, über die Leitung 44 bereitgestellt. Diese zusätzlichen Binär-1 bits werden vom Steuerspeicher-Adreßregisterdecoder 39 geliefert, der auf die Maskeninformation anspricht, die in den Bits acht bis fünfzehn der zu decodierenden Instruktion enthalten sind. Außerdem dienen auch die Steuersignalleitungen 41 vom Matrixdecodierer 38 diesem Zweck. Zusätzliche AusführungsSteuerinformation wird ferner vom Matrixdecoder 38 über die Leitung 40 geliefert. Die Leitung 45 liefert Operandenadresseninformation, die von der Adressenbildungslogik erzeugt wird. Die AusführungsSteuerinformation von einem der vier Register der Instruktionswarteschlange 42 wird für jede Instruktionsausführung zu der Instruktionsaus führungs einheit 23 übertragen.
Der Vorabruf von Instruktionen in einer bestimmten Instruktionsfolge A, B oder C in einem der Instruktionspuffer 31 bis 33 wird parallel mit der Abgabe einer einzigen Instruktion an das Instruktionsregister 35 und die Abgabe von Ausführungssteuerinformation zu einem leeren Register der In-
P0 977 O23 909838/0620
2906^35
struktionswarteschlange 42 fortgesetzt. Ein Signal von der Instruktionsausführungseinheit 23, das die vollständige Durchführung einer Instruktionsausführung von der Instruktionsaus führungseinheit 23 angibt, dient zur Durchschaltung der nächsten AusführungsSteuerinformation in der Folge von einem der vier Register der Instruktionswarteschlange 42 zu der Instruktionsausführungseinheit für die nächste Ausführung. Solange ein leeres Register in der Instruktionswarteschlange 42 verfügbar ist, kann die Instruktionsdecodierung und die Eingabe von Ausführungsteuerinformation in die nicht volle Warteschlange 42 fortgesetzt werden.
Zusätzlich zu der Tatsache, daß alle vier Register der Instruktionswarteschlange 42 voll sind, was dazu führen sollte, daß die Instruktionsdecodierung ruhen soll, können verschiedene andere Maschinenbedingungen, die weitgehend als Sperren bezeichnet sind, die noch weiter erläutert werden, die Instruktionsdecodierung in den Wartezustand steuern. Ein Teil des Instruktionsdecodierungsprozesses ist die Bildung von Speicheradressen aus Kombinationen von Adressenbits, die in jeder Instruktion vorhanden sind und dem Dateninhalt von durch die Instruktion adressierbaren allgemeinen Registern, gemäß der verwendeten Architektur. Eine Sperre, die eine Instruktionsdecodierung verhindert oder warten läßt, muß aktiviert werden, wenn eine Instruktion, die in der Warteschlange 42 enthalten ist, noch nicht ausgeführt ist, wobei diese Instruktionsinformation in ein allgemeines Register geladen werden soll, das dazu verwendet wird, eine Adresse einer Instruktion zu bilden, die gegenwärtig im Instruktionsregister 35 enthalten ist. In einer solchen Situation muß die Decodierung der Instruktion im Instruktionsregister 35 zurückgestellt werden, bis die gewünschte Information von der noch nicht ausgeführten Instruktion verfügbar ist.
po 977 O23 9 0 9 8 3 8/0620
[ 290&6S5
j - 15 -
j Bei bestimmmten Systemarchitekturen t ζ. B. den bereits vor-• stehend genannten, spezifizieren diese Architekturen von der ι Instruktion adressierbare allgemeine Register. Diese sind nor-' malerweise konkret in der Ausführungseinheit enthalten und : werden auch dort verwendet, wie es bei der vorliegenden elek- ι tronischen Datenverarbeitungsanlage auch der Fall ist. Um je- j doch die Adressenarithmetik schneller zu machen, ist in der
I Instruktionsvorverarbeitungseinheit 20 eine zweite Kopie der ! j sechnsehn allgemeinen Register vorhanden. Diese ist in Fig. 3 '
f " ■ . i
! mit 46 bezeichnet. Der normale Verbindungsweg für die Eingabe von Information in die allgemeinen Register 46 verläuft über ein Arbeitsregister in der Ausführungseinheit 23, das mit j "C-REG." bezeichnet ist sowie über eine Leitung 47. Die Leitungen 48 und 49 empfangen Adresseninformation bezüglich ,
ι der allgemeinen Register vom Instruktionsregister 35. Die Ausgangssignale der allgemeinen Register 46 werden zu einem Ädreßaddierer 52 übertragen, und zwar zusammen mit Adressenversetzungbits 20 bis 31 vom Instruktionsregister 35 über die Leitungen 53.
In Fig. 4 ist das Instruktionsregister 35, die Decodiermatrix 38 und ein Teil der Instruktionswarteschlange 42 dargestellt, die schon im Zusammenhang mit Fig. 3 erwähnt wurden. Wie zuvor ebenfalls schon erwähnt wurde, umfaßt ein Teil des Instruktionsdecodierungsprozeßes die Abgabe der Operations- ! codebits null bis sieben aus dem Instruktionsregister 35 an den Matrixdecodierer 38, der AusgangsSteuersignale liefert. Zwei dieser Signale werden über die Leitungen 54 und 55 übertragen. Sie sind so codiert, daß sie, wenn überhaupt, angeben in welches der allgemeinen Register sie zu speichern sind.
Im Instruktionsregister 35 ist auch das Format einer "Lade mehrfach Instruktion" (LM.) dargestellt. Die allgemeinen Re- j gister, die mit 56 bezeichnet sind, sollen fortlaufend ge- j laden werden, und zwar beginnend mit dem Register, welches
PO977023 909838/0620
230SS
durch das RI-FeId und endend mit dem Register, welches durch 'das R3-Feld bezeichnet ist. Die Hauptspeicheradresse für den I ersten Operanden, der in Register R1 geladen werden soll, ver- ! wendet die Versetzungsadressenbits (D2), die zu den Adressen- j bits in einem Basisregister zu addieren sind, welches ein j allgemeines Register ist, das durch das B2-Feld spezifiziert ist. Wenn R1 ein allgemeines Register bezeichnet, dessen Adresse kleiner oder gleich dem nummerischen Wert im Register R3 ist, dann findet das Laden so statt, wie es bei i ;57 dargestellt ist. Es ist ferner möglich, daß der Wert j I im Feld R1 größer ist als die Adresse des allgemeinen Registers, das durch R3 bezeichnet wird, so daß die Ladung des Registers bei der im Register R1 befindlichen Adresse beginnt, iwie es unter 58 dargestellt ist und die Ladung fortgesetzt wird durch das letzte allgemeine Register zu dem ersten und !weiter fortgesetzt wird zu dem in R3 spezifizierten Register, iwie es bei 59 dargestellt ist.
Fig. 4 zeigt nur einen Teil jedes Registers der Instruktions-'warteschlange 42. Zum Verständnis der vorliegenden Erfindung ist nur derjenige Teil jedes Registers von Interesse, der dargestellt ist und der bei der Erzeugung der entsprechenden Adressenbildungsperren verwendet wird. Ein großer Teil der übrigen Instruktionsausführungssteuerinformation wird in jedes Register der Instruktionswarteschlange 42 für seine nachfolgende Abgabe an die Ausführungssteuereinheit eingegeben. Das Register 60 repräsentiert die Instruktionswarteschlange 0. Es besteht aus einem 4-Bit-Feld 61, das mit GR N und aus einem weiteren 4-Bit-Feld 42, das mit GR H bezeichnet ist. Wenn Instruktionen vom Instruktionsregister 35 decodiert werden, dann wird die AusführungsSteuerinformation in eins der Register der Instruktionswarteschlange 42 eingegeben, und zwar an einer Stelle, die durch einen Eingangszeiger gekennzeichnet ist, der die nächste leere Warteschlangen-Registerposition angibt. Wenn die Information dann
PO977023 809838/0620
: 29066SS
in das entsprechende Register eingegeben worden ist, wird der Eingangszeiger auf die nächste freie Warteschlangenposiition weitergeschaltet. Der Warteschlangenposition, welche jdie Ausführungssteuerinformation empfängt, ist ein Tätig-Schalter zugeordnet, der eingeschaltet ist und dadurch anigibty daß gültige Information in dem Warteschlangenregister •enthalten ist.
!Durch Steuersignale 54 und 55 vom Matrixdecodierer 38 liefert !ein GR Änderungsdecodierer 63 TorSteuersignale an die Lei-
»tungen 64, 65 und 66 um die Decodierung einer Instruktion im iInstruktionsregister 35 anzuzeigen, die den Inhalt bestimmter j allgemeiner Register (GR) ändert. Wenn die Steuersignalleiitungen 54 und 55 Signale führen, welche der codierten Kombination 00 entsprechen, dann wird von der betrachteten Inlstruktion keins der allgemeinen Register in seinem Inhalt verändert, und daher bleiben auch die Felder 61 und 62 im
gelöschten Zustand, der dem Wert null entspricht. Für alle 1 übrigen Codekombinationen der Signale auf den genannten Lei- ;tungen wird das Feld 61 stets auf den Wert des Feldes R1 idadurch eingestellt, daß die Tore 67 den Wert von R1 über die Leitung 68 in das Feld 61 der Instruktionswarteschlangenregister übertragen, welches die codierte Information empfängt.
Das Feld 62 des Instruktionswarteschlangenregisters, welches die Information empfängt, wird von einer Eingangsinformation über das ODER-Tor 70 und eine Leitung 69 eingestellt» Das ODER-Tor 70 empfängt diese Eingangsinformation über die Leitung 71, 72 oder 73. Die Leitung 72 liefert Information an ein Feld 62, wenn eine zwischengeschaltete Torschaltung ein Steuersignal über die Leitung 64 empfängt, das angibt, daß nur das Register R1 zu laden ist. Bestimmte andere Instruktionen beinhalten, daß wenn Register RT zu laden ist (stets ein Register mit gerader Ordnungszahl), das nächste sequen-
PO977023 909838/0630
ιtielle Register ebenfalls zu beschicken ist. Der Wert aus
!R1 wird von einer Inkrementierschaltung 74 um eins erhöht
!und über ein Steuertor 75 zu dem ODER-Tor 70 übertragen.
'Die Erhöhung um eins erfordert nur, daß das niedrigstellige '
I J
;Bit des Feldes R1 (stets O) auf den Binärwert 1 gesetzt ' ! ι
^ird. Für die Situation, in der die "Lade mehrfach-Instruktion'f j decodiert wurde, wird eine Torschaltung 76 durch ein Signal
'auf der Leitung 66 durchgeschaltet, so daß der Wert aus dem
j Feld oder Register R3 in das Feld 62 gelangt. Jedem der
(Register 60, 77, 78 und 79 ist eine Vergleichsschaltung 80,
I81, 82 und 83 zugeordnet. Jede der Vergleichsschaltungen 80
j bis 83 wird durch ein Signal auf der Leitung 84 von dem zujgeordneten Tätig-Schalter aktiviert, wenn die Warteschlangenj registerposition gültige Instruktionsausführungsinformation
'■- enthält. Um die Sperrinformation abzugeben, wird der Inhalt
,der Felder 61 und 62 für eine tätige Warteschlangenposition
!mit jeder Instruktions verglichen, die im Instruktionsre-
igister 35 decodiert wird und die eine Adressenbildung durch-
j führen muß, wobei der Inhalt der bezeichneten allgemeinen
I Register verwendet wird. Die Felder der Instruktionen, die
j eine Adressenbildung erfordern sind mit B2 und X2 bezeichnet \
,und jeweils bei 85 und 86 in Fig. 4 dargestellt. B2 bezeich- ; .net ein allgemeines Register, das einen Basisadressenwert :
I I
enthält, X2 hingegen ein allgemeines Register, das einen ι
Adressenindexwert enthält, wobei beide Werte zu 12 Binär- j
;bits der Ersatzadresse im Feld D2 der Instruktion addiert j
' werden müssen. J
: j
Wenn eine der Vergleichsschaltungen 80 bis 83 feststellt, daß j . entweder das Feld X2 oder B2 einer Instruktion, die gerade de-j }codiert wird, mit Werten in Konflikt gerät, die in den , Feldern 61 und 62 in einem der Instruktionswarteschlangenregister enthalten sind, dann wird ein Signal auf der Leitung 87 oder 88 der zugeordneten Vergleichsschaltung er-■ zeugt, welches eine solche Konfliktsituation signalisiert.
PO 977 023 9 0 9 8 3 8/0620
; 9 Q Π C <? ß ζ
Weitere Einzelheiten der Vergleichsschaltung 80, die der Warteschlange 0, Register 60 zugeordnet ist, sind Fig. 5 zu entnehmen. Wenn die Decodierung einer Instruktion beendet ist
j und die Information in die Instruktionswarteschlange einzuigeben ist, dann wird die Information in diejenige Instruktionswarteschlangenposition eingegeben, die von dem decodierten
Wert des Eingangszeigers auf der Leitung 89, die der Instruktionswarteschlange 42 in Fig. 3 zugeordnet ist, angegeben' ist. Der Wert von R1 wird in das Feld 61 eingegeben, wohingegen I das Feld 62 entweder den Wert aus R1, R1 + 1 oder R3 empfängt. ■ j Die 4-stelligen (4 Bits) Felder X und B, bzw. deren Inhalt,
i
wird den Vergleichsschaltungen auf den Leitungen 85 und
86 zugeführt, wo sie mit den Feldern 61 und 62 aller In- < struktionswarteschlangen-Registerpositionen verglichen werden. !
!Die Funktion der Vergleichsschaltung 80 ist die Feststellung !
I solcher Situationen, in denen das allgemeine Register, das ι
ι !
■ entweder von dem X- oder B-Feld einer zu decodierenden In- j struktion spezifiziert wird, in den in Fig. 4 schattiert j dargestellten Bereich fällt, der bei 56 dargestellt ist. : Wie dort gezeigt ist, können zwei verschiedene Situationen, ; abhängig von den Werten in R1 und R3, auftreten. Eine Ver- ■ gleichsschaltung 90 empfängt diese Werte. Über einen In-
■ verter 91 und die Leitung 9 2 wird dann der binäre Zustand
■ als Signal übertragen, das zwischen den Situationen unterscheidet, in denen der Wert in R1 größer oder kleiner ist, i
• als derjenige in R3. Die übrigen Vergleichsschaltungen 93 i !bis 96 vergleichen die Werte in R1 und R3, die jeweils in ; GR N 61 und GR H 60 enthalten sind, mit den Werten in dem j Ί X- und B-Feld, wobei sie ein Ausgangssignal liefern, das
ι angibt, ob die entsprechenden Werte gleich oder kleiner
als der andere Wert sind. Die ODER-Tore 97 und 98 liefern I dann Ausgangssignale, die Konfliktsituationen anzeigen. Wenn l der Wert R1 größer ist, als der Wert in R3, was angegeben
PO977023 909838/0620
wird durch ein positives Ausgangssignal auf der Leitung 92, dann zeigen die UND-Tore 99, 100, 101 und 102 einen Konflikt zwischen dem B- oder X-FeId an, mit dem in Fig. 4 schattiert dargestellten Bereich 58 oder 59. Die UND-Tore 103 und 103a zeigen einen Konflikt, wenn diese Felder innerhalb des schattierten Bereichs 57 liegen.
Fig. 6 zeigt den letztlichen Verwendungszweck der vorliegenden Erfindung. Dieser ist darin zu sehen, daß ein ODER-Tor ein Ausgangssignal auf der Leitung 105 liefert, wenn eine Konfliktsituation vorliegt. Das Signal auf der Leitung 105, das mit "Blockierung der Decodierung erfolgreich" bezeichnet ist, verhindert die vollständige Decodierung der Instruktion im Instruktionsregister 35 der Fig. 3. Die Instruktion in der Instruktionswarteschlange 52, die den Konflikt verursacht hat, muß zunächst voll ausgeführt werden und in der Instruktionswarteschlange gelöscht werden, bevor die Decodierung der Instruktion im Instruktionsregister 35 erneut gestartet werden kann. Das ODER-Tor 106 liefert immer dann ein Ausgangssignal, wenn ein Konflikt vorliegt, der das B2-Feld betrifft. Das ODER-Tor 107 dagegen zeigt an, daß ein Konflikt im Zusammenhang mit dem X2-Feld vorliegt.
Obwohl jede Vergleichsschaltungen 80 bis 83 ein Signal liefern könnte, das einen Konflikt signalisiert, müssen noch zwei zusätzliche Bedingungen erfüllt werden, bevor eine Konfliktsituation als eine solche anerkannt wird, die die Blockierung der Decodierung weiterer Instruktionen erforderlich macht. Die erste dieser Bedingungen ist durch die Systemarechitektur gegeben, die beispielsweise definiert, daß die Felder B2 und X2 den Wert 0 enthalten können, wodurch angezeigt wird, daß diese Felder keine allgemeinen Register spezifizieren, die an der Adressenbildung beteiligt sind. Daher sind Null-Detektoren 108 und 109 vorgesehen, die über ihre nachgeschalteten Inverter 110 und 111 eine Anzeige liefern, ob eines dieser den Wert 0 enthält.
PO977023 909838/0620
Die zweite Bedingung, die erfüllt werden muß, wird über die Leitungen 112 und 113 angezeigt, die weitere Steuersignale vom Martrixdecodierer 38 der Fig. 3 übertragen. Die Steuersignale auf diesen Leitungen geben an, daß die im Instruk- ι tionsregister 35 befindliche Instruktion, die gerade decodiert wird, ein Format hat, in dem jeweils ein B2- oder X2-Feld vorhanden ist. Wenn diese beiden weiteren Bedingungen erfüllt sind, dann erzeugen die UND-Tore 114 und 115 Torsteuersignale, die eine Serie von UND-Toren durchschalten, die in Fig. 6 allgemein jeweils mit 116 und 117 bezeichnet sind. Jeder dieser UND-Torkomplexe 116 oder 117 hat zwei zusätzliche Eingänge, die angeben, daß die zugeordnete Warteschlange tätig ist (84) und daß die der Warteschlange zugeordnete Vergleichsschaltung einen Konflikt anzeigt (87, 88).
Fig. 7 zeigt Einzelheiten der Logikstruktur der Vergleichsschaltungen 90, 93, 94, 95 und 96, die in Fig. 5 dargestellt sind. Ein positives Ausgangssignal auf der Leitung 118 wird von einem ODER-Tor 119 erzeugt, wenn irgendeines der UND-Tore, welches das ODER-Tor 119 speist, durchgesehaltet ist. So liefert beispielsweise das UND-Tor 120 ein positives Ausgangssignal an das ODER-Tor 119, wenn diesem ein weiteres positives Signal von dem UND-Tor 121 zugeführt wird. Dieses UND-Tor 121 signalisiert eine Situation, in der die hochstellige Bitposition 0 des Z-Feldes eine binäre 1 und die hochstellige Bitposition 0 des Y-Feldes eine binäre 0 enthält. Dieses bedeutet, daß der Wert Y kleiner ist als der Wert S- Jedes andere UND-Tor, das ein Eingangssignal an das ODER-Tor 119 abgibt, stellt fest, wenn die hochstelligen binären Bits der Y- und Z-Felder gleich sind, die nächstniedrigeren binären Bits jedoch anzeigen, daß der Wert im Feld Y kleiner ist als im Feld Z. Schließlich liefert das UND-Tor 122 ein Ausgangssignal, wenn der Wert im Y-FeId gleich dem Wert im Z-FeId iste
977 O23 909838/06
Die Pign. 8, 9 und 10 zeigen Zeitdiagrainme, die den Unterschied der vorliegenden Erfindung zum Stand der Technik zeigen, und zwar hinsichtlich der Erzeugung von Signalen, welche die Instruktionsdecodierung blockieren, wenn Konflikte zwischen den Anforderungen existieren, den Inhalt eines allgemeinen Registers zu benutzen, das noch nicht von einer vorhergehenden Instruktion geladen wurde. Der in Fig. 8 dargestellte Signalzug 123 zeigt die Zeittakte eines Maschinenzyklus. Dieser ist so, daß wenn eine Instruktion decodiert wird, die Decodierung und die Adressenarithmetik innerhalb eines Maschinenzyklus durchgeführt werden kann, wie es bei 124 dargestellt ist. Fig. 8 zeigt die Decodierung einer "Ladeinstruktion" , bei welcher der Inhalt eines allgemeinen Registers R1 zu modifizieren ist. Die Speicherzugriffszeit ist hier so gewählt, daß die Instruktion bei 125 mit den Daten vollendet wird, die bei 126 in das allgemeine Register R1 eingegeben werden. Der Wert im allgemeinen Register R1 wird bei 127 in die Warteschlangenposition eingegeben, auf die der Eingangszeiger zeigt, der im vorliegenden Beispiel mit Qn bezeichnet ist. Der Tätig-Schalter, der Qn zugeordnet ist, wird bei 128 eingeschaltet. Die Instruktionen können mit einer Geschwindigkeit decodiert werden, bei der in jedem Maschinenzyklus die Decodierung und die Adressenarithmetik bewerkstelligt werden kann. Wie Fig. 8 weiter zeigt, wird die Decodierung blockiert, wenn eine "Speichere-Instruktion" decodiert wird und das Feld X2 mit seinem Inhalt gleich dem in R1 befindlichen Wert ist, wobei diese Decodierung solange blockiert wird, bis die Instruktion aus der Warteschlange Qn entfernt wurde, wie es am Punkt 129 dargestellt ist. Zu diesem Zeitpunkt wird auch der bei 130 gezeigte Konflikt beseitigt und die Decodierung und die Adressenarithmetik für die "Speichere-Instruktion" bei 131 ausgeführt.
PO97?O23 909838/0620
In Fig. 9 ist eine Situation dargestellt, in der eine "Lade mehrfach-Instruktion", die ein R1 und R3 spezifiziert, decodiert wird (bei 132). Qn ist bei 133 als tätig angezeigt, und gemäß dem Stande der Technik bewirkt die Erkennung der "Lade mehrfach-Instruktion" die Blockierung der Decodierung und Adressenarithmetik, obwohl nachfolgende Instruktionen, die zu decodieren sind, X- oder B-Felder benutzen, die nicht gleich R1 - R3 sind. Decodierung und Adressenarithmetik für die nachfolgende Instruktion, die bei 135 erfolgen, können nicht eher durchgeführt werden, als bis die Daten weggenommen bzw. entfernt und bei 134 in R3 eingegeben wurden.
Fig. 10 zeigt die Verhältnisse bei der vorliegenden Erfindung bei der Durchführung einer "Lade mehrfach-Instruktion", die bei 136 decodiert wird, mit dem übertragen des Inhalts der R1- und R3-Felder in die Warteschlangenposition Qn, wie bei 137 gezeigt ist. Die Warteschlangenposition Qn ist, wie zuvor beim Stande der Technik, als tätig angegeben. Die Decodierung und Adressenarithmetik für eine nachfolgende In^ struktion ist jedoch bis zum Punkt 138 gestattet, wenn keines der Felder X2 oder B2 im Bereich des Wertes Ri - R3 ist. Die Decodierung und Adressenarithmetik wird fortgesetzt, und die Instruktionssteuerinformation zur Instruktionswarteschlangenposition Qn + 1 übertragen, wie. es durch den Eingangszeiger angegeben wird. Wenn die Decodierung einer nächsten Instruktion, beispielsweise eine "Speichere-Instruktion", ein X2-FeId erforderlich macht, dessen Inhalt gleich einem der allgemeinen Register im Bereich R1 - R3 ist, dann wird ein Konflikt mit der Warteschlangenposition Qn angezeigt und die Decodierung und Adressenarithmetik für diese Instruktion blockiert bis zu einem Zeitpunkt, der bei 139 dargestellt ist und zeigt, daß die Warteschlangenposition Qn nicht länger tätig ist.
po 977 023 - 909838/0620
Aus dem Zusammenhang der beiden Fign. 9 und 10 ist zu sehen, daß die Decodierung und Adressenbildung für eine Instruktion, die einer "Lade mehrfach-Instruktion" nachfolgt, bis zu einem Zeitpunkt 138 weitergeführt werden kann, wenn die X- und B-Pelder in ihrem Wert nicht gleich dem Wert in den Registern R1 - R3 sind. Bei dem bekannten Stand der Technik dagegen ist die Decodierung der gleichen "Speichere-Instruktion" bis nach der vollständigen Ausführung der "Lade mehrfach-Ins tr uktion" , wie bei 135 in Fig. 9 gezeigt ist, nicht möglich.
P0 977 °23 909838/0628

Claims (5)

  1. 2908.685
    PATENTANSPRÜCHE
    M y Instruktionsdecodierer für Instruktionen mehrerer separater Instruktionsströme, mit einem Instruktionsregister und Decodierer in einer Instruktionsvorverarbeitungseinheit für die Vordecodierung von Instruktionen, mit einer Adressenbildungseinheit, die aus Adresseninformation in der Instruktion und in mehreren mit der Instruktion adressierbaren allgemeinen Registern eine Hauptspeicheradresse erzeugt, mit einer Instruktionswarteschlange, gebildet aus mehreren Registern, denen jeweils ein Tätigschalter zugeordnet ist, welcher eingeschaltet ist, wenn sein Register Instruktionsausführungs-Steuerinformation für eine decodierte Instruktion enthält und mit einer Sperrschaltung für den Instruktionsdecodierer, gekennzeichnet
    durch Torschaltungen (67, 76), die bei Vorliegen einer decodierten Instruktion, die das Einschreiben von Daten in die allgemeinen Register (46) verlangt, die Adressen der allgemeinen Register aus dem Instruktionsregister (35), in dem sich diese Instruktion befindet, in erste (61) und zweite Felder (62) der Instruktionsausführungs-Steuerinformation in das Instruktionswarteschlangenregister (42) übertragen, welches die decodierte Instruktion empfängt,
    durch Vergleichsschaltungen (80 bis 83), von denen jede mit dem ersten und zweiten Feld eines anderen Registers (60, 77 bis 79) der Warteschlange sowie mit einem Adressenfeld des Instruktionsregisters, das ein allgemeines Register bezeichnet, verbunden ist und durch eine Meldeschaltung (97, 98), die mit allen Vergleichsschaltungen verbunden ist, zur Feststellung einer Übereinstimmung einer Adresse eines allgemeinen Registers, das zur Adressenbildung verwendet v/erden soll, mit einer Adresse eines allgemeinen Registers in
    po 977 023 0098^8/0520
    ORiQINAL INSPECTED
    23066SS
    einem ersten oder zweiten Feld eines Warteschlangenregisters und zur Blockierung der weiteren Instruktions-. decodierung und Adressenbildung für die Instruktion, die sich gerade im Instruktionsregister befindet.
  2. 2. Instruktionsdecodierer nach Anspruch 1, dadurch gekennzeichnet,
    ; daß die Torschaltungen (67, 75, 76) mit einer Torsteuer-
    '< schaltung verbunden sind, die von den Ausgangssignalen
    des Instruktionsdecodierers gesteuert werden und die Verbindungsleitungen (68, 69) für die Speicherung erster, ein allgemeines Register identifizierender Daten in ', einem ersten Feld und zweiter, ein allgemeines Register : identifizierender Daten in einem zweiten Feld, durchschalten.
  3. 3. Instruktionsdecodierer nach Anspruch 2, dadurch gekennzeichnet,
    daß die ersten und zweiten ein allgemeines Register identifizierenden Daten gleich sind, wenn eine erste Art von Schreibinstruktionen, die sich auf ein allgemeines Register beziehen, decodiert werden, daß die zweiten ein allgemeines Register identifizierenden Daten einen modifizierten Wert der ersten ein allgemeines Register identifizierenden Daten sind, wenn eine zweite Art von Schreibinstruktionen, die sich auf ein allgemeines Register beziehen, decodiert wird und
    daß die ersten und zweiten ein allgemeines Register identifizierenden Daten aus zwei unterschiedlichen, allgemeine Daten identifizierenden Feldern einer dritten Art von Schreibinstruktion abgeleitet werden, die sich auf ein allgemeines Register bezieht.
    P0 977 °23 9098 38/0620
  4. 4. Instruktionsdecodierer nach Anspruch 1, dadurch gekennzeichnet,
    daß jede Vergleichsschaltung (z. B. 80; Fig. 5) folgende
    Komponenten aufweist:
    eine erste Vergleichslogikschaltung zur Abgabe eines
    Signals, das den relativen Wert der genannten ersten
    und zweiten Felder angibt,
    eine zweite Vergleichslogikschaltung zur Abgabe eines
    ; Signals, das den relativen Wert des genannten ersten
    Feldes und des Adressenfeldes des Instruktionsregisters
    für ein allgemeines Register angibt und . ■
    Logikschaltungen, denen die Ausgangssignale der ersten,
    zweiten und dritten Vergleichslogikschaltung zugeführt : werden, die aus diesen Signalen ein Ausgangssignal er- j zeugt, das einen Konflikt anzeigt, wenn Allzweckregisteradressen aus einer gerade zu verarbeitenden Instruktion ' mit einer in der Vordecodierung befindlichen Instruktion \ übereinstimmen, so daß ein unerlaubter Zugriff der nach- ! folgenden Instruktion auf das von der vorhergehenden
    Instruktion verwendete Allzweckregister vermieden wird.
  5. 5. Instruktionsdecodierer nach einem oder mehreren der
    : Ansprüche 1 bis 4, dadurch gekennzeichnet,
    ! daß die Meldeschaltung (Fig. 6) folgende Komponenten i aufweist: '
    eine Steuerschaltung, die auf die Information im Instruk- · tionsregister und Decodierer anspricht, um ein Steuer- \ signal zu erzeugen, das angibt, daß die Instruktion, die
    gerade decodiert wird, einen Zugriff zu einem allgemeinen Register für eine Adressenbildung benötigt
    : Und :
    eine Decodierungs-Blockierungs-Meldeschaltung, der folgen-+ de Signale zugeführt werden:
    ; das Steuersignal der vorstehend erwähnten Steuerschaltungf das Konfliktsignal einer Vergleichsschaltung und >
    po 977 Ο22Γ 809838/0620
    2306695
    ein Signal vom Tätigschalter des Instruktionswarteschlangenregisters, das derjenigen Vergleichsschaltung zugeordnet ist, die das Konfliktsignal abgibt.
    P0 977 023 909830/0628
DE19792906685 1978-03-16 1979-02-21 Instruktionsdecodierer Granted DE2906685A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US88709378A 1978-03-16 1978-03-16

Publications (2)

Publication Number Publication Date
DE2906685A1 true DE2906685A1 (de) 1979-09-20
DE2906685C2 DE2906685C2 (de) 1988-04-14

Family

ID=25390443

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792906685 Granted DE2906685A1 (de) 1978-03-16 1979-02-21 Instruktionsdecodierer

Country Status (5)

Country Link
JP (1) JPS54127649A (de)
DE (1) DE2906685A1 (de)
FR (1) FR2420168B1 (de)
GB (1) GB2016753A (de)
IT (1) IT1166667B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2561429B1 (fr) * 1984-03-13 1986-09-19 Trt Telecom Radio Electr Dispositif d'adressage pour fournir a une memoire des codes d'adresse
DE3581556D1 (de) * 1984-04-27 1991-03-07 Bull Hn Information Syst Steuerungsgeraet in einem digitalen computer.
DE3650578T2 (de) * 1985-06-17 1997-03-06 Nec Corp Informationsverarbeitungssystem mit einer Steuerschaltung zum Abwarten einer Registererneuerung und einem Aufnahmemittel des zu erneuernden Registers
JPS6227829A (ja) * 1985-07-30 1987-02-05 Fujitsu Ltd 多重ロード命令制御装置
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
US5450555A (en) * 1990-06-29 1995-09-12 Digital Equipment Corporation Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
EP0463965B1 (de) * 1990-06-29 1998-09-09 Digital Equipment Corporation Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
US11457671B2 (en) 2019-12-20 2022-10-04 Maddox Holdings Inc. Maternity undergarment for gentle support and shape enhancement

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3477063A (en) * 1967-10-26 1969-11-04 Ibm Controller for data processing system
JPS5320180B2 (de) * 1972-05-09 1978-06-24
JPS5240946B2 (de) * 1972-09-06 1977-10-15
JPS5041442A (de) * 1973-08-16 1975-04-15
JPS5318931A (en) * 1976-08-06 1978-02-21 Hitachi Ltd Information processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS ERMITTELT *

Also Published As

Publication number Publication date
FR2420168A1 (fr) 1979-10-12
GB2016753A (en) 1979-09-26
FR2420168B1 (fr) 1986-09-26
IT1166667B (it) 1987-05-06
JPS6112289B2 (de) 1986-04-07
GB2016753B (de)
JPS54127649A (en) 1979-10-03
DE2906685C2 (de) 1988-04-14
IT7920567A0 (it) 1979-02-27

Similar Documents

Publication Publication Date Title
DE2846495C2 (de) Zentraleinheit
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2714805C2 (de)
DE3210816C2 (de)
DE3424962C2 (de)
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2542751C2 (de) Datenverarbeitungsanlage
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3638572C2 (de)
DE2835095C2 (de) Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2430127A1 (de) Einrichtung zur steuerung des speicherzugriffs konkurrierender benutzer
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
EP0134831B1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE2906685C2 (de)
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE3105115C2 (de)
DE2759120C2 (de)

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 9/38

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee