DE3500377A1 - Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens - Google Patents

Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens

Info

Publication number
DE3500377A1
DE3500377A1 DE19853500377 DE3500377A DE3500377A1 DE 3500377 A1 DE3500377 A1 DE 3500377A1 DE 19853500377 DE19853500377 DE 19853500377 DE 3500377 A DE3500377 A DE 3500377A DE 3500377 A1 DE3500377 A1 DE 3500377A1
Authority
DE
Germany
Prior art keywords
command
opcode
register
word
reg
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.)
Withdrawn
Application number
DE19853500377
Other languages
English (en)
Inventor
Gerrit Ary Sunnyvale Calif. Slavenburg
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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
Priority claimed from NL8400129A external-priority patent/NL8400129A/nl
Priority claimed from NL8403628A external-priority patent/NL8403628A/nl
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE3500377A1 publication Critical patent/DE3500377A1/de
Withdrawn 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

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)
  • Devices For Executing Special Programs (AREA)

Description

PHN 10 909 y 20.12.1984
"Verfahren zur Bearbeitung maschinencodierter Befehlswörter und Datenprozessor durch. Durchführung des Verfahrens"
Die Erfindung betrifft ein Verfahren zur Bearbeitung maschinencodierter Befehlswörter mit einem Datenprozessor mit einem Speicher zum Einschreiben der Befehlswörter, die je einen Opcodeteil und zumindest einen Operanden-Deskriporteil enthalten, wobei diese Opcodewörter zu einem endlichen Vorrat gehören, der in eine erste und eine zweite Klasse unterteilt ist, welches Verfahren folgende. Schritte enthält:.
(a) Aufrufen eines von einem Programmzählerstand angezeigten ersten Befehlswortes unter der Steuerung des Datenprozessors;
(b) Decodierung des Opcodeteils aus einem ersten Befehlswort und Feststellung der Klasse, zu der der Opcodeteil des ersten Befehlswortes gehört;
(el) Durchführung der vom Befehlswort angegebenen Operationen für Befehlswörter mit einem zur ersten Klasse gehörenden Opcodeteil;
(c2) Durchführung folgender Schritte für Befehlswörter mit einem zur zweiten Klasse gehörenden Opcodeteil: (c2-i) Speicherung des momentanen Programmzählerstandes in ein dazu belegtes Ergänzungs-Programmzählerregister;
(c2-2) Erzeugung einer Speicheradresse auf der Basis des Opcodeteils aus dem ersten Befehlswort, wobei an dieser Speicheradresse ein zweites Befehlswort angeordnet ist, das den Anfangsbefehl einer Folge von Befehlswörtern ist, die die Bedeutung des ersten Befehlswortes bestimmen;
(c2-3)Einstellung des momentanen Programmzählerstandes auf die Speicheradresse;
(c2-4)Bearbeitung der Befehlsfolge;
(c2-5!Einstellung des momentanen Programmzählerstandes auf einen von dem im Ergänzungs-Programmzählerregister vorhandenen Programmzählerstand bestimmten Wert.
PHN 10 909 /f 20.12.1984
Ein derartiges Verfahren ist aus der Veröffentlichung "Instruction set extension", von R.L. Bains, R.L. Hoffman, G.R. Mitchell und F.G. Soltis bekannt, die in der I.B.M. Technical Disclosure Bulletin, Vol.18, Nr. 7, vom Dezember 1975, S. 2250 bis 2252, veröffentlicht wurde. Beim bekannten Verfahren sind die maschinencodierten Befehlswörter das Ergebnis von Ubersetzungsvorgängen, die auf einem von einem Programmierer zugeführten Programmtext angewandt sind. Der Programmtext ist in einer bekannten Computersprache geschrieben, z.B. in PASCAL oder FORTRAN. Der Compiler und der Assembler des Datenprozessors (auch mit Computeranlage bezeichnet) übersetzen den Programmtext in ein System maschinenc.odierter Befehlswörter, die dann während der Bearbeitung des Programmtextes in den Speicher eingeschrieben werden. Ein Befehlswort hat beispielsweise eine Breite von 32 Bits. Es sind davon beispielsweise 8 Bits für den Opcodeteil und 20 Bits für den Operanden-Deskriptorteil bestimmt. Bei einem 8 Bits breiten Opcodeteil enthält ein Vorrat von Opcodes höchstens (2 =) 256 verschiedene Opcodes. Dieser Vorrat ist beim bekannten Verfahren in zwei Klassen unterteilt, d.h. in die gültigen (i. Klasse) und die ungültigen (2. Klasse) Opcodes. Der Inhalt des Opcodeteils ist für die Art der durchzuführenden Operation(en) für die Durchführung des Befehls bestimmend. So kann bei-
^5 spielsweise ein Opcode eine Registerladeoperation oder einen Sprung nach einem Unterprogramm angeben. Die Decodierung dient dazu, den Opcodeteil in Steuerinformation für die Computeranlage umzusetzen. Die Reihenfolge, in der die Befehlswörter vom Datenprozessor aus dem Speicher aufgerufen und bearbeitet werden, wird mit dem Programmzählerstand angegeben.
Beim bekannten Verfahren haben die Opcodeteile
aus dem Vorrat eine feste Bedeutung, die bei der Decodierung erkannt wird. Ein Opcodeteil mit fester Bedeutung wird nach der Decodierung auf die bekannte Weise durchgeführt. Abhängig von der Kapazität der Computeranlage enthält der Vorrat von Opcodes viel oder wenig verschiedene Elemente. Der Anlagenprogrammierer muss mit dem gegebenen Opcode-
PHN 10 909 -3- 20.12.1984
vorrat und mit der festen Bedeutung arbeiten, welche die Computeranlage bei der Decodierung daran gibt. Das bekannte Verfahren gibt eine Lösung für die Bearbeitung von Befehlswörtern mit einem ungültigen Opcode (2. Klasse). Venn ein ungültiger Opcode decodiert wird, erfolgt die Speicherung des momentanen Programmzählerstandes in ein Ergänzungs-Programmzählerregister und wird auf Basis des Opcodeteils aus dem ersten Befehlswort eine Speicheradresse gebildet. Diese Speicheradresse wird u.a. dadurch gebildet, dass in einem Schieberegister die bedeutsamsten Bits gleich 0 gemacht werden und für die unbedeutsamsten Bits der Speicheradresse der Opcode benutzt wird. An dieser Speicheradresse ist ein zweites Befehlswort angeordnet, das der Anfangsbefehl einer Folge von Befehlswörtern ist, die die Bedeutung des ersten Befehlswortes bestimmen. Auf diese Veise wird ein Befehlswort mit einem ungültigen Opcodeteil in einen durchführbaren Befehl übersetzt.
Ein Nachteil des bekannten Verfahrens ist, dass bei Befehlswörtern mit einem Opcodeteil, der zur zweiten Klasse gehört (ungültiger Opcode), bei der Übersetzung in einen durchführbaren Befehl und bei seiner Durchführung der Operanden-Diskriptorteil des betreffenden Befehlswortes nicht berücksichtigt wird. Hierdurch wird der Operanden-Deskriptorteil eines derartigen Befehlswortes auf unwirtschaftliche Weise ausgenutzt, und also auch die Computeranlage .
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Bearbeitung maschinencodierter Befehlswörter zu verwirklichen, bei dem der Operanden-Deskriptorteil des Befehlswortes mit einem zur zweiten Klasse gehörenden Opcodeteil für die Codierung von Operanden-Deskriptoren zur Verfügung steht und auf diese Veise den Anlagenprogrammierer die Freiheit für die Wahl der Bedeutung der Opcodeteile der zweiten Klasse gegeben wird. Weiter liegt der Erfindung die Aufgabe zugrunde, ein Verfahren zu schaffen, bei dem auch für höhere Programmiersprachen eine grössere Wirksamkeit erreicht wird.
Diese Aufgabe wird mit einem erfindungsgemässen
PHN 10 909 >r 20.12.1984
Verfahren dadurch gelbst, dass bei der Folge von Befehlswörtern von zumindest einem dritten Befehlswort der Operanden-Deskriptorteil aus dem ersten Befehlswort in ein erstes Indexregister geladen wird. Das Laden des Operanden-Deskriptorteils in ein erstes Indexregister ermöglicht die Verarbeitung des Operanden-Deskriptors und stellt also die Operanden-Deskriptoren für Codierung zur Verfügung. Veiter wird durch die Verwendung eines Indexregisters die bestehende Hardware für die Decodierung des Operanden-Deskriptors benutzt. Der Anlagenprogrammierer hat jetzt die Möglichkeit zur Speicherung zu verarbeitender Information in den Deskriptorteil, wobei diese Information von der erwähnten Folge von Befehlswörtern verarbeitet wird.
In einem anderen Ausführungsbeispiel ist ein Verfahren nach der Erfindung dadurch gekennzeichnet, dass für Befehlswörter mit einem zur zweiten Klasse gehörenden Opcodeteil zumindest der Operanden-Deskriptorteil des ersten Befehlswortes in ein dazu belegtes zweites Indexregister vor dem Einstellen des Programmzählerstandes auf die Speicheradresse geladen wird. Das Laden des Operanden-Deskriptors in ein zweites Indexregister vor der Erzeugung der Speicheradresse bewirkt, dass Programmbefehle aus der Folge von Befehlswörtern erspart werden können.
Eine erste bevorzugte Ausführungsform eines er-
^5 findungsgemässen Verfahrens ist dadurch gekennzeichnet, dass bei der Durchführung des dritten Befehlswortes der Inhalt des Ergänzungs-Programmzählerregisters zum Orten des Operanden-Deskriptorteils des ersten Befehlswortes im Speicher benutzt wird. Da im Ergänzungs-Programmzählerregister der momentane Programmzählerstand gespeichert ist, kann auf diese Veise rasch und einfach geortet werden, an welcher Stelle im Speicher sich der Operanden-Deskriptor des ersten Befehlswortes befindet. Denn der Operanden-Deskriptor befindet sich im Operanden-Deskriptorteil dieses
^ ersten Befehlswortes, das der Programmzählerstand beim Aufrufen im Schritt (a) des erfindungsgemässen Verfahrens anzeigte.
Eine zweite bevorzugte Ausführungsform eines
PHN 10 909 Υ ' " 20.12.1984
- S'
erfindungsgemässen Verfahrens ist dadurch gekennzeichnet, dass bei der Folge von Befehlswörtern zumindest ein viertes Befehlswort den Operanden-Deskriptorteil aus dem ersten Befehlswort verarbeitet. Der Operanden-Deskriptor des ersten Befehlswortes, der in einem Indexregister gespeichert ist, wird mit Hilfe des vierten Befehlswortes verarbeitet. Der Deskriptorteil eines Befehlswortes mit zur zweiten Klasse gehörendem Opcodeteil wird so für die Codierung von Operanden-Deskriptoren benutzt.
Eine weitere bevorzugte Ausführungsform eines erfindungsgemässen Verfahrens ist dadurch gekanneich.net, dass die Erzeugung der Speicheradresse für das zweite Befehlswort in folgenden Unterschritten erfolgt:
(1) die Bildung einer Tabellenadresse aus einer Speicher-
tabelle durch die Addierung eines Wertes beim Opcodeteil des ersten Befehlswortes, wobei dieser Wert in ein dazu belegtes Operationserweiterungsregister voreingeschrieben ist;
(2) die Adressierung eines auf der gebildeten Tabellenadresse angeordneten Speicherwortes;
(3) das Aufrufen des Speicherwortes auf der erwähnten Tabellenadresse, das die Speicheradresse bildet.
Die Verwendung einer Speichertabelle ermöglicht eine Bestandsaufnahme der spezialisierten Befehlsvorräte, mit denen Befehlswörter bearbeitet werden, die einen zur zweiten Klasse gehörenden Opcodeteil enthalten.
Die Erfindung bezieht sich weiter auf einen Datenprozessor mit einem Speicher für maschinencodierte Befehlswörter, die je einen Opcodeteil und zumindest einen Operanden-Deskriptorteil enthalten, wobei diese Opcodeteile zu einem endlichen Vorrat gehören, der in eine erste und in eine zweite Klasse unterteilt ist, der Datenprozessor, weiter ein Programmzählerregister, einen Adressgeber und einen Opcodedecoder enthält, der mit ersten Mitteln zum getrennten Erkennen von Opcodeteilen der ersten und zweiten Klasse und mit zweiten Mitteln zum Erzeugen eines Steuersignals unter der Steuerung eines erkannten Opcodewortes der zweiten Klasse versehen ist, der Datenprozessor weiter
ORJQINAL INSPECTED
PHN 10 909 tf 20.12.1984
ein Ergänzungs-Programmzählerregister und Übertragungsmittel enthält, die einen ersten Steuereingang zum Empfangen des Steuersignals haben und weiter zum Übertragen des Inhalts des Programmzählerregisters auf das Ergänzungs-Programm-Zählerregister unter der Steuerung eines empfangenen Steuersignals versehen sind, und der Adressgeber zum Erzeugen einer Speicheradresse unter der Steuerung des Steuersignals vorgesehen ist, wobei auf dieser Speicheradresse ein Anfangsbefehlswort einer Folge von Befehlswörtern zur Bearbeitung eines Deskriptorteils angeordnet ist.
Ein derartiger Datenprozessor ist auch aus der bereits erwähnten Veröffentlichung "Instruction set extension" bekannt.
Ein erfindungsgemässer Datenprozessor ist dadurch gekennzeichnet, dass der Datenprozessor mit einem Operationserweiterungsregister vorgesehen ist, das einen zweiten Steuereingang zum Empfangen des Steuersignals und einen Ausgang in Verbindung mit dem Adressgeber enthält. Hierdurch lässt sich auf einfache Weise der Adressgeber verwirklichen, wenn das Operationserweiterungsregister einen Adress- oder einen Adressteilvorrat enthält.
Es ist vorteilhaft, dass im Datenprozessor .weiter ein zweites Indexregister vorgesehen ist, das einen dritten Steuereingang zum Empfangen des Steuersignals und einen Dateneingang in Verbindung mit dem Speicher zum Empfangen des Operanden-Deskriptorteils eines Befehlswortes unter der Steuerung des Steuersignals enthält. Hierdurch können ausserdem Programmbefehle erspart werden.
Ausführungsbeispiele der Erfindung werden nachstehend an Hand der Zeichnung näher erläutert. Es zeigen
Fig. 1 ein erstes Ausführungsbeispiel einer Registerarchitektur einer erfindungsgemässen Computeranlage,
Fig. 1a das erfindungsgemässe Verfahren schematisch an Hand eines Ablaufdiagramms, Fig. 2 ein erstes Computerprogramm, mit dem die erste Ausführungsform des erfindungsgemässen Verfahrens veranschaulicht wird;
Fig. 3 (i bis Vl) das Ergebnis einer Operation
PHN 10 909 7 20.12.1984
des Coinputerprogramms nach Fig. 2,
Fig. h (a bis f) einige verschiedene Opcodes und ihre zugeordnete Befehlsworteinteilung, und Fig. 5 (a bis f) einige verschiedene Deskriptorteile in einem Befehlswort,
Fig. 6 ein zweites Ausführungsbeispiel einer Registerarchitektur einer erfindungsgemässen Computeranlage,
Fig. 7 ein zweites Computerprogramm, mit dem eine zweite Ausführungsform des erfindungsgemässen Verfahrens veranschaulicht wird,
Fig. 8 (i bis V) das Ergebnis einer Operation des Computerprogramms nach Fig. 7·
Ein Datenverarbeitungssystem oder ein Computer, der einen Auftrag ausführen muss, macht dies mittels eines Programms, das sich zum Verarbeiten dieses Auftrages eignet. Dieses Programm ist in einer bekannten Programmiersprache geschrieben, wie z.B. PASCAL, FORTRAN oder BASIC. Diese Programmiersprachen sind jedoch Benutzersprachen, die ein Computer zunächst in maschinencodierte Befehle übersetzen muss, um das Programm ausführen zu können. Diese Übersetzung aus der Benutzersprache in maschinencodierte Befehle erfolgt meist in zwei Schritten. Ein erster Schritt enthält Übersetzung aus der Benutzersprache in eine Assemblersprache und ein zweiter Schritt enthält die Übersetzung aus der Assemblersprache in Maschinenbefehle. Der erste Schritt wird von einem Compiler und der zweite Schritt von einem Assembler behandelt. Der Compiler und der Assembler sind beide Übersetzungsprogramme, die Teile der Computeranlage sind. Der Anlagenprogrammierer hat bei der Herstellung des Compilers und des Assemblers die Architektur des Computers berücksichtigt (CA = Computer Architektur, d.h. die Ansicht der Maschine von der Sicht des Anlagenprogrammierers aus) .
In Computer Architektur wird u.a. zwischen zwei Architekturtypen unterschieden, d.h. zwischen HLL (High Level Language = höhere Programmiersprache) und RISC-Architektur (Reduced Instruktion Set Computers = Computer mit reduziertem Befehlsvorrat). HLL-Architektur bedeutet
PHN 10 909 X 20.12.1984
im wesentlichen, dass die Computer Hardware mit einem Befehlsvorrat ausgerüstet wird, der sich für die Verarbeitung höherer Sprachen eignet. Hierdurch verkleinert sich der Abstand zwischen Benutzersprache und Maschinenbefehlen, δ RISC-Arhcitektur bedeutet im wesentlichen, dass die Maschinenbefehle derart einfach sind, dass die Hardware Höchstleistungen bieten kann. Jedoch ist bei der RISC-Architektur die Übersetzung eines Benutzerprogramms wesentlich schwieriger .
Die Vorteile dieser beiden erwähnten Typen von Computerarchitektur werden nunmehr in einer Datenverarbeitungsanlage nach der Erfindung kombiniert. Eine derartige Datenverarbeitungsanlage enthält faktisch eine einfache Maschine, deren Befehlsvorrat erweiterbar gemacht wird, um Operationen vom HLL-Typ wirksam bearbeiten zu können.
Eine erfindungsgemässe Computeranlage enthält eine zentrale Verarbeitungseinheit (CPU), beispielsweise mit einer Registerarchitektur. In Fig. 1 ist ein Ausführungsbeispiel einer Registerarchitektur einer erfindungsgemässen Computeranlage dargestellt. Die Register Rn bis R„ sowie die Register ZEROR (8), ONER (9), PCR (Program Counter Register = Programmzählerregister) (b), SPR (Stack Pointer Register = Stapelzeigerregister) (D), CCR (Condition Code Register = Konditionscoderegister) (e) und SER (Sign Extend Register = Zeichenerweiterungsregister) (F) sind die üblichsten Indexregister eines Computers mit einer herkömmlichen Registerarchitektur. Die Register IPCR (interpreter Program Counter Register = Interpreterprogrammzählerregister (c) und OPER (Operation Extend Register = Operationserweiterungsregister) (A) bilden einen Zusatz zur CPU, mit dem eine Registerarchitektur für Anwendung der Erfindung erweitert wird, wobei jedoch zu bemerken sei, dass das Register OPER wahlfrei ist. In der einfachsten Ausführungsform kann man mit dem Register IPCR auskommen. Die Verwendung des Registers IPCR von der Computeranlage bei der Bearbeitung eines Programms steuert der Opcodeteil eines zu bearbeitenden Befehlswortes (Kurzbezeichnung OPCODE = Operation code). In Fig. 6 ist ein zweites Ausführungsbeispiel
PHN 10 909 / 20.12.
einer Registerarchitektur einer erfindungsgemässen Computeranlage dargestellt. Die Register RQ bis R_ sowie die Register OPER und IPCR sind gleich, den gleichbezeichneten Registern aus dem ersten Ausftihrungsbeispiel nach Fig. Die Register (8) und (9) haben jetzt die Bezeichnung Rg und R9. Die Register PCR (D), SPR (E) und CCR (f) erfüllen dieselbe Aufgabe wie die gleichbezeichneten Register des ersten Ausführungsbeispiels, haben jedoch jetzt eine andere Rangordnung im System. Neu für das zweite Ausführungsbeispiel ist das Register VIR (B), dessen Bedeutung weiter in der Beschreibung näher erläutert wird.
In dieser Computeranlage werden die OPCODES in zwei Klassen unterteilt: eine erste Klasse mit normalen Opcodes und eine zweite Klasse mit virtuellen Opcodes.
Der Opcode-Decoder der Computeranlage ist derart verwirklicht, dass er am Bitmuster der Opcodes erkennt, zu welcher Klasse sie gehören. So können beispielsweise alle Opcodes, die als bedeutsamstes Bit (MSB) den Wert "0" haben, als normale Opcodes erkannt werden und alle Opcodes, die als MSB den Wert " 1 M haben, als virtuelle Opcodes erkannt werden. Hierdurch entsteht eine Verteilung, bei der jede Klasse gleich viel Opcedes enthält. Es sei dazu jedoch bemerkt, dass auch jede andere Verteilung möglich ist. Zu einer bestimmten Verteilung gehört dann jeweils eine bestimmte Verwirklichung des Opcodedecoders. Es wird klar sein, dass jede Klasse zumindest einen Opcode enthalten muss.
Die Art, auf die Befehle mit normalem oder virtuellem Opcode von einer erfindungsgemässen Computeranlage bearbeitet werden, ist schematisch an Hand des Ablaufdiagramms der Fig. 1a veranschaulicht. Nach dem Lesen (50) eines Befehlswortes wird untersucht (51)» ob der Opcode zur Klasse der virtuellen oder der normalen Opcodes gehört.
Wenn der Opcodedecoder einen zur Klasse normaler Opcodes gehörenden Opcode decodiert hat (N), wird der zugehörige Befehl auf die bekannte Weise bearbeitet (5^). Wenn jedoch der Opcodedecoder einen zur Klasse der virtuellen Opcodes gehörenden Opcode decodiert hat (ν), werden jeweils ungeachtet des Inhalts des zugeordneten Befehls
PHN 10 909 y6 20.12.1984
nachstehende Bearbeitungen durchgeführt:
reg [iPCR] : = reg [pcr] (53)
reg [^PCRj : = mem [reg £0PEr3 + Opcode] (5*0 Hierbei bedeutet die Bearbeitung reg (jEPCRj : reg J-PCRJ , dass der Inhalt des Registers PCR in das Register IPCR überschrieben wird (: = bedeutet in der Programmiersprache "wird"), mit anderen Worten die Adresse des Befehls, den der Programmzähler anzeigt (momentaner Programmzählerstand), wird in das Register IPCR geladen. Die Bearbeitung TCgTPCRJ:
W = mem [reg ^OPER"! + Opcode"] bedeutet, dass in das Register PCR das Speicherwort (in diesem Fall ein Adresswort) geladen wird, das an der Speichersteile mit der Adresse reg [OPER"") + Opcode gespeichert ist. Die Adresse reg IjOPERj + Opcode wird dadurch zusammengesetzt, dass der Inhalt des Registers OPER zum Wert addiert wird, wie er im Opcodeteil des Befehlswortes gegeben ist. Diese Bearbeitung reg [_PCRJ : = mem freg POPERj + Opcode! bedeutet also, dass in das Register PCR eine neue Adresse für den Programmzähler geladen wird. Es ist auch möglich, diese neue Adresse durch andere Bearbeitungen als die Bearbeitung reg I PCRj: = mem freg [OPER"] + Opcode J[ zu erzeugen. Mögliche andere Bearbeitungen sind z.B.:
a) Reg fpCR^ : = reg ToPER^J + Opcode.
Hierbei wird die neue Adresse direkt bestimmt, ohne dass ein Lesevorgang aus dem Speicher erfolgt;
b) Reg PpCR"^ : = Opcode + feste Adresse.
Diese Bearbeitung erfolgt, wenn, wie bereits erwähnt, das Register OPER nicht benutzt wird. Die neue Adresse wird hier durch Addierung einer festen Adresse beim Opcodeteil des Befehlswortes zusammengesetzt.
c) Reg fpCR~~\ : = mem Γ Opcode + feste Adresse^
Auch bei dieser Bearbeitung wird das OPER-Register nicht benutzt. Dagegen enthält diese Bearbeitung immerhin eine Speicherleseoperation. Auf dieser neuen Adresse für den Programmzähler befindet sich jetzt ein erster Befehl einer Folge von Befehlen, die die Bedeutung des Befehlswortes mit virtuellem Opcode bewerten (55)· Diese Befehlsfolge wird immer von einem letzten Befehl aus dem Programm abge-
PHN 10 909 yf 20.12.198**
schlossen, der dem Befehl mit virtuellem Opcode direkt folgt, der die Verarbeitung der erwähnten Folge durchführt. Ein derartiger letzter Befehl hat beispielsweise die Form
reg £pCr3 : = reg flPClQ (5&)
Hierbei wird dann der Programmzählerstand erneut auf den Wert eingestellt, den er beim Beginn der Durchführung des Befehls mit virtuellem Opcodeteil hatte.
Der Nutzeffekt eines virtuellen Opcodes besteht darin, dass bei jedem virtuellen Opcode ein Code-Abschnitt durchgeführt wird. In diesem Code-Abschnitt "der Interpreter" des virtuellen Opcodes) ist es möglich, sich auf wirksame Weise auf den (die) Argumentdeskriptor(en) des virtuellen Opcodes zu beziehen, wenn IPCR als Indexregister benutzt wird.
Hat die Computeranlage eine Registerarchitektur, wie in Fig. 6 dargestellt, wird bei der Decodierung eines zur Klasse der virtuellen Opcodes gehörenden Opcode neben den Bearbeitungen (53) und (5^0 eine weitere Bearbeitung (150) durchgeführt:
reg (jVIR"3 : = [_!.»."]
Hierbei wird der Inhalt zumindest des Stellendeskriptorteils des Befehlsregisters LI.R."^der Computeranlage in das Register VIR übergeschrieben.
Ein Befehl mit einem virtuellen Opcode unterscheidet sich im wesentlichen von einem Befehl JUMP SUBROUTINE, mit einem normalen Opcode dadurch, dass bei der Bearbeitung des Unterprogramms der Programmzähler in den Speicher zwischengespeichert wird. Einerseits nimmt der dafür benötigte Speicherschreibvorgang zusätzliche Bearbeitungszeit in Anspruch, zum anderen ist es dadurch nicht möglich, (ohne zusätzliche Bearbeitungszeit) den alten Programmzählerstand als Indexregister zum Aufrufen von Argumentdeskriptor (en) zu verwenden.
In Fig. 2 ist ein Computerprogramm dargestellt, mit dem ein erstes Ausführungsbeispiel der Wirkung einer erfindungsgemässen Computeranlage näher erläutert wird. Das Programm ist nur als Beispiel herangezogen. Es wird klar sein, dass sich eine erfindungsgemässe Computeranlage
PHN 10 909 ^ 20.12.1984
nicht auf die Durchführung von Programmen dieser Art allein beschrankt.
In Fig. 2 lassen sich fünf Spalten unterscheiden. In der ersten Spalte sind die Speicheradressen der Befehle angegeben. Die zweite Spalte enthält die in Maschinencode geschriebenen Befehle (Hexadezimaldarstellung). Die dritte und vierte Spalten enthalten die in Assemblersprache geschriebenen Befehle und die fünfte Spalte enthält den Kommentar zum Befehl.
Vor der weiteren Erläuterung an Hand der Fig. 2 werden an Hand der Fig. k und 5 zunächst einige allgemeine Aspekte der Befehle beschrieben, um'das Lesen des Programms und die Verarbeitung des Programms zu erläutern. Fig. 4(a) bis (f) zeigen Opcodes und ihre zugeordnete Befehlsworteinteilung. Ein Befehl gemäss der Darstellung im Maschinencode (Fig. k oder zweite Spalte Fig. 2) enthält 32 (4 χ 8) Bits. Die Bits 31 bis 2k enthalten immer den Opcode. Da der Opcodeteil 8 Bits enthält, sind 2 = 2$6 verschiedene Opcodes möglich. Im Beispiel nach Fig. 2 gehören die Opcodes OO bis F8 zur Klasse der virtuellen Opcodes und die Opcodes F9 bis FF zur Klasse der normalen Opcodes. Die Einteilung der übrigen Bits (θ bis 23) ist von der Art und der Klasse abhängig, zu denen der Opcode gehört.
In Fig. h(a) ist das Muster eines Befehls ersichtlieh, der als Opcode einen der normalen Opcodes LOADADRESS (F9), LOADVALUE (FA) oder STORE (FB) enthält. Bei diesem Befehl enthalten die Bits 20 bis 23 die Nummer des Registers (RUN), auf der sich die vom Opcode angegebene Operation bezieht, und die Bits 0 bis 19 enthalten den Stellendeskriptor (LCDSC). Der Inhalt dieses Stellendeskriptors wird weiter unten näher erläutert.
In Fig. h(h) ist das Muster eines Befehls ersichtlich, der als Opcode den normalen Opcode MONADIC (FC) hat. Bei diesem Befehl enthalten die Bits 20 bis 23 die Nummer
^5 des Registers (RGN), auf das sich die vom Opcode angegebene Operation bezieht, und die Bits 16 bis 19 geben die Art der MONADIC-Operation an (MNPC) (Erhöhung, Verminderung usw.) Die übrigen Bits enthalten keine für diese Erfindung relevante
PHN 10 909 y2f 20.12.1984
Information.
In Fig. 4(c) ist das Muster eines Befehls ersichtlich, der als Opcode den normalen Opcode DYADIC (FC) hat. Bei diesem Befehl enthalten die Bits 20 bis 23 die Nummer des ersten Registers (RGN), und die Bits 12 bis I5 die Nummer des zweiten Registers (ROT), auf das sich die vom Opcode angegebene Operation bezieht. Die Bits 16 bis geben die Art der DIADIC-Operation (DPC) an (Addieren, Subtrahieren, logische UND usw.). Die übrigen Bits enthalten keine für diese Erfindung relevante Information.
In Fig. 4(d) bzw. 4(e) ist das Muster eines Befehls ersichtlich, der als Opcode den normalen Opcode JUMP SUBROUTINE (FE) bzw. JUMP CONDITIONAL (FF) hat, wobei für den Befehl mit dem Opcode FF von den Bits 20 bis 23 die Bedingung (UND) angegeben wird. Die Bits O bis I9 enthalten jeweils-den Stellendeskriptor. (LCDSC). Venn jetzt die Computeranalge den Opcode "FE" decodiert, werden folgende Operationen durchgeführt:
mem [reg £sPKQ] : = reg QpCR]
reg £sPr) : = reg CsprI + 1 reg £PCR] : = effa (LCDSC),
wobei "effa" bedeutet "wirksame Adresse". Bei der Decodierung des Opcodes "FF" wird beim Erfüllen der Bedingung (CND) folgende Operation durchgeführt:
reg [pCR"} : effa (LCDSC)
(Der Programmzählerstand (Ref (^PCR} ) wird nicht festgehalten, da bei einem JUMP CONDITIONAL keine Rückkehr erfolgt.
Aus Fig. 4(f) ist das Muster eines Befehls mit einem virtuellen Opcode ersichtlich (OO ... F8). Die Bits O bis 23 werden hierabhängig vom Bewertungsprogramm verwendet. Veiter unten wird dies näher erläutert.
Der Stellendeskriptor beschreibt die zum Befehlsoperanden gehörende Adresse. Die Computeranlage ist mit Hardware-Mitteln zum Bewerten dieses Stellendeskriptors ausgerüstet. In Fig. 5 sind einige Beispiele von Stellendeskriptorteilen in einem Befehlswort dargestellt. Für jeden Stellendeskriptor geben die Bits 16 bis 19 die Art des Deskriptors an, die nachstehend für jeden der Teile
PHN 10 909 IX 20.12.1984
(a) bis (f) nach Fig. 5 beschrieben wird.
(a) In Fig. 5(a) ist das Wort "0000" für eine Registeroperation hinsichtlich des Registers von den Bits 12 bis 15 gegeben. Der Inhalt der Bits 0 bis 11 ist für die Beschreibung der Erfindung nicht relevant.
(b) In Fig. 5(b) gibt das Wort "0001" eine normale Indexoperation an. Hiervon ist die resultierende Adresse a + Reg fiO » "wobei a die von den Bits 0 bis 11 gegebene Zahl und η die von den Bits 12 bis 15 gegebene Registernummer darstellt.
(c) In Fig. 5(c) gibt das Wort "0010" eine Indexoperation an, die von einer Anpassungsoperation voreingestellt ist (pre-adjust index). Eine derartige Operation wird in zwei Schritten durchgeführt:
1S die durch a + Reg £n3
gegebene Adresse
und auch
Reg [_n~] : = a + Reg \_ n^ (a und η haben dieselbe Bedeutung wie oben angegeben).
(d) In Fig. 5(d) gibt das Wort "0011" eine Indexoperation an, der eine Anpassungsoperation folgt (post-adjust index). Eine derartige Operation wird ebenfalls in zwei Schritten durchgeführt:
die von Reg Ausgegebene Adresse, und auch Reg £n3: = a + Reg L n^ (mit derselben Bedeutung für a und n). Bei einer Indexoperation, die von einer Anpassungsoperation begleitet wird, werden also jeweils sowohl ein Wert als auch eine Adresse bestimmt. Die Verwendung der Adresse wird vom Opcodeteil bestimmt.
(e) In Fig. 5(e) gibt das Wort "0100" eine Zahl an, deren Wert von den Bits 0 bis 15 gegeben ist ("immediate").
(f) In Fig. 5(f) gibt das Wort "1111" eine Bewertungsoperation an. Der Inhalt des Registers, dessen Nummer
"*5 von den Bits 12 bis 15 gegeben wird, wird als Stellendeskriptor betrachtet. Der Inhalt der Bits 0 bis 11 ist für Daten bestimmt, die in der Folge von Befehlen verwendet werden, die von einem Befehl mit virtuellem
PHN 10 909 yS 20.12.1984
Opcodeteil eingeleitet werden.
Anhand der Daten nach Fig. h und 5 wird das Computerprograimn nach Fig. 2 erläutert. Das Ergebnis der Ausarbeitung dieses Programms ist in Fig. 3 veranschaulicht (l bis Vl). Jedesmal wird in der weiteren Beschreibung neben dem Befehl eingeklammert, in welchem Teil der Fig. der betreffende Befehl ausgearbeitet ist.
Der erste Befehl des Computerprogramms befindet sich an der Speicherstelle mit der Adresse O und lautet FAD47FFF; LOADVAL SPR,#$7FFF (Fig.3(l) Befehl 1).
Der Opcode FA gibt an, dass es sich hier um einen Befehl mit normalem Opcode handelt (Fig. 4(a)), d.h.. den Befehl "LOAD VALUE". Die Registernummer 11D" gibt an, dass das zu benutzende Register das Register SPR ist (Fig. i). Der Stellendeskriptor enthält die Zahl "47FFF", hierin gibt die Ziffer k an, dass es ein Stellendeskriptor vom Typ ist, wie er in Fig. 5(e) abgebildet ist, d.h. eine Zahl (immediate) 7FFF. Dieser Befehl bedeutet also: "In das Stapelzeigerregister (SPR) (D) die Zahl (k) mit dem Vert 7FFF laden".
Im Programmzählerregister (PCR) ist nunmehr die Zahl 1 gespeichert, was bedeutet, dass sich der nächste Befehl im Speicher 1 befindet. Es sei dazu bemerkt, dass in diesem Ausführungsbeispiel das Register ZEROR jeweils mit dem Wert "00000000" und das Register ONER jeweils mit dem Wert "00000001" geladen ist. Die konstanten Werte 0 und 1 werden oft verwendet. Es ist also vorteilhaft, diese konstanten Werte in einem Register zur Verfügung zu haben, wodurch sie durch einfache Registeroperationen aufgerufen werden können.
An der Speicherstelle 1 befindet sich der zweite Befehl des Computerprogramme. Dieser zweite Befehl lautet: FAAi*7F00; LOADVAL OPER, # $7F00 (Fig. 3(l), Befehl 2). Analog dem ersten Befehl ist dies ein Befehl mit normalem Opcode "LOADVAL". Die Registernummer "A" gibt das Register OPER (Fig. 1) an. Dieser Befehl bedeutet also: In das Operationserweiterungsregister (OPER) die Zahl mit dem Wert 7F00 laden. In das Register PCR ist inzwischen die Zahl 2 geladen.
PHN 10 '909 >€" 20. 12. 1984
Der dritte Befehl lautet:
FEO184OO; JSR ^OO + QZEROR^ (Fig. 3(l) , Befehl 3) Der Opcode FE gibt den Befehl mit dem normalen Opcode "JUMP SUBROUTINE" Fig. 4(d)) an. Der Stellendeskriptor enthält die Zahl "18400", hierin gibt die Ziffer "1" an, dass es eine normale Indexoperation betrifft (Fig. 5(b)). Die Ziffer 8 gibt das Register ZEROR und die Zahl "400" die Verschiebung an. Durchführung dieses Befehls ergibt: a) mem [reg £sPR]3 : = reg [pCR]
mem £7FFF""] : = 00000003
Das bedeutet, dass an der Speicherstelle mit der Adresse 7FFF die Zahl 3 eingeschrieben wird. Das -bedeutet wieder, dass die Adresse des folgenden Befehls (Speicheradresse3) an der Speicherstelle 7FFF gemerkt wird. b) reg [sPR"] : = reg [sPR] + 1
reg C-SPR*] : = 00007FFF + 1 = 00008000 c) reg £>CR} : = effa(LCDSC)
effa (Loose)bezeichnet den wirksamen Inhalt des Stellendeskriptors, der für dieses Beispiel durch 400 + [[ZERO!?) gegeben ist. Da jedoch 00000000 im Register ZEROR stehen, ist effa (LCDSC) = 00000^00 reg [pCR]: = 00000^00.
Das bedeutet, dass der Programmzähler jetzt die Speicherstelle mit der Adresse 400 angibt. Es ist also ein Sprung nach der Speicherstelle mit der Adresse hOO durchgeführt.
Der an der Speicherstelle mit der Adresse 400 angebrachte vierte Befehl lautet:
FA03B001; LOADVAL RO, £pCR] ++1
7FFFFFFF: ^7FFFFFF Fig. 3(l), Befehl k)
Die Registernummer dieses Befehls mit normalem Opcode LOAD VALUE ist "0". Im Stellendeskriptor mit dem Wert "3B001" gibt die Ziffer 3 eine Indexoperation an, der eine Anpassungsoperation folgt (Fig. 5(d)). Der Buchstabe B gibt an, dass sich die Anpassung auf das Register PCR bezieht (Fig. 1), und die Zahl "001" gibt die Anpassungsgrösse an. Dieser Befehl bedeutet also
Reg Qo*] : = mem ([reg CPCIU]
Reg £o3 : = mem f ^Oil Reg C0"] '· = 7FFFFFFF.
PHN 10 909 yr 20%12.1984
In das Register RO den Wert laden, der an der Speicheradresse gespeichert ist, die vom Inhalt des Registers PCR gegeben wird, und anschliessend den Inhalt des Registers PCR mit der Zahl "001" erhöhen. Im Register PCR ist der Wert (4OO + 1 = ) 401 gespeichert. An der Adresse 401 befindet sich der Wert 7FFFFFFF, der jetzt in das Register RO gespeichert wird. Die Anpassungsoperation ergibt folgendes: reg £ PCR"] : = reg ^PCR"] + 1
reg J[PCR"] : = 401 + 1
reg £PCR-] : = 402.
Der an der Speicherstelle mit 402 befindliche fünfte Befehl lautet wie folgt:
FAB2DFFF; LOADVAL PCR, -1++ £SPR^J (Fig. 3(l), Befehl 5). Die Registernummer "B" zeigt auf das Register PCR. Im Stellendeskriptor mit dem Wert "2DFFF" zeigt die Ziffer 2 eine Indexoperation an, der eine Anpassungsoperation vorangeht (Fig. 5(c)); der Buchstabe D bezeichnet das Register SPR und die Hexadezimalzahl FF ^-Komplementdarstellung) bedeutet "-1", die die Anpassungsgrösse angibt.
reg Γ SPRl : = reg fSPR] -1
reg £SPR]
reg £SPR")
reg £PCR]
= 00008000 -1
= 00007FFF
= mem £reg
= mem 7FFF
= 00000003,
reg £pcr]
denn wie angegeben beim dritten Befehl ist an der Speicherstelle mit der Adresse 7FFF der Wert "3" geladen. Das Auslesen aus dem Speicher und das Laden von 00000003 in das Register PCR bedeutet, dass das Unterprogramm beendet ist, und dass das normale Programm jetzt mit dem Befehl an der Adresse 3 des Speichers wieder audgenommen wird.
Der sechste Befehl lautet
FA742OOO; LOADVAL R7,# £2000 (Fig. 3(II),Befehl 6). Dieser Befehl bedeutet: In das Register R7 die Zahl mit dem Wert 2000 laden.
Der siebte Befehl lautet
00040020; ADDSTACK#^20 (Fig. 3(ll), Befehl 7)
Der Opcode "00" gibt an, dass es sich hier um einen Opcode
PHN 10 909- V6" S 20.12.198U
aus der Klasse der virtuellen Opcodes handelt (00 6 £ OO...F8j). Der Decoder der Computeranlage decodiert diesen virtuellen Opcode und die Anlage führt dadurch folgende Operationen aus: a) reg [iPCR] : = reg OCR3
b) reg £ PCR*] : = mem [reg foPElf] + OPCODE]
Anwendung dieser Operationen bei diesem siebten Befehl ergibt
a) reg JJPCRTJ : = reg QPClQ
reg £lPCR] : = 00000005.
Der Inhalt des Registers PCR (momentaner Programmzählerstand) wird also in das Register IPCR geladen. Im Gegensatz zu einem JUMP SUBROUTINE-Befehl (dritter Befehl) wird hier also keine Schreiboperation im Speicher durchgeführt. Ausserdem nimmt das Laden von PCR in IPCR bedeutend weniger Bearbeitungszeit, da dies eine normale Registeroperation ist.
b) reg [ PCR] : = mem[reg {^OPER"] + OPCODE] reg [ PCR] : = mem \_ 7F00 + 00J]
reg [_PCR-] : = mem [7*Όθ"}
reg CPCR] : = 00001000
denn, wie aus Fig. 2 ersichtlich, ist an der Speicherstelle mit der Adresse 7FOO das Wort 00001000 geschrieben, das jetzt in das Register PCR geladen wird. Die Daten aus der letztgenannten Figur geben ein, dass der Inhalt des Stellendeskriptors unwichtig wäre. Dies ist jedoch nicht der Fall. Bei der weiteren Beschreibung des Programms wird sich zeigen, dass der Stellendeskriptor bei einem Befehl mit virtueller Opcode tatsächlich verwendet wird und sogar auf eine derartige Weise, dass er bereits soviel Daten enthält, mehr als beispielsweise möglich wäre bei der Verwendung des Befehls JUMP SUBROUTINE, bei dem nur eine Speicheradresse aufgenommen werden kann.
Der achte Befehl an der Speicherstelle mit der Adresse 1000 lautet wie folgt:
FAO27FFF; LOADVAL RO,-1++ £r7] Fig. 3(ll), Befehl 8) Dieser Befehl beinhaltet folgende Operationen:
PHN 10 909 tf* 20.12.198^4
= -1 +reg
= -1 + 2000
= IFFF
= mem
= mem
[reg
[ifff]
= 00000000
a) Reg [7l
Reg £7]
Reg £7}
b) Reg £03
Reg
Reg
An der Speicherstelle mit der Adresse 1FFF befindet sich der Wert OOOOOOOOO. Diese Operationen stellen faktisch eine "POP"-Operation dar, die am Register R7 angewandt wird, das die Rolle eines Stapelzeigers erfüllt.
Der neunte Befehl lautet wie folgt:
FA11CFFF; LOADVAL R1, -1+ JJCPCR^ (Fig. 3(ll) Befehl 9) Dieser Befehl beinhaltet, folgende Operation: reg J 1~1 : = mem [ -1 + reg
reg
[Ί] : = mem £ -1 + 5~)
Reg ) 1 ~J : = mem
In das Register RI wird also der Inhalt der Speicherstelle mit der Adresse k geladen. Jedoch befindet sich dort genau der siebte Befehl, der 00040020 als Maschinencode hat.
Diese Operation dient zum Aufrufen des Stellendeskriptors des virtuellen Befehls, um ihn in einem weiteren Befehl zu verwenden.
Der zehnte Befehl lautet: FA1F1000; LOADVAL R1 , ^R1 Fig. 3(ll), Befehl 1o).
Im Stellendeskriptor "F1000" gibt der Buchstabe "F" an, dass es sich hier um eine Bewertungsoperation handelt (Fig. 5(f))· Dieser Befehl beinhaltet also: In das Register R1 die Bedeutung des Stellendeskriptors des Befehls laden, der in das Register R1 geladen ist. Der in das Register R1 geladene Befehl bei der Bearbeitung des neunten Befehls hat als Stellendeskriptor "40020", was wieder bedeutet: die Zahl "4" mit dem Wert 20. Demzufolge wird jetzt im Register RI das Wort "00000020" geschrieben.
Daraus ist die Wichtigkeit des Stellendeskriptors bei einem Befehl mit virtuellem Opcode ersichtlich. In diesen Stellendeskriptor wird Information eingeschrieben, die in der von einem Befehl mit virtuellem Opcode eingeleiteten Befehlsfolge verarbeitet wird.
PHN 10 909 3Θ 2O.12.1984
der elfte Befehl lautet:
FDOOIOOO; Dyadic ADD RO, R1 Fig. 3(Πΐ), Befehl 11)
Der Opcode "FD" gibt eine DYADIC-Operation (Fig. 4(c)) zwischen einem ersten Register RO und einem zweiten Register R1 an. Die Art der Operation (Vert 0, Bits 16 bis I9) ist eine Addieroperation. Dieser Befehl bedeutet also: "Den Inhalt des Registers RO und des Registers RI addieren und das Ergebnis in das Register RO einschreiben. Reg £cf] : = Reg 0 + Reg 1
ID Reg £b~] : = 00000000 + 00000020
Reg (V) : = 00000020"
Der zwölfte Befehl lautet'
FBO37OOI: STORE RO, CR?"] ++1 (Fig. 3(Πΐ), Befehl 12). Dieser Befehl beinhaltet folgende Operationen:
a) men (jreg £73"! : = reSL03
mem [\ FFF-] : = 20.
Also wird an der Speicherstelle mit der Adresse 1FFF die Zahl 20 geschrieben
b) reg £"73 : = reg Γ7ΙΙ + 1
reg {/7 3 : = 1FFF + 1
reg £73 : = 2000
Diese Operationen stellen faktisch eine "PUSH"-Operat±on dar, die auf dem Register R7 angewandt wird, das die Rolle eines Stapels erfüllt.
Der dreizehnte Befehl lautet:
FABOCOOO; LOADVAL PCR, IPCR (Fig. 3(ΙΠ), Befehl I3) Es ist der Schlussbefehl, mit dem die von einem Befehl mit virtuellem Opcode eingeleitete Befehlsfolge abgeschlossen wird. Dieser Befehl enthält die Operation: "In das Register PCR den Inhalt des Registers IPCR laden". Da im Register IPCR der Stand des Programmzählers aufbewahrt wurde, bedeutet dies also, dass der Befehl nach den Befehlen mit virtuellem Opcode, der jetzt verarbeitet ist, jetzt an der Reihe sein wird. Der Gesamteffekt der virtuellen Befehle (siebter Befehl ADDSTACK#20) ist jetzt, dass bei der Spitze des Stapels, der zum Stapelzeiger gehört (Register 7)» die Zahl 20 addiert ist.
Der vierzehnte Befehl an der Speicherstelle mit
PHN IO 909 2Λ 20.12.198*1
der Adresse 5 lautet:
00018100; ADDSTACK $100+ QzEROr] (Fig. 3(Πΐ), Befehl 14). Der Opcode "00" gehört zur Klasse der virtuellen Opcodes. Die Computeranlage führt also folgende Operationen durch a) reg [ IPCR^ : = reg fPCR^
reg /iPCR"] : = 6
b) reg /TPCRI : = mem £ reg [ OPER*] + OPCODE"] reg £PCR"3 : = mem ^7FOO + Oo]]
reg £"PCR"3 : = 00001000.
Der fünfzehnte Befehl an der Speicherstelle mit
der Adresse 1000 lautet
FA027FFF; LOADVAL RO,- 1 ++ j^R7~] (Pig· 3(HI.) ,Befehl 15). Dieser Befehl betrifft folgende Operationen
a) reg [V]: = -1 + reg {_ 7~]
reg £7l: = -1 + 2000
reg [73: = 00001FFF
b) reg Co^: = mem freg jQ 7^3
reg £03: = mem £iFFF"]
reg £ 0^: = 20
Der Wert 20 an der Speicherstelle mit der Adresse 1FFF ist
die Folge der Bearbeitung des zwölften Befehls. Der sechzehnte Befehl lautet
FAI1CFFF; LOADVAL R1,-1+ £IPCrQ (Fig.3(lV) Befehl i6).
Dieser Befehl betrifft folgende Operationen RegTl]: = mem f - 1 + reg Q IPCR^J 3
Reg O3: = mem f?"1 + ^U
Reg ιοί = mem Γ 53
Reg [[T): = 00018100
Erneut wird (analog dem neunten Befehl) also der Code des Befehls mit virtuellem Opcode in das Register RI geladen. Der siebzehnte Befehl lautet
FA1F1000; LOADVAL R 1,^RI (Fig.3(lV) ,Befehl 17).
Dieser Befehl ist analog dem zehnten Befehl. Der in das
Register R1 geladene Befehl hat als Stellendeskriptor "18100". der folgende Operationen angibt:
Reg(j~J: = mem£§100 + reg £ ZEROR Reg £O : = mem £i00 +
Reg £1 1 : = mem C.I00H
PHN 10 909 -2"2 2u.-i2.1984
Reg £_1 "\ : = FFFFFFEO O 0 U U 3 7
In das Register R1 wird also das Wort FFFFFFEO geladen. Auch hier tritt wieder zu Tage, auf welche Weise in einer erfindungsgemässen Computeranlage der Stellendeskriptor bei einem Befehl mit virtuellem Opcode verwendet wird.
Der achtzehnte Befehl lautet
FDOO1000: DYADIC ADD R0,R1 (Fig.3(lV), Befehl 18). Dieser Befehl betrifft folgende Operation Reg £ 0]: = Reg Qol + Reg C13
Reg £0"3: = 00000020 + FFFFFFEO
Reg £o3: = 00000000
Das Ergebnis dieser Operation 00000000 hat zur Folge, dass der Wert 00000020 in das Register CCR geladen wird.
Der neunzehnte Befehl lautet FBO37OOI; STORE RO, £r7*! ++1 (Fig. 3(lV) , Befehl I9), der folgende Operation betrifft
a) mem [reg C 7"J]: = Reg £ 0"3
mem [IFFFI : = Reg £0l
mem £i FFF-] : = 00000000
b) Reg [7I: = Reg £7! + 1
reg L 71: = 1FFF + 1
Reg £73: = 00002000
Der zwanzigste Befehl lautet
FABOCOOO, LOADVAL PCR,IPCR (Fig.3(lV), Befehl 20), der folgende Operationen betrifft:
Reg £pCR3 : = Reg CIPCR^
Reg £pCR"3 : = OOOOOOO6
Also wird erneut der Endbefehl, mit dem eine Befehlsfolge eingeleitet wird, von einem virtuellen Opcode abgeschlossen. Der einundzwanzigste Befehl lautet 01018101; ORSTACK $101+ £zER0R31 (Fig. 3(v), Befehl 2i). Dieser ist erneut ein Befehl mit einem Opcode ("01"), der zur Klasse der virtuellen Opcodes gehört. Die durchzuführenden Operationen sind also
) Reg JCipCRI : = reg
Reg ^IPCR^ : = 00000007
b) Reg £PCR 2 : = mem [reg /foPER*] + OPCODE^] Reg [.PCR "3 : = mem £ 7F00 + 01 2
PHN 10 909 «3 20.12.1984
Reg £PCHT| : = mem £ 7F01"^
Reg fPCRj : = OOOO1O1O (siehe Fig. 2) Dieser Befehl ergibt nunmehr, dass bei einem virtuellen
Opcode der Inhalt dieses Opcodes dazu dient, sowohl einen virtuellen Opcode zu erkennen als auch eine Speicheradresse eines Anfangsbefehls einer Folge von' Befehlswörtern zu
bestimmen, die die Bedeutung des Befehls mit dem virtuellen
Opcode bestimmen.
Der zweiundzwanzigste Befehl an der Speicherstelle mit der Adresse 1010 lautet:
FA027FFF- LOADVAL R0,-1++£r7"J (Fig.3(IV) Befehl 22).
Dieser Befehl umfasst folgende Operationen:
a) Reg fo^: = mem [-1 + Reg £ TJ]
Reg [0~}: = mem Γ-1 + 2000]
Reg £*0j: = mem pFFFj
Reg lp"y. = 00000000 (siehe dafür den Befehl 19)
b) Reg [73: = -1 + Reg £73
Reg \J7~]: = 00001FFF
Der dreiundzwanzigste Befehl lautet FA11CFFF; LOADVAL R1,-1IPCR]] (Fig. 3(V), Befehl 23) Dieser Befehl betrifft folgende Operationen:
Reg [j13 : = mem £-1 + Reg pEPCRll
Reg £O : = mem £-1 + 7"]
Reg [1J : = mem Γ6"]
Reg £2 T 33 : = 01018101
Der vierundzwanzigste Befehl lautet
FA1F1000; LOADVAL R^,f^R^ (Fig. 3(v) , Befehl 2k).
Der Stellendeskriptor des Befehls im Register 1 enthält
"18101". Dies betrifft als Operation Reg CO : = mem £^101 + Reg jJZerorU 3 Reg £'1 3 : = mem £ioO
Reg £13 : = F0000100
Der fünfundzwanzigste Befehl lautet
FDO6IOOO; Dyadic OR RO,R1 (Fig. 3(v), Befehl 25)
In diesem Befehl bezeichnet die Ziffer "6" eine logische
"0DER"-0peration.
Reg £θΊ : = RegCo^V Reg
Reg C°3 : = FOOO0100.
PHN 10 909 -34 20.12.1984
Jetzt hat das Einschreiben einer negativen Ziffer im Register O (F, 2-Komplementdarstellung ) zur Folge, dass der Wert 00000010 in das Register CCR geladen wird. Aus diesem Befehl und aus vorigem Befehl zeigt es sich jetzt möglich, mit Hilfe virtueller Opcodes eine Verschiedenheit an Operationen durchführen zu lassen.
Der sechsundzwanzigste Befehl lautet
FBO37OO1; STORE RO, £R7 HJ + + 1 (Fig. 3(Vl),Befehl 26). Dieser Befehl betrifft folgende Operationen
a) mem £'Reg £Τ$ : = Reg £ 0 3
mem TiFFFU : = FOOO0100
b) Reg Ol : = Reg [73 + 1
Reg C7TJ : = 1FFF + 1
Reg £7J : = 2000
Der siebenundzwanzigste Befehl lautet FABOCOOO; LOADVAL PCR,IPCR (Fig. 3(Vl), Befehl 27), der sich bezieht auf:
Reg [pCRI : = reg £IPCR^
Reg [PCR"3 : = 7
Die Computeranlage bearbeitet nunmehr die an der Speicherstelle mit der Adresse 7 befindlichen Befehle und führt auf diese Weise das Programm weiter aus. Die Ausarbeitung dieses Befehls wird nicht weiter erläutert, da sie für die Beschreibung der Erfindung unwichtig ist. Dieser Befehl schliesst dann gleichfalls das Computerprogramm ab, das zur Veranschaulichung der Wirkung einer erfindungsgemässen Computeranlage beschrieben wurde.
Im wesentlichen treten aus der Beschreibung dieses Computerprogramms zwei besondere Aspekte hervor:
a) die Behandlung eines Befehls mit virtuellem Opcode,
b) die Behandlung des Stellendeskriptors bei einem Befehl mit virtuellem Opcode.
Die Verwendung von Befehlen mit virtuellem Opcode in einer Computeranlage bietet dem Anlagenprogrammierer ein breites Spektrum von Möglichkeiten. Durch die Verwendung eines Befehls mit virtuellem Opcode kann eine Befehlsfolge zur Durchführung einer bestimmten Bearbeitung eingeleitet werden. Diese Bearbeitung kann eine Addierung (Befehl 11), eine
PHN 10 909 25 20.12.1984
Multiplikation oder jede andere Operation sein. Der Anlagenprogrammierer kann durch, eine selbstgewählte Begriffsbestimmung virtueller Opcodes die Computeranlage derart programmieren, dass neue Befehle entstehen. Hinsichtlich der wirksamen Speicherung von PCR und IPCR und dadurch, dass IPCR als Indexregister verwendet wird, werden derartige neue Befehle auf wirksame Weise durchgeführt. Veiter ist es möglich, durch die Änderung von OPER (Hinweis auf eine andere Tabelle) je Programm einen anderen Befehls-]Q vorrat zuzuführen, wobei die Sprache berücksichtigt ist, in der das Programm geschrieben ist (eine Pascalmaschine für Pascal, eine Cobolmaschine für Cobol.)
Der Stellendeskriptor eines Befehls mit virtuellem Opcode enthält Information, die in einer Befehlsfolge verj5 arbeitet wird. Die Verarbeitung dieser Information ist auf vielerlei Weisen möglich und wird vollständig durch die Befehle aus der erwähnten Folge bestimmt. Die Befehle aus dieser Folge sind meistens Befehle mit einem normalen Opcode. Jedoch ist es auch möglich, hier Befehle mit virtuellen Opcodes zu verwenden. In diesem Fall muss jedoch zunächst der Inhalt des IPCR-Registers auf einem Stapel im Speicher angeordnet werden.
In Fig. 7 ist ein zweites Computerprogramm dargestellt, mit dem ein zweites Ausführungsbeispiel eines er— findungsgemässen Verfahrens erläutert wird. Das zweite Programm kann nur durch eine Computeranlage mit einer Registerarchitektur nach Fig. 6 ausgeführt werden, weil die Durchführung des zweiten Programms ein Register VIR (B) erfordert .
Die Durchführung des zweiten Programms ähnelt stark der Durchführung des ersten Programms (Fig. 2) und deshalb wird nur der Unterschied mit dem ersten Programm beschrieben. Da sich die in Fig. 6 dargestellte Registerarchitektur von der Architektur in Fig. 1 unterscheidet, müssen einige Befehle angepasst werden. So ist beispielsweise das Register SPR nicht mehr mit D, sondern mit E bezeichnet und ändert sich der Befehl an der Speicherstelle O jetzt von FAE^7FFF nach FAD7FFF. Da diese Anpassungen
PHN 10 909 S6 20.12.1984
einfach erkennbar sind, werden sie weiter nicht erläutert.
Fig. 8 zeigt das Ergebnis der Durchführung des in Fig. 7 dargestellten zweiten Computerprogramms. In diesem Ausführungsbeispiel sind die Register R8 und R9 jeweils mit dem Wert "00000000" geladen. Die Auswirkung der ersten 6 Befehle zeigt keinen Unterschied mit der Auswirkung des ersten Computerprogramms. Beim 7»Befehl mit dem virtuellen Opcode OO6OO2O; ADDSTACK #20 werden folgende Operationen durchgeführt:
a) reg [IPCR^ : = reg CpCrI
b) reg £PCR"3 : = mem [reg foPER^ + OPCODE^
c) reg LVlRl : = fl.R.^
Anwendung dieser Operationen bei diesem 7. Befehl ergibt: a) reg [iPCR^] : = 00000005
b) reg [PCRl : = mem £ 7F00 + 00^]
reg £PCRl : = 00001000
c) reg tVIR3 : = OOO6OO2O
Der Unterschied mit der Ausarbeitung des ersten Programms besteht darin, dass in das Register VIR zumindest der Stellendeskriptorteil des Inhalts des Befehlsregisters geladen wird. In diesem Befehlsregister befand sich der Befehl mit virtuellem Opcode, der bearbeitet wird.
Der achte Befehl an der Speicherstelle mit der Adresse 1000 lautet:
FA027FFF; LOADVALRO, -1 + +^7D
Dieser Befehl ist gleich dem achten Befehl des ersten Programms.
Der an der Speicherstelle 1001 gespeicherte Befehl lautet:
FAIFBOOO; LOADVAL RI , ^VIR
Im Stellendeskriptor "FBOOO" zeigt der Buchstabe "F" darauf, dass es sich hier um eine Bewertungsoperation handelt (Fig. 5f). Dieser Befehl betrifft also "In das Register R1 die Bedeutung des Stellendeskriptors des Befehls laden, der in das Register B (VIR) geladen ist". Im Register VIR befindet sich jetzt der Stellendeskriptor 60020. Die Auswertung dieses Stellendeskriptors ergibt die Zahl 20. Dadurch wird jetzt in das Register R1 das Vort "00000020"
PHN 10 909 -27 20.12.1984
geschrieben. Das Ergebnis des neunten Befehls ist also gleich dem Ergebnis des zehnten Befehls des ersten Programms nach Fig. 2. Der Unterschied zwischen diesem ersten und dem zweiten Computerprogramm und somit zwischen den beiden (Fig. 1, Fig. 6) Registerarchitekturen ist also, dass durch die Verwendung des Registers VIR ein Befehl erspart werden kann (d.h. der Befehl LOADVAL R1,-1+ LlPCR^l). Das Ergebnis dieses Befehls (LOADVAL R1.-1+ ClPCR "3 ) wird unter Verwendung der zweiten Registerarchitektur (Fig. 6) bereits bei der Decodierung eines Befehls mit virtuellem Opcode (reg VIR: = £l.R."3 ) erhalten.
Zur Veranschaulichung ist noch in Fig. 8 die weitere Ausarbeitung des zweiten Computerprogramms nach Fig. 7 dargestellt. Der Verlauf dieser Ausarbeitung darf bei gegebener Analogie mit dem ersten Computerprogramm als klar angenommen werden.
- Leerseite

