DE4442687A1 - Prozessor mit mehreren Instruktionsregistern - Google Patents

Prozessor mit mehreren Instruktionsregistern

Info

Publication number
DE4442687A1
DE4442687A1 DE4442687A DE4442687A DE4442687A1 DE 4442687 A1 DE4442687 A1 DE 4442687A1 DE 4442687 A DE4442687 A DE 4442687A DE 4442687 A DE4442687 A DE 4442687A DE 4442687 A1 DE4442687 A1 DE 4442687A1
Authority
DE
Germany
Prior art keywords
instruction
decoder
output
nth
register
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
DE4442687A
Other languages
English (en)
Other versions
DE4442687C2 (de
Inventor
Shunsuke Kamijo
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE4442687A1 publication Critical patent/DE4442687A1/de
Application granted granted Critical
Publication of DE4442687C2 publication Critical patent/DE4442687C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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 or 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

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

Description

Hintergrund der Erfindung
Die vorliegende Erfindung bezieht sich auf einen Prozessor, der eine Mikroprozessoreinheit (MPU) mit einem internen oder externen Programmspeicher, ein digitaler Signalprozessor (DSP) mit einem internen oder externen Programmspeicher oder dergleichen sein kann.
Diese Typen von Prozessoren führen eine Pipeline- Verarbeitung aus, um das Verarbeiten zu beschleunigen. Bei der Pipeline-Verarbeitung nach Stand der Technik ist eine Instruktionswarteschlange, die zum Beispiel 6 Registerstufen umfaßt, mit der vorderen Stufe eines Dekodierers verbunden, und eine Warteschlange mit derselben Anzahl von Stufen ist mit der hinteren Stufe dieses Dekodierers verbunden. Da eine normale Instruktion in einem Zyklus ausgeführt werden kann, wenn sich die Pipeline in dem stationären Zustand stabili­ siert hat, ist eine Hochgeschwindigkeitsverarbeitung möglich.
Jedoch bei Instruktionen, die eine Verarbeitung erfor­ dern, die sich von jener bei normalen Instruktionen unter­ scheidet, wie z. B. Verzweigungsinstruktionen, Direktdaten­ übertragungsinstruktionen oder Instruktionen mit variabler Länge, wird die Verarbeitungsgeschwindigkeit reduziert, wie unten beschrieben.
  • (1) Im Fall einer Verzweigungsinstruktion, die ja die Ausführungsfolge der Instruktionen verändert, sind Instruk­ tionen, die teilweise verarbeitet worden sind, verworfen worden, und es ist nötig, ab dem Instruktionsholen erneut zu beginnen, wodurch die Vorteile der Pipeline-Verarbeitung zunichte gemacht werden.
Deshalb kann für die Verzweigungsinstruktion eine Verzweigungsvoraussage ausgeführt werden, indem die Instruktion an dem Verzweigungsziel vor der Verzweigungs­ instruktion verbunden wird und sie in die Pipeline gelesen wird. Dies führt jedoch dazu, daß die Struktur des Compilers, der die Verzweigungsvoraussage ausführt, kom­ pliziert wird. Ferner wird die Verzweigung unter gewissen Bedingungen nicht auftreten, und da die Instruktion am Verzweigungsziel dennoch ausgeführt werden wird, obwohl dies nicht nötig ist, wird die Verarbeitungsgeschwindigkeit reduziert.
Eine andere Lösung eliminiert Totzeit, indem die Instruktion, die vor einer bedingten Verzweigungsinstruktion auszuführen ist, hinter der bedingten Verzweigungsinstruk­ tion als Verzögerungsschlitz oder -slot eingefügt wird und dieser Verzögerungsslot ausgeführt wird, während das Verzweigungsziel bestimmt wird. Jedoch führt auch dieses Verfahren dazu, daß der Compiler, der den Verzögerungsslot einfügt, komplizierter wird, und ferner wird, falls ein Verzögerungsslot nicht eingefügt werden kann, die Verarbeitungsgeschwindigkeit reduziert.
  • (2) im Fall einer Direktdatenübertragungsinstruktion ist Zeit für die Berechnung der Ausführungsadresse und für den Speicherzugriff erforderlich. Dieses Problem kann überwunden und die Verarbeitung beschleunigt werden, indem eine Direktdatenübertragungsinstruktion verwendet wird, die die Daten innerhalb eines Instruktionswortes anordnet. Da eine Direktdatenübertragungsinstruktion jedoch auf das Aufnehmen der Direktdaten warten muß, benötigt die Ausführung eine Vielzahl von Zyklen, wodurch die Verarbei­ tungsgeschwindigkeit reduziert wird.
  • (3) im Fall von Instruktionen mit mehrfacher Länge ist es notwendig, wieder ein Dekodieren auszuführen, nachdem die mehrfachen Längen verbunden sind, wodurch die Ausführung eine Vielzahl von Zyklen benötigt und die Verarbeitungs­ geschwindigkeit reduziert.
Zusammenfassung der Erfindung
Demzufolge ist es eine Aufgabe der vorliegenden Erfin­ dung, einen Prozessor vorzusehen, der die Verarbeitung beschleunigen kann, ohne den Compiler zu komplizieren.
Gemäß dem ersten Aspekt der vorliegenden Erfindung ist ein Prozessor vorgesehen, der für jedes i, das 1 bis n ist, umfaßt: einen i-ten Programmzähler; ein i-tes Speicher­ mittel, an welches eine Ausgabe von dem i-ten Programmzähler zu adressieren ist; ein i-tes Instruktionsregister zum Halten einer Ausgabe von dem i-ten Speichermittel; und einen i-ten Instruktionsdekodierer zum Holen und Dekodieren einer Ausgabe von dem i-ten Instruktionsregister; welcher Prozes­ sor ferner umfaßt: eine Ausführungsschaltung zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instruk­ tionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und eine Steuer­ schaltung zum Bewirken, daß die Ausführungsschaltung die Ausgaben von den ersten bis n-ten Instruktionsdekodierern sequentiell selektiert und ausführt, zum Bewirken, daß der i-te Instruktionsdekodierer die Ausgabe von dem i-ten Instruktionsregister holt, nachdem die Ausführungsschaltung die Ausgabe des i-ten Instruktionsdekodierers selektiert, zum Bewirken, daß der i-te Programmzähler aktualisiert, nachdem der i-te Instruktionsdekodierer holt, und zum Bewirken, daß das i-te Instruktionsregister die Ausgabe von dem i-ten Speichermittel nach dem Aktualisieren hält; bei dem in den ersten bis n-ten Speichermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem ersten Speichermittel bis zu dem n-ten Speichermittel gespeichert ist.
Bezüglich des ersten Aspektes der Erfindung ist es möglich, da die Verzweigungsinstruktion und die Instruktion an dem Verzweigungsziel kontinuierlich ohne Unterbrechung ausgeführt werden und ohne daß der Compiler irgendeine spezielle Verarbeitung für die Verzweigungsinstruktion ausführt, die Verarbeitung im Vergleich zum Stand der Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Gemäß dem zweiten Aspekt der vorliegenden Erfindung ist ein Prozessor vorgesehen, mit: einem Programmzähler, einem Speichermittel zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und zum adressiert werden mit einer Ausgabe des Programmzählers, um die n Wörter aus zugeben; ersten bis n-ten Instruktionsregistern zum Halten der Ausgabe von dem Speichermittel, jeweils ein Wort bei insgesamt n Wörtern; ersten bis n-ten Instruktions­ dekodierern zum Holen und Dekodieren der Ausgaben von den jeweiligen ersten bis n-ten Instruktionsregistern; einer Ausführungsschaltung zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selek­ tierten Ausgabe; und einer Steuerschaltung zum Bewirken, daß die Ausführungsschaltung die Ausgaben von den ersten bis n- ten Instruktionsdekodierern sequentiell selektiert und ausführt, zum Bewirken, daß der i-te Instruktionsdekodierer die Ausgabe von dem i-ten Instruktionsregister holt, nachdem die Ausführungsschaltung die Ausgabe des i-ten Instruktions­ dekodierers selektiert, zum Bewirken, daß der Programmzähler aktualisiert, nachdem die Ausführungsschaltung alle Ausgaben der ersten bis n-ten Instruktionsdekodierer einmal selek­ tiert, und zum Bewirken, daß die ersten bis n-ten Instruk­ tionsregister die Ausgabe von dem Speichermittel nach dem Aktualisieren halten.
Bezüglich des zweiten Aspektes der Erfindung ist es möglich, da die Verzweigungsinstruktion und die Instruktion an dem Verzweigungsziel kontinuierlich ohne Unterbrechung ausgeführt werden und ohne daß der Compiler irgendeine spezielle Verarbeitung für die Verzweigungsinstruktion ausführt, die Verarbeitung im Vergleich zum Stand der Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Gemäß dem dritten Aspekt der vorliegenden Erfindung ist ein Prozessor vorgesehen, der für jedes i, das 1 bis n ist, umfaßt: einen i-ten Programmzähler; ein i-tes Speichermittel zum Adressiertwerden mit der Ausgabe von dem i-ten Programm­ zähler; und ein i-tes Instruktionsregister zum Halten der Ausgaben von dem i-ten Speichermittel; welcher Prozessor ferner umfaßt: einen Instruktionsdekodierer zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instruk­ tionsregistern und zum Dekodieren der selektierten Ausgabe; eine Ausführungsschaltung zum Ausführen einer Verarbeitung auf der Grundlage der Ausgabe von dem Instruktionsdekodie­ rer; und eine Steuerschaltung zum Bewirken, daß der Instruktionsdekodierer die Ausgaben von den ersten bis n-ten Instruktionsregistern sequentiell selektiert, zum Bewirken, daß der i-te Programmzähler aktualisiert, nachdem die Ausgabe des i-ten Instruktionsregisters durch den Instruk­ tionsdekodierer selektiert ist, und zum Bewirken, daß das i- te Instruktionsregister die Ausgaben des i-ten Speicher­ mittels nach dem Aktualisieren hält; bei dem in den ersten bis n-ten Speichermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem ersten bis zu dem n­ ten Speichermittel gespeichert ist.
Bezüglich des dritten Aspektes der Erfindung ist es möglich, da die Verzweigungsinstruktion und die Instruktion am Ziel der Verzweigung kontinuierlich ohne Unterbrechung ausgeführt werden und ohne daß der Compiler irgendeine spezielle Verarbeitung für die Verzweigungsinstruktion ausführt, die Verarbeitung im Vergleich zum Stand der Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Gemäß dem ersten Modus von irgendeinem des ersten bis dritten Aspektes der vorliegenden Erfindung ist ein Prozes­ sor vorgesehen, bei dem die Ausgaben von den ersten bis n- ten Instruktionsregistern den Eingangsanschlüssen der Ausführungsschaltung über Umgehungen zugeführt werden; und die Steuerschaltung bestimmt auf der Grundlage der Ausgabe des Dekodierers, ob die Instruktion eine Direktdatenüber­ tragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruktion bestimmt wird, daß die Ausführungsschaltung Direktdaten über die Umgehung holt, um die Direktdatenübertragungsinstruktion sofort auszufüh­ ren.
Bezüglich des ersten Modus wird eine Direktdatenüber­ tragungsinstruktion in einem Zyklus ohne Unterbrechung ausgeführt, wodurch im Vergleich zum Stand der Technik, der eine Vielzahl von Zyklen erfordert, eine schnellere Ver­ arbeitung erreicht wird.
Gemäß dem zweiten Modus von irgendeinem des ersten bis dritten Aspektes der vorliegenden Erfindung ist ein Prozes­ sor vorgesehen, der ferner umfaßt: einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der Ausführungsschaltung; bei dem die Steuerschaltung bewirkt, wenn die Ausgabe des Instruktions­ dekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der Dekodierer von Instruk­ tionen mit N-facher Länge die Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der Dekodierer von Instruktionen mit einfacher Länge eine Instruktion dekodiert, die nach der Instruktion mit N-facher Länge folgt.
Bezüglich des zweiten Modus wird eine Instruktion mit N-facher Länge in einem Zyklus ohne Unterbrechung ausge­ führt, wodurch im Vergleich zum Stand der Technik, der eine Vielzahl von Zyklen erfordert, eine schnellere Verarbeitung erreicht wird.
Die Erfindung ist im folgenden anhand von Ausführungs­ beispielen näher beschrieben.
Fig. 1 ist ein Blockdiagramm, das einen Prozessor in der ersten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 2 ist ein Zeitlagendiagramm, das eine normale Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen und bis zu der Zeit ausgeführt wird, wenn in der Vorrichtung in Fig. 1 ein stationärer Zustand erreicht ist;
Fig. 3 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine unbedingte Verzweigungs­ instruktion in der Vorrichtung in Fig. 1 ausgeführt wird;
Fig. 4 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine bedingte Verzweigungs­ instruktion in der Vorrichtung in Fig. 1 ausgeführt wird;
Fig. 5 ist ein Blockdiagramm, das einen Prozessor in der zweiten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 6 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine Direktdatenübertragungs­ instruktion in der Vorrichtung in Fig. 5 ausgeführt wird;
Fig. 7 ist ein Blockdiagramm, das einen Prozessor in der dritten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 8 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine Instruktion mit doppelter Länge in der Vorrichtung in Fig. 7 ausgeführt wird;
Fig. 9 ist ein Blockdiagramm, das einen Prozessor in der vierten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 10 zeigt die Anordnung eines Programms innerhalb des Speichers in Fig. 9;
Fig. 11 ist ein Zeitlagendiagramm, das eine normale Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen und bis zu einem stationären Zustand in der Vorrichtung in Fig. 9 ausgeführt wird;
Fig. 12 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine unbedingte Verzweigungs­ instruktion in der Vorrichtung in Fig. 9 ausgeführt wird;
Fig. 13 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine bedingte Verzweigungs­ instruktion in der Vorrichtung in Fig. 9 ausgeführt wird;
Fig. 14 ist ein Blockdiagramm, das einen Prozessor in der fünften Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 15 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine Direktdatenübertragungs­ instruktion in der Vorrichtung in Fig. 14 ausgeführt wird;
Fig. 16 ist ein Blockdiagramm, das einen Prozessor in der sechsten Ausführungsform gemäß der vorliegenden Erfin­ dung zeigt;
Fig. 17 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung zeigt, die für eine Instruktion mit doppelter Länge in der Vorrichtung in Fig. 16 ausgeführt wird;
Fig. 18 ist ein Blockdiagramm, das einen Prozessor in der siebten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 19 ist ein Zeitlagendiagramm, das eine normale Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen bis zu der Zeit ausgeführt wird, wenn in der Vorrichtung in Fig. 18 der stationäre Zustand erreicht ist;
Fig. 20 ist ein Blockdiagramm, das einen Prozessor in der achten Ausführungsform gemäß der vorliegenden Erfindung zeigt;
Fig. 21 ist ein Zeitlagendiagramm, das eine Pipeline- Verarbeitung für eine Direktdatenübertragungsinstruktion in der Vorrichtung in Fig. 20 zeigt; und
Fig. 22 ist ein Blockdiagramm, das einen Prozessor in der neunten Ausführungsform gemäß der vorliegenden Erfindung zeigt.
Beschreibung der bevorzugten Ausführungsformen
Nun werden unten unter Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszeichen über mehrere Ansichten hinweg gleiche oder ähnliche Teile bezeichnen, Ausführungsformen der vorliegenden Erfindung beschrieben.
Erste Ausführungsform
Fig. 1 zeigt einen Prozessor in der ersten Ausführungs­ form gemäß der vorliegenden Erfindung.
Der Speicher 1A und der Speicher 1B haben eine identi­ sche Struktur mit gleicher Speicherkapazität, und in den zwei Speichern 1A und 1B wird ein Programm gespeichert, indem das Programm in Ein-Wort-Einheiten unterteilt wird, die alternierend in jeden der zwei Speicher geschrieben werden. Bezüglich der Adressen in dem Speicher 1A, die mit A0, A1, A2, . . . bezeichnet sind, und bezüglich der Adressen in dem Speicher 1B, die mit B0, B1, B2, . . . bezeichnet sind, wird das Programm nämlich in der Reihenfolge gespeichert: A0, B0, A1, B1, A2, B2.
Der Adresseneingangsanschluß des Speichers 1A ist mit dem Ausgangsanschluß des Programmzählers 2A über exklusive Drähte verbunden, und der Adresseneingangsanschluß des Speichers 1B ist mit dem Ausgangsanschluß des Programmzäh­ lers 2B über exklusive Drähte verbunden. Jeder der Programm­ zähler 2A und 2B hat eine Zweistufenstruktur, die aus der normalen Zählereinheit, die die Eingangsstufe ist, und der Halte-(Register) -Einheit besteht, die die Ausgangsstufe ist, und der Inhalt PAN, der in der Eingangsstufe aktualisiert und bestätigt worden ist, wird, wie später erläutert, in der Ausgangsstufe als Reaktion auf ein Steuersignal als PA gehalten.
Der Datenausgangsanschluß des Speichers 1A ist mit dem Eingangsanschluß des Instruktionsregisters 3A über exklusive Drähte verbunden, und der Datenausgangsanschluß des Spei­ chers 1B ist mit dem Eingangsanschluß des Instruktions­ registers 3B über exklusive Drähte verbunden. Der Speicher 1A führt den Inhalt IA1 unter der Adresse PA, die durch den Programmzähler 2A spezifiziert ist, ständig dem Eingangs­ anschluß des Instruktionsregisters 3A zu, und der Speicher 1B führt den Inhalt IB1 unter der Adresse PB, die durch den Programmzähler 2B spezifiziert ist, ständig dem Eingangs­ anschluß des Instruktionsregisters 3B zu. Die Instruktions­ register 3A und 3B halten IA1 bzw. IB1, um sie als IA2 bzw. IB2 als Reaktion auf ein Strobe-Signal auszugeben.
Die Ausgangsanschlüsse der Instruktionsregister 3A und 3B sind mit den Eingangsanschlüssen der Instruktionsdekodie­ rer 4A bzw. 4B verbunden. Jeder der Instruktionsdekodierer 4A und 4B ist in der Eingangsstufe mit einem internen Register versehen und dekodiert den Instruktionskode, der in diesem Register gehalten wird, zur Ausgabe als DA oder DB.
Die Ausgangsanschlüsse der Instruktionsdekodierer 4A und 4B sind mit den Eingangsanschlüssen der Ausführungs­ schaltung 5 und der Steuerschaltung 6 verbunden. Die Aus­ führungsschaltung 5 ist in der internen Eingangsstufe mit einem Selektor versehen, der als Reaktion auf das Selek­ tionssteuersignal entweder DA oder DB selektiert, und mit einem Register, das das selektierte DA oder DB hält. Auf der Grundlage des Dekodierresultats, welches die Ausgabe des Dekodierers ist und in diesem Register gehalten wird, führt die Ausführungsschaltung 5 eine Verarbeitung, wie z. B. eine Berechnung oder Datenübertragung, auf dieselbe Weise wie eine Ausführungsschaltung in der bekannten Technik aus, die mit einer ALU und internen Registern versehen ist. Um den Ausdruck zu vereinfachen, gehen wir von der Voraussetzung aus, daß die Selektion entweder von DA oder DB die Selektion entweder von DA oder DB und dessen Halten in dem Register bedeutet.
Diese Komponenten 1A bis 4A, 1B bis 4B und 5 arbeiten gemäß Steuersignalen, die von der Steuerschaltung 6 gesendet werden. Diese Steuersignale werden synchron mit den doppel­ ten Phasentakten CA und CB erzeugt, wie in Fig. 2 gezeigt. Die Grundlagen der Steuerung, die durch die Steuerschaltung 6 ausgeführt werden, sind wie folgt:
  • (1) Die Steuerschaltung 6 bewirkt, daß die Ausfüh­ rungsschaltung 5 DA und DB alternierend selektiert und ausführt, führt das Selektionssteuersignal mit der Zeitlage des Anstiegs des Taktes CA der Ausführungsschaltung 5 zu und bewirkt, daß sie DB selektiert, wenn sie die Ausführung der Ausgabe des Instruktionsdekodierers 4A vollendet hat, und bewirkt, daß sie das Dekodierresultat DA selektiert, wenn sie die Ausführung des Dekodierresultats des Instruktions­ dekodierers 4B vollendet hat. Dann bewirkt sie, daß das interne Register dieses Dekodierresultat hält. Die Anfangs­ selektion nach einem Rücksetzen ist DA.
  • (2) Wenn DA selektiert ist, bewirkt die Steuerschal­ tung 6, daß der Instruktionsdekodierer 4A IA2 hält, und wenn DB selektiert ist, bewirkt sie, daß der Instruktionsdekodie­ rer 4B IB2 hält.
  • (3) Wenn IA2 in dem Instruktionsdekodierer 4A gehalten wird, bewirkt die Steuerschaltung 6, daß das Instruktions­ register 3A IA1 hält, und wenn IB2 in dem Instruktions­ dekodierer 4B gehalten wird, bewirkt sie, daß das Instruk­ tionsregister 3B IB1 hält.
  • (4) Die Steuerschaltung 6 bewirkt, daß der Inhalt PAN oder PBN in der Eingangsstufe des Programmzählers 2A oder 2B in der Ausgangsstufe als PA oder PB mit der Zeitlage des Anstiegs des Taktes CA gehalten wird.
  • (5) Die Steuerschaltung 6 bewirkt, daß mit der Zeit­ lage des Anstiegs des Taktes CB IA1 in dem Instruktions­ register 3A gehalten wird oder IB1 in dem Instruktions­ register 3B gehalten wird.
  • (6) Die Steuerschaltung 6 aktualisiert den Inhalt PAN oder PBN in der Eingangsstufe des Programmzählers 2A oder 2B mit der Zeitlage des Anstiegs des Taktes CB. Das Aktualisie­ ren von PAN wird gewöhnlich durch Zuführen eines Impulses zu dem Takteingangsanschluß des Programmzählers 2A ausgeführt, um Eins zu dem Zählerwert hinzuzufügen, wenn aber die Ausgabe des Instruktionsdekodierers 4A eine unbedingte Verzweigungsinstruktion anzeigt, wird es ausgeführt, indem die Adresse des Verzweigungsziels auf der Grundlage der Ausgabe des Instruktionsdekodierers 4A bestimmt wird und sie dann in den Programmzähler 2A geladen wird, und wenn die Ausgabe des Instruktionsdekodierers 4A eine bedingte Verzweigungsinstruktion anzeigt, wird es ausgeführt, indem die Adresse des Verzweigungsziels auf der Grundlage der Ausgabe des Instruktionsdekodierers 4A und eines Status- Flags bestimmt wird und sie dann in den Programmzähler 2A geladen wird. Das Aktualisieren des Programmzählers 2B wird auf dieselbe Weise wie bei dem Programmzähler 2A ausgeführt.
(A) Als nächstes wird unter Bezugnahme auf Fig. 2 die normale Pipeline-Verarbeitung erläutert, die ausgeführt wird, nachdem der Prozessor zurückgesetzt wird, bis der Prozessor in den stationären Zustand eintritt.
Die Startadresse zur Programmausführung nach einem Rücksetzen wird als n bezeichnet. Obwohl es in Fig. 1 oder Fig. 2 nicht gezeigt ist, wird die Initialisierungsver­ arbeitung ausgeführt, wenn der Prozessor zurückgesetzt ist, bei der n in die Eingangsstufen der Programmzähler 2A und 2B geladen wird, und andererseits wird die Ausführungsstart­ adresse n den Eingangsanschlüssen des Speichers 1A und 1B über einen anderen Weg (nicht gezeigt) zugeführt.
Den zeitlichen Anstiegspunkten des Taktes CA sind ungerade Zahlen zugeordnet; t1, t3, t5, . . . , und den zeit­ lichen Anstiegspunkten des Taktes CB sind gerade Zahlen zugeordnet; t2, t4, t6 . . . Außerdem wird IA1, das aus der Adresse i in dem Speicher 1A gelesen wurde, als IA1(i) bezeichnet, und IA2 wird, wenn IA1(i) in dem Instruktions­ register 3A gehalten wird, als IA2(i) bezeichnet. Die gleiche Regel gilt für IB1 und IB2. Bei der folgenden Erläuterung hat die Pipeline 5 Stufen, die aus der Instruk­ tionshol-(IF)-Stufe, der Instruktionsdekodier-(ID)-Stufe, der Ausführungs-(EX)-Stufe, der Speicherzugriffs-(MA)-Stufe und der Stufe zum Schreiben in das Register (WB) bestehen. Zum Beispiel bei einer Instruktion, bei der Daten aus der Speicheradresse gelesen werden, die der Inhalt des Index­ registers IX mit hinzugefügter 100 sind, um in das Register R geladen zu werden; d. h.,
LOAD R, IX + 100;
ist die EX-Stufe die Verarbeitung, bei der 100 zu dem Inhalt des Indexregisters IX hinzugefügt werden, um die Ausfüh­ rungsadresse zu bestimmen, ist die MA-Stufe die Verarbei­ tung, bei der Daten aus dieser Ausführungsadresse in dem Speicher gelesen werden, und ist die WB-Stufe die Verarbei­ tung, bei der die Daten, die ausgelesen worden sind, in dem Register R gespeichert werden. Bei einer Instruktion hin­ sichtlich einer Register-Register-Operation, wie eine Register-Register-Vergleichsinstruktion, ist die EX-Stufe die Operation zwischen zwei Registern, ist die MA-Stufe bedeutungslos und ist die WB-Stufe das Speichern des Resul­ tats der Operation in einem Register. Bei einer Direktdaten­ übertragungsinstruktion; d. h.,
LDI R, 200
ist die WB-Stufe die Verarbeitung, bei der Direktdaten 200 in dem Register gespeichert werden, und die EX- und MA- Stufen sind bedeutungslos.
Von den Steuersignalen, die von der Steuerschaltung 6 ausgegeben werden, sind jene, die in Fig. 2 gezeigt sind, wie folgt: das Instruktion-IA-Dekodiersignal dient zum Bewirken, daß der Instruktionsdekodierer 4A, der IA2 hält, dies dekodiert, wenn es hoch ist, und das Instruktion-IB- Dekodiersignal dient zum Bewirken, daß der Instruktions­ dekodierer 4B, der IB2 hält, dies dekodiert, wenn es hoch ist. Das Instruktion-IA-Ausführungssignal dient zum Bewir­ ken, daß die Ausführungsschaltung 5 DA selektiert und ausführt, wenn es hoch ist, und das Instruktion-IB-Aus­ führungssignal dient zum Bewirken, daß die Ausführungs­ schaltung 5 DB selektiert und ausführt, wenn es hoch ist. Die IF-Stufe beginnt beim Aktualisieren von PA oder PB des Programmzählers 2A oder 2B.
  • (t1) n wird in beide Programmzähler 2A und 2B geladen. PA=n und PB=n. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind im Wartezustand.
  • (t2) IA1(n) und IB1(n) werden in den Instruktions­ registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt­ eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN=n+1 und PBN=n+1 ist. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind im Wartezustand.
  • (t3) IA2(n) und IB2(n) werden in den Instruktions­ dekodierern 4A bzw. 4B gehalten und dekodiert. PA=n+1 und PB=n+1. Die Ausführungsschaltung 5 ist in dem Wartezustand.
  • (t4) IA1(n+1) und IB1(n+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt­ eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN=n+2 und PBN=n+2 ist. Die Ausführungsschaltung 5 ist im Wartezustand.
  • (t5) DA(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt, um die EX-Stufe auszuführen. Andererseits wird DB(n) nicht selektiert, und der Instruk­ tionsdekodierer 4B tritt in den Wartezustand ein. Dieser Wartezustand bedeutet, daß der Ausgang des Instruktions­ dekodierers 4B beim Ausgeben des Dekodierresultats nicht verwendet wird. IA2(n+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=n+2.
  • (t6) IA1(n+2) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN=n+3 ist.
  • (t7) DB(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DA(n+1) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ausgeführt. IB2(n+1) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PB=n+2.
  • (t8) IB1(n+2) wird in dem Instruktionsregister 3B gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2B zugeführt, so daß PBN=n+3 ist.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DB(n+1) wird nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6 ausgeführt. IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=n+3.
Die normale Fünfstufen-Pipeline-Verarbeitung wird auf die oben beschriebene Weise ausgeführt, und die Operation tritt in den stationären Zustand ein.
(B) Nun wird unter Bezugnahme auf Fig. 3 die Pipeline- Verarbeitung für eine unbedingte Verzweigungsinstruktion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt.
Wir gehen von der Voraussetzung aus, daß diese un­ bedingte Verzweigungsinstruktion unter der Adresse An (Adresse n in dem Speicher 1A) gespeichert ist, daß eine relative Verzweigungszieladresse K in dem Wort der unbeding­ ten Verzweigungsinstruktion ist und daß die relative Ver­ zweigungszieladresse K eine gerade Zahl 2k und in dem Speicher 1A ist.
Das tatsächliche Verzweigungsziel für die relative Verzweigungszieladresse K wird auf dieselbe Weise wie bei einem Prozessor nach Stand der Technik bestimmt, in dem der Speicher 1A und der Speicher 1B integriert sind, indem die Adresse i in dem Speicher 1A als 2i betrachtet wird und ferner die Adresse i in dem Speicher 1B als 2i+1 betrachtet wird, für jedes i, das 0 bis M ist. Genauer gesagt, wenn die unbedingte Verzweigungsinstruktion in dem Speicher 1A (oder dem Speicher 1B) gespeichert ist und K eine ungerade Zahl 2k+1 ist, d. h., wenn das niederwertigste Bit von K "1" ist, ist die relative Verzweigungszieladresse gleich der relati­ ven Verzweigungszieladresse k in dem Speicher 1B (oder dem Speicher 1A), und wenn K eine gerade Zahl 2k ist, d. h., wenn das niederwertigste Bit von K "0" ist, ist die relative Verzweigungszieladresse gleich der relativen Verzweigungs­ zieladresse k in dem Speicher 1A (oder dem Speicher 1B).
Das folgende ist eine Erläuterung bezüglich der Pipe­ line-Verarbeitung eines Instruktionswortes, das der Adresse n-1 in dem Speicher 1A vorausgeht und der Adresse n-1 in dem Speicher 1B vorausgeht.
  • (t1) DA(n-2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n-1) wird in dem Instruktionsdekodie­ rer 4A gehalten und dekodiert. PA=n.
  • (t2) Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN=n+1 ist.
  • (t3) DB(n-2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n-1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n-1) wird in dem Instruktionsdekodie­ rer 4B gehalten und dekodiert. PB=n.
  • (t4) IB1(n) wird in dem Instruktionsregister 3B gehal­ ten. Ein Impuls wird dem Takteingangsanschluß des Programm­ zählers 2B zugeführt, so daß PBN=n+1 ist.
  • (t5) DA(n-1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n-1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PA=n+1.
  • (t6) IA1(n+1) wird in dem Instruktionsregister 3A gehalten. Durch die Steuerschaltung 6 wird bestimmt, daß DA(n) eine unbedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K=2k, die in DA(n) enthalten ist, wird in die Programmzähler 2A und 2B geladen, so daß PAN=k und PBN=k ist. Damit wird die nachfol­ gende Operation mit der Operation nach einem Rücksetzen identisch.
  • (t7) DB(n-1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n) wird nicht in dem Instruktions­ dekodierer 4B gehalten (wird unterdrückt). PA=k und PB=k.
  • (t8) IA1(k) und IB1(k) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PAN=k+1 und PBN=k+1.
  • (t9) Das Dekodierresultat DA(n) der unbedingten Ver­ zweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt. Denn k ist zu der Zeit t6 in die Programmzähler 2A und 2B geladen worden, und somit ist die Ausführung der unbedingten Verzweigung erfolgt. IA2(k) und IB2(k) werden in den Instruktionsdeko­ dierern 4A bzw. 4B gehalten und dekodiert. PA=k+1 und PB=k+1.
(t10) IA1(k+1) und IB1(k+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PAN=k+2 und PBN=k+2.
(t11) DA(k) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=k+2.
Da die unbedingte Verzweigungsinstruktion und die Instruktion am Verzweigungsziel ohne jede Unterbrechung kontinuierlich ausgeführt werden, wie erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert. Obwohl Fig. 3 den Fall zeigt, bei dem das Verzweigungsziel Ak ist, wird eine Verzögerung der Verarbeitung auf ähnliche Weise verhindert, wenn das Verzweigungsziel Bk ist.
(C) Als nächstes wird unter Bezugnahme auf Fig. 4 die Pipeline-Verarbeitung für eine bedingte Verzweigungsinstruk­ tion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt.
Die folgende Erörterung beruht auf der Voraussetzung, daß eine Register-Register-Vergleichsinstruktion unter der Adresse An gespeichert ist, daß die bedingte Verzweigungs­ instruktion unter der Adresse Bn gespeichert ist und daß die Verzweigungszieladresse bestimmt ist, um entweder An+1 oder Bk zu sein, in Abhängigkeit von dem Resultat der Ausführung dieser Vergleichsinstruktion in der EX-Stufe.
In Fig. 4 ist die Operation ab dem Zeitpunkt t1 bis zum Zeitpunkt t7 aus der obigen Erläuterung unter Bezugnahme auf Fig. 2 und 3 ersichtlich und wird deshalb hier weggelassen. Die Zeitpunkte t3 bis t7 entsprechen den Zeitpunkten t1 bis t5 in Fig. 3.
  • (t8) Durch die Steuerschaltung 6 wird bestimmt, daß DB(n) eine bedingte Verzweigungsinstruktion ist. Mit dieser Bestimmung wird das k der relativen Verzweigungszieladresse K=2k, die in DB(n) enthalten ist, in den Programmzähler 2B geladen, so daß PBN=k ist. Dann wird k+1 als Adresse, die Bk folgt, in den Programmzähler 2A geladen, so daß PAN=k+1 ist.
Damit wird die nachfolgende Operation ähnlich jener, die nach einem Rücksetzen ausgeführt wird.
  • (t9) Das Dekodierresultat DA(n) der Vergleichsinstruk­ tion wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PB=k+1 und PB=k.
  • (t10) IA1(k+1) und IB1(k) werden in den Instruktions­ registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt­ eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN=k+2 und PBN=k+1 ist.
  • (t11) Mit dem Resultat der Ausführung der oben beschriebenen Vergleichsinstruktion ist das Verzweigungsziel der bedingten Verzweigungsinstruktion bestimmt. In Fig. 4 ist die Verzweigungszieladresse bestimmt, um Bk zu sein, und DA(n+1) wird unterdrückt. Das Dekodierresultat DB(n) der bedingten Verzweigungsinstruktion wird durch die Ausfüh­ rungsschaltung 5 selektiert und formell ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k+1) und IB2(k) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PB=k+1.
  • (t12) IB1(k+1) wird in dem Instruktionsregister 3B gehalten. PBN=k+2.
  • (t13) Das Dekodierresultat DB(k) der Instruktion an dem Verzweigungsziel wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(k+1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die WB-Stufe, die DA(n) entspricht, und die MA-Stufe, die DB(n) entspricht, sind bedeutungslos). IB2(k+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=k+2.
Da die bedingte Verzweigungsinstruktion und die Instruktion an dem Verzweigungsziel ohne jede Unterbrechung kontinuierlich ausgeführt werden, wie erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert. Obwohl Fig. 4 einen Fall zeigt, bei dem das Verzweigungsziel Bk ist, wird eine Verzögerung der Verarbeitung auf ähnliche Weise verhindert, wenn das Verzweigungsziel Ak ist.
Zweite Ausführungsform
Fig. 5 zeigt einen Prozessor in der zweiten Ausfüh­ rungsform gemäß der vorliegenden Erfindung.
Um die Direktdaten im zweiten Wort in einer Direkt­ datenübertragungsinstruktion von den Instruktionsregistern 3A und 3B direkt der Ausführungsschaltung 5A zuzuführen, sind in diesem Prozessor die Ausgangsanschlüsse der Instruktionsregister 3A oder 3B über die Umgehung 7A bzw. 7B direkt mit den Eingangsanschlüssen der Ausführungsschaltung 5A verbunden.
Wenn die Steuerschaltung 6A bestimmt, daß die Ausgabe des Instruktionsdekodierers 4A oder 4B eine Direktdatenüber­ tragungsinstruktion anzeigt, veranlaßt sie die Ausführungs­ schaltung 5A, IA2 oder IB2 über die Umgehung 7A oder 7B direkt zu halten und sie in einem Zyklus auszuführen.
Alle anderen Aspekte sind identisch mit jenen des in Fig. 1 gezeigten Prozessors.
Fig. 6 zeigt die Pipeline-Verarbeitung für die Direkt­ datenübertragungsinstruktion, nachdem der Prozessor in den stationären Zustand eingetreten ist.
Wir gehen von der Voraussetzung aus, daß das erste Wort der Direktdatenübertragungsinstruktion unter der Adresse An gespeichert ist und daß die Direktdaten, d. h., das zweite Wort der Direktdatenübertragungsinstruktion, unter der Adresse Bn gespeichert sind.
  • (t1) DA(n-2) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n-2) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n-1) wird in dem Instruktionsdekodie­ rer 4A gehalten und dekodiert. PA=n.
  • (t2) Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN=n+1 ist.
  • (t3) DB(n-2) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DA(n-1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n-1) wird in dem Instruktionsdekodie­ rer 4B gehalten und dekodiert. PB=n.
  • (t4) Die Direktdaten IB1(n) werden in dem Instruktions­ register 3B gehalten. Ein Impuls wird dem Takteingangs­ anschluß des Programmzählers 2B zugeführt, so daß PBN=n+1 ist.
  • (t5) DA(n-1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n-1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=n+1.
  • (t6) IA1(n+1) wird in dem Instruktionsregister 3A gehalten. PAN=n+2. Die Steuerschaltung 6A bestimmt, daß DA(n) eine Direktdatenübertragungsinstruktion anzeigt und daß IB2(n) deshalb Direktdaten sind.
  • (t7) Auf der Grundlage der obigen Bestimmung wird IB2(n) nicht in dem Instruktionsdekodierer 4B sondern in dem internen Register der Ausführungsschaltung 5A über die Umgehung 7B gehalten. DB(n-1) wird durch die Ausführungs­ schaltung 5A selektiert und ausgeführt. DA(n) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. PB=n+1.
  • (t8) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
  • (t9) Das Dekodierresultat DA(n) der Direktdatenüber­ tragungsinstruktion wird durch die Ausführungsschaltung 5A selektiert und ohne Bedeutung ausgeführt (die EX-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(n+1) und IB2(n+1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PA=n+2 und PB=n+2.
  • (t10) IA1(n+2) und IB1(n+2) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PAN=n+3.
  • (t11) DA(n+1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n+1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6A ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Die Datenübertragung von Direktdaten zu einem Register wird in der WB-Stufe ausgeführt, die DA(n) entspricht.
Wie bisher erläutert worden ist, wird die Direktdaten­ übertragungsinstruktion mit doppelter Länge, die Direktdaten enthält, ohne Unterbrechung in einem Zyklus ausgeführt, wodurch irgendeine Verzögerung der Verarbeitung verhindert wird.
Dritte Ausführungsform
Fig. 7 zeigt einen Prozessor in der dritten Ausfüh­ rungsform gemäß der vorliegenden Erfindung.
Um eine Instruktion mit doppelter Länge schneller auszuführen, ist dieser Prozessor zusätzlich zu den Instruktionsdekodierern 4A und 4B mit einem Dekodierer von Instruktionen mit doppelter Länge 4N versehen. Die Ausgangs­ anschlüsse der Instruktionsregister 3A und 3B sind mit den Eingangsanschlüssen des Dekodierers von Instruktionen mit doppelter Länge 4N verbunden, und der Ausgangsanschluß des Dekodierers von Instruktionen mit doppelter Länge 4N ist mit dem Eingangsanschluß der Ausführungsschaltung 5B verbunden. Der Dekodierer von Instruktionen mit doppelter Länge 4N ist mit einem Register versehen, das IA2 und IB2 in seiner internen Eingangsstufe hält, und dekodiert Instruktionen mit doppelter Länge, die in diesem Register gehalten werden.
Wenn die Steuerschaltung 6B bestimmt, daß die Ausgabe des Instruktionsdekodierers 4A oder 4B eine Instruktion mit doppelter Länge anzeigt, veranlaßt sie den Dekodierer von Instruktionen mit doppelter Länge 4N, IA2 und IB2 zu halten, und veranlaßt ihn, die Instruktion mit doppelter Länge zu dekodieren. Das Dekodieren der Instruktion mit doppelter Länge wird in einem Zyklus ausgeführt.
Alle anderen Aspekte sind mit jenen des in Fig. 1 gezeigten Prozessors identisch.
Fig. 8 zeigt die Pipeline-Verarbeitung für eine Instruktion mit doppelter Länge, wenn der Prozessor in den stationären Zustand eingetreten ist.
Das Doppellängendekodiersignal in Fig. 8 dient der Ausführungsschaltung 6B, um den Dekodierer von Instruktionen mit doppelter Länge 4N zu veranlassen, IA2 und IB2 zu halten und sie zu dekodieren, wenn es hoch ist.
Wir gehen von der Voraussetzung aus, daß eine Instruk­ tion mit doppelter Länge unter den Adressen An und Bn gespeichert ist. Da die Operation zu den Zeitpunkten t1 bis t5 mit jener zu den Zeitpunkten t1 bis t5 in Fig. 3 iden­ tisch ist, wird ihre Erläuterung hier weggelassen.
  • (t6) IA2(n+1) wird in dem Instruktionsregister 3A gehalten. PAN=n+2. Die Steuerschaltung 6B bestimmt, daß DA(n) das erste Wort der Instruktion mit doppelter Länge anzeigt.
  • (t7) DB(n-1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Auf der Grundlage der oben beschriebenen Bestimmung werden IA2(n) und IB2(n) in der Eingangsstufe des Dekodierers von Instruktionen mit doppel­ ter Länge 4N gehalten und dekodiert. Andererseits wird nach diesem Halten IA2(n+1) in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=n+2 und PB=n+1.
  • (t8) IA1(n+2) wird in dem Instruktionsregister 3A gehalten, und IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PAN=n+3 und PBN=n+2.
  • (t9) Das Dekodierresultat des Dekodierers von Instruk­ tionen mit doppelter Länge 4N wird durch die Ausführungs­ schaltung 5B selektiert und ausgeführt. IA2(n+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PB=n+2.
  • (t10) IB1(n+2) wird in dem Instruktionsregister 3B gehalten. PBN=n+3.
  • (t11) DA(n+1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n+1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Die Speicherzugriffe, die DA(n) und DB(n) entsprechen, werden durch die Steuerschaltung 6B ausgeführt. IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA=n+3.
Wie bisher erläutert worden ist, wird die Instruktion mit doppelter Länge ohne Unterbrechung in einem Zyklus ausgeführt, wodurch eine Verzögerung der Verarbeitung verhindert wird.
Vierte Ausführungsform
Fig. 9 zeigt einen Prozessor in der vierten Ausfüh­ rungsform gemäß der vorliegenden Erfindung.
Um dessen Struktur einfacher als jene in der oben beschriebenen ersten Ausführungsform zu machen, beträgt in diesem Prozessor die Bitlänge des Speichers 1 zwei Wörter, wie in Fig. 10 gezeigt, und wenn die Adresse PC=i für den Speicher 1 spezifiziert ist, wird die Zweiwortinstruktion IW(i), die aus den Instruktionswörtern IA1(i) und IB1(i) besteht, ausgelesen. IA1(i) und IB1(i) werden in den Instruktionsregistern 3A bzw. 3B, die in Fig. 9 gezeigt sind, gehalten. Denn für den Speicher 1 ist nur ein Programmzähler 2 vorhanden. Die Ausgaben IA2 und IB2 der Instruktionsregister 3A und 3B werden in den Instruktions­ dekodierern 4A bzw. 4B gehalten und dekodiert. Mit dieser Struktur wird die Steuerung, die durch die Steuerschaltung 6C ausgeführt wird, im Vergleich zu der oben beschriebenen ersten Ausführungsform auch einfacher.
Die Grundlagen der Steuerung, die durch die Steuer­ schaltung 6C ausgeführt wird, sind wie folgt:
  • (1) Die Steuerschaltung 6 veranlaßt die Ausführungs­ schaltung 5, DA und DB alternierend zu selektieren und auszuführen, und führt das Selektionssteuersignal mit der Zeitlage des Anstiegs des Taktes CA (Fig. 2) der Ausfüh­ rungsschaltung 5 zu. Wenn die Ausführung des Dekodierresul­ tats des Instruktionsdekodierers 4A durch die Ausführungs­ schaltung 5 vollendet worden ist, veranlaßt sie die Aus­ führungsschaltung 5, DB zu selektieren, und wenn die Aus­ führung des Dekodierresultats des Instruktionsdekodierers 4B vollendet worden ist, veranlaßt sie die Ausführungsschaltung 5, das Dekodierresultat von DA zu selektieren. Sie veranlaßt das interne Register, dieses Dekodierresultat zu halten.
  • (2) Wenn DA durch die Ausführungsschaltung 5 selek­ tiert wird, hält der Instruktionsdekodierer 4A IA2, und wenn DB selektiert wird, hält der Instruktionsdekodierer 4B IB2.
  • (3) Jedes Mal, wenn ein Speichersatz DA und DB selek­ tiert ist, wird der Inhalt PCN in der Eingangsstufe des Programmzählers 2 in der Ausgangsstufe mit der Zeitlage des Anstiegs des Taktes CA gehalten und als PC ausgegeben.
  • (4) Mit der Zeitlage des Anstiegs des Taktes CB (Fig. 2) werden IA1 und IB1 in den Instruktionsregistern 3A bzw. 3B gehalten, und PCN wird aktualisiert.
(A) Als nächstes wird unter Bezugnahme auf Fig. 11 die normale Pipeline-Verarbeitung erläutert, die ausgeführt wird, nachdem der Prozessor zurückgesetzt ist, bis der Prozessor in den stationären Zustand eintritt. Die in der Figur nicht gezeigte Initialisierungsverarbeitung, die unmittelbar nach einem Rücksetzen ausgeführt wird, ist mit jener identisch, die in der oben beschriebenen ersten Ausführungsform ausgeführt wird.
  • (t1) PC=n. IW(n)={IA1(n), IB(n)} wird aus dem Speicher 1 ausgelesen. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind in dem Wartezustand.
  • (t2) IA1(n) und IB1(n) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=n+1.
  • (t3) IA2(n) und IB2(n) werden in den Instruktions­ dekodierern 4A bzw. 4B gehalten und dekodiert. PC=n+1. Die Ausführungsschaltung 5 ist in dem Wartezustand.
  • (t4) IA1(n+1) und IB1(n+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=n+2.
  • (t5) DA(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n+1) wird in dem Instruktionsdekodie­ rer 4A gehalten und dekodiert.
  • (t7) DB(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DA(n+1) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ausgeführt. IB2(n+1) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PC=n+2.
  • (t8) Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ausgeführt. IA1(n+2) und IB1(n+2) werden in den Instruktionsregistern 3A bzw. 3B gehalten. PCN=n+3.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6C ausgeführt. DB(n+1) wird nicht selektiert, und der Instruktionsdekodie­ rer 4B tritt in den Wartezustand ein. IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird die normale Pipeline-Verarbeitung von 5 Stufen ausgeführt, und dann tritt der Prozessor in den stationären Zustand ein.
(B) Als nächstes wird unter Bezugnahme auf Fig. 12 die Pipeline-Verarbeitung für eine unbedingte Verzweigungs­ instruktion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingun­ gen für die unbedingte Verzweigungsinstruktion sind diesel­ ben wie jene, die im Fall von Fig. 3 angegeben wurden.
  • (t1) DB(n-2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n-1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n-1) wird in dem Instruktionsdekodie­ rer 4B gehalten und dekodiert. PC=n.
  • (t2) Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten, und gleichzei­ tig wird IB1(n) in dem Instruktionsregister 3B gehalten. PCN=n+1.
  • (t3) DA(n-1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n-1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
  • (t4) Die Steuerschaltung 6C bestimmt, daß DA(n) eine unbedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K=2k, die in DA(n) enthal­ ten ist, wird in den Programmzähler 2 geladen, so daß PCN=k ist. Damit wird die nachfolgende Operation identisch mit jener nach einem Rücksetzen.
  • (t5) DB(n-1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n) wird nicht in dem Instruktions­ dekodierer 4B gehalten (wird unterdrückt). PC=k.
  • (t6) IA1(k) und IB1(k) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=k+1.
  • (t7) Das Dekodierresultat DA(n) der unbedingten Ver­ zweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt (die EX-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k) und IB2(k) werden in dem Instruktionsdekodierer 4A bzw. 4B gehalten und dekodiert. PC=k+1.
  • (t8) IA1(k+1) und IB1(k+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=k+2.
  • (t9) DA(k) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert, da die unbedingte Verzweigungs­ instruktion und die Instruktion am Verzweigungsziel kon­ tinuierlich ohne jede Unterbrechung ausgeführt werden. Obwohl Fig. 12 den Fall zeigt, bei dem das Verzweigungsziel Ak ist, wird eine Verzögerung der Verarbeitung auf dieselbe Weise verhindert, wenn das Verzweigungsziel Bk ist.
(C) Als nächstes wird unter Bezugnahme auf Fig. 13 die Pipeline-Verarbeitung für eine bedingte Verzweigungsinstruk­ tion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingungen für die bedingte Verzweigungsinstruktion sind mit jenen identisch, die in Fig. 4 gegeben sind, außer daß das Verzweigungsziel hier Ak ist.
In Fig. 13 ist die Operation ab dem Zeitpunkt t1 bis zum Zeitpunkt t3 mit der Operation identisch, die von Zeitpunkt t1 bis Zeitpunkt t3 in Fig. 12 ausgeführt wird, und ihre Beschreibung wird weggelassen. Bei t4 gibt es keine Veränderung.
  • (t5) PC=n+1. DB(n-1) wird durch die Ausführungsschal­ tung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Die bedingte Verzweigungsinstruktion IB2(n) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert.
  • (t6) IA1(n+1) und IB1(n+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. Die Steuerschaltung 6C bestimmt, daß DB(n) eine bedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K=2k, die in DB(n) enthalten ist, wird in den Programmzähler 2 geladen. Die nachfolgende Operation wird jener ähnlich, die nach einem Rücksetzen ausgeführt wird.
  • (t7) Das Dekodierresultat DA(n) der Vergleichsinstruk­ tion wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DB(n) wird nicht selektiert, und der Instruk­ tionsdekodierer 4B tritt in den Wartezustand ein. IA2(n+1) wird in dem Instruktionsdekodierer 4A gehalten und deko­ diert. PC=k.
  • (t8) IA1(k) und IB1(k) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=k+1.
  • (t9) Auf der Grundlage des oben beschriebenen Resultats der Ausführung der Vergleichsinstruktion wird das Verzwei­ gungsziel für die bedingte Verzweigungsinstruktion bestimmt. In Fig. 13 ist die Verzweigungszieladresse bestimmt, um Ak zu sein, und DA(n+1) und IB2(n+1) werden unterdrückt. Das Dekodierresultat DB(n) der bedingten Verzweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt, und der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ohne Bedeutung ausgeführt (die EX-Stufe, die DB(n) entspricht, und die MA- Stufe, die DA(n) entspricht, sind bedeutungslos). IA2(k) und IB2(k) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC=k+1.
  • (t10) IA1(k+1) und IB1(k+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten, und PCN=k+2.
  • (t11) Das Dekodierresultat DA(k) der Instruktion an dem Verzweigungsziel wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6C ohne Bedeutung ausge­ führt (die WB-Stufe, die DA(n) entspricht, und die MA-Stufe, die DB(n) entspricht, sind bedeutungslos). IA2(k+1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert, da die bedingte Verzweigungs­ instruktion und die Instruktion am Verzweigungsziel ohne jede Unterbrechung kontinuierlich ausgeführt werden. Obwohl Fig. 13 den Fall zeigt, bei dem das Verzweigungsziel Ak ist, wird eine Verzögerung der Verarbeitung auf dieselbe Weise verhindert, wenn das Verzweigungsziel Bk ist.
Fünfte Ausführungsform
Fig. 14 zeigt den Prozessor in der fünften Ausführungs­ form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in Fig. 5 gezeigten Struktur und verkörpert eine ähnliche Vereinfachung wie jene, die in Fig. 9 gezeigt ist. Um nämlich die Direktdaten im zweiten Wort einer Direktdaten­ übertragungsinstruktion von den Instruktionsregistern 3A oder 3B direkt der Ausführungsschaltung 5A zuzuführen, sind die Ausgangsanschlüsse der Instruktionsregister 3A und 3B über die Umgehung 7A bzw. 7B direkt mit den Eingangs­ anschlüssen der Ausführungsschaltung 5A verbunden.
Fig. 15 zeigt die Pipeline-Verarbeitung für eine Direktdatenübertragungsinstruktion, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingungen für die Direktdatenübertragungsinstruktion sind dieselben wie jene, die in Fig. 6 gegeben sind.
Die Operation ab Zeitpunkt t1 bis t4 in Fig. 15 ist identisch mit der Operation, die ab Zeitpunkt t1 bis t4 in Fig. 13 ausgeführt wurde, und ihre Erläuterung wird hier weggelassen. Die Steuerschaltung 6D bestimmt zwischen den Zeitpunkten t3 und t5, daß DA(n) eine Direktdatenübertra­ gungsinstruktion anzeigt.
  • (t5) PC=n+1. DB(n-1) wird durch die Ausführungsschal­ tung 5A selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Mit der oben beschriebenen Bestimmung passiert IB2(n) die Umgehung 7B und wird in dem internen Register der Ausführungsschaltung 5A als Direktdaten direkt gehalten.
  • (t6) IA1(n+1) und IB1(n+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=n+2.
  • (t7) Das Dekodierresultat DA(n) der Direktdatenüber­ tragungsinstruktion wird durch die Ausführungsschaltung 5A selektiert und ohne Bedeutung ausgeführt. IA2(n+1) und IB2(n+1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC=n+2.
  • (t8) IA1(n+2) und IB1(n+2) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=n+3.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n+1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6D ohne Bedeutung ausgeführt. IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Die Datenübertragung von Direktdaten mit doppelter Länge zu einem Register wird in der WB-Stufe ausgeführt, die DA(n) entspricht.
Wie bisher erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert, da die Direktdatenübertragungs­ instruktion mit doppelter Länge ohne Unterbrechung in einem Zyklus ausgeführt wird.
Sechste Ausführungsform
Fig. 16 zeigt den Prozessor in der sechsten Ausfüh­ rungsform gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in Fig. 7 gezeigten Struktur und verkörpert eine ähnliche Vereinfachung wie jene, die in Fig. 9 gezeigt ist. Um nämlich eine Instruktion mit doppelter Länge schneller auszuführen, ist zusätzlich zu den Instruktionsdekodierern 4A und 4B zu der in Fig. 9 gezeigten Struktur ein Dekodierer von Instruktionen mit doppelter Länge 4N hinzugefügt, und die Ausgangsanschlüsse der Instruktionsregister 3A und 3B sind mit dem Eingangsanschluß des Dekodierers von Instruk­ tionen mit doppelter Länge 4N über die Drähte 8A bzw. 8B verbunden, und die Ausgangsanschlüsse des Dekodierers von Instruktionen mit doppelter Länge 4N sind mit dem Eingangs­ anschluß der Ausführungsschaltung 5B verbunden.
Fig. 17 zeigt die Pipeline-Verarbeitung für eine Instruktion mit doppelter Länge, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingungen für die Instruktion mit doppelter Länge sind dieselben wie jene, die im Fall von Fig. 8 gegeben sind.
  • (t1) DB(n-2) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DA(n-1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n-1) wird in dem Instruktionsdekodie­ rer 4B gehalten und dekodiert. PC=n.
  • (t2) Das erste Wort IA1(n) und das zweite Wort IB1(n) der Instruktion mit doppelter Länge werden in den Instruk­ tionsregistern 3A bzw. 3B gehalten. PCN=n+1.
  • (t3) DA(n-1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n-1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
  • (t4) Die Steuerschaltung 6E bestimmt, daß DA(n) eine Instruktion mit doppelter Länge anzeigt.
  • (t5) Auf der Grundlage der oben beschriebenen Bestim­ mung treten die Instruktionsdekodierer 4A und 4B in den Wartezustand ein. Andererseits werden IA2(n) und IB2(n) in dem Dekodierer von Instruktionen mit doppelter Länge 4N über die Drähte 8A bzw. 8B gehalten, und die Instruktion mit doppelter Länge wird dekodiert. DB(n-1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. PC=n+1.
  • (t6) IA1(n+1) und IB1(n+1) werden in den Instruktions­ registern 3A bzw. 3B gehalten, und PCN=n+2.
  • (t7) Die Dekodierresultate DA(n) und DB(n) der Instruktion mit doppelter Länge werden durch die Ausfüh­ rungsschaltung 5B ausgeführt. IA2(n+1) und IB2(n+1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC=n+2.
  • (t8) IA1(n+2) und IB1(n+2) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PCN=n+3.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Die Speicherzugriffe, die DA(n) und DB(n) entsprechen, werden durch die Steuerschaltung 6E ausgeführt. IA2(n+2) wird in dem Instruktionsdekodierer 4A gehalten und wird dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert, da die Instruktion mit doppel­ ter Länge ohne Unterbrechung in einem Zyklus ausgeführt wird.
Siebte Ausführungsform
Fig. 18 zeigt den Prozessor in der siebten Ausführungs­ form gemäß der vorliegenden Erfindung.
In diesem Prozessor wird, um die Struktur im Vergleich zu jener in Fig. 1 zu vereinfachen, nur ein Instruktions­ dekodierer 4 verwendet. Da nur ein Instruktionsdekodierer 4 vorhanden ist, ist die Eingangsstufe innerhalb der Aus­ führungsschaltung 5C nicht mit einem Selektor versehen, und statt dessen ist ein Selektor, der entweder die Ausgabe des Instruktionsregisters 3A oder 3B selektiert, in der nächsten Stufe des Registers vorgesehen, das in der Eingangsstufe innerhalb des Instruktionsdekodierers 4 angeordnet ist. Der einzige Unterschied zwischen der Ausführungsschaltung 5C und der Ausführungsschaltung 5, die in Fig. 1 gezeigt ist, ist der, daß die Ausführungsschaltung 5C nicht mit einem Selek­ tor in der internen Eingangsstufe versehen ist. Der einzige Unterschied zwischen dem Instruktionsdekodierer 4 und dem Instruktionsdekodierer 4A, der in Fig. 1 gezeigt ist, ist der, daß der Instruktionsdekodierer 4 mit dem Selektor in der internen Eingangsstufe versehen ist.
Da nur ein Instruktionsdekodierer 4 vorhanden ist, ist die Steuerung, die durch die Steuerschaltung 6F ausgeführt wird, einfacher als jene, die durch die in Fig. 1 gezeigte Steuerschaltung 6 ausgeführt wird. Wenn IA2 in dem Instruk­ tionsdekodierer 4 gehalten wird, fügt die Steuerschaltung 6F Eins zu PAN hinzu und veranlaßt das Instruktionsregister 3A, IA1 zu halten. Wenn IB2 in dem Instruktionsdekodierer 4 gehalten wird, fügt die Steuerschaltung 6F Eins zu PBN hinzu und veranlaßt das Instruktionsregister 3B, IB1 zu halten.
Alle anderen Aspekte dieses Prozessors sind mit jenen des in Fig. 1 gezeigten Prozessors identisch.
Die normale Pipeline-Verarbeitung, die ausgeführt wird, nachdem der Prozessor zurückgesetzt ist und bis der Prozes­ sor in den stationären Zustand eintritt, wird unter Bezugnahme auf Fig. 19 erläutert. Die in der Figur nicht gezeigte Initialisierungsverarbeitung, die unmittelbar nach einem Rücksetzen ausgeführt wird, ist mit jener identisch, die in der vorher beschriebenen ersten Ausführungsform ausgeführt wird.
  • (t1) PA=n und PB=n. Der Instruktionsdekodierer 4 und die Ausführungsschaltung 5C sind in dem Wartezustand.
  • (t2) IA1(n) und IB1(n) werden in den Instruktions­ registern 3A bzw. 3B gehalten. PAN=n+1 und PBN=n+1.
  • (t3) IA2(n) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. IB2(n) tritt in den Wartezustand ein. PA=n+1. Die Ausführungsschaltung 5C ist in dem Warte­ zustand.
  • (t4) IA1(n+1) wird in dem Instruktionsregister 3A gehalten. PAN=n+2.
  • (t5) DA(n) wird durch die Ausführungsschaltung 5C gehalten und ausgeführt. IB2(n) wird in dem Instruktions­ dekodierer 4 gehalten und dekodiert. PB=n+1.
  • (t6) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
  • (t7) DB(n) wird durch die Ausführungsschaltung 5C ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6F ausgeführt. IA2(n+1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA=n+2.
  • (t8) IA1(n+2) wird in dem Instruktionsregister 3A gehalten. PAN=n+3.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5C ausgeführt. Das Speicherbeschreiben, das DB(n) entspricht, und das Schreiben in das Register, das DA(n) entspricht, werden durch die Steuerschaltung 6F ausgeführt. IB2(n+1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PB=n+2.
Die normale Pipeline-Verarbeitung mit 5 Stufen wird auf die oben beschriebene Weise ausgeführt, und der Prozessor tritt in den stationären Zustand ein. Da die Pipeline- Verarbeitung für eine unbedingte Verzweigungsinstruktion und eine bedingte Verzweigungsinstruktion, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt, leicht aus der vorherigen Erläuterung ersichtlich sind, wird ihre Erläuterung hier weggelassen. Auch mit diesem Prozessor wird der schon beschriebene Vorteil, daß eine unbedingte Verzweigungsinstruktion und eine bedingte Verzweigungs­ instruktion ohne Unterbrechung in einem Zyklus ausgeführt werden können, erreicht.
Achte Ausführungsform
Fig. 20 zeigt den Prozessor in der achten Ausführungs­ form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in Fig. 5 gezeigten Struktur und verkörpert eine ähnliche Vereinfachung wie jene, die in Fig. 18 gezeigt ist. Um nämlich die Direktdaten in dem zweiten Wort einer Direkt­ datenübertragungsinstruktion von den Instruktionsregistern 3A oder 3B direkt der Ausführungsschaltung 5D zuzuführen, sind die Ausgangsanschlüsse der Instruktionsregister 3A und 3B über die Umgehung 7A bzw. 7B direkt mit den Eingangs­ anschlüssen der Ausführungsschaltung 5D verbunden.
Fig. 21 zeigt die Pipeline-Verarbeitung für eine Direktdatenübertragungsinstruktion, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingungen für die Direktdatenübertragungsinstruktion sind dieselben wie jene im Fall von Fig. 6.
  • (t1) DB(n-2) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. PA=n. IA2(n-1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert.
  • (t2) IA1(n) wird in dem Instruktionsregister 3A gehal­ ten. PAN=n+1.
  • (t3) DA(n-1) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. IB2(n-1) wird in dem Instruktions­ dekodierer 4 gehalten und dekodiert. PB=n.
  • (t4) IB1(n) wird in dem Instruktionsregister 3B gehal­ ten. PBN=n+1.
  • (t5) DB(n-1) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. Die Direktdatenübertragungsinstruk­ tion IA2(n) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA=n+1.
  • (t6) IA1(n+1) wird in dem Instruktionsregister 3A gehalten, so daß PAN=n+2 ist. Die Steuerschaltung 6G bestimmt, daß IA2 (n) eine Direktdatenübertragungsinstruktion ist und daß IB2(n) deshalb Direktdaten sind. Die Steuer­ schaltung 6G steuert das Senden von IB2(n) als Direktdaten über die Umgehung 7B zu der Ausführungsschaltung 5D.
  • (t7) Das Dekodierresultat DB(n) der Direktdatenüber­ tragungsinstruktion wird durch die Ausführungsschaltung 5D ohne Bedeutung ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6G ohne Bedeutung ausgeführt. IA2(n+1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PB=n+1.
  • (t8) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
  • (t9) DA(n+1) wird durch die Ausführungsschaltung 5D ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6G ohne Bedeutung ausgeführt. IB2(n+1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA=n+2.
Die Datenübertragung von Direktdaten mit doppelter Länge zu einem Register wird in der WB-Stufe ausgeführt, die DA(n) entspricht.
Wie bisher erläutert worden ist, wird eine Verzögerung der Verarbeitung verhindert, da die Direktdatenübertragungs­ instruktion mit doppelter Länge, die Direktdaten enthält, ohne Unterbrechung in einem Zyklus ausgeführt wird.
Neunte Ausführungsform
Fig. 22 zeigt den Prozessor in der neunten Ausführungs­ form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in Fig. 7 gezeigten Struktur und verkörpert eine ähnliche Vereinfachung wie jene, die in Fig. 18 gezeigt ist. Um nämlich eine Instruktion mit doppelter Länge schneller auszuführen, ist zusätzlich zu dem Instruktionsdekodierer 4 zu der Struktur in Fig. 18 ein Dekodierer von Instruktionen mit doppelter Länge 4N hinzugefügt, und die Ausgangs­ anschlüsse der Instruktionsregister 3A und 3B sind mit den Eingangsanschlüssen des Dekodierers von Instruktionen mit doppelter Länge 4N über die Drähte 8A bzw. 8B verbunden, und der Ausgangsanschluß des Dekodierers von Instruktionen mit doppelter Länge 4N ist mit dem Eingangsanschluß der Aus­ führungsschaltung 5E verbunden.
Da die durch die Steuerschaltung 6H dieses Prozessors ausgeführte Operation leicht aus der vorherigen Erläuterung ersichtlich ist, wird ihre Erläuterung hier weggelassen.
Auch mit diesem Prozessor wird der vorher beschriebene Vorteil, daß eine Instruktion mit doppelter Länge ohne Unterbrechung in einem Zyklus ausgeführt werden kann, erreicht.
Obwohl die vorliegende Erfindung in ihren bevorzugten Ausführungsformen beschrieben worden ist, versteht sich, daß die Erfindung nicht darauf begrenzt ist und daß verschiedene Veränderungen und Abwandlungen vorgenommen werden können, ohne von dem Grundgedanken und dem Schutzumfang der Erfin­ dung abzuweichen.

Claims (9)

1. Ein Prozessor, der für jedes i, das 1 bis n ist, umfaßt:
einen i-ten Programmzähler;
ein i-tes Speichermittel, an welches eine Ausgabe von dem genannten i-ten Programmzähler zu adressieren ist;
ein i-tes Instruktionsregister zum Halten einer Ausgabe von dem genannten i-ten Speichermittel; und
einen i-ten Instruktionsdekodierer zum Holen und Dekodieren einer Ausgabe von dem genannten i-ten Instruk­ tionsregister;
welcher Prozessor ferner umfaßt:
eine Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
eine Steuerschaltung zum Bewirken, daß die genann­ te Ausführungsschaltung die genannten Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequen­ tiell selektiert und ausführt, zum Bewirken, daß der genann­ te i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungsschaltung die Ausgabe des genannten i-ten Instruktionsdekodierers selektiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem der genannte i-te Instruktionsdekodierer holt, und zum Bewirken, daß das genannte i-te Instruktionsregister die genannte Ausgabe von dem genannten i-ten Speichermittel nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei­ chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten Speichermittel bis zu dem n-ten Speichermittel gespeichert ist.
2. Ein Prozessor nach Anspruch 1, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers entscheidet, ob die Instruktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungs­ instruktion bestimmt wird, daß die genannte Ausführungs­ schaltung Direktdaten über die genannte Umgehung holt, um die Direktdatenübertragungsinstruktion sofort auszuführen.
3. Ein Prozessor nach Anspruch 1, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko­ diert, die nach der genannten Instruktion mit N-facher Länge folgt.
4. Ein Prozessor mit:
einem Programmzähler;
einem Speichermittel zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und zum adressiert werden mit einer Ausgabe des genannten Programm­ zählers, um die genannten n Wörter auszugeben;
ersten bis n-ten Instruktionsregistern zum Halten der Ausgabe von dem genannten Speichermittel, jeweils ein Wort bei insgesamt n Wörtern;
ersten bis n-ten Instruktionsdekodierern zum Holen und Dekodieren der Ausgaben von den jeweiligen genannten ersten bis n-ten Instruktionsregistern;
einer Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
einer Steuerschaltung zum Bewirken, daß die genannte Ausführungsschaltung die Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequentiell selek­ tiert und ausführt, zum Bewirken, daß der genannte i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungs­ schaltung die Ausgabe des genannten i-ten Instruktions­ dekodierers selektiert, zum Bewirken, daß der genannte Programmzähler aktualisiert, nachdem die genannte Ausfüh­ rungsschaltung alle Ausgaben der genannten ersten bis n-ten Instruktionsdekodierer einmal selektiert, und zum Bewirken, daß die genannten ersten bis n-ten Instruktionsregister die Ausgabe von dem genannten Speichermittel nach dem genannten Aktualisieren halten.
5. Ein Prozessor nach Anspruch 4, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk­ tion eine Direktdatenübertragungsinstruktion ist oder nicht, und falls diese als Direktdatenübertragungsinstruk­ tion bestimmt wird, bewirkt daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt­ datenübertragungsinstruktion sofort auszuführen.
6. Ein Prozessor nach Anspruch 4, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko­ diert, die nach der genannten Instruktion mit N-facher Länge folgt.
7. Ein Prozessor, der für jedes i, das 1 bis n ist, umfaßt:
einen i-ten Programmzähler;
ein i-tes Speichermittel zum Adressiertwerden mit der Ausgabe von dem genannten i-ten Programmzähler; und
ein i-tes Instruktionsregister zum Halten der Ausgaben von dem genannten i-ten Speichermittel;
welcher Prozessor ferner umfaßt:
einen Instruktionsdekodierer zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsregistern und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung zum Ausführen einer Verarbeitung auf der Grundlage der Ausgabe von dem genannten Instruktionsdekodierer; und
eine Steuerschaltung zum Bewirken, daß der genann­ te Instruktionsdekodierer die Ausgaben von den genannten ersten bis n-ten Instruktionsregistern sequentiell selek­ tiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem die Ausgabe des genannten i-ten Instruktionsregisters durch den genannten Instruktions­ dekodierer selektiert ist, und zum Bewirken, daß das genann­ te i-te Instruktionsregister die Ausgaben des genannten i- ten Speichermittels nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei­ chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten bis zu dem genannten n- ten Speichermittel gespeichert ist.
8. Ein Prozessor nach Anspruch 7, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk­ tion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruk­ tion bestimmt wird, daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt­ datenübertragungsinstruktion sofort auszuführen.
9. Ein Prozessor nach Anspruch 7, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko­ diert, die nach der genannten Instruktion mit N-facher Länge folgt.
DE4442687A 1993-12-28 1994-11-30 Prozessor mit mehreren Instruktionsregistern Expired - Fee Related DE4442687C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5352824A JPH07200289A (ja) 1993-12-28 1993-12-28 情報処理装置

Publications (2)

Publication Number Publication Date
DE4442687A1 true DE4442687A1 (de) 1995-06-29
DE4442687C2 DE4442687C2 (de) 1999-11-25

Family

ID=18426693

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4442687A Expired - Fee Related DE4442687C2 (de) 1993-12-28 1994-11-30 Prozessor mit mehreren Instruktionsregistern

Country Status (4)

Country Link
US (1) US5649226A (de)
JP (1) JPH07200289A (de)
DE (1) DE4442687C2 (de)
GB (1) GB2285322B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
US6209020B1 (en) * 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
JP3738134B2 (ja) * 1998-06-19 2006-01-25 三洋電機株式会社 デジタル信号処理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4587611A (en) * 1980-09-04 1986-05-06 Amdahl Corporation Multiple module control store for use in a data processing system
US5267350A (en) * 1989-10-26 1993-11-30 Kenji Matsubara Method for fetching plural instructions using single fetch request in accordance with empty state of instruction buffers and setting of flag latches

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
EP0407911B1 (de) * 1989-07-07 1998-12-09 Hitachi, Ltd. Vorrichtung und Verfahren zur parallelen Verarbeitung
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
US5357617A (en) * 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5317745A (en) * 1992-01-10 1994-05-31 Zilog, Inc. Minimal interrupt latency scheme using multiple program counters
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5574937A (en) * 1995-01-30 1996-11-12 Intel Corporation Method and apparatus for improving instruction tracing operations in a computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4587611A (en) * 1980-09-04 1986-05-06 Amdahl Corporation Multiple module control store for use in a data processing system
US5267350A (en) * 1989-10-26 1993-11-30 Kenji Matsubara Method for fetching plural instructions using single fetch request in accordance with empty state of instruction buffers and setting of flag latches

Also Published As

Publication number Publication date
DE4442687C2 (de) 1999-11-25
JPH07200289A (ja) 1995-08-04
GB2285322A (en) 1995-07-05
GB2285322B (en) 1998-10-07
US5649226A (en) 1997-07-15
GB9424058D0 (en) 1995-01-18

Similar Documents

Publication Publication Date Title
DE4302495C2 (de) Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE3786594T2 (de) Speicherverwaltungseinheit für Digitalsignalprozessor.
DE4035405C2 (de)
US5283874A (en) Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
DE3638572C2 (de)
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE4335475A1 (de) Datenverarbeitungseinrichtung mit Cache-Speicher
DE2944419C2 (de)
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE2829668A1 (de) Kanaldatenpufferspeicher
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE2248296A1 (de) Programmsteuereinrichtung
DE2926351A1 (de) Look-ahead-speicheradressen- steuereinrichtung
DE3851230T2 (de) Steuergerät für gespeicherte programme mit einer möglichkeit für bedingte abzweigung wie in einem videosignalverarbeitungssystem.
EP1117037B1 (de) Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads)
DE4222275C2 (de) Parallelprozessor und Betriebsverfahren für diesen
DE2906685C2 (de)
DE4442687C2 (de) Prozessor mit mehreren Instruktionsregistern
DE3633898C2 (de)
DE69930893T2 (de) Digitaler Signalprozessor für Daten mit grosser Bitlänge

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee