DE2702722A1 - Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen - Google Patents
Instruktionsinterpretation in elektronischen datenverarbeitungsanlagenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing 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
für die Instruktionsinterpretation erforderlichen FIOA-Instruktion (FIOA = Fetch Instruction
Operand Address),
die Operandenadressenrechnung erforderlichen Steuerung,
für den Instruktionsabruf und die Instruktionsausführung und
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
ausführbaren Instruktion, stehen verschiedene Ausführunge- !
beispielsweise im "IBM Technical Disclouser Bulletin", Vol. 18, j
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.
!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.
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.
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)
- PATENTANSPRÜCHEEinrichtung 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 AbrufRO 975 021709832/0653der 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 021709832/0653zweite 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 021709832/0653
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)
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)
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 |
-
1976
- 1976-02-06 US US05/655,646 patent/US4028670A/en not_active Expired - Lifetime
- 1976-12-30 FR FR7639829A patent/FR2340583A1/fr active Granted
-
1977
- 1977-01-13 GB GB1324/77A patent/GB1512362A/en not_active Expired
- 1977-01-19 JP JP404677A patent/JPS5295942A/ja active Granted
- 1977-01-24 DE DE2702722A patent/DE2702722C2/de not_active Expired
- 1977-01-27 BR BR7700629A patent/BR7700629A/pt unknown
- 1977-01-28 IT IT19720/77A patent/IT1079557B/it active
Non-Patent Citations (1)
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 |