Claims (1)

  1. PATENTAN SPRUCHE
    1. Verfahren zur Bearbeitung maschinencodierter Befehlswörter mit einem Datenprozessor mit einem Speicher zum Einschreiben der Befehlswörter, die je einen Opcodeteil und zumindest einen Operanden-Deskriptorteil enthalten, wobei diese Opcodeteile zu einem endlichen Vorrat gehören der in eine erste und in eine zweite Klasse unterteilt ist, welches Verfahren folgende Schritte enthält:
    a) Aufrufen eines von einem Programmzählerstand angezeigten ersten Befehlswortes unter der Steuerung des Daten-Prozessors,
    b) Decodierung des Opcodeteils aus dem ersten Befehlswort
    und Feststellung der Klasse, zu der der Opcodeteil des _ ersten Befehlswortes gehört; \
    (el) Durchführung der vom ersten Befehlswort angegebenen > Operationen für Befehlswörter mit einem zur ersten Klasse gehörenden Opcodeteil,
    (c2) Durchführung folgender Schritte für Befehlswörter mit einem zur zweiten Klasse gehörenden Opcodeteil; (c2-i) Speicherung des momentanen Programmzählerstandes in ein dazu belegtes Ergänzungs-Programmzählerre-
    gister,
    (c2-2) Erzeugung einer Speicheradresse auf der Basis des Opcodeteils aus dem ersten Befehlswort, wobei an dieser Speicheradresse ein zweites Befehlswort angeordnet ist, das den Anfangsbefehl einer Folge von Befehlswörtern ist, die die Bedeutung des ersten Befehlswortes bestimmen,
    (c2-3) Einstellung des momentanen Programmzählerstandes auf die Speicheradresse,
    (c2-4) Bearbeitung der Befehlsfolge;
    (c2-5) Einstellung des momentanen Programmzählerstandes '
    auf einen von dem im Ergänzungs-Programmzähler- j
    register vorhandenen Programmzählerstand bestimmten .JJ
    PHN 10 909 20.12.1984
    Wert, dadurch gekennzeichnet, dass bei der erwähnten Folge von Befehlswörtern von zumindest einem dritten Befehlswort
    der Operanden-Deskriptorteil aus dem ersten Befehlswort in ein erstes Indexregister geladen wird.
    δ 2. Verfahren zur Bearbeitung maschinencodierter Befehlswörter mit einem Datenprozessor mit einem Speicher zum Einschreiben der Befehlswörter, die je einen Opcodeteil und zumindest einen Operanden-Deskriptorteil enthalten, wobei diese Opcodeteile zu einem endlichen Vorrat gehören, W der in eine erste und in eine zweite Klasse unterteilt ist, welches Verfahren folgende Schritte enthält:
    (a) Aufrufen eines von einem Programmzählerstand angezeigten ersten Befehlswortes unter der Steuerung des Datenprozessors,
    (b) Decodierung des Opcodeteils aus dem ersten Befehlswort und Feststellung der Klasse, zu der der Opcodeteil des ersten Befehlswortes gehört; (c1)Durchführung der vom ersten Befehlswort angegebenen Operationen für Befehlswörter mit einem zur ersten Klasse gehörenden Opcodeteil,
    (c2)Durchführung folgender Schritte für Befehlswörter mit
    einem zur zweiten Klasse gehörenden Opcodeteil: (c2-i) Speicherung des momentanen Programmzählerstandes in ein dazu belegtes Ergänzungs-Programmzählerregister, (c2-2) Erzeugung einer Speicheradresse auf der Basis des Opcodeteils aus dem ersten Befehlswort, wobei an dieser Speicheradresse ein zweites Befehlswort angeordnet ist, das den Anfangsbefehl einer Folge von Befehlswörtern ist, die die Bedeutung des ersten Befehlswortes bestimmen,
    (c2-3) Einstellung des momentanen Programmzählerstandes
    auf die Speicheradresse,
    (c2-4) Bearbeitung der Befehlsfolge,
    (c2-5) Einstellung des momentanen Programmzählerstandes * auf einen von dem im Ergänzungs-Programmzählerregister vorhandenen Programmzählerstand bestimmten
    Wert,
    dadurch gekennzeichnet, dass für Befehlswörter mit einem
    PHN 10 909 %& 2Oi12.1984
    zur zweiten Klasse gehörenden Opcodeteil zumindest der Operanden-Deskriptorteil des ersten Befehlswortes in ein dazu belegtes zweites Indexregister geladen wird, bevor der Programmzählerstand auf die Speicheradresse eingestellt wird.
    3· Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei der Durchführung des dritten Befehlswortes der Inhalt des Ergänzungs-Programmzählerregisters zur Ortung des Operanden-Deskriptorteils aus dem ersten Befehlswort im Speicher benutzt wird.
    h. Verfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass bei der Folge von Befehlswörtern zumindest ein viertes Befehlswort den Operanden—Deskriptorteil aus dem ersten Befehlswort verarbeitet.
    5· Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Erzeugung der Speicheradresse für das zweite Befehlswort mit folgenden Unterschritten erfolgt:
    (1) Bildung einer Tabellenadresse aus einer Speichertabelle durch die Addierung eines Wertes beim Opcodeteil des ersten Befehlswortes, wobei dieser Wert in ein dazu belegtes Operationserweiterungsregister vorgespeichert ist,
    (2) Adressierung eines auf der gebildeten Tabellenadresse angeordneten Speicherworts,
    (3) Aufrufen des Speicherworts an der Tabellenadresse wobei das Speicherwort die Speicheradresse bildet.
    6. Datenprozessor mit einem Speicher zum Einschreiben maschinencodierter Befehlswörter, die je einen Opcodeteil und zumindest einen Operanden-Deskriptorteil enthalten, wobei diese Opcodeteile zu einem endlichen Vorrat gehören, der in eine erste und eine zweite Klasse unterteilt ist, und der Datenprozessor weiter ein Programmzählerregister einen Adressgeber und einen Opcodedecoder enthält, der mit ersten Mitteln zum getrennten Erkennen von Opcodeteilen der ersten und zweiten Klasse und mit zweiten Mitteln zum Erzeugen eines Steuersignals unter der Steuerung eines erkannten Opcodewortes der zweiten Klasse versehen ist,
    PHN 10 909 3+- 20.12.19£ί*
    und der Datenprozessor weiter ein Ergänzungs-Programmzählerregister und Übertragungsmittel enthält, die einen ersten Steuereingang zum Empfangen des Steuersignals aufweisen und weiter dazu vorgesehen sind, unter der Steuerung eines empfangenen Steuersignals den Inhalt des Programmzählerregisters auf das Ergänzungs-Programmzählerregister zu übertragen, und wobei der Adressengeber dazu vorgesehen ist, unter der Steuerung des Steuersignals eine Speicheradresse zu erzeugen, an der ein Anfangsbefehlswort einer Folge von Befehlswörtern zur Bearbeitung eines Deskriptorteils angeordnet ist, dadurch gekennzeichnet, dass der Datenprozessor mit einem Operationserweiterungsregister ausgerüstet ist, das einen zweiten Steuereingang zum Empfangen des Steuersignals und einen Ausgang in Verbindung mit dem Adressgenerator enthält.
    7. Datenprozessor nach Anspruch 6, dadurch gekennzeichnet, dass der Datenprozessor weiter ein zweites Indexregister enthält, das einen dritten Steuereingang zum Empfangen des Steuersignals und einen Dateneingang in Verbindung mit dem Speicher zum Empfangen des Operanden-Deskriptorteils eines Befehlswortes unter der Steuerung des Steuersignals enthält.
