DE2702722A1 - Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen - Google Patents

Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen

Info

Publication number
DE2702722A1
DE2702722A1 DE19772702722 DE2702722A DE2702722A1 DE 2702722 A1 DE2702722 A1 DE 2702722A1 DE 19772702722 DE19772702722 DE 19772702722 DE 2702722 A DE2702722 A DE 2702722A DE 2702722 A1 DE2702722 A1 DE 2702722A1
Authority
DE
Germany
Prior art keywords
instruction
register
address
directly
operand
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
DE19772702722
Other languages
English (en)
Other versions
DE2702722C2 (de
Inventor
Roy Louis Hoffman
William George Kempke
Frank Gerald Soltis
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 DE2702722A1 publication Critical patent/DE2702722A1/de
Application granted granted Critical
Publication of DE2702722C2 publication Critical patent/DE2702722C2/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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

jo-bd
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: RO 975 021
Instruktionsinterpretation in elektronischen Datenverarbeitungsanlagjen
Die Erfindung betrifft eine Einrichtung in einer elektronischen Datenverarbeitungsanlage zur Verarbeitung nicht direkt ausführbarer Instruktionen. In diesem Zusammenhange bezieht sie sich ausschließlich auf die Interpretationsphase der Instruktionsverarbeitung
Anwendung findet die Erfindung in elektronischen Datenverarbeitungsanlagen, in denen Instruktionssätze verwendet werden, die auch komplexe Instruktionen umfassen, die von der Befehlssteuerung nicht direkt ausführbar sind. Diese nicht direkt ausführbaren Instruktionen werden als interpretative Instruktionen bezeichnet, da sie durch eine Folge von einfachen, von der Steuerung der Datenverarbeitungsanlage direkt ausführbaren Instruktionen verarbeitet werden. In diesem Rahmen dient die Erfindung dazu, bestimmte Folgen von einfachen Instruktionen zu eliminieren, die notwendig sind, um komplexe Instruktionen auszuführen.
Das Konzept, eine einzige Instruktion zu verwenden, um eine Folge von Instruktionen zu ersetzen, die ein Simulator verwenden würde, ; um den Simulator-Instruktionszähler anzusteuern und auf den ! neusten Stand zu bringen, damit auf diese Weise das Adressenformat !der Simulatormaschine auf das Adressenformat der simulierenden !Maschine umgesetzt werden kann, um ferner die nächste Instruktion des simulierten Programms abzurufen, um weiterhin eine für die simulierte Instruktion erforderliche Indexierung vorzunehmen, um darüberhinaus den Adreßteil der simulierten Instruktion in ein
709832/0653
Adressenformat der simulierenden Maschine umzusetzen, um einen Operanden zu erhalten und den silumierten Instruktionoperationscode zu interpretieren, um eine Verzweigung zu einer entsprechenden Instruktionsroutine der simulierenden Maschine vorzunehmen und schließlich um diese Instruktion dann endgültig auszuführen, ist im "IBM Technical Disclosure Bulletin" Vol. 7, No. 4, September 1964 Seite 289 ausführlich beschrieben. Ferner ist eine Rechnersteuerung bekannt, bei der eine nicht direkt ausführbare Instruktion durch eine Folge von direkt ausführbaren Instruktionen ausgeführt wird. Eine derartige Rechnersteuerung ist Im "IBM Technical Disclosure Bulletin", Vol. 14, No. 1, Juni 1971, Seite 298 beschrieben. Hieraus ist das Konzept bekannt, den durch die Schaltkreisstruktur der Datenverarbeitungsanlage direkt ausführbaren Instruktionssatz mit Hilfe der Simulation komplexer Instruktionen durch eine Folge von einfachen direkt ausführbaren Instruktionen zu erweitern. Die Verwendung spezieller Instruktionen und spezieller Schaltkreise für die Interpretation der komplexen oder nicht direkt ausführbaren Instruktionen ist nur in soweit bekannt, als die simulierte Instruktion in ihre wesentlichen Bestandteile in einer Form zerlegt wird, die von einem Simulationsprogramm interpretierbar ist.
Es ist also bisher nur bekannt, Folgen von direkt ausführbaren Instruktionen zu verwenden, um die Operandenadressen für die Operanden der nicht direkt ausführbaren Instruktionen zu errechnen oder gar hierfür spezielle Schaltkreisstrukturen zu verwenden. Dieses bekannte Vorgehen bringt den Nachteil mit sich, daß durch die auszuführenden Folgen von direkt ausführbaren Instruktionen die Verarbeitungsgeschwindigkeit der Datenverarbeitungsanlage in unerwünschter Weise verringert wird. Die Verwendung spezieller Schaltkreisstrukturen erhöht in nachteiliger Weise die Kosten und die Fehlerneigung derartiger Datenverarbeitungsanlagen beträchtlich .
RO 975 021
709832/0653
Es ist daher die Aufgabe der vorliegenden Erfindung, die Berechnung von Operandenadressen für den Abruf von Operanden nicht direkt ausführbarer Instruktionen zu verbessern und dabei die gleiche Schaltkreisstruktur zu verwenden, die auch für die Berechnung der Operandenadressen direkt ausfuhrbarer Instruktionen benutzt wird.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale.
Weitere vorteilhafte Ausgestaltungen, Merkmale und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen .
Durch die vorliegende Erfindung wird also im wesentlichen der Vorteil erzielt, daß die Verarbeitungsgeschwindigkeit einer derartigen elektronischen Datenverarbeitungsanlage bei der Verarbeitung interpretativer Instruktionen nicht in unerwünschter Weise absinkt und außerdem der Schaltkreisaufwand und damit die Fehlerneigung nicht vergrößert wird.
Im folgenden wird die Erfindung anhand eines durch Zeichnungen erläuterten Ausführungsbeispiels näher beschrieben.
Es zeigen:
Fig. 1 das Blockschaltbild eines speicherprogrammierten Datenrechners, in dem eine Befehlsinterpretationseinrichtung gemäß der vorliegenden ! Erfindung verwendbar ist,
Fig. 2 eine schematische Darstellung zur Veranschaulichung des Instruktionsflusses in einem
1 Rechner nach Fig. 1,
Fig. 3 ein Ablaufdiagramm zur Veranschaulichung der RO 975 021
7 0 9 8 3 2 / C) G 5 3
Instrviktlonslnterpretatlon, Flg. 4 eine schematische Darstellung des Formats der
für die Instruktionsinterpretation erforderlichen FIOA-Instruktion (FIOA = Fetch Instruction Operand Address),
Flgn. 5a, 5b ein Blockschaltbild zur Erläuterung der für
die Operandenadressenrechnung erforderlichen Steuerung,
Flg. 6 ein Blockschaltbild der In Flg. 1 dargestellten Folgesteuerlogik, Flg. 7 ein Zeltdlagramm zur Darstellung der Zyklen
für den Instruktionsabruf und die Instruktionsausführung und
Flg. 8 ein weiteres Zeitdiagramm zur Darstellung der Instruktionsabruf- und Ausführungszyklen.
Flg. 1 zeigt einen speicherprogrammierten Rechner, In dem eine \ Instruktlonslnterpretatlonselnrlchtung verwendet wird. Dieser Rechner verfügt über einen Hauptspeicher 10 zur Speicherung , von Instruktionen und Daten in adressierbaren Speicherstellen. ; In dem vorliegenden Beispiel sind jeweils Speicherstellen zu ; 32 Bits adressierbar. Diese 32 Bits bilden Wörter zu je 4 Bytes, wobei jedes Byte wiederum aus 8 Bits besteht. Obwohl mit jedem Speicherzugriff 4 Bytes ausgelesen werden, können die Instruktionen in ihrer Bytelänge jedoch unterschiedlich sein. Der \Hauptspeicher selbst ist konventionell aufgebaut und wird mit ■der Hauptspeicheradressierung 20 angesteuert, die Adressen vom Instruktionsadressenregister (IAR) 30 empfängt.
Eine aus dem Speicher 10 abgerufene Instruktion wird in ein 32 Bit breites Instruktionspufferregister 1 eingegeben. Wenn
RO 975 021
709832/0653
die abgerufene Instruktion jedoch größer als 4 Bytes ist, was durch eine Operation bestimmt wird, die später noch beschrieben wird, dann werden die übrigen Bytes der Instruktion in ein 32 Bit breites Instruktionspufferregister 2 eingegeben. Jede Instruktion hat einen Operationscode (OP-Code), der in den hochstelligen Bits 0-7 der Instruktion enthalten ist. Dieser Operationscode wird in ein D-Register 35 eingegeben, das an den Operationsdecodierer 40 angeschlossen ist, der den Operationscodeteil der Instruktion decodiert, um die durch die Instruktion gegebene Operation zu bestimmen.
Der Operationsdecodierer 40 besteht im wesentlichen aus einer konventionellen, digitalen logischen Schaltung zur Bestimmung der Länge der Instruktion und der Operation die ausgeführt werden soll. Im vorliegenden Ausführungsbeispiel liefert der Operationsdecoder 40 eine 16 Bit Adresse an die Folgesteuerlogik 50, die einen Steuerspeicher enthält, in dem Steuerwörter gespeichert sind, die den eigentlichen Abruf zusätzlicher Instruktionsbytes, falls solche benötigt werden, bewirken und die bestimmen, ob die Instruktion direkt ausführbar ist oder nicht.
Wenn es sich um eine nicht direkt ausführbare Instruktion handelt, dann schaltet die Operation auf eine Unterbrechungsbehandlungsroutine, wie es in Fig. 2 dargestellt ist. In den Fign. 1 und 2 sei die Instruktion 11 in dem Benutzerinstruktionsstrom (Kundenprogramm) eine nicht direkt ausführbare Instruktion. Wenn diese decodiert wird, dann schaltet die Folgesteuerlogik 50 auf eine Unterbrechungssteuerung, die als Block 16 in Fig. 2 dargestellt ist und die nach Durchführung ihrer Operation {auf eine interpretative Operationscode-Simulationsroutine umschaltet, wie es durch den Block 21 in Fig. 2 dargestellt ist.
In Fig. 3 ist die Instruktionsabrufoperation im Block 12 des Ablaufdiagramms dargestellt. Dieser Operation folgt die Ope-
RO 975 021
709832/0653
rationsdecodierungsoperation, die durch den Block 13 bezeichnet ist. Danach wird eine Prüfung (Block 14) durchgeführt, um festzustellen, ob die vorliegende Instruktion direkt ausführbar ist oder nicht. Wenn es sich um eine direkt ausführbare Instruktion handelt, dann erfolgt eine normale Instruktionsverarbeitung, wie Block 15 zeigt. Ist sie eine nicht direkt ausführbare Instruktion, dann schaltet die Operation auf die Unterbrechungssteuerung, wie Block 16 zeigt. Gemäß Block 17 wird danach die Unterbrechungsart bestimmt und nach der Feststellung, daß ein interpretativer Operationscode diese Unterbrechung verursacht hat, wird dieser interpretative Operationscode, wie Block 18 zeigt, decodiert. Die Steuerung wird dann der interpretativen Operationssimulationsroutine 21 übertragen.
Die Routine 21 rettet den Inhalt der benutzten Register (vgl. Block 22), führt eine PIOA-Instruktion aus (Block 23), führt die von dem interpretativen Operationscode bestimmte Operation aus (Block 24), speichert den geretten Inhalt in die verwendeten Register (Block 25) und gibt die Steuerung an den Abruf der Instruktion zurück, die der nicht direkt ausführbaren Instruktion nachfolgt.
i Zur Übergabe der Steuerung an die interpretative Operations- j
Simulationsroutine nach der Feststellung einer nicht direkt '
ausführbaren Instruktion, stehen verschiedene Ausführunge- !
Varianten zur Verfügung. Eine geeignete Ausführungsform ist j
beispielsweise im "IBM Technical Disclouser Bulletin", Vol. 18, j
No. 7, Dezember 1975, Seite 2250 beschrieben. |
Die FIOA-Instruktion 23 ist eine spezielle direkt ausführbare Instruktion zum Abruf der Instruktionsoperandenadresse Sie ist 4 Bytes lang und hat das in Fig. 4 dargestellte Format. Die Bits 0-7 stellen den Operationscode dar, Bits 8-11 und 12-15 ι stellen Adressen zur Adressierung von Allzweckregistern in
RO 975 021
709832/0653
-to
einem Stapel von Arbeitsspeicherregistern (LSR), die den LSR-Speicher 1OO bilden, In dem errechnete Operandenadressen eingegeben werden dar. Die Bits 16-19 geben ein Allzweckregister Im LSR-Speicher 100 an, dessen Inhalt mit den Bits 20 bis 31 der In Flg. 4 dargestellten Instruktion zu kombinieren sind, wobei diese Bits 20-31 eine sogenannte Verlagerungsadresse bilden. Die kombinierte Adresse ist dann die Adresse der nicht direkt ausführbaren Instruktionen im Hauptspeicher 10.
Die PIOA-Instruktion wird dadurch abgerufen, daß der Inhalt des Instruktionsadressenregisters (IAR) 30 in das Hauptspeicheradressenregister 20 übertragen wird. Dieses entspricht dem ersten Schritt in Fig. 8. Die Adresse im Instruktionsadressenregister 30 wurde während der Ausführung der vorhergehenden Instruktion der interpretativen Operationssimulatlonsroutine 21 aufgesetzt. Die 4 Bytes der FIOA-Instruktion 23 werden dann vom Hauptspeicher 10 in das Instruktionspufferregister 1 eingegeben. Dieses entspricht Schritt 2 in Fig. 8. Der Operationscode wird, nachdem die Bits 0-7 in das Register 35 übertragen wurden, von dem Operationsdecodierer 40 decodiert, der nach der Decodierung des Operationscodes eine Adresse an ein Adressenregister 51 in Fig. 6 abgibt, um damit ein Steuerwort im ROS-Steuerspeicher 55 zu adressieren. Dieses ist der dritte Schritt in Fig. 8. Das unter der genannten Adresse aus dem Steuerspeicher 55 ausgelesene Steuerwort wird dann in das Zyklussteuerregister 60 übertragen und von dem Steuerwortdecoder 61 decodiert. Das erste abgerufene Steuerwort wird decodiert, um Signale zu gewinnen, welche die Instruktionslänge angeben. Die ersten beiden hochstelligen Bits werden vom D-Register 35 in Fig. 1 zur niedrigstelligen Seite der arithmetischen und logischen Einheit (ALU) 110 übertragen. In der ALU 110 wird der Wert Eins subtrahiert und das Ergebnis überprüft. Ein Resultat 0 gibt an, daß es sich bei der Instruktion um eine 4 Byte lange Instruktion handelt. Ein negatives Resultat zeigt dagegen an, daß es sich bei der Instruktion um eine
RO 975 021
709832/0653
Zwei-Byte-Instruktion handelt. Ein positives Resultat ist Indikativ dafür, daß die Instruktion länger als 4 Bytes ist. Wenn ein positives Resultat erscheint, dann wird das Instruktionsadressenregister 30 um den Wert Vier erhöht. Dieser Vorgang wird von der Folgesteuerlogik 50 über die arithmetische und logische Einheit 110 und das Ausgangsregister 115 gesteuert. Der neue Wert im Instruktionsadressenregister 30 wird dann zum Adressenregister 20 übertragen, mit dem ein neuer Speicherzugriff vorgenommen wird, um die übrigen Bytes der Instruktion vom Hauptspeicher 10 in das Instruktionspufferregister 2 zu übertragen .
Im Falle der FIOA-Instruktion ist das Resultat der Subtraktion Null. Daher wurde auch vom Hauptspeicher 10 eine vollständige Instruktion in das Instruktionspufferregister 1 übertragen.
Ein weiteres Steuerwort wird vom Steuerspeicher 55 ausgelesen und in das Zyklussteuerregister 60 übertragen. Dieses Steuerwort dient zur Bestimmung, ob die FIOA-Instruktion eine direkt ausführbare Instruktion ist oder nicht. Der Steuerwortdecodierer 61 liefert nach der Decodierung des Steuerwortes Signale, die im wesentlichen angeben, daß die FIOA-Instruktion eine direkt ausführbare Instruktion ist. Diese Signale bewirken dann, daß das Instruktionadressenregister 30 über die arithmetische und logische Einheit 110 und das Register 115 um den Wert Vier erhöht wird. Dieses geschieht im Schritt 4 in Fig. 8. Der erhöhte Wert im Instruktionsadressenregister 30 dient zur Adressierung der nächsten auszuführenden Instruktion im Hauptspeicher.
Jeder Maschinenzyklus besteht, wie Fig. 7 zeigt, aus sechs Takt-
!zeiten T1-T6. Zur Taktzeit T6 wird sowohl der Steuerspeicher 55 angesteuert, als auch das Zyklussteuerregister 60 geladen, um die Steuersignale für den nächsten Maschinenzyklus bereitzustellen.
Der Steuerwortdecoder 61 in Fig. 6 bestimmt die Art des Maschinen-
RO 975 021
709832/0653
zyklus und schaltet die entsprechenden Steuerleitungen mit Hilfe von Torschaltungen durch. Die Steuerleitung 62 vom Steuerwortdecoder 61 gibt, wenn sie aktiv ist, an, daß ein EA-Zyklus (effektiver Adressenzyklus) vorliegt. Diese Steuerleitung 62 wird zu den ODER-Toren 6 3 bis 66 und zu den UND-Toren 67 bis weitergeführt. Die ODER-Tore 6 3 bis 66 übertragen Signale auf die Leitungen 72-7 5 zur Steuerung der Operation der arithmetischen und logischen Einheit 110 (vgl. Fig. 5a). Der Ausgang des UND-Tores 67 ist mit der Leitung 76 verbunden. Das über diese Leitung übertragene Signal dient zur Verriegelung des Ausgangsregisters 115. Die UND-Tore 68 und 69 übertragen ihre Signale auf die Leitungen 77 und 78 für die Durchschaltung des Inhalts der Register 101 und 102 zu dem LSR-Adressenregister 120 (vgl. Fig. 5a und 5b). Der Ausgang des UND-Tores 70 ist schließlich mit dem Einstelleingang der Verriegelungsschaltung 71 verbunden. Der Einstellausgang dieser Verriegelungsschaltung 70 ist mit der Leitung 79 verbunden, deren Signal die Bedeutung eines "LSR-Lesen/Schreiben" hat und das zum LSR-Speicher 100 zur Steuerung des Lesens und Schreibens von Daten in die Registerstufen dieses Speichers verwendet wird.
Die Folgesteuerung 50 liefert auch Signale über die Leitungen 81 bis 85 für das Erzwingen von LSR-Adressenbits auf solche Zustände, die von den Bits im Steuerwort bestimmt werden, das sich im Zyklussteuerregister 60 befindet. Die genannten Leitungen 81 bis 85 werden zu den UND-Toren 86 bis 90 weitergeführt. Das Ausgangssignal des UND-Tores 86 dient zur Vorbereitung der Durchschaltung der UND-Tore 87 bis 90 und es wird auch zu einem Eingang des UND-Tores 125 weitergeleitet, das zur Einstellung der Verriegelungsschaltung 126 für die Bitposition Null des LSR-Adresjsenregisters 120 dient. Die UND-Tore 87 bis 90 speisen ferner Idie UND-Tore 127, 128, 130 und 133 über Gruppen von ODER-Toren 116 bis 119 und 121 bis 124, um die Verriegelungsschaltungen 128, 130 , 132 und 134 für die Bits 1, 2, 3 und 4 des LSR-Adressenregisters 120 einzustellen.
RO 975 021
709832/0653
Die UND-Tore 125, 127, 129, 131 und 133 werden von dem Ausgangssignal des ODER-Tores 91 vorbereitet. Dieses ODER-Tor 91 empfängt über die Leitungen 87 und 88 die Signale "AREG nach LSR ADR" und "BREG nach LSR ADR".
Das LSR-Adressenregister 120 kann auch mit dem Inhalt der Register 101 oder 102 eingestellt werden. Der Inhalt des Registers 101 wird über die UND-Tore 103 bis 106 und die beiden Gruppen von ODER-Toren 116 bis 119 und 121 bis 124 zu dem LSR-Adressenregister 120 übertragen. Die UND-Tore 103 bis 106 werden von dem Ausgangssignal des UND-Tores 93 für eine Durchschaltung vorbereitet, das seine Eingangssignale von dem Inverter 92 und über die Leitung 77 empfängt. Der Inhalt des B-Registers 102 wird über die UND-Tore 111 bis 114 und die Gruppe von ODER-Toren bis 124 zu dem LSR-Adressenregister 120 übertragen. Die genannten UND-Tore 111 bis 114 werden von einem Signal auf der Leitung durchgeschaltet.
Mit dem auf den neusten Wert eingestellten Instruktionsadressenregister 30 bewirkt die Folgesteuerung 50, daß die Bitpositionen > 8 bis 11 (R1) des Instruktionspufferregisters 1 in das A-Register
101 und die Bitpositionen 12 bis 15 (R3) in das C-Register 45 sowie die Bitpositionen 16 bis 19 (B2) zu dem B-Register 102 übertragen werden. Dieses entspricht dem Schritt 5 in Fig. 8.
Die Folgesteuerung 50 bewirkt dann, daß der Inhalt des B-Registers
102 zu dem LSR-Adressenregister 120 in der zuvor erläuterten j !Weise für die Adressierung des LSR-Speichers 100 übertragen | wird. Der Inhalt der adressierten Register im LSR-Speicher wird | j auf die rechte Seite der arithmetischen und logischen Einheit 110 mit Hilfe eines Signals auf der Leitung 74 übertragen, das die UND-Tore 96 durchschaltet. Gleichzeitig werden die Bitpositionen 20 bis 31 des Instruktionspufferregisters 1 zur linken Seite der arithmetischen und logischen Einheit 110 über die UND-Tore 95 übertragen, die von einem Signal auf der Leitung 72 durchgeschaltet werden. Die vier hochstelligen Bitpositionen
R) 975 021
709832/0 b53
auf der linken Seite der arithmetischen und logischen Einheit 110 werden zwangsweise auf Null eingestellt, indem die UND-Tore 94 mit Hilfe eines Signals auf der Leitung 73 betätigt werden. In der arithmetischen und logischen Einheit 110 wird dann eine Additionsoperation durchgeführt, die Ergebnisse werden in dem O-Register 115 verriegelt und dann von dort in das Operandenadressenregister übertragen, das in dem LSR-Speicher 100 untergebracht und mit Hilfe einer Adresse selektiert wird, die das A-Register 101 liefert. Dieses entspricht dem Schritt 6 in Fig. 8.
Das Operandenregister im LSR-Speicher 100 enthält nun die errechnete Adresse der zu interpretierenden Instruktion, die sich im Hauptspeicher 10 befindet. Der Inhalt dieses Operandenadressenregisters wird daher direkt zu dem Hauptspeicheradressenregister zur Adressierung des Hauptspeichers 10 übertragen. Dieses entspricht dem Schritt 7 in Fig. 8.
Die Schritte 2 und 3 in Fig. 8 werden dann wiederholt, um die ersten vier Bytes der interpretativen Instruktion abzurufen. Dieser Vorgang bildet die Schritte 8 und 9 in Fig. 8. Die ersten vier Bytes werden wieder in das Instruktionspufferregister 1 übertragen. Der Operationscode wird in das D-Register 35 geladen, und es wird die Länge der interpretativen Instruktion in der bereits zuvor erläuterten Weise bestimmt. Dieses Mal jedoch ist das Resultat der Subtraktion von Eins von den ersten beiden Bits im Operationscode positiv. Daher ist die interpretative Instruktion länger als vier Bytes.
Der Inhalt des Operandenadressenregisters im LSR-Speicher 100 wird daher zur rechten Seite der arithmetischen und logischen Einheit 110 übertragen, um den Wert 4 erhöht und in das Operan-ίdenadressenregister im LSR-Speicher 100 zurückgeschrieben. Dies ist Schritt 10 in Fig. 8. Dieser nun erhöhte Wert im Operanden-
RO 975 021
7 0 9 8 3 2 / 0 G 5 3
adressenregister wird dann direkt zu dem Hauptspeicheradressenregister 20 übertragen. Dieses entspricht dem Schritt 11 in Fig. 8. Die vier Bytes, welche die letzten beiden Bytes der interpretativen Instruktion enthalten, werden aus dem Hauptspeicher 10 ausgelesen und in das Instruktionspufferregister 2 übertragen. Mit diesem Schritt, der dem Schritt 12 in Fig. 8 entspricht, ist nun der Abruf der gesamten interpretativen Instruktion vom Hauptspeicher 12 vollendet.
Die Bits in den Positionen 16 bis 19 des Instruktionspufferregisters 1 werden dann in das B-Register 102 übertragen. Die erste Operandenadresse der interpretativen Instruktion wird in der bereits im Zusammenhang mit Schritt 6 erläuterten Weise errechnet. Das Resultat wird dann vom O-Register 115 in das Register des LSR-Speichers 100 übertragen, das durch die Adresse bestimmt ist, die vom A-Register 101 in das LSR-Adressenregister 120 übertragen wurde. Dieses entspricht dem Schritt 14 in Fig. 8.
Der Inhalt des A-Registers 101 wird dann zur rechten Seite der arithmetischen und logischen Einheit 110 übertragen. Gleichzeitig wird der Inhalt des C-Registers 45 zur linken Seite der arithmetischen und logischen Einheit übertragen. Danach wird 'eine Vergleichsoperation durchgeführt, indem eine Exklusiv-ODER-Operation in der arithmetischen und logischen Einheit ausgeführt wird. Wenn der Vergleich anzeigt, daß die beiden Werte gleich sind, dann wurden alle Operandenadressen der interpretativen Instruktion errechnet, im anderen Falle müssen noch weitere Operandenadressen berechnet werden. Dieses entspricht dem Schritt 15 in Fig. 8.
{Wenn angenommen wird, daß das Ergebnis der Vergleichsoperation eine Ungleichheit ergibt, dann wird der Inhalt des A-Registers 101 zur rechten Seite der arithmetischen logischen Einheit 110 !übertragen, er wird um den Wert Eins erhöht und es wird das Re-
RO 975 021
709832/0653
Jib
sultat vom O-Register 115 in das A-Register 101 zurückübertragen. Dieses entspricht dem Schritt 16 in Fig. 8.
Danach werden die Schritte 17 bis 19 in Fig. 8 durchgeführt, indem die Schritte 13 bis 15 in Fig. 8 wiederholt werden und indem die Felder des zweiten Operanden hierzu benutzt werden. Die Schleife vom Schritt 16 zurück zum Schritt 13 wird solange wiederholt, bis alle Operandenadressen berechnet sind. Wenn dieses dann der Fall ist, wird die Ausführung fortgesetzt, indem die Funktion des durch den Operationscode der interpretativen Instruktion geforderten Funktion ausgeführt wird.
RO 975 021
709832/0653

Claims (1)

  1. PATENTANSPRÜCHE
    Einrichtung In einer elektronischen Datenverarbeitungsanlage zur Verarbeitung nicht direkt ausführbarer Instruktionen, gekennzeichnet durch eine Einrichtung zur Identifizierung nicht direkt ausführbarer Instruktionen/ j im Instruktionsfluß der elektronischen Datenverarbeitungsanlage, durch eine Einrichtung, die nach der Feststellung einer nicht direkt ausführbaren Instruktion eine vorgegebene direkt ausführbare besondere Instruktion abruft, die Steuerbitfelder für die Durchführung einer Instruktionsabrufphase und einer Operandenadressenrechnung für die identifizierte, nicht direkt ausführbare Instruktion enthält und schließlich durch eine Einrichtung, die auf die Bits in den Steuerbitfeldern anspricht, um : Operandenadressen für die Operanden der nicht direkt j ausführbaren Instruktion nach Maßgabe der besonderen ausführbaren Instruktion zu errechnen und mit Hilfe der ι so errechneten Operandenadressen die Operanden der nicht ; direkt ausführbaren Instruktion aus dem Programmspeicher abzurufen.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung zur Berechnung der Operandenadressen für I direkt ausführbare Instruktionen auch die Operandenadres- ! sen der nicht direkt ausführbaren Instruktionen berechnet.
    Einrichtung nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Steuerbitfelder in der besonderen direkt ausführbaren Instruktion aus einem Basisbitfeld für die Adressierung eines Registers, das Speicheradressenbits enthält und aus einem Verlagerungsbitfeld besteht, dessen Bits mit den genannten Speicheradressenbits kombinierbar sind, um eine Speicheradresse für den Abruf
    RO 975 021
    709832/0653
    der nicht direkt ausführbaren Instruktionen zu erzeugen.
    4. Einrichtung nach einem oder mehreren der Ansprüche 1 bis dadurch gekennzeichnet, daß die Steuerbitfelder in der besonderen, direkt ausführbaren Instruktion für die Berechnung der Operandenadressen ein erstes Bitfeld enthalten, dessen Bits für die Adressierung eines Registers verwendet werden, indem die erste errechnete Operandenadresse für den Abruf des ersten Operanden vom Speicher gespeichert ist, der während der simulierten Ausführung der nicht direkt ausführbaren Instruktion verwendet wird und daß ferner ein zweites Bitfeld für die Adressierung eines Registers enthalten ist, indem die zuletzt berechnete Operandenadresse für den letzten Operanden während der simulierten Ausführung der nicht direkt ausführbaren Instruktion gespeichert ist.
    5. Einrichtung nach Anspruch 4, gekennzeichnet durch eine Einrichtung zur Erhöhung der Werte im ersten Bitfeld, um eine erhöhte Registeradresse für die Adressierung i eines anderen Registers für die Speicherung einer anderen Operandenadresse zu bilden, die zur Adressierung des Instruktionsspeichers verwendet wird, um einen anderen Operanden abzurufen, der während der simulierten Ausführung der nicht direkt ausführbaren Instruktion verwendet wird, wenn die Adresse im zweiten Bitfeld höher ist als die erhöhte Registeradresse.
    6. Einrichtung nach einem oder mehreren der Ansprüche 1-5, wobei die Datenverarbeitungsanlage über einen Speicher zur Speicherung von Instruktionen und Operanden sowie eine zentrale Verarbeitungseinheit verfügt, die erste Register zur Speicherung von Instruktionen, die von dem Speicher abgerufen wurden, einen Decoder zur Bestimmung der Type der durchzuführenden Instruktion und Operation,
    RO 975 021
    709832/0653
    zweite Register zur Aufnahme von Teilen der im ersten Register gespeicherten Instruktion, einen Stapel adressierbarer Register, eine Adressierung für den Registerstapel und eine arithmetische und logische Einheit aufweist, gekennzeichnet durch eine Einrichtung im Instruktionsdecoder zur Identifizierung nicht direkt ausführbarer Instruktionen, die vom Instruktionsspeicher abgerufen \ wurden, durch eine Einrichtung, die nach der Feststellung : einer nicht direkt ausführbaren Instruktion vom Instruktionsspeicher eine besondere, direkt ausführbare Instruktion abruft, die über erste Bitfelder zur Bestimmung der Speicherstelle der festgestellten, nicht direkt ausführbaren Instruktion und zweite Bitfelder zur Bestimmung der Stapelregisteradressen verfügt, zur Auswahl der Stapelregister zum Zwecke der Speicherung errechneter ; Operandenadressen, solcher Operanden, die während der ! simulierten Ausführung der festgestellten, nicht aus- !
    führbaren Instruktion verwendet werden, durch eine Ein- '
    i richtung, die auf Bits im ersten Bitfeld der besonderen direkt ausführbaren Instruktion anspricht, um eine Adresse für den Abruf der festgestellten nicht ausführbaren ! Instruktion vom Instruktionsspeicher zu bilden, durch eine Einrichtung zur Prüfung der Bits im zweiten Bitfeld der besonderen, direkt ausführbaren Instruktion zur Bildung einer Adresse für die Adressierung des Registerstapels unter Bedingungen, die von den Bits in dem zweiten Bitfeld definiert sind und schließlich durch eine Einrichtung zur übertragung der gebildeten Adressen zu dem Registerstapel, so daß mit diesen Adressen Register ausgewählt werden, in denen Operandenadressen gespeichert ; werden, die aus Adressdaten in der abgerufenen, nicht , direkt ausführbaren Instruktion während der simulierten Ausführung errechnet wurden. ;
    RO 975 021
    709832/0653
DE2702722A 1976-02-06 1977-01-24 Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen Expired DE2702722C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/655,646 US4028670A (en) 1976-02-06 1976-02-06 Fetch instruction for operand address calculation

Publications (2)

Publication Number Publication Date
DE2702722A1 true DE2702722A1 (de) 1977-08-11
DE2702722C2 DE2702722C2 (de) 1985-01-17

Family

ID=24629768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2702722A Expired DE2702722C2 (de) 1976-02-06 1977-01-24 Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen

Country Status (7)

Country Link
US (1) US4028670A (de)
JP (1) JPS5295942A (de)
BR (1) BR7700629A (de)
DE (1) DE2702722C2 (de)
FR (1) FR2340583A1 (de)
GB (1) GB1512362A (de)
IT (1) IT1079557B (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4262330A (en) * 1978-10-23 1981-04-14 International Business Machines Corporation I-phase controls for a computer
US4181821A (en) * 1978-10-31 1980-01-01 Bell Telephone Laboratories, Incorporated Multiple template speech recognition system
JPS5950368U (ja) * 1982-09-25 1984-04-03 株式会社野州乗物装作所 サ−クル兼用ベビ−ベツド
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
US5187782A (en) * 1986-02-26 1993-02-16 Hitachi, Ltd. Data processing system
JPS6334641A (ja) * 1986-07-29 1988-02-15 Nec Corp 情報処理装置
JPS6334642A (ja) * 1986-07-29 1988-02-15 Nec Corp 情報処理装置
DE69516817T2 (de) * 1994-11-14 2000-12-07 Nec Corp Peripheriegerät zur Ausführung von Bitfeldbefehlen
JPH08339298A (ja) * 1995-02-02 1996-12-24 Ricoh Co Ltd マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ
US6038659A (en) * 1997-11-12 2000-03-14 International Business Machines Corporation Method for using read-only memory to generate controls for microprocessor
JP2004192021A (ja) * 2002-12-06 2004-07-08 Renesas Technology Corp マイクロプロセッサ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736567A (en) * 1971-09-08 1973-05-29 Bunker Ramo Program sequence control
US3736363A (en) * 1971-11-09 1973-05-29 Humetrics Corp Physiologic function simulator

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JPS5295942A (en) 1977-08-12
BR7700629A (pt) 1977-10-04
GB1512362A (en) 1978-06-01
DE2702722C2 (de) 1985-01-17
FR2340583B1 (de) 1980-03-14
US4028670A (en) 1977-06-07
JPS5620571B2 (de) 1981-05-14
FR2340583A1 (fr) 1977-09-02
IT1079557B (it) 1985-05-13

Similar Documents

Publication Publication Date Title
DE2714805C2 (de)
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE4035405C2 (de)
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE2846495C2 (de) Zentraleinheit
DE3210816C2 (de)
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3424962C2 (de)
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE3043653A1 (de) Datenverarbeitungsanlage
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE3900246C2 (de)

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee