DE3688973T2 - Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System. - Google Patents
Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System.Info
- Publication number
- DE3688973T2 DE3688973T2 DE86117099T DE3688973T DE3688973T2 DE 3688973 T2 DE3688973 T2 DE 3688973T2 DE 86117099 T DE86117099 T DE 86117099T DE 3688973 T DE3688973 T DE 3688973T DE 3688973 T2 DE3688973 T2 DE 3688973T2
- Authority
- DE
- Germany
- Prior art keywords
- operand
- instruction
- effective address
- instructions
- internal
- 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.)
- Expired - Fee Related
Links
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
- Die vorliegende Erfindung betrifft ein Mikroprozessor Pipeline-Verarbeitungssystem und inbesonders ein Pipeline- Verarbeitungssystem, das in der Lage ist, Befehle mit jeweils mehreren Speicheroperanden mit hoher Geschwindigkeit zu verarbeiten, und den zugehörigen Mikroprozessor.
- In neueren Mikroprozessoren wird ein sogenanntes Pipeline-Verarbeitungssystem eingesetzt, um eine sehr schnelle Befehlverarbeitung durchzuführen. In dem Pipeline- Verarbeitungssystem sind die Befehle in mehrere Stufen aufgeteilt und werden durch parallele Verarbeitung der Stufen ausgeführt, um so die Verarbeitungsgeschwindigkeit der Befehle zu erhöhen.
- In diesen Mikroprozessoren, in denen Befehle nach dem Pipelinesystem ausgeführt werden, um die Befehle einer Maschinensprache auszuführen und um mehrere Speicheroperanden zur Verfügung zu haben, werden die jedem Speicheroperanden zugeordneten Effektivadressen dann berechnet, wenn die Befehle der Maschinensprache in einen speziellen, der Pipeline-Verarbeitung angepaßten Instruktionstyp umgewandelt werden.
- Um die Effektivadressen der Speicheroperanden für einen einzelnen Befehl zu berechnen, werden in den Mikroprozessoren nach dem Stand der Technik die jedem Speicheroperanden entsprechenden Effektivadressen jeweils unabhängig durch mehrere Effektivadressen berechnende Schaltkreise zur Berechnung der Effektivadressen der Speicheroperanden berechnet, indem dieselbe Anzahl von Schaltkreisen wie Speicheroperanden bereitgestellt wird.
- Die US-A-4 598 245 offenbart ein Datenverarbeitungssystem, das eine Pipeline zur Verarbeitung von Dateninstruktionen enthält. Dieses Datenverarbeitungssystem sieht mehr als einen Adressenberechnungsschaltkreis vor. In dem bekannten System werden Mehrfachbefehle mit verschiedenen Speicheroperanden zur gleichen Zeit ausgeführt. Die Adressen werden jedoch unter Verwendung verschiedener Adressenberechnungsschaltkreise berechnet. Darüber hinaus werden Mehrfachadressenstacks (Adressenstapel) benötigt, um die verschiedenen Adressen für eine Instruktion mit verschiedenen Speicheroperanden zu speichern. Demzufolge ist dieses System nur ein konventionelles System, das die Berechnung der Adressen mittels eines einzigen Effektivadressen-Berechnungsschaltkreises nicht erlaubt.
- Das Vorsehen mehrerer Effektivadressen-Berechnungsschaltkreise in dem Mikroprozessor resultierte in dem Nachteil, daß der Mikroprozessor extrem komplex und sehr groß wurde.
- Andererseits wurde bisher ebenfalls ein Verfahren vorgeschlagen, daß die mehreren Speicheroperanden entsprechenden Effektivadressen eine nach der anderen durch einen einzigen Effektivadressen-Berechnungsschaltkreis berechnet werden. Nach diesem Verfahren kann jede der mehreren Speicheroperanden entsprechenden Effektivadressen genau so gut durch den einzigen Effektivadressen-Berechnungsschaltkreis berechnet werden. Die Berechnung der Effektivadressen ergab jedoch das Problem, daß die Ausführungszeit für die Befehle mit mehreren Speicheroperanden verzögert wurde, da die Berechnung der Effektivadressen und das Holen der Operanden für jeden einzelnen Speicheroperanden nacheinander ausgeführt werden mußte. Demzufolge kann eine schnelle Ausführung der Befehle mit mehreren Speicheroperanden im letzteren Falle genau so wenig ausgeführt werden.
- Die GB 2 077 95 A1 offenbart eine Datenverarbeitungseinrichtung, die Pipelineoperanden verwendet. Die Datenverarbeitungseinrichtung ist mit einer Mikroprozessoreinrichtung, einem Bus, einer Befehlsdecodierungseinrichtung, einer Einzeladresseneinrichtung und einer Operandenholeinrichtung versehen. Obwohl jeder Befehl in verschiedene Operanden aufgeteilt und nur eine Adresseneinrichtung vorgesehen ist, erfordert die Einrichtung einen sehr komplexen Aufbau, der einen "Vorab-Holen"(pre-fetch)-Instruktionspuffer und weitere Einrichtungen beinhaltet. Die Adressenberechnungseinrichtung selbst weist eine komplexe Struktur einschließlich einer Menge verschiedener Einrichtungen auf. Die Einrichtung erfordert hohen Aufwand, und die Berechnungsgeschwindigkeit ist wegen des Vorab-Holens und Decodierens verschiedener Modi nicht sehr hoch. In der Einrichtung, die zwei Operandeninstruktionen offenbart, erfolgt das Holen des ersten Operanden zum gleichen Zeitpunkt wie das Berechnen der Effektivadresse für den zweiten Operanden.
- Es ist demzufolge eine Aufgabe der Erfindung ein verbessertes Pipeline-Verarbeitungssystem in einem Mikroprozessor zu schaffen, so daß Befehle mit mehreren Speicheroperanden jeweils mit hoher Geschwindigkeit ausgeführt werden können, ohne daß ein komplexer Aufbau oder ein groß dimensionierter Mikroprozessor erforderlich ist.
- Diese Aufgabe ist durch die Merkmale von Anspruch 1 gelöst.
- Es ist von Vorteil, daß Befehle mit mehreren Speicheroperanden in mehrere Innenbefehle mit jeweils einem einzigen Speicheroperanden unterteilt sind. Jeder der auf diese Weise unterteilten Innenbefehle wird so ausgeführt, daß eine Effektivadresse für einen Speicheroperanden berechnet wird und der andere Speicheroperand aus einer anderen Effektivadresse zur gleichen Zeit gelesen wird.
- Ein Merkmal der vorliegenden Erfindung beruht auf einem Pipeline-Verarbeitungssystem, das einen Mikroprozessor mit nur einem einzigen Effektivadressen-Berechnungsschaltkreis verwendet, wobei sämtliche Befehle, die von dem Mikroprozessor gesendet werden und jeweils mehrere Speicheroperanden aufweisen, in mehrere Innenbefehle aufgeteilt werden, von denen jeder nur einem einzigen Speicheroperanden aufweist, und die Berechnung von mindestens einer Effektivadresse eines Speicheroperanden und die Verarbeitung des anderen Operanden zum selben Zeitpunkt innerhalb einer gewissen Zeitperiode ausgeführt werden.
- Ein anderes Merkmal der vorliegenden Erfindung beruht auf einem Mikroprozessor des Pipeline-Verarbeitungstyps, der aufweist: eine Decodereinrichtung zum Decodieren sämtlicher von externen Einrichtungen gesendeter Befehle und zum Entscheiden, ob ein spezieller Befehl mehrere Speicheroperanden aufweist; eine mit der Decodereinrichtung verbundene Aufteileinrichtung zur Aufteilung der Befehle mit mehreren Speicheroperanden in mehrere Innenbefehle, von den jeder jeweils einen einzigen Operanden aufweist; eine mit der Aufteilungseinrichtung verbundene Ausführungseinrichtung zum Ausführen sämtlicher auf diese Weise aufgeteilter Innenbefehle mit nur einen einzigen Speicheroperanden; und eine zwischen der Decodereinrichtung und sowohl der Ausführungseinrichtung als auch dem Bus angeschlossene Bussteuereinrichtung um die Datenübertragung darüber zu steuern.
- Die Datenverarbeitungseinrichtung der GB 2 077 965 A1 offenbart nicht die Befehlsaufteilungseinrichtung der vorliegenden Erfindung, sondern beruht statt dessen auf einer komplexeren Ausführungs-Pipeline.
- Die Erfindung hat den weiteren Vorteil, demgemäß Befehle mit mehreren Speicheroperanden mit hoher Geschwindigkeit ausgeführt werden können, ohne daß der Mikroprozessor groß dimensioniert und sein Aufbau komplex sein muß.
- Weitere Ausführungsformen sind Gegenstand der Ansprüche 2 und 3.
- Die Aufgabenlösung, die Vorteile und Merkmale der Erfindung werden anhand der nachfolgenden detaillierten Beschreibung unter Bezugnahme auf die beiliegenden Zeichnungen verständlicher.
- Fig. 1 stellt ein Blockschaltbild des Mikroprozessoraufbaus der vorliegenden Erfindung dar;
- Fig. 2 stellt einen von einen externen Einrichtung gesendeten und in mehrere Innenbefehle aufgeteilten Befehl mit mehreren Speicheroperanden dar;
- Fig. 3 stellt einen detaillierten Aufbau der Ausführungseinrichtung von Fig. 1 dar; und
- Fig. 4 stellt funktionelle Zeitabläufe der Mikroprozessoren nach den Stand der Technik und einen funktionellen Zeitablauf des Mikroprozessors gemäß vorliegender Erfindung dar.
- Nach Fig. 1 weist der Mikroprozessor gemäß vorliegender Erfindung eine Decodereinrichtung 1, eine Aufteileinrichtung 3, eine Ausführungseinrichtung 5 und eine Bussteuereinrichtung 7 auf.
- Die Decodereinrichtung 1 ist über einen Bus 9 mit einem nicht gezeigten Hauptspeicher verbunden, in dem Befehle in einer Maschinensprache abgespeichert wurden. Die aus dem Hauptspeicher entnommenen Maschinensprachenbefehle werden über den Bus 9 an die Decodereinrichtung 1 angelegt.
- Die Decodereinrichtung 1 decodiert jeden der auf diese Weise angelegten Befehle und entscheidet, ob irgend einer der so empfangenen Befehl mehrere Speicheroperanden aufweist. Wenn irgendeiner von den Befehlen als der eine befunden wird, der mehrere Speicheroperanden aufweist, dann wird dieser an die Aufteileinrichtung 3 angelegt.
- Die Aufteileinrichtung 3 teilt sämtliche Befehle mit mehreren Speicheroperanden in jeweils mehrere Befehle ausführbaren Typs auf, die nachfolgend als "Innenbefehle" bezeichnet werden, und von denen jeder einen einzigen Speicheroperanden enthält, wie es später noch erläutert und dargestellt werden wird. Die so aufgeteilten Innenbefehle werden an die Ausführungseinheit 5 angelegt, die einen einzigen Effektivadressen-Berechnungsschaltkreis und eine Mikroablaufsteuerung enthält, wovon beide hier nicht dargestellt sind, aber später noch dargestellt werden. Die Mikroablaufsteuerung in der Ausführungseinrichtung 5 bestimmt die Ausführungsreihenfolge der so angelegten Innenbefehle und führt für jeden Innenbefehl eine vorgegebene Ausführungsreihenfolge aus.
- Insbesonders sei angenommen, daß einer von den Befehlen, zum Beispiel, so wie ein Befehl PUSH DISP (I · 2), der, wie in Fig. 2 dargestellt, zwei Speicheroperanden aufweist, ist, der zum Decodieren an die Decodereinrichtung 1 und dann zum Aufteilen an die Aufteileinrichtung 3 angelegt wird. Der Befehl dient zum Aufsummieren eines Wertes in dessen Bereich DISP auf den Inhalt eines Allzweckregisters, das durch das Feld (I · 2) gekennzeichnet ist, um so eine Effektivadresse (zum Beispiel, eine Adresse A) eines Speicheroperanden aufzubauen, während an eine andere Effektivadresse (zum Beispiel, die Adresse B) des Speicheroperanden gespeichert wird, wobei der Inhalt des durch das Feld (I · 1) bezeichneten Allzweckregisters die andere Effektivadresse ist.
- Sobald der Befehl PUSH DISP (I · 2) von Fig. 2(a) an die Aufteileinrichtung 3 angelegt wird, teilt diese den Befehl mit den zwei Speicheroperanden (I · 1) und (I · 2) in die Innenbefehle auf, die aus einem Ladebefehl LD DISP (I · 2) zum Auslesen des unter der Adresse A gespeicherten Speicheroperanden im Hauptspeicher und einem Speicherbefehl ST (I · 1) zum Abspeichern eines so ausgelesenen Speicheroperanden unter der Adresse B des Hauptspeichers bestehen, wie es in Fig. 2(b) und (c) dargestellt ist. Dann werden die Innenbefehle des Ladebefehls LD DISP (I · 2) und des Speicherbefehls ST (I · 1) an die Ausführungseinheit 5 angelegt.
- Die Ausführungseinheit 5 führt die so von der Verteilungseinrichtung 3 angelegten Innenbefehle dem Pipeline- Verarbeitungssystem entsprechend aus.
- Die Bussteuereinrichtung 7 steuert sowohl den Bus 9, der das Lesen der Maschinensprachenbefehle und die Übertragung der Speicheroperanden ausführt, um so die Befehle aus dem Hauptspeicher anzulegen, der wiederum über die Bussteuereinrichtung 7 mit der Decodereinrichtung 1 verbunden ist, als auch die Übertragung der Operandendaten durch die Ausführungseinrichtung 5.
- Fig. 3 stellt einen detaillierten Aufbau der Ausführungseinrichtung 5 von Fig. 2 dar. Die Ausführungseinrichtung 5 weist sowohl einen Effektivadressen-Berechnungsschaltkreis 10 zum Berechnen der Effektivadresse jedes Speicheroperanden, eine Mikroablaufsteuerung 17, ein ROM 19 und einen Decoder 21 als auch die Stufen Q1 und Q2 auf.
- Der Effektivadressen-Berechnungschaltkreis 10 besteht aus einem Allzweckregister 11, einem Addierer 13 und einem Register 15. Das Allzweckregister 11 enthält mehrere Register und jedes der Register ist durch das Feld (I · 1) oder (I · 2) und so weiter des Innenbefehls bezeichnet, wo die zum Berechnen der Effektivadresse zu verwendende Information abgespeichert wurden.
- Der Addierer 13 dient zum Addieren der in einem Modifikationsregister des Allzweckregisters 11 gespeicherten Information, das durch das Feld (I · 1) und (I · 2) und so weiter von jedem Innenbefehl bezeichnet ist, und der Information des Bereichs DISP des Innenbefehls. Der Addierer 15 berechnet nämlich die Effektivadresse durch die Addition des Inhalts des durch das Feld (I · ) jedes Innenbefehls bestimmten Modifikationsregisters und des Inhalts des Bereichs DISP von jedem Innenbefehl. Das Register 15 dient zum Abspeichern der auf diese Weise durch den Addierer 13 berechneten Effektivadressen.
- Die Mikroablaufsteuerung 17 dient zum Liefern spezieller Adressen an das ROM 19, in das Mikrobefehle oder Mikroinstruktionen, die jedem der Innenbefehlen entsprechen, nach einem Operationscode im OP-Bereich des Innenbefehls abgespeichert wurden. Der Decoder 21 dient zum Decodieren oder Interpretieren der so aus dem ROM 19 ausgelesenen Mikroinstruktionen.
- Jetzt wird die Betriebsweise des Mikroprozessors der bevorzugten Ausführungsform gemäß vorliegender Erfindung unter Bezugnahme auf die Fig. 1 bis 3 beschrieben.
- Sobald ein Maschinensprachenbefehl mit mehreren Speicheroperanden vom Bus 9 über die Bussteuereinrichtung an die Decodereinrichtung 1 angelegt ist, wird er in der Decodereinrichtung 1 decodiert. Mit der Annahme, daß der Befehl beispielsweise wie der PUSH DISP (I · 2) zwei Speicheroperanden (I · 1) und (I · 2), wie in Fig. 2(a) dargestellt, aufweist, läuft die Operation wie folgt ab:
- Der in der Decodereinrichtung 1 decodierte PUSH-Befehl wird an die Aufteileinrichtung 3 angelegt, wo er in zwei Innenbefehle, bestehend aus dem Ladebefehl LD DISP (I · 2) und dem Speicherbefehl ST DISP (I · 1), wie in Fig. 2(a) dargestellt aufgeteilt wird. Nachdem jeder der Innenbefehle so aufgeteilt wurde, wird zuerst der Ladebefehl an die Ausführungseinrichtung angelegt, wo der Ladebefehl LD DISP (I · 2) in der Stufe Q1 eines Pipelinesystems, wie in Fig. 3 dargestellt aufgebaut wird, und der Inhalt des im Allzweckregister 11 nicht gezeigten Modifikationsregisters, das durch das Feld (I · 2) bezeichnet ist, ausgelesen wird. Der Inhalt des so eingelesenen Modifikationsregisters wird zum Inhalt des Bereichs DISP desselben Ladebefehls addiert und eine sich ergebende Effektivadresse, wie zum Beispiel Adresse A, wird berechnet und daraus erzeugt. Die so erzeugte Effektivadresse wird in dem Register 15 gespeichert.
- Nach der obigen Operation wird der Ladebefehl in die Stufe Q2 des Pipelinesystems geschoben, wo der Ladebefehl noch einmal ausgeführt wird, und, um ihn in eine Mikroinstruktion umzuwandeln, wird eine ROM-Adresse, in die die Mikroinstruktion gespeichert wurde, gemäß dem Operationscode des Ladebefehls an das ROM 19 geliefert. Die dem Ladebefehl entsprechende unter der ROM-Adresse gespeicherte Mikroinstruktion wird aus dem ROM 19 ausgelesen und dann in dem Decoder 21 decodiert.
- Die so im Decoder 21 codierte Mikroinstruktion ermöglicht es, daß der Speicheroperand aus der Adresse A als Effektivadresse des in dem Register 15 des Hauptspeichers gespeicherten Ladebefehls gelesen werden kann.
- Desweiteren wird zu demselben Zeitpunkt, bei dem der Ladebefehl in der Stufe Q2 des Pipelinesystems aufgebaut wird, der Speicherbefehl ST (I · 1) in der Stufe Q1 des Pipelinesystems aufgebaut. Dann wird der Inhalt des im Allzweckregister 11 nicht gezeigten Modifikationsregisters, das durch das Feld (I · 1) des Ladebefehls bezeichnet ist, das heißt, die andere Effektivadresse des Ladebefehls daraus ausgelesen und in dem Register 15 gespeichert.
- Nach dieser Operation wird der Speicherbefehl in die Stufe Q2 des Pipelinesystems geschoben, wo eine dem Speicherbefehl entsprechende Mikroinstruktion in ähnlicher Weise aus dem ROM 19 ausgelesen wird, wie bei dem Ladebefehl. Die so ausgelesene Mikroinstruktion ermöglicht es, daß der Speicheroperand, der aus der Adresse A im Hauptspeicher durch den Ladebefehl ausgelesen wurde in die andere Effektivadresse des Ladebefehls, zum Beispiel in die Adresse B geschrieben wird.
- Auf diese Weise wird in der vorliegenden Erfindung zum Beispiel der PUSH-Befehl PUSH DISP (I · 2), wie beschrieben, in einen Ladebefehl LD DISP (I · 2) und in einen Speicherbefehl ST (I · 1) aufgeteilt, und das Ausführen des Speicherbefehls kann zum selben Zeitpunkt wie das Berechnen der Effektivadresse des Speicherbefehls erfolgen.
- In dieser Hinsicht wird in dem Mikroprozessor mit zwei Effektivadressen-Berechnungsschaltkreisen, entsprechend dem Stand der Technik, ein Befehl mit zwei Speicheroperanden in der Weise durchgeführt, daß die Berechnungen einer Effektivadresse als Adresse A, die dem einem Speicheroperanden entspricht und der anderen Effektivadresse als Adresse B, die dem anderen Speicheroperanden entspricht, während der Zeitdauer a&sub1; ausgeführt wird, während das Auslesen des Operanden aus der Adresse A innerhalb der Zeitdauer b ausgeführt wird und das Schreiben des anderen Operanden in die Adresse B innerhalb der Zeitdauer c ausgeführt wird. Mit anderen Worten, die Berechnungen werden mit der Geschwindigkeit von drei Taktperioden, wie in Fig. 4(A) dargestellt, ausgeführt.
- Fig. 4(B) zeigt, wie die Berechnung der effektiven Operandenadressen und der Lese/Schreib-Operation durch einen einzigen Effektivadressen-Berechnungsschaltkreis entsprechend dem Stand der Technik hinsichtlich eines Befehls mit zwei Speicheroperanden ausgeführt werden, wenn eine einfache Ausführungspipeline eingesetzt wird. In diesen System nach der Stand der Technik wird nämlich die Berechnung der Adresse A innerhalb der Zeitdauer a&sub2; und das Auslesen des Operanden aus der Adresse A innerhalb der Zeitdauer b ausgeführt, während die Berechnung der Adresse B innerhalb der Zeitdauer a&sub3; und das Schreiben des anderen aus der Adresse A ausgelesen Operanden innerhalb der Zeitdauer c ausgeführt wird. Mit anderen Worten, die Operation wird, wie in Fig. 4 dargestellt, über die vier Taktperioden hinweg ausgeführt.
- Während in dem Mikroprozessor entsprechend der vorliegenden Erfindung die Berechnung der Adresse A innerhalb der Zeitdauer a&sub2; und das Schreiben des anderen Operanden in die Adresse B innerhalb der Zeitdauer c, ähnlich zu Fig. 1, ausgeführt wird, kann aber das Auslesen des Operanden aus der Adresse A und die Berechnung der Adresse - B zu demselben Zeitpunkt innerhalb der Zeitdauer entweder von b oder a&sub3; ausgeführt werden. Die Operation kann nämlich gemäß der vorliegenden Erfindung unter Verwendung nur eines einzigen Effektivadressen-Berechnungsschaltkreises und ohne Einführung einer komplizierteren Pipeline innerhalb von drei Taktperioden ausgeführt werden.
- Wie in den vorausgegangenen Ausführungsformen des Pipeline-Verarbeitungssystems und des Mikroprozessors gemäß der vorliegenden Erfindung beschrieben wurde, kann, da sämtliche Befehle mit mehreren Speicheroperanden jeweils in mehrere Innenbefehle mit jeweils einzelnen Speicheroperanden aufgeteilt sind, und diese nacheinander entsprechend dem Pipeline-Verarbeitungssystem ausgeführt werden, die Berechnung einer Effektivadresse und die Verarbeitung der anderen Effektivadresse der Speicheroperanden zum selben Zeitpunkt ausgeführt werden. Folglich kann die Verarbeitungsgeschwindigkeit der Befehle mit mehreren Speicheroperanden in dem Mikroprozessor gemäß der vorliegenden Erfindung ohne Einsatz mehrerer Effektivadressen-Berechnungsschaltkreise verbessert werden.
Claims (3)
1. Mikroprozessor Pipeline-Verarbeitungssystem das
aufweist:
eine Decodereinrichtung (1) zum Decodieren eines jeden,
von einer externen Einrichtung gesendeten Befehls, und zum
Entscheiden darüber, ob ein spezieller Befehl mehrere
Speicheroperanden besitzt;
eine mit der Decodereinrichtung verbundene
Aufteilvorrichtung (3), die den Befehl mit mehreren
Speicheroperanden in mehrere Innenbefehle aufteilt, von denen jeder
jeweils einen einzigen Operanden besitzt; und
eine mit der Aufteilungseinrichtung verbundene
Ausführungseinrichtung (5) zum sukzessiven Ausführen der
Innenbefehle;
wobei die Ausführungseinrichtung einen einzigen
Effektivadressen-Berechnungsschaltkreis (10) mit einem
Allzweckregister (11), das wiederum mehrere Register enthält, einen
Addierer (13) und ein zweites Register (15) aufweist;
die Ausführungseinrichtung desweiteren mindestens erste
und zweite Pipelinestufen (Q1, Q2) zum Speichern von
Innenbefehlen in Reihenfolge aufweist, wobei während dem ein
erster Innenbefehl in der ersten Stufe gespeichert wird, die
Effektivadresse seines Operanden berechnet wird, und während
dem ein zweiter Innenbefehl in der zweiten Stufe gespeichert
wird, die Effektivadresse des zweiten Operanden verarbeitet
wird,
um mindestens erste und zweite Effektivadressen (A, B)
der Speicheroperanden zu berechnen, wobei zumindest die
Berechnung der zweiten Effektivadresse (B) und die
Verarbeitung eines ersten Operanden zum selben Zeitpunkt
ausgeführt werden.
2. Mikroprozessor nach Anspruch 1, dadurch
gekennzeichnet, daß der erste von dem, von der externen Einrichtung
gesendeten Befehl (PUSH DISP (I · 2)), abgeteilte Innenbefehl
ein Ladebefehl (LD DISP (I · 2)) ist, und der zweite davon
abgeteilte zweite Innenbefehl ein Speicherbefehl
(ST (I · 1)) ist.
3. Mikroprozessor nach Anspruch 1, dadurch
gekennzeichnet, daß dann, wenn der erste Innenbefehl in die zweite
Stufe geschoben wird, um so einen Operanden aus der ersten
Effektivadresse auszulesen, der zweite Innenbefehl in der
ersten Stufe abgelegt wird, um so die zweite Effektivadresse
zu berechnen, und dadurch die Berechnung der zweiten
Effektivadresse des einen Operanden und das Auslesen des
Operanden aus der ersten Effektivadresse zum selben Zeitpunkt
zu ermöglichen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61067050A JPS62226231A (ja) | 1986-03-27 | 1986-03-27 | プロセツサ |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3688973D1 DE3688973D1 (de) | 1993-10-07 |
DE3688973T2 true DE3688973T2 (de) | 1994-02-17 |
Family
ID=13333625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE86117099T Expired - Fee Related DE3688973T2 (de) | 1986-03-27 | 1986-12-09 | Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System. |
Country Status (4)
Country | Link |
---|---|
US (1) | US5390306A (de) |
EP (1) | EP0240606B1 (de) |
JP (1) | JPS62226231A (de) |
DE (1) | DE3688973T2 (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01255036A (ja) * | 1988-04-04 | 1989-10-11 | Toshiba Corp | マイクロプロセッサ |
JPS6453235A (en) * | 1988-05-25 | 1989-03-01 | Nec Corp | Risc type microprocessor |
JPH0769805B2 (ja) * | 1988-10-04 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
GB2230116B (en) * | 1989-04-07 | 1993-02-17 | Intel Corp | An improvement for pipelined decoding of instructions in a pipelined processor |
US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
JPH04260929A (ja) * | 1991-01-21 | 1992-09-16 | Mitsubishi Electric Corp | データ処理装置 |
JP2847974B2 (ja) * | 1991-01-21 | 1999-01-20 | 三菱電機株式会社 | データ処理装置 |
US6061755A (en) * | 1997-04-14 | 2000-05-09 | International Business Machines Corporation | Method of layering cache and architectural specific functions to promote operation symmetry |
US5978871A (en) * | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | Method of layering cache and architectural specific functions for operation splitting |
US7472259B2 (en) * | 2000-12-06 | 2008-12-30 | Analog Devices, Inc. | Multi-cycle instructions |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725868A (en) * | 1970-10-19 | 1973-04-03 | Burroughs Corp | Small reconfigurable processor for a variety of data processing applications |
IT995722B (it) * | 1973-10-10 | 1975-11-20 | Honeywell Inf Systems Italia | Calcolatore microprogrammato a interior decore espansibile mediante riconoscimento e interpre tazione di codici di operazione aggiunti |
JPS5441039A (en) * | 1977-09-08 | 1979-03-31 | Nec Corp | Processing unit of high level language program |
JPS5621240A (en) * | 1979-07-27 | 1981-02-27 | Hitachi Ltd | Information processor |
US4415969A (en) * | 1980-02-07 | 1983-11-15 | Intel Corporation | Macroinstruction translator unit for use in a microprocessor |
CA1126406A (en) * | 1980-03-31 | 1982-06-22 | Northern Telecom Limited | Sequence control circuit for a computer |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
JPS57161943A (en) * | 1981-03-31 | 1982-10-05 | Hitachi Ltd | Data processing device |
US4797808A (en) * | 1981-06-22 | 1989-01-10 | Texas Instruments Incorporated | Microcomputer with self-test of macrocode |
US4530050A (en) * | 1981-08-26 | 1985-07-16 | Hitachi, Ltd. | Central processing unit for executing instructions of variable length having end information for operand specifiers |
JPS58106636A (ja) * | 1981-12-18 | 1983-06-25 | Hitachi Ltd | パイプライン演算装置 |
US4553205A (en) * | 1982-09-21 | 1985-11-12 | Salvatore Porchia | Flexible macro expansion process |
US4471432A (en) * | 1982-10-13 | 1984-09-11 | Wilhite John E | Method and apparatus for initiating the execution of instructions using a central pipeline execution unit |
US4914578A (en) * | 1983-04-18 | 1990-04-03 | Motorola, Inc. | Method and apparatus for interrupting a coprocessor |
EP0150177A1 (de) * | 1983-07-11 | 1985-08-07 | Prime Computer, Inc. | Datenverarbeitungsvorrichtung |
US4685058A (en) * | 1983-08-29 | 1987-08-04 | Amdahl Corporation | Two-stage pipelined execution unit and control stores |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
US4667290A (en) * | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
US4975837A (en) * | 1984-10-01 | 1990-12-04 | Unisys Corporation | Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets |
US4791551A (en) * | 1985-02-11 | 1988-12-13 | Analog Devices, Inc. | Microprogrammable devices using transparent latch |
US4823252A (en) * | 1986-03-28 | 1989-04-18 | Tandem Computers Incorporated | Overlapped control store |
US4890218A (en) * | 1986-07-02 | 1989-12-26 | Raytheon Company | Variable length instruction decoding apparatus having cross coupled first and second microengines |
US4812989A (en) * | 1986-10-15 | 1989-03-14 | Amdahl Corporation | Method for executing machine language instructions |
-
1986
- 1986-03-27 JP JP61067050A patent/JPS62226231A/ja active Granted
- 1986-12-09 EP EP86117099A patent/EP0240606B1/de not_active Expired - Lifetime
- 1986-12-09 DE DE86117099T patent/DE3688973T2/de not_active Expired - Fee Related
-
1992
- 1992-09-08 US US07/940,749 patent/US5390306A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0240606A3 (en) | 1989-04-26 |
US5390306A (en) | 1995-02-14 |
JPS62226231A (ja) | 1987-10-05 |
DE3688973D1 (de) | 1993-10-07 |
EP0240606B1 (de) | 1993-09-01 |
JPH0523447B2 (de) | 1993-04-02 |
EP0240606A2 (de) | 1987-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE4302495C2 (de) | Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE3687724T2 (de) | Digitalprozessorsteuerung. | |
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE3785897T2 (de) | Steuervorrichtung zum vorabruf von befehlen. | |
DE69624158T2 (de) | Superskalarer Prozessor mit mehreren Registerblöcken und Erzeugung von spekulativen Antwortadressen | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69305366T2 (de) | System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE69623146T2 (de) | Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE3688973T2 (de) | Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System. | |
DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE3688806T2 (de) | Instruktionsprozessor. | |
DE68927313T2 (de) | Operandenspezifiererverarbeitung | |
DE68924883T2 (de) | Mikroprozessor mit Befehlspipeline. | |
DE3307194C2 (de) | ||
DE2906685C2 (de) | ||
DE2948442C2 (de) | Digitalrechenanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |