DE3119741A1 - Datenverarbeitungseinheit - Google Patents

Datenverarbeitungseinheit

Info

Publication number
DE3119741A1
DE3119741A1 DE19813119741 DE3119741A DE3119741A1 DE 3119741 A1 DE3119741 A1 DE 3119741A1 DE 19813119741 DE19813119741 DE 19813119741 DE 3119741 A DE3119741 A DE 3119741A DE 3119741 A1 DE3119741 A1 DE 3119741A1
Authority
DE
Germany
Prior art keywords
operand
decoding
instruction
address
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19813119741
Other languages
English (en)
Other versions
DE3119741C2 (de
Inventor
Tadaaki Ibaraki Bando
Hideo Hitachi Maejima
Hidekazu Hitachi Matsumoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 JP6526780A external-priority patent/JPS56162153A/ja
Priority claimed from JP13983580A external-priority patent/JPS5764848A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3119741A1 publication Critical patent/DE3119741A1/de
Application granted granted Critical
Publication of DE3119741C2 publication Critical patent/DE3119741C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Description

Beschreibung
Die vorliegende Erfindung betrifft eine Datenverarbeitungseinheit mit Pipelinesteuerung bzw. zeitlich versetzter Simultansteuerung, und zwar insbesondere eine Datenverarbeitungseinheit, die Anweisungen variabler Länge ausführt, welche Operandenspezifizierer zum Spezifizieren von Adressierungsarten von Operanden haben, die unabhängig von Operationscodes zum Bestimmen von Operationen ausgegeben werden.
In einer Anweisungsstruktur variabler Länge variiert die Anweisungslänge selbst dann, wenn die Länge des Operationscodes festgelegt ist. Das vorlaufende Feld der Anweisung ist ein Operationscode, jedoch haben die anderen Felder verschiedene Bedeutungen. Demgemäß sind die Bedeutungen der Felder der Anweisung nicht einheitlich definiert. Außerdem ist, da die Operandenspezifizierer ia der Anweisung in Abhängigkeit von der Adressierungsart variable Längen haben, die Anweisungslänge selbst dann variabel, wenn der Operationscode festgelegt ist»
In einer Anweisungsdecodiereinheit s die solche Anweisungsstrukturen variabler Länge behandelt, ist, itfenn eine Anweisung parallel abgerufen und decodiert wird, eine Hardware in großem Maßstab erforderlich, und es ist eine komplizierte Steuerung notwendig.
In einem System, in dem eine Anweisung abgerufen und decodiert wird, und zwar eine oder eine Mehrzahl von vorbestimmten Einheitslängen auf einmal,ist eine lange Zeit erforderlich, um die Anweisung zu decodieren, und infolgedessen läßt sich keine Datenverarbeitung mit hoher Geschwindigkeit erzielen. Wenn beispielsweise eine Grundeinheit
8 Bits (Byte) umfaßt, hat eine Grundanweisung eine Länge von 3 bis 7 Byte. Wenn die Anweisung synchron mit einem Maschinenzyklus decodiert wird, ist die Anzahl von Maschinenzyklen, die zum Decodieren der Anweisung erforderlich ist, gleich der Anzahl der Bytes der Anweisung.
Infolgedessen ist es in einer Datenverarbeitungseinheit, die Anweisungsstrukturen variabler Länge handhabt, ein wichtiger Faktor, die Geschwindigkeit der Verarbeitung des Anweisungsdecodes zu erhöhen, damit eine leistungsfähige Pipelineverarbeitung bzw. zeitlich versetzte Simultanverarbeitung erzielt wird.
Mit der vorliegenden Erfindung soll eine Datenverarbeitungseinheit zur Verfügung gestellt werden, die die Decodierung der variablen Anweisungen mit einer hohen Geschwindigkeit ausführen kann.
Außerdem soll mit der Erfindung eine Datenverarbeitungseinheit zur Verfügung gestellt werden, die die Decodierung der Anweisungen ausführen kann, unabhängig davon, welche Anzahl von Operandenspezifizierern die Anweisungen haben.
Weiterhin soll mit der vorliegenden Erfindung eine pipelinegesteuerte bzw. zeitlich versetzt simultangesteuerte Datenverarbeitungseinheit zur Verfügung gestellt werden, die einen Operanden pro Maschinenzyklus unabhängig davon fertigmacht, welche Länge der Operandenspezifizierer hat.
Darüber hinaus soll mit der vorliegenden Erfindung eine Datenverarbeitungseinheit zur Verfügung gestellt werden, in der, wenn die Adressierungsart des letzten Operandenspezifizierers in einer Anweisung eine Registerart bzw. -mode ist, auch der Operandenspezifizierer des letzten
.130063/0792
Operanden in dem Decodierzyklus für den Operanäenspezifizierer des Operanden, der dem letzten Operanden unmittelbar vorhergeht, decodiert wird, so daß die Anweisungen mit einer hohen Geschwindigkeit ausgeführt werden.
Gemäß einem Aspekt der vorliegenden Erfindung wird eine Datenverarbeitungseinheit zum Ausführen von Anweisungen variabler Länge zur Verfügung gestellt, in denen Operandenspezif izierer zum Spezifizieren von Adressierungsarten von Operanden unabhängig von Operationscodes zum Bestimmen von Operationen sind, und in welcher nicht nur die Anweisungen, sondern auch die Operanden der jeweiligen Anweisungen pipelinegesteuert werden.
Gemäß einem weiteren Aspekt der vorliegenden. Erfindung wird, wenn der letzte Operandenspezifizierer einer Anweisung Registerart bzw. -mode ist, der Operandenspezifizierer des letzten Operanden in dem Decodierzyklus für den Operandenspezifizierer des dem letzten Operanden unmittelbar vorhergehenden Operanden decodiert.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird wenigstens ein Operandenspezifizierer eines Operanden in jedem Maschinenzyklus decodiert, so daß unterschiedliche Operanden fertiggemacht werden, um eine Mehrzahl von Operanden in Pipeline bzw. zeitlich versetzt simultan zu verarbeiten.
Die vorstehenden sowie weitere Vorteile und Merkmale der vorliegenden Erfindung seinen nachfolgend unter Bezugnahme auf die Fig. 1 bis 1o der Zeichnung anhand einiger, besonders bevorzugter Ausfuhrungsformen näher erläutert; es zeigen:
130063/0792
Fig. 1 bis 3 Beispiele von Formaten von Operandenspezifizierern von Anweisungen variabler Länge, wie Sie bei der vorliegenden Erfindung verwendet werden;
Fig. 4 ein Blockschaltbild einer Ausführungsform einer Datenverarbeitungseinheit, die gemäß der vorliegenden Erfindung aufgebaut ist;
Fig. 4A bis 4E Blockschaltbilder, die exemplarische Einzelheiten der in Fig. 4 gezeigten jeweiligen Blöcke veranschaulichen;
Fig. 5 eine graphische Darstellung zur Erläuterung von Signalfunktionen in der in Fig. 4B ge
zeigten Schaltung;
Fig. 6 und 7 Ablaufdiagramme für den Betrieb der in Fig. 4 gezeigten Datenverarbeitungseinheit;
Fig. 8 eine graphische Darstellung zur Erläuterung eines Signals für eine spezifische Anweisung in der in Fig. 4B gezeigten Schaltung; und
Fig. 9 und 1o Ablaufdiabramme für den Betrieb in der in
Fig. 4 gezeigten Datenverarbeitungseinheit, und zwar für eine spezifische Anweisung,
Bevor die Ausführungsformen der vorliegenden Erfindung erläutert werden, sei' zunächst ein Anweisungssatz erläutert, der Operandenspezifizierer variabler Länge hat. Ein solcher Anweisungssatz ist bekannt. Nachfolgend seien zwei repräsentative Beispiele davon gegeben.
Eines dieser Beispiele ist ein Anweisungsformat für einen
130063/0792
Rechner Β17οο der Burroughs Corp., der für eine COBOL/RPG-Struktur ausgeführt ist. Es ist in "B17oo COBOL/RPG-S-Language" 1o58823-o15, Copyright 1973, Burroughs Corp. offenbart.
Das andere ist eine Anweisungsstruktur für einen Rechner VAX 11/78o der Digital Equipment Corp., die Operandenspezifizierer variabler Länge hat. Sie ist in dem "VAX 11 Architecture Handbook" Copyright 1979 und in der US-Pa-To tentschrift 4 241 399 offenbart.
Die Fig. 1A bis 1D zeigen vier repräsentative Adressierungsarten für das Beispiel des Rechners B17oo der Firma Burrough Corp.
Fig. 1A zeigt einen Operandenspezifizierer zum Spezifizieren eines Operanden für kurze literale Art bzw. Mode. Ein Typenfeld spezifiziert einen Typ von Daten {Vorhandensein oder NichtVorhandensein eines Zeichens bsw. Vorzeichens und Identifizierung der Grundlänge eines Literalwertfelds (4 bit oder 8 bit)), und ein Langenfeld zusammen mit dem Typenfeld spezifiziert die Länge des Literalwertfelds. Infolgedessen kann die Lite^alwertfeidlänge von 4 bit bis zu einem Maximum von 56 !bit (wenn da$ Typenfeld 8 bit mit Vorzeichen spezifisiert,- und das Längenfeld 7 beträgt) variieren.
Die Fig. 1B zeigt einen Operandensfiezifisierer, der einen Operanden für Langliteralart spezifiziert. Er wird dazu verwendet, Literaldaten bzw. eine Literaldateneinheit zu erzeugen, die eine Länge haben bzw. hat, welche langer als diejenige ist, die durch die Kurzliteralart spezifiziert wird.
Die Fig. IC zeigt einen Operandenspesifizierer, der eine
130063/0702
Operandenadresse für die Deskriptorindexart spezifiziert. Daten bei einer Adresse, die mittels eines Deskriptorfelds spezifiziert ist, werden als ein Operand verwendet.
Es sei darauf hingewiesen/ daß die vorstehend beschriebenen vier Adressierungsarten nur repräsentative Beispiele sind und auch andere Arten existieren.
Wie in den Fig. IA bis 1D gezeigt ist, haben die Operandenspezifizierer variable Längen. In der Kurzliteralart der Fig. 1A ist die Länge 1 (Bit), die von dem Anweisungsfe,ld des Operandenspezifizierers eingenommen wird/ 1+2 + 3 + "Länge" χ 4 (oder 8), und in der Langliteralart der Fig. 1B ist die Länge 1=1+2+3+8+ "Länge" χ 4 (oder 8)/ und in der Deskriptorindexart der Fig. 1C ist die Länge 1 * 6, und in der Inlinedeskriptorart der Fig. 1D ist die Länge 1 = 63.
In der oben beschriebenen Anweisungsstruktur wird der Teil, der die Art des Operanden oder die Adressierungsart spezifiziert, durch den Operandenspezifizierer definiert, und er ist unabhängig von dem Operationscode. Obwohl in der vorstehenden Anweisungsstruktur nur die Literalarten und die Deskriptorarten betrachtet worden sind, kann jede andere Adressierungsart umfaßt sein.
Die Fig. 2A bis 2F zeigen Formate von Operandenspezifizierern für sechs repräsentative Adressierungsarten im Beispiel des Rechners VAX 11 der Firma Digital Equipment Corp. Die Fig. 2A zeigt ein Format eines Operandenspezifizierers für Literalart, Eine 6-bit-Dateneinheit in einem Literalfeid wird als ein Operand benutzt. Die Fig. 2B zeigt ein Format eines Operandenspezifizierers für Registerart. 4 bits in einem Rn-FeId spezifizieren eine Adresse eines Registers, die als ein Operand benutzt wird. Die Fig. 2C
130063/0792
OH » *V W
zeigt ein Format eines Operandenspezifizierers für Distanzart bzw. -mode. Eine Dateneinheit bei einer Speicheradresse, die gleich der Summe eines Inhalts eines Registers ist, der durch ein Rn-FeId spezifiziert ist, und eine Distanz, die durch ein Distanzfeld spezifiziert ist, werden als ein Operand benutzt. Die Länge der Distanz kann 8 bit sein, wie in Fig. 2C gezeigt, oder sie kann 16 bit oder 32 bit sein. Die Fig. 2D zeigt einen Operandenspezifizierer für Distanz mit Indexart, in dem ein Indexmodifizierer zur Adressierungsart
•\o der Fig. 2C hinzugefügt ist. Ein Register bei einer Adresse, die durch ein Rx-FeId spezifiziert ist, wird als ein Indexregister verwendet, und ein Inhalt desselben wird zu einer Adresse hinzugefügt, wenn sie berechnet wird» Sie Fig. 2E zeigt ein Format eines Operandenspezifizierers für Relativart bzw. -mode. Eine Dateneinheit bei einer Adresse, die gleich einer Summe eines Inhalts: eines Programmzählwerts ist, und eine mittels eines Distanzfelds spezifizierte Distanz werden als ein Operand benutzt. Die Fig. 2F zeigt ein Format eines Operandenspezifizierers für Absolutart bzw. -mode. Ein Absolutfeld spezifiziert eine Speicheradresse, bei der sich ein Operand befindet.
Die Struktur für den Rechner VAX 11 zeichnet sich dadurch aus, daß die Längen der Operanderispezifizierer Vielfache einer Grundlänge von 8 bits (Byte) sind»
Aus dem Repertoire der Adressieruägsarten ist die B17oo für COBOL oder ähnliche Sprachen geeignet, während die .. VAX 11 für FORTRAN und PL/1 geeignet ist. Die Fig. 3A bis 3F zeigen Beispiele von Anweisungsformaten, äie dem Repertoire der Adressierungsarten der VAX 11 angepaßt sind und die bitvariable Operandenspezifiziererlängeri'haben, so daß die Leistungsfähigkeit der Operandenspezifizierer erhöht ist.
3 0063/0 702
Die Fig. 3A und 3B zeigen Formate von Operandensp'ezifizierern, wenn die Operanden mittels Literaldaten dargestellt werden. Wenn die Literaldaten nicht langer als 5 bits, sind, wird ein in Fig. 3A gezeigtes Kurzliteralformat benutzt, und wenn die Literaldaten nicht kürzer als 6 bits sind, wird ein in Fig. 3B gezeigtes Langliteralformat benutzt.
Die Fig» 3C zeigt ein Format eines Operandenspezifizierers für Registerart bzw. -mode. Ein Register bei einer Adresse, die durch ein Rn-FeId spezifiziert ist, stellt einen Operanden dar. Die Fig. 3D zeigt ein Format eines Operandenspezifizierers für Distanzart bzw. -mode. Es umfaßt ein Register bei einer Adresse, die mittels eines Rn-Felds spezifiziert ist, ein Distanzlängenfeld zum Spezifizieren der Länge der Distanz, und ein Distanzfeld. Die Fig. 3E zeigt ein Format eines Operandenspezifizierers für die Relativart bzw. -mode. Es umfaßt ein Distanzlängenfeld und ein Distanzfeld. Die Fig. 3F zeigt ein Format eines Operandenspezifizierers für die Absolutart bzw. .-mode. Ein Absolutfeld spezifiziert eine Speicheradresse, bei der sich ein Operand befindet.
Die Formate der in den Fig. 3A bis 3F gezeigten Operandenspezifizierer sind nur Beispiele aus einer Anzahl von Adressierungsarten, und es gibt viele andere Oporandenspezifizierer, obwohl sie hier nicht erläutert sind, da sie zum Verständnis der vorliegenden Erfindung nicht erforderlich sind.
In den Anweisungsformaten, die in den Fig. 1 bis 3 gezeigt sind, wird, da die Adressierungsart für jeden Operanden definiert ist, die Unabhängigkeit der Adressierungsart für den Öperationscode und die jeweiligen Operanden aufrechterhalten. Jedoch wird die Beschränkung auf den Zugriffstyp des Operanden/ wie beispielsweise Leseoperand, Schreiboperand oder Lese- und Schreiboperand durch den Operations-
130063/0792
code definiert (Abhängigkeit von Operationscode). Demgemäß muß der Operand in einer Adressierungsart sein, welche die Abhängigkeit vom Operationscode erfüllt. Es sei darauf hingewiesen, daß andere Zugriffsarten als Lese-, Schreib- und Lese- und Schreiboperanden existieren.
Es kann davon ausgegangen werden, daß die Länge des Operanden (Datenlänge) von dem Operationscode abhängt/ oder es kann davon ausgegangen werden/ daß sie mittels des Operandenspezifizierers spezifiziert wird. Da der unterschied zwischen beiden die vorliegende Erfindung nicht beeinflußt, wird die Handhabung der Datenlänge hier nicht erläutert.
Es sei nun eine Ausführungsform der vorliegenden Erfindung in näheren Einzelheiten erläutert. Obwohl in der folgenden Beschreibung ein Bit als eine Miniffialeinheit zum Zugriff eines Speichers benutzt wird, sei darauf hingewiesen, daß die Einheit des Zugriffs 4 bit (Nibble) oder 8 bit (Byte) sein kann.
2o
Die Fig. 4 zeigt eine Blockdarstellung einer Ausführungsform einer pipelinegesteuerten bsw. seitlich versetzt simultangesteuerten Datenverarbeitüngseinheit gemäß der vorliegenden Erfindung. Die verwendeten Abkürzungen und ihre formalen Bezeichnungen sowie die zugehörigen Bezugszeichen sind in der nachfolgenden Liste angegeben«.
130063/0702
- 2ο -
Bezugs- Formale Bezeichnungen Abkür
zeichen zungen
3ο1 Hauptspeicher MM
3ο2 SpeicherSteuereinheit MCU
3ο3 Hochgeschwindigkeitspufferspeicher BM1
3ο4 Hochgeschwindigkeitspufferspeicher BM2
4οο Anweisungsabrufeinheit IPU
5 οο Anweisungsdecodiereinheit DU
6οο Adressenberechnungseinheit AU
7οο Operandenabrufeinheit OPU
8οο Ausführungseinheit EU
Der Hauptspeicher (MM) 3o1 in Fig. 4 speichert Anweisungen variabler Länge und Operanden/ die durch die Anweisungen ausgeführt werden sollen, und er tauscht Daten mit den Hochgeschwindigkeitspufferspeichern (BM1, BM2) 3o3 und 3o4 aus, und zwar gesteuert durch die Speichersteuereinheit (MGU) 3o2.
Die MCU 3o2 liefert Adressen über Signalleitungen 32o und überträgt Daten über Signalleitungen 321. Signalleitungen 34o bilden einen Adressenbus zwischen der MCU 3o2 und dem BM, 3o3 sowie dem BM2 3o4, und Signalleitungen 341 bilden einen Datenbus. Der BM- 3o3 liefert Adressen an den Datenbus 34o über Signalleitungen 323 und überträgt Daten über Signalleitungen 324.
Der BM2 3o4 liefert Adressen an den Adressenbus 34o über Signalleitungen 342 und überträgt Daten durch Signalleitungen 343. Seriell geschaltete Blöcke von der Anweisungsabrufeinheit (IFU) 4oo bis zu der Ausführungseinheit (EU) 8oo bilden die pipelinegesteuerte bzw. zeitlich versetzt simultangesteuerte Datenverarbeitungseinheit.
Die Anweisungsabrufeinheit (IFU) 4oo liefert Anweisungs-
130063/0792
adressen an den BM. 3o3 über Signalleitungen 327 und empfängt ausgelesene Anweisungen über Signalleitungen 328, um die Anweisungen abzurufen. Signalleitungen 326 sind Schnittstellensignalleitungen für Steuersignale zwischen der IPU 4oo und dem BM1 3o3.
Die Anweisungsdecodiereinheit (DU) 5oo empfängt Instruktionen, die durch die IFU 4oo abgerufen worden sind und decodiert sie für jeden Operationscode und jeden Operandenspezifizierer. Signalleitungen 329 sind Schnittstellensignalleitungen zwischen der DU 5oo und der IFU 4oo.
Die Adressenberechnungseinheit (AU) 6oo berechnet eine effektive Adresse eines Operanden gemäß einem Operationscode, der durch die DU 5oo decodiert worden ist, sowie decodierte Information eines Operandenspezifizierers und liefert die effektive Adresse an »die Operandenabrufeinheit (OFU) 7oo. Signalleitungen 336 sind Schnittstellensignalleitungen zwischen der DU 5oo und der AU 6oo.
Die OFU 7oo liefert die Operandenadresse, die durch die AU 6oo der BM2 3o4 präsentiert wird, über eine Signalleitung 3'3o und empfängt einen entsprechenden Operanden über eine Signalleitung 335, einen Datenbus 334 und Signalleitungen 331. Signalleitungen 332 sind Schnittstellensignalleitungen für Steuersignale sswischen der OFU 7oo und dem BM2 3o4.
Wenn der BM~ 3o4 Daten auf einer Adresse enthält, die von der OFU 7oo präsentiert wird, liefert er sofort die entsprechenden Daten über die Signalleitungen 335 an den Datenbus 334, und die OFU 7oo erhält die Daten auf dem Datenbus 334 über die Signalleitungen 331. Wenn der BM- 3o4 keine Daten auf der entsprechenden Adresse enthält, führt er über die MCU 3o2 einen Zugriff auf den MM 3o1 aus, um
130063/0792
die Daten auf dieser Adresse auszulesen, und er präsentiert sie der OFU 7oo.
Der Aufbau und die Funktion des Hochgeschwindigkeitspuffer-Speichers sind bekannt, beispielsweise durch "A Guide to The IBM System/37o Model 168" ("Ein Führer zu dem IBM-System/37o Modell 168"), Copyright 1972, International Business Machines Corp.
Die Ausführungseinheit (EU) 8oo erhält die Operanden von der OFU 7oo,um die Anweisungen auszuführen. Signalleitungen 338 sind Schnittstellensignalleitungen zwischen der EU 8oo und der OFU 7oo zum übertragen der Operanden.
Ein Zwischeneinheitsbus 41o ist ein Datenübertragungsbus zwischen den Einheiten IFU 4oo, DU 5oo, AU 6oo und EU 8oo. Er ist mit der IFU 4oo durch Signalleitungen 344, mit der DU 5oo durch Signalleitungen 345, mit der AU 6oo durch Signalleitungen 346 und mit der EU 8oo durch Signalleitungen 347 verbunden.
Diese Einheiten arbeiten im wesentlichen unabhängig zur Ausführung einer pipelineartigen Verarbeitung bzw. einer zeltlich versetzten Simultanverarbeitung der Operanden. 25
Spezifische Ausführungsformen der jeweiligen Einheiten der in Fig. 4 gezeigten Datenverarbeitungseinheit seien nun unter die Bezugnahme auf die Fig. 4A bis 4E erläutert.
Die Fig. 4A zeigt einen Aufbau der IFU 4oo. Die darin.angegebenen Abkürzungen und ihre formalen Bezeichnungen sowie die zugehörigen Bezugszeichen sind in der nachstehenden Liste angegeben.
130063/0792
Bezugs
zeichen
Formale Bezeichnungen Abkürzungen
4o1 Anweisungspuffer IB
4o2 Anweisungsausrichter ALIG
4o3 Steuerschaltung IF-CONT
5 4o4 Abrufzeiger FP
4o5 Wähler SEL
4o6 Inkrementierer INC
Der Abrufzeiger (FP) 4o4 zeigt eine Adresse einer von dem BM- 3o3 abzurufenden Anweisung auf.
Der Anweisungspuffer (IB) 4o1 speichert vorabgerufene Daten.
-J5 Die Steuerschaltung (IF-CONT) 4o3 steuert den Speicherzugriff zu dem BM1 3o3 über Signalleitungen 326, instruiert Schreibstellen in dem IB 4o1 über die Daten, die von dem BM.. 3o3 abgerufen worden sind, sowie über Zulässigkeit oder Verbot des Schreibens über eine Signalleitung 21A, und zeigt an, wenn alle in der DU 5oo zu decodierenden Daten zu dem IB 4o1 abgerufen worden sind, und zwar über die Signalleitung 12A.
Der Aufwärtszähler bzw. Inkrementierer (INC) 4o6 wird dazu benutzt, den Inhalt des FP 4o4 fortzuschreiben bzw. zu aktualisieren.
Der Wähler (SEL) 4o5 wählt Daten, die dem FP 4o4 eingegeben werden sollen. Der Ausgang 23A des SEL 4o5 liefert den Ausgang 22A des INC 4o6, wenn die Anweisung vorabgerufen werden soll, und er liefert eine Verzweigungsadresse auf Signalleitungen 344, die mit einem Zwischeneinheitsbus 41o verbunden sind, wenn eine Verzweigungsadresse während der Ausführung einer Verzweigungsanweisung eingegeben werden soll.
130063/0792
Der Anweisungsausrichter (ALIG) 4o2 arbeitet in der Weise/ daß er den Operandenspezifizierer Bit um Bit in einer Aufeinanderfolge des Decodierens mittels der Adresse 11A ausrichtet. Er kann einen Mehrbitverschieber umfassen oder ein Mehrbitverschieber sein, welcher eine Mehrzahl von Bits gleichzeitig verschieben kann.
Mit 14A sind Signalleitungen bezeichnet, die den Ausgang des ALIG 4o2 an die DU 5oo liefern. Er hat eine Signallinienbreite, die gleich der Anzahl der Bits ist, welche wenigstens einen Satz von Operandenspezifizierern und einen Satz von Operationscodes und einen Satz von Operandenspezifizierern für die Registerart bzw. -mode umfaßt.
Mit 13A sind Signalleitungen bezeichnet, die die Anzahl von zur Decodierung in der DU 5oo erforderlichen Datenbits führen.
Dieses sind die Hauptelemente der IPU 4oo. Es sei darauf hingewiesen, daß viele andere Elemente vorgesehen sind.
Die Fig. 4B zeigt eine spezifische Konfiguration der Anweisungsdecodiereinheit (DU) 5oo. Die darin vorgesehenen Abkürzungen und ihre formalen Bezeichnungen sowie die zugehörigen Bezugszeichen sind in der nachstehenden Liste angegeben.
Bezugs
zeichen
Formale Bezeichnungen Abkürzungen
5o1 Mikroprogrammadressenerzeugungs-
schaltung
ECSAG
5o2 . Wähler SEL
5o3 Operandeninformationsspeicher DCS
5o4 Steuerdatenerzeugungsschaltung ACIG
5o5 Operandenspezifiζiererdecodierer OS-DEC
130063/0792
Formale Bezeichnungen 3119741
Bezugs Abkürzungen
zeichen Registermodedetektor
5ο6 Decodierbitanzahlberechner RD-DEC
5ο7 Datenausrichter DBNC
5ο8 Steuerschaltung D-ALlG
5ο9 Decodierzeiger D-CONT
5to Wähler DP
511 Inkrementierer SEL
512 Berechner der Anzahl der notwendi INC
513 gen Dekodierbits NBNC
Adressenberechnungsprogrammzähl-
514 werfbere chner TPCC
Die Mikroprogrammadressenerzeugungsschaltung (ECSAG) 5o1
erzeugt eine vorlaufende Mikroprogrammadresse 1oB, die in der EU 8oo mittels eines Operationscodes ausgeführt werden soll, der von der IFU 4oo über die Signalleitungen 14Ά
geliefert wird.
Der Operandeninformationsspeicher (DCS) 5o3 speichert Information über Operanden in einem Operationscode, der von den Signalleitungen 14A her über den Wähler (SEL) 5o2 geliefert wird.
Der Operandenspezifiziererdecodierer (OS-DEC) 5o5 decodiert einen Operandenspezifizierer auf den Signalleitungen 14A.
Die Steuerdatenerzeugungsschaltung (ACIG) 5o4 erzeugt
Steuerdaten 18B zum Berechnen einer Adresse eines Operanden in der Adressenberechnungseinheit (AU) 6oo mittels
des Ausgangs 2oB des DCS 5o3 und des Ausgangs 23B des OS-DEC 5o5.
130063/0792
311S741
Der Registerart- bzw. -modedetektor (RD-DEC) 5o6 stellt fest, wenn ein Operandenspezifizierer (OS), welcher dem Operandenspezifizierer (OS) unmittelbar folgt, der durch den OS-DEC 5o5 decodiert worden ist, in der Registermode ist oder nicht. Wenn er in der Registermode ist und die Signalleitungen 34B die gleichzeitige Decodierung von zwei Operandenspezifizierern ermöglichen, liest der RD-DEC 5o6 die Adresse 12E dieses Registers in ein Register (ARR) 61o in der AU 600 ein, die später beschrieben wird, und gibt die Information hierüber an die D-COUNT 5o9, die ECSAG 5o1 und den DBNC 5o7 über die Signalleitungen 26B.
Der Decodierbitanζahlberechner (DBNC) 5o7 erhält den Ausgang 25B von dem OS-DEC 5o5, den Ausgang 26B von dem RD-DEC 5o6 und den Ausgang 21B von dem DCS 5o3 und berechnet die Anzahl von Bits, die aus dem IB 4o1 ausgelesen und in dem gleichen Zyklus decodiert werden sollen.
Der Datenausrichter (D-ALIG) 5o8 erhält den Ausgang 29B des OS-DEC 5o5, den Ausgang 14A des ALIG 4o2 und den Ausgang 21B des DCS 5o3 und richtet die Literaldaten, ein Distanzfeld oder eine absolute Adresse erneut aus, wenn diese bzw. dieses in dem zu decodierenden OS enthalten sind bzw. ist.
Die Steuerschaltung (D-CONT) 5o9 erhält das Signal 12A von der IF-CONT 4o3, den Ausgang 21B von dem DCS 5o3, den Ausgang 26B von dem RD-DEC 5o6 und den Ausgang 15B von dem A-DEC 6o3, um den gesamten Betrieb der DU 5oo zu steuern.
Der Decodierzeiger (DP) 51 ο zeigt eine vorlaufende Adresse: auf, die in diesem Maschinenzyklus decodiert werden soll.
130063/0792
Der Wähler (SEL) 511 wählt Daten aus, die dem DP 51o eingegeben werden sollen. Bei der Ausführung einer Verzweigungsanweisung wird, wenn eine Verzweigungsadresse eingestellt ist, eine auf dem Zwischeneinheitsbus 41o vorgesehene Verzweigungsadresse dem DP 51 ο über den SEL 511 eingegeben.
Der Aufwärtszäh.ler bzw. Inkreinentierer (INC) 512 addiert zu dem Inhalt 11A des DP 51o die Anzahl von Bits 17B der in diesem Zyklus decodierten Anweisung, so daß er eine vorlaufende Adresse 33B erzeugt, die im nächsten fortlaufenden Maschinenzyklus decodiert werden soll.
Der die Anzahl der notwendigen Decodierbits berechnende 5 Berechner (NB]SIC) 513 erhält den Ausgang 24B des OS-DEC 5Ό5 und die Ausgänge 21B und 34B des DCS 5o3 und berechnet die Anzahl von Bits, die in dem IB 4o1 abgerufen worden sein müssen, um in diesem Zyklus decodiert zu werden, und liefert das Ergebnis an die IF-CONT 4o3 über die Signalleitungen 13A.
Der Adressenberechnungsprogrammzählerwertberechner (TPCC) 514 erhält den Ausgang 21B des DCS 5o3 und den Ausgang 24B des OS-DEC 5o5, damit er einen Wert des Programmzäh- . lers berechnet, um die effektive Adressenberechnung in der Adressierungsmode zu benutzen, die dem Programmzähler entspricht (den Wert des Programmzählers, der eine nächste fortlaufende Adresse zu derjenigen des Operandenspezifizierers anzeigt, für den die Adresse berechnet werden soll) und gibt das Ergebnis über die Signalleitungen 16B in ein Register (TPC) 613 ein.
Die Fig. 4C zeigt eine Ausgestaltung der in Fig. 4 dargestellten Adressenberechnungseinhext (AU) 6oo. Die darin verwendeten Abkürzungen und ihre formalen Bezeichnun-
130063/0792
gen sowie die zugehörigen Bezugszeichen sind in der nachstehenden Liste angegeben.
Bezugs
zeichen
Formale Bezeichnungen Abkürzungen
6o1 Register AER
6o2 Register ACR
6o3 Decodierer A-DEC
6o4 Merker ACVF
6o5 Register ARAR
6o6 Registerdatei ARF
6o7 Wähler SEL
6o8 Wähler SEL
6o9 Addierer A-ADR
61o Register ARR
611 Register DR
612 Bustreiber DV
613 Register TPC
Das Register (AER) 6o1 in Fig. 4C hält eine vorlaufende Adresse 1oB eines Mikroprogramms/ das in der ECSAG 5o1 der Fig. 4B erzeugt worden ist, zurück.
Das Register (ACR) 6o2 hält Steuerdaten 18B, die das Ausgangssignal der ACIG 5o4 der Fig. 4B sind, zurück.
Der Decodierer (A-DEC) 6o3 steuert den gesamten Betrieb der AU 6oo durch die Kombination der Ausgänge des ACR 6o2 und des Merkers (ACVF) 6o4.
Der Merker (ACVF) 6o4 arbeitet in der Weise, daß er die Ausführung der Operation der AU 6oo anzeigt. Der ACVF 6o4 wird gesetzt, wenn der AU 6oo mittels des Ausgangs 14B der D-CONT 5o9 ein decodiertes Ergebnis dargeboten wird,
130063/0792
und er wird durch den Ausgang 22C des A-DEC 6o3 zurückgesetzt, wenn die auf dein decodierten Ergebnis basierende Adressenberechnung beendet ist.
Das Register (ARAR) 6o5 speichert eine Adresse 11B eines Registers, auf das Bezug genommen werden soll, wenn die Operandenadresse berechnet wird.
Die Registerdatei (ARF) 606 ist eine Gruppe von Registern, auf die Bezug genommen wird, wenn die Operandenadresse berechnet wird. Der Ausgang 24C, der der Ausgang der ARF ist und dem Adressenausgang 23C von dem ARAR 6o5 entspricht, wird den Wählern (SEL) 6o7 und 608 zugeführt,
Die Wähler (SEL) 6o7 und 608 wählen Eingänge für den Addierer (A-ADR) 6o9.
Der Addierer (A-ADR) 6o9 berechnet die Adresse des Operanden auf der Basis der Signale, die durch die SEL 6o7 und 6o8 ausgewählt worden sind, und liest das Ergebnis in ein Register (MAR) 7o5 über die Signalleitungen 1 4C ein oder liefert das Ergebnis über den Bustreiber (DV) 612 an den Zwischeneinheitsbus 41o.
Das Register (ARR) 61o hält die Adresse 12B des Registers, die in dem Operandenspezifizierer (OS) enthalten ist, zurück.
Das Register (DR) 611 hält die Distanz, die absolute Adresse oder Literaldaten, die in dem Operandenspezifizierer (OS) enthalten sind, zurück und präsentiert sie dem SEL 6o8 über die Signalleitungen 26C.
Das Register (TPC) 613 hält flen Wert des Programmzählers, der in der relativen Adressierungsmode verwendet werden
130063/0792
- 3ο -
soll, zurück und führt den Ausgang 25C dem SEL 6o7 zu, der dem berechneten Programm entspricht.
Die Fig. 4D zeigt eine Ausgestaltung der in Fig. 4 dargestellten Operandenabrufeinheit (OFU) 7oo. Die darin verwendeten Abkürzungen und ihre formalen Bezeichnungen sowie die zugehörigen Bezügszeichen sind in der nachstehenden Liste angegeben.
Bezugs- Formale Bezeichnungen Abkürzungen zeichen
OER
OFCR
OFCVF
7o4 Decodierer OF-DEC
MAR SEL OBR OALIG
7o9 Register ORR
Das Register (OER) 7o1 in Fig. 4D hält eine vorlaufende Adresse 1oC eines Mikroprogramms zurück.
Das Register (OFCR) 7o2 hält den Ausgang 11C des A-DEC 6o3 der Fig. 4C zurück.
Der Merker (OFCVF) 7o3 zeigt die Ausführung der Operation der OFU 7oo an. Er wird durch den Ausgang 12C des A-DEC 6o3 gesetzt, wenn das Ergebnis der Adressenberechnung der OFU 7oo dargeboten wird, und er wird durch den Ausgang 22D des OF-DEC 7o4 zurückgesetzt, wenn die Operation der OFU 7oo zu der Adresse vollendet ist.
Der Decodierer (OF-DEC) 7o4 steuert die gesamte Operation
130083/0792
7o1 Register
7o2 Register
7o3 Merker
7o4 Decodierer
7o5 Register
7o6 Wähler
7o7 Register
7o8 Datenausrichter
7o9 Register
der OFU 7oo mittels der Kombination des Ausgangs 2oD des OFCR 7o2 und des Ausgangs 21D des OFCVF 7o3. Wenn alle Operanden abgerufen worden sind, gibt er das Signal 13D an die Ausführungseinheit 8oo.
5
Das Register (MAR) 7o5 hält die Adresse 14C des Operanden zurück und gibt die Adresse über die Signalleitung 33o an den BM„ 3o4.
Der Wähler (SEL) 7o6 wählt Daten, die in das Register (OBR) 7o7 eingelesen werden sollen, welches den Operanden 23D, der über den SEL 7o6 eingelesen werden soll, zurückhält.
Der Datenausrichter (OALIG) 7o8 erhält die Daten 24D von dem OBR 7o7 und richtet dieselben aus, so daß er das Datenformat 14D erzeugt.
Das Register (ORR) 7o9 hält die Adresse 13C des Registers, die von dem ARR 61o der Fig. 4C geliefert worden ist, zurück.
Die Fig. 4E zeigt eine Ausgestaltung der in Fig. 4 dargestellten Ausführungseinheit (EU) 8oo. Die darin verwendeten Abkürzungen und ihre formalen Bezeichnungen sowie die zugehörigen Bezugszeichen sind in der nachfolgenden Liste angegeben.
Bezugs- Formale Bezeichnungen Abkürzungen
zeichen
,
801 Mikroprogrammsteuereinrichtung MPC
802 Mikroprogrammspeicher ECS
803 Mikroanweisungsregister MIR
804 Wähler , SEL 8o5 Wähler SEL
130063/0792
*: ".» " - --►- 3119741
- 32 - Abkürzungen
Bezugs- Formale Bezeichnungen EALU
zeichen MDR
806 Arithmetik-Logik-Einheit BDV
808 Speicherdatenregister ERF
8o9 Bilateralbustreiber ERAR
5 812 Allgemeinzweckregxsterdatex SEL
813 Register
814 Wähler
Die Fig. 4E zeigt nur Hauptelemente der EU 8oo, und in dieser sind viele andere Elemente vorgesehen, obwohl dieselben hier nicht erläutert sind, weil sie für das Verständnis der vorliegenden Erfindung unwesentlich sind.
Die Mikroprogrammsteuereinrichtung (MPC) 8o1 in Fig. 4E steuert die Speicheradresse des Mikroprogrammspeichers (ECS) 8o2, der das Mikroprogramm 2oE von der Adresse 21E spezifiziert durch die MPC 8o1 erhält und liest es in das Mikroanweisungsregister (MIR) 8o3 ein.
Die Ausgänge des MIR 8o3 werden dem OF-DEC 7o4 der Fig. 4D durch die Signalleitungen 12D, der MPC 8o1 durch die Signalleitungen 22E und den Wählern 8o4 und 814 durch die Signalleitungen 23E bzw. 23E zugeführt. Die Ausgänge des MIR 8o3 werden außerdem vielen anderen Elementen zugeführt, obwohl diese hier weder dargestellt noch erläutert sind, weil sie für das Verständnis der vorliegenden Erfindung unwesentlich sind.
Die Wähler 8o4 und 8o5 wählen Eingangsdaten für die Arithmetik-Logik-Einheit (EALU) 806.
Das Speicherdatenregister (MDR) 808 speichert die Daten 3 5E von dem Bus 25E zeitweilig und führt sie dem BM? 3o4 über die Signalleitungen 333, den Bus 334 und die Signal-
130063/0792
leitungen 335 zu.
Die Allgemeinzweckregisterdatei (ERF) 812 ist eine Gruppe von Registern für allgemeine Zwecke, die von der EALU 8o6 benutzt wird. Sie liefert Daten, die mittels der Adressen von dem Ausgang 33E des SEL 814 ausgelesen worden sind, an den SEL 8o4 und 8o5 über die Signalleitungen 28E.
Das Register (ERAR) 813 hält die Registeradresse 11D zurück, die von dem ORR 7o9 der Fig. 4D her übertragen worden ist.
Der Wähler (SEL) 814 wählt entweder den Ausgang 32E des ERAR 813 oder den Ausgang 24E des MIR 8o3 und führt ihn der ERF 812 über die Signalleitung 33E zu. Der bilaterale Bustreiber (BDV) 8o9 arbeitet in der Weise, daß er den internen Bus 25E der EU 8oo und den Zwischeneinheitsbus 41ο miteinander verbindet, die in der EU 8oo erzeugten Daten zur anderen Einheit überträgt und die von der anderen Einheit übertragenen Daten der EU 8oo zuführt.
Es sei nun ein Beispiel einer Anweisungsausführungsaufeinanderfolge gemäß dem vorliegenden Ausführungsbexspiel unter Bezug auf eine Grundanweisung erläutert.
Die IFU 4oo macht einen Zugriff auf den BM., 3o3 mittels der in dem FP 4o4 enthaltenen Adresse, um die Anweisung vorabzurufen. Wenn der IB 4o1 einen freien Bereich zur Aufnahme der Daten hat, die aus dem BM- 3o3 ausgelesen worden sind, liest er die Daten ein. Wenn er keinen freien Bereich hat, läßt er die Daten unbeachtet. Das Vorhandensein oder Nichtvorhandensein des freien Bereichs wird mittels der IF-CONT 4o3 durch den Inhalt 327 des FP 4o4 und den Ausgang 11A des DP 51 ο bestimmt. Im vorliegenden
130063/0792
Ausführungsbeispiel werden die vom BM1 3o3 ausgelesenen Daten im IB 4o1 gespeichert, wenn der IB 4o1 einen größeren Bereich als die Auslesebreite der Daten vom BM1 3o3 hat.
Der ALIG 4o2 richtet die Daten im IB 4o1 in der Aufeinanderfolge der Adresse aus/ wobei die Position der entsprechenden Adresse des IB 4o1 am Anfang ist, während der Ausgang 11A des DP 51o als die Adresse benutzt wird. Im vorliegenden Ausführungsbeispiel werden die Daten Bit um Bit ausgerichtet,obwohl sie auch Byte um Byte ausgerichtet werden können, wenn die Grundlänge der Anweisung ein Byte ist. Im ersten Decodierzyklus der Anweisung zeigt der DP 51o die Adresse des Operationscodes an. Demgemäß entsprechen die vorlaufenden Daten, die vom ALIG 4o2 herkommen, dem Operationscodefeld, und der Operandenspezifizierer des nächsten fortlaufenden Operanden wird gelesen. Im Zwischendecodierzyklus der Anweisung kann der DP 51 ο die Adresse des Operandenspezifizierers anzeigen. In diesem Falle wird eine Reihe von Daten gelesen, wobei sich der Operandenspezifizierer, welcher der erwähnten Adresse entspricht, am Anfang befindet. Der Ausgang 329 vom ALIG 4o2 hat eine Breite, die breit genug zur Aufnahme von wenigstens einem Satz von Operandenspezifizierern und vom Operationscode ist.
Die DU 5oo decodiert die vom ALIG 4o2 gelieferten Anweisungen. Die DU 5oo decodiert stets den Ausgang 329 des ALIG 4o2. Die Bedingungen für das Vollenden der Decodierung werden unten erläutert.
Die effektive Datenlänge im IB 4o1, die für das Decodieren verfügbar ist, wird mittels einer Differenz zwischen dem FP 4o4 und dem DP 51ο bestimmt. Der FP 4o4 zeigt eine Adresse an, die beim nächsten Speicherzugriff aus dem
130063/0792
Speicher ausgelesen werden soll, und der DP 51o zeigt eine KopfSpeicheradresse an, die decodiert werden soll. Infolgedessen ist der FP 4o4 gleich dem DP 51 ο oder diesem
voraus. Wenn der DP 51o gleich dem FP 4o4 ist, sind keine effektiven Daten im IB 4o1. Wenn der DP 51o dem FP 4o4
nicht gleich ist, zeigt die Differenz zwischen dem FP 4o4 und dem DP 51 ο die effektive Datenlänge an. Die DU 5oo
berechnet die zum Decodieren erforderliche Länge mittels
des NBNC 513 und gibt die Information über das Ergebnis
an die IF-CONT 4o3 in der IFO 4oo über die Signalleitungen 13A. Die IF-CONT 4o3 vergleicht den Inhalt auf den
Signalleitungen 13A mit der Differenz zwischen dem FP 4o4 und dem DP 51o, und wenn der erstere gleich oder kleiner
als die letztere ist, legt sie fest, daß die zum Decodieren erforderliche Länge in dem IB 4o1 enthalten ist und
informiert hierüber die D-CONT 5o9 in der DU 5oo über die Signalleitungen 12A. Wenn die D-COWT 5o9 über die Signalleitungen 12A informiert worden ist, daß die zum Decodieren erforderlichen Daten in dem IB 4o1 enthalten sind, und wenn sie über die Signalleitungen 15B darüber informiert
worden ist, daß die AU 6oo bereit ist, das Decodierergebnis zu empfangen, präsentiert sie der AU 6oo das Decodierergebnis von der DU 5oo, so daß sie die Operation des Decodierzyklus beendet. Wenn die zum Decodieren erforderlichen Daten nicht in dem IB 4o1 enthalten sind, oder wenn
die AU 6oo nicht zum Empfangen des decodierten Ergebnisses bereit ist, dann macht die D-CONT 5o9 den Prozeß in diesem Decodierzyklus unwirksam und wiederholt den gleichen Prozeß im nächsten fortlaufenden Zyklus.
Der Ausgang 17B des DBNC 5o7 wird durch die Formel (1)
repräsentiert:
17B = α + β + γ (T)
130083/0792
und der Ausgang 13A des NBNC 513 wird durch die Formel (2) repräsentiert:
13A - OC + ß + S (2) ,
worin et und ß in folgender Weise definiert sind:
(a) Wenn der DP 5Io die Adresse des Operationscodes anzeigt, gilt
<X = die Anzahl der Bits des Operationscodes,
Üo ß = die Anzahl der Bits des vorlaufenden Operandenspezifizierers, der dem genannten Operationscode folgt.
(b) Wenn der DP 51ο die Adresse des Operandenspezifizierers anzeigt, dann gilt
OL = O
ß = Anzahl der Bits des Operandenspezifizierers.
Γ ist wie folgt definiert:
(a) Wenn zwei Operandenspezifizierer gleichzeitig decodiert werden, dann gilt
y = die Anzahl der Bits des Operandenspezifizierers für die Registermode.
(b) Wenn nur ein Operandenspezifizierer decodiert wird, dann gilt
r = o.
£ is-t wie folgt definiert:
(a) Wenn es zulässig ist, daß gleichzeitig zwei Operandenspezifizierer decodiert werden (wie durch den Ausgang 34B des DCS 5o3 angezeigt), dann gilt
S = die Anzahl von Bits des Operandenspezifizierers für die Registermode.
130063/0792
(b) Wenn die gleichzeitige Decodierung von zwei Operandenspezifizierern nicht zulässig ist, dann gilt
5 = o.
In dem ersten Decodierzyklus der Anweisung entspricht das vorlaufende Feld, das von dem ALIG 4o2 geliefert wird, dem Operationscode. Infolgedessen wird das vorlaufende Feld
beim Zugriff zu dem DCS 5o3 als die Adresse des DCS 5o3
benutzt.
Im DCS 5o3 ist eine Einwortadresse einem Operandenspezifizierer jeder Anweisung zugeteilt. Wie in Fig. 5 gezeigt, umfaßt jedes Ein-Wort im DCS 5o3 ein Feld (AD) ,· das eine Art des Zugriffs {Lesen, Schreiben oder Lesen und Schreiben) von einem aus einer Mehrzahl von Operandenspezifizierern anzeigt, die durch den Operationscode der Anweisung definiert sind, sowie ein Feld (DL), das eine Datenlänge anzeigt, ein Feld (JA), das eine Adresse in dem DCS 5o3
anzeigt, die dem Operandenspezifizierer entspricht, der
dem erwähnten Operandenspezifizierer folgt, wenn er vorgesehen ist, ein Feld (E), das den letzten Operandenspezifizierer der Anweisung anzeigt, und ein Feld (RD), das die Zulässigkeit eines gleichzeitigen Decodierens von
zwei Operandenspezifizierern anzeigt. Es sind auch andere Felder vorgesehent aber diese werden hier nicht erläutert, weil sie sich nicht direkt auf die vorliegende Erfindung beziehen. Eine Anzahl von Worten in dem DCS 5o3, die gleich der Anzahl von Operandenspezifizierern ist,
welche in jeder Anweisung enthalten sind, ist jeder An-
Weisung zugeteilt. Beispielsweise .sind einer Dreioperandenanweisung drei Worte zugeteilt* Es ist möglich, die
Speichergröße des DCS 5o3 dadurch zu vermindern, daß die gleiche Adresse von unterschiedlichen Anweisungen ge-'
teilt wird, wenn ein solches Teilen zulässig ist. In einem ersten Decodierzyklus (t-) einer Anweisung wird der
130063/0792
Operationscode als die Adresse des DCS 5o3 benutzt, und eine erste Operandeninformation, die mittels des Operationscodes spezifiziert ist, eine Adresse (JA) am DCS 5o3 von einem zweiten Operanden und andere Informationen werden vom DCS 5o3 ausgelesen. Der Operandenspezifizierer des ersten Operanden wird vom IB 4o1 mittels des ALIG 4o2 ausgelesen und mittels des OS-DEC 5o5 decodiert. Wenn der Operandenspezifizierer eine Distanz, eine absolute Adresse oder Literaldaten enthält, liest der D-ALIG 5o8 ο diese aus und richtet sie zum Datenformat aus, das dann im DR 611 gespeichert wird. Die DU 5oo gibt die decodierten Ergebnisse in die Register in der AU 6oo ein und setzt den ACVF 6o4, so daß die Adressenberechnung für den Operanden begonnen wird, der mittels des Operandenspezifizierers spezifiziert worden ist, und zwar gemäß dem decodierten Ergebnis. Die Anzahl von Bits der Anweisungen, die in diesem Zyklus decodiert worden sind (die Anzahl von Bits der Operationscodes und der Operandenspezifizierer für die ersten Operanden) wird durch den DBNC 5o7 berechnet, und sie wird mittels des INC 512 zum Inhalt des DP 51 ο addiert, so daß der Inhalt des DP 51 ο fortgeschrieben wird.
Wenn die Anweisung zwei oder mehr Operandenspezifizierer hat, wird die Information des zweiten Operanden, der durch den Operationscode spezifiziert ist, aus dem DCS 5o3 im nächsten Zyklus (tg), der auf den ersten Decodierzyklus (t-) für die Anweisung folgt, ausgelesen, während das Feld JA in der Information, das vom DCS 5o3 im Zyklus t^ ausgelesen worden ist, als eine Adresse benutzt wird.
Gleichzeitig wird der Operandenspezifizierer für den zweiten Operanden mittels des ALIG 4o2 aus dem IB 4o1 ausgelesen, und er wird mittels des OS-DEC 5o5 in einem dem Decodieren des Operandenspezifizierers für den ersten Operanden entsprechenden Vorgang decodiert. Wenn die AU 31 ο das decodierte Ergebnis von dem Operandenspezifizie-
130063/0792
rer für den ersten Operanden erhalten und die Adressenberechnung für den Operanden zu dieser Zeit vollendet hat und bereit ist, die Adressenberechnung für die nächste Adresse anzunehmen/ gibt die DU 5oo das decodierte Ergebnis des Operandenspezifizierers für den zweiten Operanden in die Register in der AU 6oo ein und setzt den ACVF 6o4, so daß bewirkt wird, daß die AU 6oo die Adressenberechnung des mittels des Operandenspesifizierers spezifizierten Operanden für den zweiten Operanden beginnt. Die An-5ο zahl von Bits der in diesem Zyklus decodierten Anweisung (die Anzahl von Bits des Operandenspezifizierers für den zweiten Operanden) wird mittels des DBNC 5o7 berechnet, und sie wird zum Inhalt des DP 51ο hinzugefügt, so daß der Inhalt des DP 5Io fortgeschrieben wird.
Aus der obigen Beschreibung ist ersichtlich, daß die DU 5oo einen Operandenspezifizierer in jedem Maschinenzyklus decodiert und das Decodierergebnis in die Register in der AU 6oo eingibt sowie die AU 6oo anweist, die Adresse des Operanden auf der Basis des Decodierergebnisses zu berechnen. In dem ersten Decodiers^klus der Anweisung wird der Operationscode als die Adresse des DCS 5o3 benutzt, und in den nachfolgenden Zyklen wird die Information, die durch den Operationscode spezifiziert ist, ausgelesen. Die vorlaufende Adresse des Mikroprogramms wird durch die ECSAG 5o1 auf der Basis des Operationscodes bestimmt, und sie wird in das AER 6ö1 eingegeben.
Wenn das Decodierergebnis für den Operandenspezifizierer von der DU 5oo in die Register in der AU 6oo eingegeben und der ACVF 6o4 gesetzt ist, berechnet die AU 6oo die Adresse des Operanden auf der Basis des Decodierergebnisses, gibt die berechnete Operandenadresse in das MAR 7o5 in der OFU 7oo ein, gibt die.Operationssteuerinformation für die OFU 7oo in das OFCR 7o2 ein, und setzt den OFCVF
130063/0792
- 4ο -
7ο3, wodurch bewirkt wird/ daß die OFU 7oo mit dem Speicherzugriff zu der Adresse beginnt, die durch das MAR 7o5 spezifiziert ist. Wenn die Adressenberechnung des Operandenspezifizierers für den Operanden beendet worden ist, empfängt die AU 6oo den dem erwähnten Operandenspezif izierer folgenden nächsten Operandenspezifizierer von der DU 5oo und berechnet die Adresse des nächsten Operandenspezifizierers. Auf diese Weise berechnet die AU 6oo die Adressen der Operanden, die durch die Operandenspeζi~ fizierer spezifiziert sind, fortlaufend, und zwar einen Operandenspezifizierer auf einmal. Die Adressenberechnung für jeden Operandenspezifizierer wird nicht immer in einem Maschinenzyklus beendet, sondern sie kann manchmal mehrere Maschinenzyklen beanspruchen. Nachdem die Adressenberechnung für einen Operandenspezifizierer beendet worden ist, wird die Adressenberechnung für den nächsten Operandenspezif izierer ausgeführt. Es ist nicht notwendig, daß der nächste Operandenspezifizierer zu der gleichen Anweisung gehört, zu welcher der vorhergehende Operandenspezifizierer gehört. Wenn die Adressenberechnung für den vorlaufenden (ersten) Operandenspezifizierer in der Anweisung beendet ist, überträgt die AU 6oo die vorlaufende Adresse des Mikroprogramms der in dem AER 6o1 gespeicherten Anweisung zu dem OER 7o1 der OFU 7oo.
Damit die von der AU 6oo berechnete Adresse zur OFU 7oo übertragen werden kann, muß die OFU 7oo zum Empfang der Daten von der AU 6oo bereit sein. Die OFU 7oo informiert über die Signalleitung 15C, wenn sie bereit ist, die Da-
3ο ten von der AU 6oo zu empfangen. In dem Zyklus der Datenübertragung zur OFU 7oo überwacht die AU 6oo die Signalleitung 15C, und nur wenn sie feststellt, daß die OFU 7oo bereit ist, gibt die AU 6oo die darin erzeugten Daten in die Register in der OFU 7po ein. Wenn die OFU 7oo nicht zum Empfang der Daten bereit ist, macht die AU 6oo den
130063/0792
Vorgang dieses Zyklus unwirksam und wiederholt den gleichen Vorgang im nächsten Zyklus.
Die OFU 7oo beginnt ihre Operation, wenn die berechnete Adresse des Operandenspezifizierers von der AU 6oo in das MAR 7o5 eingegeben, das Operationssteuersignal für die OFU 7oo in das OFCR 7o2 eingegeben und der OFCVF 7o3 gesetzt ist.
To Eine primäre Funktion der OFU 7oo ist der Zugriff zu dem Speicher auf der Basis der Adresse, die von der AU 6oo präsentiert wird, um den Operanden abzurufen. In einer Adressierungsmode (beispielsweise unmittelbare Mode oder Literalmode), in der der Operand von der AU 6oo fertigge-
•J5 macht worden ist, wird der Operand (der dem MAR 7o5 dargeboten werden soll) durch den SEL 7o6 in das OBR 7o7 eingegeben, und es erfolgt kein Zugriff in den Speicher.
In verschiedenen Arten bzw. Moden, welche den Speicherzugriff benötigen, erfolgt ein Zugriff zum BM2 3o4 über die Signalleitungen 332. Die vom BM2 3o4 ausgelesenen Daten werden dem OBR 7o7.über den SEL 7o6 eingegeben. Die Operanden in dem OBR 7o7 werden mittels des OALIG 7o8 ausgerichtet und dann zur EU 8oo übertragen.
Beim Speicherzugriff oder bei der übertragung des vorlaufenden (ersten) Operandenspezifizierers der Anweisung wird die vorlaufende Adresse des Mikroprogramms, das in dem OER 7o1 gespeichert ist, zur MPC 8o1 übertragen.
Um den Operanden, der in der OFU 7oo fertiggemacht worden ist, in das OBR 7o7 einzugeben, darf das OBR 7o7 vor diesem Operanden keine Daten enthalten, d.· h. das OBR 7o7 muß leer sein. Die EU 8oo informiert über die Signalleitung 12D, wenn der Operand in dem OBR 7o7 verwendet
130063/0792
worden ist. Im Zyklus des Eingehens des Operanden in das OBR 7o7 bestimmt die OFU 7oo, ob das OBR 7o7 zum Empfang des Operanden bereit ist. Wenn es bereit ist, gibt die OPU 7oo den Operanden ein, und wenn es nicht bereit ist, macht die OFU 7oo den Vorgang dieses Zyklus unwirksam und wiederholt den gle'chen Vorgang im nächsten Zyklus.
Wie oben beschrieben, wird die Information (Operationscode und Operandenspezifizierer) über die Anweisung, die mittels der DU 5oo decodiert worden ist, durch die AU 6oo und die OFU 7oo zur EU 8oo übertragen.
Die EU 8oo macht einen Zugriff in den ECS 8o2 mittels der vorlaufenden Adresse des Mikroprogramms r die der MPC 8o1 dargeboten worden ist, um das Mikroprogramm zum Beginnen der Ausführung der Anweisung abzurufen. Der durch den Operandenspezifizierer spezifizierte Operand wird von dem OBR 7o7 oder von dem ERAR 813 als eine Registeradresse dargeboten. Wenn der Operand ein Ziel bzw. eine Bestimmung ist, dann wird die Adresse dieses Operanden in das MAR 7o5 eingegeben. Die EU 8oo führt die Anweisung unter Verwendung der Operanden aus, die von der OFU 7oo dargeboten werden. Wenn das Ergebnis in einem Register gespeichert werden soll, dann wird es über den Bus 25E und die Signalleitungen 29E in der ERF 812 gespeichert. Wenn das Ergebnis in einem Speicher gespeichert werden soll, dann wird es zeitweilig in dem MDR 808 gespeichert und dem BM-3o4 über die Signalleitungen 333 zugeführt. Wenn die durch die OFU 7oo dargebotenen Operanden verarbeitet worden sind, dann wird die OFU 7oo hierüber über die Signalleitung 12D informiert, damit die OFU 7oo für den Empfang des nächsten Operanden bereit gemacht wird.
Die Fig. 6 zeigt einen Stufenablauf, der einen Anweisungsfluß und einen Vorgang zum Ausführen der Anweisungen ver-
130063/0792
anschaulicht, und zwar sind hier drei Anweisungen dargestellt.Jede der Anweisungen 1(1) bis 1(3) hat zwei Operandenspezifizierer. Im ersten Zyklus (t1) wird die Anweisung 1(1) abgerufen (IFV '). Im nächsten Zyklus (t„) werden der Operationscode und der Operandenspezifizierer des ersten Operanden decodiert (D* 'I).Im nächsten Zyklus (t3) wird die effektive Adresse des ersten Operanden in Übereinstimmung mit dem Decodierergebnis berechnet (A 1), und der Operandenspesifizlerer des zweiten Operanden wird deeodiert (Dλ ' 2) . Im nächsten Zyklus (tj wird der erste
CD *
Operand abgerufen {OF M), und die effektive Adresse des zweiten Operanden wird berechnet (Ä 2). In dem gleichen Zyklus werden der Operationscode und der Operandenspezifizierer des ersten Operanden der Anweisung 1(2) deeodiert
(2)
(D"v 1). In dem nächsten Zyklus (te) wird der zweite Ope-
(1)
rand der Anweisung 1(1) abgerufen (OF 2), und die effektive Adresse des ersten Operanden der Anweisung 1(2) wird
(2)
berechnet (A 1) f und der Operanclenspezif izierer des
(2) zweiten Operanden der Anweisung 1(2) wird deeodiert (D '2) Int nächsten Zyklus (t£) wird die Anweisung 1(1) ausgeführt
(1)
(E '), und der erste Operand der Anweisung 1(2) wird ab-
(2)
gerufen (OFv Ί), die effektive Adresse des zweiten Ope-
12)
randen wird berechnet (A 2), und der Operationscode und der Operandenspezifizierer des ersten Operanden der Anweisung 1(3) werden deeodiert (D* '1}B Entsprechende Vorgänge werden in den Zyklen t_ - t11 ausgeführt. Die Abrufungen (IFlz;, IF^ ;) der Anweisungen 1(2) und 1(3), die in Fig. 6 durch gestrichelte Linien dargestellt sind, zeigen an, daß.Anweisungsvorabrufungen selbst darm ausgeführt werden, wenn freie Bereiche in dem IB 4o1 eine vorbestimmte Anzahl von Bits überschreiten.
Während die Fig„ 6 ein Beispiel zeigt, in dem der Effektivadressenberechmangszyklus^ für den Operanden und der Operandenabrufzyklus in einem Zyklus jeweils beendet wer-
130063/070-2
den, kann es sein/ daß der Effektivadressenberechnungszyklus nicht in einem Zyklus beendet ist, was von der Adressierungsart bzw. -mode abhängt r oder der Operand kann unter Bezugnahme auf den Speicher der indirekten Adressierungsart bzw. -mode (in der eine Operandenadresse durch die erste Speicherbezugnahme präsentiert wird) zweifach abgerufen werden. Demgemäß können der Anweisungsfluß und die Ausführung in Abhängigkeit von der Adressierungsart variieren.
Die Fig. 7 zeigt einen Stufenablauf/ der einen Anweisungsfluß und die Ausführung der Anweisungen veranschaulicht, wenn Dreioperanden-Anweisungen fortlaufend ausgeführt werden, und zwar sind in Fig. 7 drei Anweisungen 1(1), 1(2) und 1(3) wie im Falle der Fig. 6 dargestellt. Die Ausführung der Anweisung in jedem Zyklus ist gleichartig wie diejenige, die bei den fortlaufenden Zweioperanden-Instruktionen ausgeführt wird, wie sie anhand der Fig, 6 erläutert worden ist. Bei der Dreioperanden-Anweisung jedoch wird der dritte Operand nicht abgerufen, weil er gewöhnlich nicht ein Ursprungs- bzw. Primäroperand, sondern ein Ziel- bzw. Bestimmungsoperand ist. Der Stufenablauf bei den Anweisungen, die mehr als drei Operanden haben, ist im wesentlichen der gleiche wie der Stufenablauf bei Zweioperanden- und Dreioperanden-Anweisungen, wie er oben in Verbindung mit den Fig. 6 und 7 beschrieben worden ist. Eine Kombination von Anweisungen, die unterschiedliche Anzahlen von Operandenspezifizierern haben, kann auch in einer entsprechenden Weise ausgeführt werden.
Obwohl hier Zweioperanden- und Dreioperanden-Anweisungen veranschaulicht worden sind, sei darauf hingewiesen, daß die Stufenabläufe für Einoperanden-Anweisungen und für Anweisungen, die mehr als drei Operanden haben, im wesentliehen die gleichen wie die in den Fig. 6 und 7 gezeigten
130063/0792
.,Λ W - Λ A
Stufenabläufe sind.
Es seien nun die Vorgänge des gleichzeitigen Decodierens von zwei Operandenspezifizierern und die nachfolgenden Vorgänge in einer Anweisung, welche ein gleichzeitiges Decodieren von zwei Oparandenspezifizierern ermöglicht, erläutert.
Das gleichzeitige Decodieren von zwei Operandenspezifizierern wird nur bei der Anweisung ausgeführt, welche das gleichzeitige Decodieren von zwei Operandenspezifizierern gestattet, obwohl es auch für alle Anweisungen ausgeführt werden kann.
•55 Das gleichzeitige Decodieren von zwei Operandenspezifizierern wird unter der Bedingung ausgeführt, daß die Adressierungsart des letzten Operandenspezifizierers die Registermode ist, wenn ein Operandenspezifizierer, der dem letzten Operandenspezifizierer vorhergeht, decodiert wird. Wenn die Adressierungsart nicht die Registermode ist, wird das gleichzeitige Decodieren nicht ausgeführt, sondern es wird nur der Operandenspezifizierer, der dem letzten Operandenspezifizierer vorhergeht, decodiert. Als ein Beispiel sei eine Addierungsanweisung, die zwei Operandenspezifizierer hat, erläutert. In der Addierungsanweisung wird der Inhalt des ersten Operanden zum Inhalt des zweiten Operanden addiert, und ihre Summe wird an der Stelle des zweiten Operanden gespeichert. Infolgedessen ist der erste Operand ein Leseoperand, und der zweite Operand ist ein Lese- und Schreiboperand. Muster des DCS 5o3 für die Addierungsanweisung sind in Fig. 8 gezeigt, wonach die Information des ersten Operanden und die Adresse des zweiten Operanden über den DCS 5o3 bei der Adresse des DCS 5o3 entsprechend dem- Inhalt des Operationscodes enthalten sind. Da der erste Operand der Operand ist,
13 0063/0 7 02
welcher dem letzten Operanden vorangeht, enthält das Feld RD des DCS 5o3 eine "1" (welche die Zulässigkeit des gleichzeitigen Decodierens von zwei Operandenspezifizierern anzeigt). Die Information des zweiten Operanden wird bei der Adresse des DCS 5o3 für den zweiten Operanden gespeichert, und das Feld E enthält eine "1", die anzeigt, daß der zweite Operand der letzte Operand der Anweisung ist. Die Fig. 9 zeigt einen Stufenablauf für den Fall, daß Addieranweisungen, welche gleiche Arten von Operandenspezifizierern haben, fortlaufend ausgeführt werden, und daß die zweiten Operanden von der Registermode sind. Wenn die zweiten Operanden nicht von.der Registermode sind, ist der Stufenablauf nicht der in Fig. 9 gezeigte, sondern der Stufenablauf ist vielmehr gleichartig dem in Fig. 6 gezeigten Stufenablauf.
Es sei nun unter Bezugnahme auf Fig. 9 die Ausführung der Anweisungen erläutert. Im ersten Zyklus (t.) werden die Daten (die Anweisung) auf der Adresse, welche die Änwei-
sung 1(1) enthält, abgerufen (IF^ '). Im nächsten Zyklus (t2) werden der Operationscode und der Operandenspezifizierer des ersten Operanden der Anweisung 1(1) decodiert. Wenn das Feld RD des DCS 5o3 eine "1" enthält, und der RD-DEC 5o6 in der DU 5oo feststellt, daß die Adressierungsart des Operandenspezifizierers des zweiten Operanden, der dem Operandenspezifizlerer des ersten Operanden folgt, die Registermode ist, liest der RD-DEC 5o6 eine Registeradresse von dem Operandenspezifizierer des zweiten Operanden aus und gibt sie in das ARR 61ο in der AU 6oo, damit die beiden Operandenspezifizierer gleichzeitig
(1)
decodiert werden (D1 & D2v ). Im nächsten Zyklus (t.,) berechnet die AU 6oo die Adresse des ersten Operanden der Anweisung 1(1) (A1 ) auf der Basis des Decodierergebnisses und überträgt die berechnete Adresse zu der OFU 7oo und überträgt eine Registeradresse des zweiten Operanden
130063/0792
der Anweisung 1(1) zum ORR 7o9 in der OFU 7oo. In dem gleichen Zyklus t- decodiert die DU 5oo die Anweisung 1(2) (Dl & D2V ') in der gleichen Weise wie im Zyklus t2· Im nächsten Zyklus ("t.) ruft die OFU 7oo den ersten Operanden der Anweisung 1(1) (0F1v ') ab und überträgt die Registeradresse des zweiten Operanden der Anweisung 1(1) zur EU 8oo. In dem gleichen Zyklus t. berechnet die AU 6oo die Adresse des ersten Operanden der Anweisung 1(2)
(2)
(A 1 ') und überträgt die Adresse zur OFU 7oo und über-
•jo trägt außerdem die Registeradresse des zweiten Operanden der Anweisung 1(2) zur OFU 7oo. In dem gleichen Zyklus t.
(2) decodiert die DU 5oo die Anweisung 1(3) (D1 & D2v ') in dar gleichen Weise wie die Decodierung der Anweisung 1(1) im Zyklus t2· Im nächsten Zyklus Ct5) empfängt die EU 800 die Registeradressen des ersten Operanden der Anweisung I (T) und des zweiten Operanden der Anweisung 1(1) von der OFU 7oo zur Ausführung der Anweisung 1(1) (Ev ')· In dem gleichen Zyklus te ruft die OFU 7oo den ersten Operanden
17)
der Anweisung 1(2) ab (0F1 ) und überträgt die Registeradresse des zweiten Operanden der Anweisung 1(2) zur EU
800. In dem gleichen Zyklus t« berechnet die AU 6oo eine
13) Adresse des ersten Operanden der Anweisung 1(3) (A1v ') und überträgt die Adresse zur OFU 7oo und überträgt außerdem eine Registeradresse des zweiten Operanden der Anweisung 1(3) zur OFU 7oo. In den folgenden Zyklen tg und tj werden gleichartige Vorgänge ausgeführt. Obwohl der effektive Adressenberechnungszyklus für den Operanden und der Operandenabrufzyklus in dem Beispiel der Fig. 9 jeweils in einem Zyklus beendet sind, kann der effektive Adressenberechnungszyklus auch nicht in einem Zyklus beendet sein, was von der Adressierungsart abhängt, oder es kann eine Mehrzahl von Zyklen erforderlich sein, wenn erforderliche Daten nicht in dem BM2 3o4 im Operandenabrufzyklus enthalten sind und von dem MM 3o1 abgerufen werden müssen. Demgemäß können verschiedene Anweisungsflüsse und
130063/0792
Ausführungsvorgänge einbezogen sein.
Die Fig. 1o zeigt einen Stufenablauf, der einen Anweisungsfluß und die Ausführung der Anweisungen veranschaulicht, wenn die gleiche Art von Dreioperanden-Anweisungen fortlaufend ausgefi'hrt wird. Entsprechend der Fig. 9 sind in Fig. 1o drei Anweisungen 1(1), 1(2) und 1(3) dargestellt. Außerdem ermöglicht entsprechend der Fig. 9 jede der Anweisungen eine gleichzeitige Decodierung von zwei
■]O Operandenspezifizierern in einem Decodierzyklus eines Operanden, der dem letzten Operanden vorhergeht, wenn der letzte Operand von Registermode ist. Die Fig. To zeigt den Stufenablauf, wenn der letzte Operand (der dem dritten Operanden entspricht) von Registermode ist. Wenn der dritte Operand nicht von Registermode ist, ist der Stufenablauf nicht der gleiche, wie in Fig. 1o zeigt, sondern der Stufenablauf entspricht vielmehr dem in Fig. 7 gezeigten. In den beiden Operandenanweisungen, die in Fig. 9 dargestellt sind, werden zwei Operandenspezifizierer in dem Decodierzyklus für den Operandenspezifizierer des ersten Operanden decodiert, jedoch werden in dem Dreioperanden-Anweisungen, die in Fig. 1o dargestellt sind, zwei Operandenspezifizierer in dem Decodierzyklus für den Operandenspezifizierer des zweiten Operanden decodiert. Dieser Unterschied ergibt sich aufgrund der Tatsache, daß der Operand, der dem letzten Operanden vorangeht, der erste Operand in den Zweioperanden-Anweisungen ist, während es der zweite Operand in den Dreioperanden-Anweisungen ist, und das ist kein wesentlicher Unterschied.
Obwohl die Vorgänge für die Zweioperanden-Anweisungen und die Dreioperanden-Anweisungen in Fig. 9 bzw. 1o dargestellt worden sind, sei darauf hingewiesen, daß bei den Anweisungen, die vier oder mehr Operanden haben, die beiden Operandenspezifizierer gleichzeitig in dem Deco-
130083/0792
dierzyklus des Operandenspezifizierers des Operanden, der dem letzten Operanden der Anweisung vorhergeht, decodiert werden können,wenn der letzte Operand von der Registermode ist. Eine Kombination von Anweisungen, die unterschiedliehe Anzahlen von Operanden haben, kann in entsprechender Weise ausgeführt werden.
Es sei hier darauf hingewiesen, daß der Begriff "Pipelinesteuerung", der an sich einen speziellen, nichtübersetzba-
To ren Begriff der Rechnersprache darstellt und hilfsweise durch den Begriff der"zeitlich versetzten SihmItansteuerung" eingedeutscht worden ist, eine Art der fortgeschrittenen Steuerung für Hochgeschwindigkeitsrechner bezeichnet. Diese Bezeichnung kommt von der Tatsache, daß jeweilige
•j 5 Schritte von Anweisungen eines Programms (Fluid) aufeinanderfolgend und gleichzeitig (Strömungen in einer Pipeline bzw. Rohrleitung) ausgeführt werden. Beispielsweise werden die Ausführung einer ersten Anweisung, die Adressenmodifizierung einer zweiten Anweisung und der Operandenabruf einer Wortanweisung gleichzeitig ausgeführt. Die entsprechenden anderen Begriffe im Zusammenhang mit dem Begriff "Pipeline" sind entsprechend der vorstehenden Erläuterung aufzufassen. So ist unter einer "Pipelinedatenverarbeitung" bzw. "Pipelineverarbeitung11 insbesondere eine "zeitlieh versetzte Simultanverarbeitung" bzw. "zeitlich versetzte Simultandatenverarbeitung" zu verstehen, während mit dem Begriff der "pipelinegesteuerten Datenverarbeitungseinheit" insbesondere eine "zeitlich versetzt simultangesteuerte Datenverarbeitungseinheit" gemeint ist und der Begriff des "Verarbeitens einer Mehrzahl von Operanden in Pipelines" insbesondere "das Verarbeiten einer Mehrzahl von Operanden in zeitlich versetzter Simultanverarbeitungsweise" bezeichnen soll. So läßt sich die Er-" findung, die auch als "Datenyerarbeitungseinheit mit pipelineartigen bzw. in pipelineverarbeiteten Operanden"
130063/0792
bezeichnet werden kann, insbesondere dahingehend eingedeutscht charakterisieren, daß es sich um eine "Datenverarbeitungseinheit für zeitlich versetzt simultan ver arbeitbare Operanden bzw. zur zeitlich versetzten simul tanen Verarbeitung von Operanden" handelt.
130063/0792
Leerseite

Claims (1)

  1. SCHIFF v.FÜNER STREHL SCH ÜBEL-HOPF EBBINGHAUS FINCK
    MARJAHILFPLAT2 5*3, MÜNCHEN OO
    POSTADRESSE: POSTFACH ΘΒ OI 6O. D-8OOO MÜNCHEN SS *3 1 "1 Q 1J /
    ALSO PROFESSIONAL REPRESENTATIVES BEFORE THE EUROPEAN PATENT OFFICE
    KARL I.UDWI3 »CHIFF <1βθ4-197Β)
    DIPL. CHEM. DR. ALEXANDER -/. FUNSR
    DIPL. INO. PE-TER ÜTREHL
    DIPL. OHEM. OR. UHSULA SCHÜBEL· HOPF
    DIPL. INS, CJIETe" F.BSINSHAUS
    DR. INB. DIETER FINCK
    7 ELEf=ON (OBß) <t8 2O 04
    TELEX B-23O65 AURO D
    TELEGRAMME AUP-OMAROPAT MÜNCHEN
    HITACHI, LTD. . DEA-I49o5 SP/BR
    18. Mai 1981
    üatenverarbeitungseinheit
    Patentansprüche
    J Datenverarbeitungseinheit zum Ausführen von Anweisungen variabler Länge, in denen Operandenspezifizierer zum Spezifizieren von Adressierungsarten von Operanden unabhängig von Operationscodes zum Bestimmen von Operationen sind, gekennzeichnet durch:
    (A) eine Anweisungsabrufeinriehfcung (4oo), die mit einer Speichereinrichtung (3o3) zum Speichern von Anweisungen und Operanden verbunden ist; wobei diese Anweisungsabrufeinriehtung (4oo) folgendes aufweist:
    (a) eine Anweisungsvorabrufeinrichtung (4o4) zum Vorabrufen und Zurückhalten von Anweisungen von der Speichereinrichtung (3o3), und
    (b) eine Anweisungsausrichtungseinrichtung (4o2) zum Ausrichten wenigstens eines Operandenspezifizie-
    130063/0792
    rers in einem Maschinenzyklus von der Anweisungsvorabrufeinrichtung [AoA);
    (B) eine Decodierungseinrichtung (5oo), die mit der Anweisungsabrufeinrichtung (4oo) verbunden ist; wobei die Decodierungseinrichtung (5oo) folgendes aufweist:
    (a) eine Operationscode-Decodierungseinrichtung (5o6), die mit der Anweisungsausrichtungseinrichtung verbunden ist/ wobei die Operationscode-Decodierungseinrichtung (5o6) die Operandenspezifizierer bestimmt, die in der Anweisung enthalten sind, welche durch die Anweisungsausrichtungseinrichtung (4o2) ausgerichtet worden ist, sowie die Funktion der Anweisung bestimmt, und
    (b) eine Operandenspezifizierer-Decodierungseinrichtung (5o5), die mit der Anweisungsausrichtungseinrichtung verbunden ist, wobei die Operandenspezifizierer-Decodiereinrichtung (5o5) den Operandenspezifizierer decodiert, der mittels der Anweisungsausrichtungseinrichtung (4o2) in dem gleichen Maschinenzyklus ausgerichtet worden ist; und
    (C) eine Adressenberechnungseinrichtung (6oo), die mit der Decodierungseinrichtung (5oo) verbunden ist; wobei die Adressenberechnungseinrichtung (6oo) eine effektive Adresse des Operanden gemäß Information von einem Operationscode und Operandenspezifizierern, die durch die Decodierungseinrichtung (5oo) in dem vorherigen Maschinenzyklus decodiert .worden sind, berechnet; so daß dadurch die Anweisungsabrufeinrichtung (4oo), die Decodierungseinrichtung (5oo) und die Adressenberechnungseinriehtung (6oo) ihre Prozesse parallel ausführen können, sowie die Decodierungseinrichtung (5oo) und die Adressenberechnungseinrichtung (6oo) ihre Prozesse für jeden Operandenspezifizierer ausführen.
    2. Datenverarbeitungseinheit nach Anspruch 1, dadurch
    130063/0792
    gekennzeichnet / daß die Anweisungsvorabrufeinrichtung (4o4) folgendes aufweist:
    (a) eine Anweisungspuffereinrichtung (4o1), die mit der Speichereinrichtung (3o3) verbunden ist; wobei die Anweisungspuffereinrichtung (4o1) Anweisungen zurückhält, die von der Speichereinrichtung (3o3) vorabgerufen worden sind; und
    (b) einen Abrufzeiger (4o4), der mit der Speichereinrichtung (3o3) verbunden ist; wobei der Abrufzeiger (4o4) der Speichereinrichtung (3o3) eine Adresse einer Anweisung zeigt, die zu der Anweisungspuffereinrichtung (4o1) vorabgerufen werden soll.
    3. Datenverarbeitungseinheit nach Anspruch 2, d a -
    durch gekennzeichnet, daß die Anweisungsausrichtungseinrichtung (4o2) folgendes umfaßts
    (a) einen Decodierzeiger (51 o), welcher eine vorlaufende Adresse zeigt, die decodiert werden soll; und
    (b) eine Ausrichtungseinrichtung (5o8), die mit der Anweisungspuffereinrichtung (4o1) und dem Decodierzeiger (51o) verbunden istj wobei die Ausrichtungseinrichtung (5o8) fortlaufende Daten ausrichtet, und zwar von der Adresse der Anweisungspuffereinrichtung (41o), die ihr von dem Decodierzeiger (51o) gezeigt worden sind, derart, daß die Daten wenigstens einen Operandenspezifizierer aufweisen.
    4. Datenverarbeitungseinheit nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß die Anweisungsvorabrufeinrichtung weiter folgendes aufweist: eine Anweisungsabrufsteuereinrichtung (4o3), die mit der Speichereinrichtung (3o3) verbunden ist; wobei die Anweisungssteuereinrichtung (4o3) eine Anweisung von dem Speicher (3o3) vorabruft,,wenn die Anweisungspuffereinrichtung (4o1) einen freien Bereich hat.
    130063/0792
    -A-
    5. Datenverarbeitungseinheit nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, daß- die Anweisungsaüsrichtungseinrichtung folgendes aufweist:
    (a) einen Decodierzeiger (51o) zum Zeigen einer vorlaufenden Adresse, die decodiert werden soll; und
    (b) eine Ausrichtungseinrichtung (5o8), die mit der Anweisungspuffereinrichtung (4o1) und dem Decodierzeiger (5To) verbunden ist; wobei die Ausrichtungseinrichtung (5o8) fortlaufende Daten ausrichtet, und zwar von der Adresse der Anweisungspuffereinrichtung (4o1), die ihr durch den Decodierzeiger (51o) gezeigt worden sind, derart, daß diese Datenoperationscodes und wenigstens einen Operandenspezifizierer in einem ersten Decodierzyklus einer An-Weisung enthalten, und wenigstens einen Operandenspezifizierer in dem nachfolgenden Decodierzyklus der Anweisung.
    6. Datenverarbeitungseinheit nach Anspruch 3, 4 oder 5, dadurch. gekennzeichnet, daß die Ausrichtungseinrichtung (5o8) einen Mehrbitverschieber aufweist, der eine Mehrzahl von Bits gleichzeitig verschieben kann, wobei die Anzahl, wieviel Male verschoben worden ist, mittels des Decodierzeigers (51o) angezeigt wird.
    7. Datenverarbeitungseinheit nach Anspruch 4, 5 oder 6, dadurch gekennzeichnet, daß die Anweisungsabrufsteuereinrichtung (4o3) weiter mit der Decodiereinrichtung (5oo) verbunden ist, um eine vorabgerufene Datenlänge in der Anweisungspuffereinrichtung (4o1) mit einer Datenlänge, die zum Decodieren notwendig ist, zu vergleichen, um die Erlaubnis zum Decodieren an die Decodiereinrichtung (5oo) zu geben.
    130083/0792
    8, Datenverarbeitungseinheit nach Anspruch 7, dadurch gekennzeichnet, daß die Decodiereinrichtung (5oo) weiter folgendes aufweist;·
    (a) eine Decodierlängenberechnungseinrichtung (513),
    die mit der Anweisungsabrufsteuereinrichtung (4o3) verbunden ist; wobei die Decodierlängenberechnungseinrichtung (513) die Länge der Anweisung berechnet, die zum Decodieren erforderlich ist, und die berechnete Länge an die Anweisungsabrufsteuereinrichtung· (4o3) liefert; und
    (b) eine Decodiersteuereinrichtung (5o9), die mit der Anweisungsabrufsteuereinrichtung (4o3) und der Adressenberechnungseinrichtung (6oo) verbunden ist; wobei die Decodiersteuereinrichtung (5o9) Signale von der Anweisungsabrufsteuereinrichtung (4o3) und der Adressenberechnungseinrichtung (6oo) erhält, um eine Gesamtoperation der Decodiereinrichtung (5oo) zu steuern.
    9. Datenverarbeit'ungseinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Adressenberechnungseinrichtung (6oo) folgendes aufweist:
    (a) eine Decodierergebnis-Zurückhaltungseinrichtung, die mit der Decodiereinrichtung (5oo) verbunden ist; wobei die Decodierergebnis-Zurückhaltungseinrichtung Information, die mittels der Decodiereinrichtung (5oo) decodiert worden ist, zurückhält;
    (b) eine Berechnungseinrichtung (6o9), die mit der Decodierergebnis-Zurückhaltungseinrichtung verbunden ist; wobei die Berechnungseinrichtung (6o9) eine Ausführungsadresse eines Operanden berechnet, und zwar basierend auf der Information von der Decodierergebnis-Zurückhaltungseinrichtungj und (c) eine Adressenberechnungssteuereinrichtung (6o3),
    130063/0792
    — Ό *™
    die mit der Decodiersteuereinrichtung (5o9) verbunden ist? wobei die Adressenberechnungssteuereinrichtung (6o3); operativ ist, wenn ein Decodierergebnis für wenigstens einen Operandenspezifizierer in die Decodierergebnis-Zurückhaltungseinrichtung eingegeben wird/ um zu bewirken, daß die Berechnungseinrichtung (6o9) die effektive Adresse des Operanden basierend auf dem Decodierergebnis berechnet und der Decodiersteuereinrichtung (5o9) Information liefert, die anzeigt, ob das Decodierergebnis in die Decodierergebnis-Zurückhaltungseinrichtung eingegeben werden kann.
    10. Datenverarbeitungseinheit nach Anspruch 8, d a -
    durch gekennzeichnet, daß die Decodier längenberechnungs einrichtung (513) die Summe aus der Länge des Operationscodes und der Länge des Operandenspezifizierers des ersten Operanden, der dem Operationscode folgt, wenn der Operationscode in dem Decodierprozeß enthalten ist, berechnet; und daß sie die Länge des Operandenspezifizierers berechnet, wenn der Operationscode nicht in dem Decodierprozeß enthalten ist; und daß sie die berechnete Länge an die Anweisungsabrufsteuereinrichtung (4o3) liefert.
    11. Datenverarbeitungseinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Decodierergebnis-Zurückhaltungseinrichtung folgendes aufweist:
    (a) eine Steuerdatensignal-Speichereinrichtung (613) zum Festhalten von Steuerdaten, die zum Berechnen der Adresse notwendig sind;
    (b) eine Registeradressensignal-Speichereinrichtung (6o5) zum Festhalten von Registeradressen, die in dem Operandenspezifizierer enthalten sind;
    130063/0792
    (c) eine Verschiebungssignal-Speichereinrichtung (6TT) zum Festhalten der Verschiebung, der Literaldaten und absoluten Adresse, die in dem Operandenspezifizierer enthalten sind; und
    (d) eine Adressenberechnungsstartsignal-Signalspeichereinrichtung (6o6) zum Festhalten eines Signals, das den Start der Adressenberechnung des Operanden basierend auf dem Decodierergebnis anzeigt.
    12. Datenverarbeitungseinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Decodiereinrichtung (5oo) weiter folgendes aufweist; eine Adressenberechnungsprogrammzählwert-Berechnungseinrichtung (514), die mit der Anweisungsabrufeinrichtung (4oo) und der Adressenberechnungseinrichtung (6oo) verbunden ist; wobei die Adressenberechnungsprogrammzählwert-Berechnungseinrichtung (514) einen Programmzählwert berechnet, welcher in der Adressenberechnung in einer Programmrelativart bzw. -mode des zu decodierenden Operandenspezifizierers verwendet wird, und zwar basierend auf den Decodierergebnissen der Operationscode-Decodiereinrichtung (5o6) und der Operandenspezifizierer-Decodiereinrichtung (5o5) und der Information der vorlaufenden Adresse e die von dem Decodier zeiger (51 o) decodiert x^erden soll, und den berechneten Zählwert an die Adressenberechnungseinrichtung (6oo) liefert.
    13. Datenverarbeitungseinheit nach einem der Ansprüche T bis 12, insbesondere nach Anspruch 1 oder 3f dadurch gekennzeichnet, daß die Decodiereinrichtung (5oo) weiter folgendes aufweist: (a) eine Decodierzeigeraktualisierungs- bzw. -fortschreibeeinrichtung (512), die mit dem Decodierzeiger (51o) verbunden ist; wobei die Decodierzei-
    130063/0792
    ν ν**
    — Q —
    geraktuälisierungs- bzw. fortschreibeeinrichtung (512) zu dem Inhalt des Decodierzeigers (51o) die Länge der im Decodierzyklus decodierten Anweisung hinzufügt und die resultierende Summe dem Decodierzeiger (51o) als eine vorlaufende Adresse, die als nächstes zu decodieren ist, einstellt bzw. setzt; und
    (b) eine Anweisungslängenberechnungseinrichtung (513), die mit der Operationscode-Decodiereinrichtung (5o6) und der Operandenspezifizierer-Decodiereinrichtung (5o5) verbunden ist; wobei die Anweisungslängenberechnungseinrichtung (513) eine Summe aus der Länge des Operationscodes und der Länge eines Operandenspezifizierers eines ersten Operanden, welcher dem Operationscode in einem Decodierzyklus folgt, der den Operationscode enthält, berechnet, sowie die Lange des Operandenspezifizierers in einem Decodierzyklus, der keinen Operationscode enthält, berechnet, und die berechnete Länge der Decodierzeigeraktualisierungs- bzw. -fortschreibeeinrichtung (512) als decodierte Anweisungslänge liefert.
    14. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß die Operandenspezifizierer-Decodiereinrichtung (5o5) folgendes aufweist:
    (a) eine erste Operandenspezifizierer-Decodiereinrichtung zum Decodieren des Operandenspezifizierers, der mittels der Anweisungsausrichtungseinrichtung (4o2) ausgerichtet worden ist; und
    (b) eine zweite Operandenspezifizierer-Decodiereinrichtung zum Decodieren des nächsten fortlaufenden Operandenspezifierers, welcher auf den von der ersten Operandenspezifizierer-Decodiereinrichtung decodierten Operandenspezifizierer folgt.
    130063/0792
    15. Datenverarbeitungseinheit nach einem der Ansprüche 1 bis 14, insbesondere nach Anspruch 1 oder 14, dadurch gekennzeichnet, daß die Operationscode-Decodiereinrichtung (5ö6) eine Simultandecodierzulassungseinrichtung zum Abgeben eines Signals zur Ermöglichung einer gleichzeitigen Decodierung von zwei Operanden aufweist; wobei dieses Zulassungssignal der zweiten Operandenspezifizierer-Decodiereinrichtung zugeführt wird; und wobei diese zweite Operandenspezifizierer-Decodiereinrichtung den nächsten fortlaufenden Operandenspezifizierer decodiert, der auf den Operandenspezif izierer folgt, welcher durch die erste Operandenspezif izierer-Decodiereinrichtung decodiert worden ist, und zwar nur dann, wenn ihr das Zulassungssignal zugeführt wird.
    16. Datenverarbeitungseinheit nach Anspruch 15/ dadurch gekennzeichnet, daß die Simultandecodierzulassungseinrichtung das Zulassungssignal nur dann liefert, wenn der Operandenspezifizierer, der mittels der zweiten Operandenspezifizierer-Decodiereinrichtung decodiert worden ist, eine Registerbezeichnungsart ist.
    17. Datenverarbeitungseinheit nach einem der Ansprüche 8 bis 16, dadurch gekennzeichnet, daß die Instruktionslängenberechnungseinheit {513) operativ ist, wenn die gleichzeitige Decodierung von zwei Operanden ermöglicht wird, indem sie weiter die Länge des Operandenspezifizierers der Registerbezeichnungsart addiert und die resultierende Summe der Anweisungssteuereinrichtung zuführt.
    18. Datenverarbeitungseinheit nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet,
    130063/0792
    -1ο-
    daß die AnweisiyöigslängenbereGhnungseinrichtung (513) operativ ist/ wenn die gleichzeitige Decodierung der beiden Operanden ermöglicht wird, indem sie weiter die Länge des Opejrändenspezifizierers der Registerbezeichnungsart addiert und die resultierende Summe der Decodierzeigeraktualisierungsbzw. -fortschreibeeinrichtung (512) zuführt.
    130063/0792
DE3119741A 1980-05-19 1981-05-18 Datenverarbeitungseinheit Expired DE3119741C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6526780A JPS56162153A (en) 1980-05-19 1980-05-19 Pipeline control system
JP13983580A JPS5764848A (en) 1980-10-08 1980-10-08 Processor of pipeline control data

Publications (2)

Publication Number Publication Date
DE3119741A1 true DE3119741A1 (de) 1982-01-21
DE3119741C2 DE3119741C2 (de) 1986-10-16

Family

ID=26406393

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3119741A Expired DE3119741C2 (de) 1980-05-19 1981-05-18 Datenverarbeitungseinheit

Country Status (5)

Country Link
US (1) US4454578A (de)
KR (1) KR850001015B1 (de)
CA (1) CA1174370A (de)
DE (1) DE3119741C2 (de)
GB (1) GB2077965B (de)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58129550A (ja) * 1982-01-27 1983-08-02 Toshiba Corp 演算制御装置
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
JPS58149548A (ja) * 1982-03-02 1983-09-05 Hitachi Ltd メモリ制御方式
JPS592143A (ja) * 1982-06-29 1984-01-07 Hitachi Ltd 情報処理装置
US4858176A (en) * 1982-10-13 1989-08-15 Honeywell Bull Inc. Distributor of machine words between units of a central processor
JPS59231652A (ja) * 1983-06-13 1984-12-26 Hitachi Ltd メモリアクセス・オ−バラツプ検出方式
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
JPS60107141A (ja) * 1983-11-16 1985-06-12 Fujitsu Ltd プランチ制御方式
JPS60120439A (ja) * 1983-12-05 1985-06-27 Nec Corp 演算処理装置
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US4763255A (en) * 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
US5187782A (en) * 1986-02-26 1993-02-16 Hitachi, Ltd. Data processing system
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
EP0239081B1 (de) * 1986-03-26 1995-09-06 Hitachi, Ltd. Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5115497A (en) * 1987-10-01 1992-05-19 California Institute Of Technology Optically intraconnected computer employing dynamically reconfigurable holographic optical element
US4882673A (en) * 1987-10-02 1989-11-21 Advanced Micro Devices, Inc. Method and apparatus for testing an integrated circuit including a microprocessor and an instruction cache
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
US4974146A (en) * 1988-05-06 1990-11-27 Science Applications International Corporation Array processor
US5031096A (en) * 1988-06-30 1991-07-09 International Business Machines Corporation Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5269008A (en) * 1988-10-04 1993-12-07 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPH0769806B2 (ja) * 1988-10-14 1995-07-31 三菱電機株式会社 データ処理装置
US5333287A (en) * 1988-12-21 1994-07-26 International Business Machines Corporation System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
EP0461257B1 (de) * 1989-01-17 1997-04-23 Fujitsu Limited Ablaufsteuerung zur decodierung von befehlen variabler länge für ein mikroprozessor
US5142633A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Preprocessing implied specifiers in a pipelined processor
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
US5067069A (en) * 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
KR0163179B1 (ko) * 1989-03-31 1999-01-15 미다 가쓰시게 데이타 프로세서
GB2230116B (en) * 1989-04-07 1993-02-17 Intel Corp An improvement for pipelined decoding of instructions in a pipelined processor
JP2505887B2 (ja) * 1989-07-14 1996-06-12 富士通株式会社 命令処理システム
DE69032897T2 (de) * 1989-08-28 1999-08-26 Nec Corp Mikroprozessor zum verbesserten Startvorgang der Befehlsausführung nach der Ausführung eines bedingten Verzweigungsbefehls
JPH0395629A (ja) * 1989-09-08 1991-04-22 Fujitsu Ltd データ処理装置
CA2037708C (en) * 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
JP2847974B2 (ja) * 1991-01-21 1999-01-20 三菱電機株式会社 データ処理装置
JP2646855B2 (ja) * 1991-01-21 1997-08-27 三菱電機株式会社 データ処理装置
JPH04260929A (ja) * 1991-01-21 1992-09-16 Mitsubishi Electric Corp データ処理装置
JP2668456B2 (ja) * 1991-01-22 1997-10-27 三菱電機株式会社 ビット検索回路及びそれを備えたデータ処理装置
JP2669158B2 (ja) * 1991-01-22 1997-10-27 三菱電機株式会社 データ処理装置
JP2970821B2 (ja) * 1991-08-21 1999-11-02 松下電器産業株式会社 データ処理装置
JP3547740B2 (ja) * 1992-03-25 2004-07-28 ザイログ,インコーポレイテッド 命令高速解読パイプラインプロセッサ
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
DE69329778T2 (de) * 1992-09-29 2001-04-26 Seiko Epson Corp System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
US5592488A (en) * 1995-06-07 1997-01-07 Micron Technology, Inc. Method and apparatus for pipelined multiplexing employing analog delays for a multiport interface
EP0752645B1 (de) * 1995-07-07 2017-11-22 Oracle America, Inc. Abstimmbare Softwaresteuerung von Pufferspeichern einer Harvard-Architektur mittels Vorausladebefehlen
US5809272A (en) * 1995-11-29 1998-09-15 Exponential Technology Inc. Early instruction-length pre-decode of variable-length instructions in a superscalar processor
US5710914A (en) * 1995-12-29 1998-01-20 Atmel Corporation Digital signal processing method and system implementing pipelined read and write operations
US5761468A (en) * 1996-05-15 1998-06-02 Sun Microsystems Inc Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions
US5978871A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Method of layering cache and architectural specific functions for operation splitting
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US20140325175A1 (en) * 2013-04-29 2014-10-30 Pact Xpp Technologies Ag Pipeline configuration protocol and configuration unit communication
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
US7376814B1 (en) * 1999-09-07 2008-05-20 Nxp B.V. Method for forming variable length instructions in a processing system
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
JP4629198B2 (ja) * 2000-08-18 2011-02-09 富士通セミコンダクター株式会社 演算装置及び演算方法
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US8406786B2 (en) * 2010-02-25 2013-03-26 Motorola Mobility Llc Methods and apparatus for extended generic messaging in a networked geolocation system
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US20130339680A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
US3739352A (en) * 1971-06-28 1973-06-12 Burroughs Corp Variable word width processor control
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPS6055849B2 (ja) * 1975-12-04 1985-12-06 株式会社東芝 命令制御方式
GB2007889B (en) * 1977-10-25 1982-04-21 Digital Equipment Corp Central processor unit for executing instructions with a special operand specifier
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
US-IBM Journal of Research and Development, 11, 1967, S. 8-24 *
US-IBM Journal of Research and Development, 8, 1964, S. 87-97 *

Also Published As

Publication number Publication date
US4454578A (en) 1984-06-12
KR830006741A (ko) 1983-10-06
DE3119741C2 (de) 1986-10-16
KR850001015B1 (ko) 1985-07-18
CA1174370A (en) 1984-09-11
GB2077965A (en) 1981-12-23
GB2077965B (en) 1985-04-24

Similar Documents

Publication Publication Date Title
DE3119741A1 (de) Datenverarbeitungseinheit
DE69916962T2 (de) Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen
DE2903349C2 (de) Prozessor und Verfahren zur Datenverarbeitung
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE68929483T2 (de) Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist.
DE4301417C2 (de) Computersystem mit Einrichtung zur parallelen Befehlsausführung
DE1549476C3 (de) Anordnung zur Ausführung von Divisionen
DE60032794T2 (de) Bit-dekompression-verarbeitung mit einem vielseitigen ausrichtungswerkzeug
DE2846495A1 (de) Digitales datenverarbeitungssystem
DE2161886A1 (de) Befehlsausführungssystem in einer elektronischen Datenverarbeitungsanlage
DE1549480A1 (de) Datenverarbeitungsanlage
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE2725522A1 (de) Datenverarbeitungsvorrichtung
DE2230188C2 (de) Arithmetisch-logische Einheit für einen Digitalprozessor für variable Wortlängen
DE3900246A1 (de) Informationsverarbeitungsvorrichtung
DE2336676A1 (de) Einrichtung zur modifizierung von mikroprogrammbefehlen
DE2725614C2 (de)
DE19929051C2 (de) Registerumbenennungsverfahren für 32- und 64-Bit-Befehle in einem Programm
DE2349253C3 (de) Rechnersystem
DE2425574A1 (de) Adressierung von zeichen in einem wortorientierten system eines rechenautomaten
DE2747304B2 (de) Einrichtung zur Mikrobefehlssteuerung
DE1499224A1 (de) Verfahren und Anordnung zur Datenverarbeitung
DE2220329C3 (de) Schaltungsanordnung zum Umsetzen einer in Gleitkomma-Darstellung ausgedrückten Zahl in eine Festkomma-Darstellung bei elektronischen Rechnern
DE2440390A1 (de) Elektronischer rechner
DE2846520C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/38

8128 New person/name/address of the agent

Representative=s name: VON FUENER, A., DIPL.-CHEM. DR.RER.NAT. EBBINGHAUS

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