DE19853500377 1984-01-16 1985-01-08 Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens Withdrawn DE3500377A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL8400129A NL8400129A (nl) 1984-01-16 1984-01-16 Werkwijze voor het behandelen van machine gecodeerde instruktiewoorden, en dataprocessor voor het uitvoeren van de werkwijze.
NL8403628A NL8403628A (nl) 1984-11-29 1984-11-29 Werkwijze voor het behandelen van machine gecodeerde instruktiewoorden, en dataprocessor voor het uitvoeren van de werkwijze.

Publications (1)

Publication Number Publication Date
DE3500377A1 true DE3500377A1 (de) 1985-07-25

Family

ID=26645921

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19853500377 Withdrawn DE3500377A1 (de) 1984-01-16 1985-01-08 Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens

Country Status (5)

Country Link
CA (1) CA1232075A (de)
DE (1) DE3500377A1 (de)
FR (1) FR2573228A1 (de)
GB (1) GB2153561B (de)
SE (1) SE8500156L (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3685117D1 (de) * 1986-12-30 1992-06-04 Ibm Einrichtung und verfahren zur erweiterung des befehlssatzes und der funktionen eines rechners.
US7624374B2 (en) 2005-08-30 2009-11-24 Microsoft Corporation Readers and scanner design pattern

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register

Also Published As

Publication number Publication date
FR2573228A1 (fr) 1986-05-16
SE8500156D0 (sv) 1985-01-14
CA1232075A (en) 1988-01-26
GB2153561B (en) 1987-06-17
GB8500682D0 (en) 1985-02-13
SE8500156L (sv) 1985-07-17
GB2153561A (en) 1985-08-21

Similar Documents

Publication Publication Date Title
DE3788877T2 (de) Einrichtung zur software-emulation.
DE3855158T2 (de) Dekodier-verfahren und -system für Befehle mit verschiedenen unvereinbaren Formaten
DE3750951T2 (de) Verfahren zur Kodeerzeugung für Rechner mit beschränktem Befehlssatz.
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
WO1994022079A1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
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
DE3856139T2 (de) Mikroprozessor
DE69233282T2 (de) Datenverarbeitungsvorrichtung
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2134816A1 (de) Einrichtung zur adressenuebersetzung
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE69229424T2 (de) Adressengeneration in einer Datenverarbeitungseinheit
DE3852432T2 (de) Befehlssteuerungsvorrichtung für ein Computersystem.
DE2245284A1 (de) Datenverarbeitungsanlage
DE2403039C2 (de) Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage
DE3500377A1 (de) Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens
DE3887717T2 (de) Prozessor für programmierbaren logischen regler und programmierbarer logischer regler.
DE2419836C3 (de) Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen
DE3687116T2 (de) Adressengenerationssystem.

Legal Events

Date Code Title Description
8130 Withdrawal