DE3750625T2 - Datenverarbeitungssystem mit zwei Ausführungseinheiten. - Google Patents

Datenverarbeitungssystem mit zwei Ausführungseinheiten.

Info

Publication number
DE3750625T2
DE3750625T2 DE3750625T DE3750625T DE3750625T2 DE 3750625 T2 DE3750625 T2 DE 3750625T2 DE 3750625 T DE3750625 T DE 3750625T DE 3750625 T DE3750625 T DE 3750625T DE 3750625 T2 DE3750625 T2 DE 3750625T2
Authority
DE
Germany
Prior art keywords
instruction
registers
outputs
unit
instructions
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
Application number
DE3750625T
Other languages
English (en)
Other versions
DE3750625D1 (de
Inventor
Chiao-Mei Chuang
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3750625D1 publication Critical patent/DE3750625D1/de
Publication of DE3750625T2 publication Critical patent/DE3750625T2/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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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

    Anwendungsgebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im allgemeinen auf Computer mit reduziertem Befehlsvorrat (RISC) und insbesondere darauf, die Leistung von RISC Prozessoren zu steigern, die wenig zusätzliche Hardware benutzen. Zwei Beispiele zur RISC Technologie werden im einzelnen in den Artikeln (1) "The 801 Minicomputer" von George Radin und (2) "RISC I: A reduced Instruction Set VLSI Computer" von Patterson und Sequin dargelegt. Die vollständige bibliographische Information für diese beiden Artikel wird nachstehend ausführlicher dargelegt.
  • In der Halbleiterindustrie zeigen aktuelle Entwicklungen an, daß es bei der Übergroßintegration (VLSI) zwei Wege gibt, die Mikroprozessor-Designer einschlagen können. Der erste Weg besteht darin, komplexere Mikroprozessoren zu entwickeln. Die Komplexität wird in die Hardware eingebaut, da mehr Funktion von der Software in die Hardware bewegt wird. Der zweite Weg besteht darin, schnellere Prozessoren zur Durchführung von einfachen Funktionen zu entwickeln. Bei diesem Weg wird zur Durchführung der meisten Funktionen eine Software benötigt. Die beiden genannten Artikel befürworten den zweiten Weg.
  • VLSI Schaltkreise von größerer Komplexität lassen Designer weniger kostspielige Alternativen zu teurer Software verwenden. Lösungen über die Hardware sorgen für schnellere Ausführung. Hardware-Implementierungen von Software-Funktionen ermöglichen es Programmierern, höhere Programmiersprachprogramme zu entwickeln, die knapp abgefaßt, effizient und einfacher zu schreiben, zu kompilieren und zu korrigieren sind.
  • Die Nachteile bei dem ersten Weg liegen darin, daß eine größere Komplexität mehr Zeit für die Konzeption erfordert, das Risiko für mögliche Fehler bei der Konzeption vergrößert wird und verschiedene Implementierungen erforderlich werden. Diese Kategorie von Computern wird konventioneller Rechner (CISC) genannt.
  • Eine einzigartige Annäherung an die Systemarchitektur wurde durchgeführt, indem sich an dem zweiten Weg orientiert wurde; d. h. an einem RISC System. Das Herz dieser Konzeption ist ihre CPU. Die Konzeption des Systems ermöglicht es dem Anwender, die Hauptfunktionen der CPU zu nutzen. Die Organisation unterscheidet sich von der von CISC Systemen.
  • Zentralrechner (CPU's) im mittleren Bereich werden im allgemeinen als Mikroprozessoren konzipiert, welche die Architektur der CPU emulieren. Dies macht es erforderlich, jeden Befehl in einzelnen Mikrocomputer-Befehlen darzustellen. Die Anzahl von Befehlen, die zur Ausführung jedes CPU Befehls erforderlich ist, variiert in Abhängigkeit der Leistung des zugrunde liegenden Mikroprozessors, der Komplexität der CPU Architektur und der Anwendung. Ein IBM 51370, Modell 168, benötigt zum Beispiel drei bis sechs Zyklen pro 5/370 Befehl.
  • Unterschiedliche Anwendungsarten haben unterschiedliche Befehlsarten. Eine CAD Anwendung benutzt zum Beispiel Fließkommabefehle und eine Prüfverarbeitungsanwendung benutzt Dezimalarithmetik. Bei den meisten Anwendungen gibt es eine Ähnlichkeit in den am meisten verbreiteten Anwendungen. Diese Befehle tendieren zu einfacheren Funktionen, wie zum Laden, Speichern, Verzweigen, Vergleichen, zur Ganzzahlarithmetik und zum logischen Verschieben. Diese Funktionen sind im allgemeinen in dem Mikroprozessor verfügbar.
  • Um die verfügbaren Funktionen besser nutzen zu können, kann der für den Computer mit reduziertem Primitivbefehlsvorrat (PRISM) entwickelte Primitivbefehlssatz direkt mit der Hardware ausgeführt werden. Jeder Primitivbefehl benötigt genau einen Operationszyklus. Komplexe Funktionen werden im "Mikrobefehlscode", ähnlich der CISC Implementierungen, ausgeführt. Das heißt, diese werden mittels Software-Unterprogrammen realisiert, welche die Primitivbefehlssätze ausführen.
  • In einer CISC Implementierung entscheidet der Architekt im voraus, welche Funktionen am häufigsten genutzt werden. Die dezimale Multiplizierfunktion ist zum Beispiel im Steuerspeicher vorhanden, während sich das Unterbrechungs-Steuerungsprogramm im Hauptspeicher befindet. Bei einem Befehlscache diktiert häufiger Gebrauch, welche Funktionen schneller verfügbar sind.
  • Diese Annäherung sieht Fähigkeiten bei Grenzfällen vor, die der einer CPU der mittleren Preisklasse entsprechen, in der die komplexen Befehle mikroprogrammiert wurden. Indem jedoch der Primitivbefehlsvorrat mit dem bereiten Kompilierer gewählt wird, sind weit weniger Zyklen erforderlich.
  • Die oben dargestellte Information beabsichtigt, die Architektur des RISC Prozessors aufzuzeigen. Ausführlichere Informationen über andere Anwendungen und veröffentlichte Patente enthalten:
  • 1) Die US Patentschrift Nummer 4,589,087, die am 13. Mai 1986 von M.A. Auslander, J. Crocke, H.T. Hao, P.W. Markstein und G. Radin über "Condition Register Architecture For A Primitive Instruction Set Machine" veröffentlicht wurde.
  • 2) Die US Patentschrift Nummer 4,589,065, die am 13. Mai 1986 von M.A. Auslander, J. Croke, H. Hao, P.W. Markstein und G. Radin über "Mechanism for Implementing One Machine Cycle Executable Trap Instructions in a Primitive Instruction Set Computing System" veröffentlicht wurde.
  • 3) Die europäische Patentanmeldung EP-A-130 381 mit dem Titel "Mechanism for Implementing One Machine Cycle Executable Branch-On-Bit-In-Any-Register Instructions in a Primitive Instruction Set Computing System" von M. A. Auslander, H. Hao, P. W. Markstein, G. Radin und W. S. Woreley.
  • 4) Die US Patentschrift Nummer 4,569,016, die am 4. Februar 1986 von H. Hao, P.W. Markstein und G. Radin über "Mechanism for Implementing One Machine Executable Mask und Rotate Instructions in a Primitive Instruction Set Computing System" herausgegeben wurde.
  • 5) Die europäische Patentanmeldung EP-A-148975 mit dem Titel "Internal Bus Architecture for a Primitive Instruction Set Machine" von J. Cocke, D. Fiske, L. Pereira und G. Radin.
  • Beschreibung des Stands der Technik
  • Die Technologie der RISC Computer wird in zwei Artikeln beschrieben. Es sind dies:
  • 1) "Der 801 Minicomputer" von George Radin in ACM SIGPLAN NOTICES, Vol. 17, No. 4, April 1982, auf den Seiten 39-47 veröffentlicht.
  • 2) "RISC 1: a Reduced Instruction Set VLSI Computer" in the IEEE 8 th Annual Symposium on Architecture Conference Proceedings of May 12-14, 1981, auf den Seiten 443-449.
  • Der RISC Computer ist ein befehlsgesteuerter Digitalrechner. Diese Art von Computer bearbeitet Daten in einer Benutzerspezifikation. Die Benutzerspezifikationen sind in einem Programm organisiert, das aus Befehlsgruppen besteht.
  • Das Programm wird von einem Kompilierer verarbeitet, der einen Objektprogramm-Kartensatz erstellt. Der Objektprogramm-Kartensatz wird mit einem Satz von anderen Objektprogramm-Kartensätzen verknüpft, um ein ausführbares Modul in Maschinensprache zu erstellen. Die Maschinensprache ist die Information, welche die besondere Hardware als von ihr auszuführende Befehle erkennt.
  • Die ersten Kompilierer waren hauptsächlich daran interessiert, die Sprache zu übersetzen, weil der Benutzer die Anwendung in Maschinensprache entwickelte. Als die Kompilierer komplexer wurden, begannen sie, Optimierungstechniken zu verwenden, damit Programme effizienter und schneller ausgeführt werden konnten. Als die Optimierungstechniken raffinierter wurden, begannen sie, die Zielarchitektur noch mehr zu berücksichtigen.
  • Bis zum RISC Computer gab es gegenüber Kompilierern immer einen Nachteil. Die Maschinenarchitektur wurde entwickelt, um die Befehle in Maschinensprache zu optimieren. Mit dem Aufkommen des RISC Computers wurde der Kompilierer bei der Entwicklung des Computers berücksichtigt. Der RISC Computer läuft optimal mit kompilierten Verfahren. Die von dem Kompilierer erzeugten Befehle sind ausgelegt, um nacheinander einzeln oder zu mehreren zugleich aktiviert zu werden, um den von dem Benutzer definierten Vorgang auszuführen.
  • Ein typischer Datenfluß in einem RISC Prozessor besteht aus zwei fundamentalen Ausführungseinheiten, der Recheneinheit (ALU) und der Einheit zur zyklischen Vertauschung (Verschiebeeinheit). Befehle werden nacheinander ausgeführt, indem Ausgabeports gemeinsam benutzt werden und gleichzeitig eine der Einheiten benutzt wird. Die meisten Befehle benutzen nur eine der Ausführungseinheiten.
  • Einige RISC Systeme haben die Möglichkeit zur Verzweigungsvoraussage. In einem Verzweigungsvoraussagesystem wird ein Befehl aus dem Speicher abgerufen und vordecodiert, um nach Verzweigungsbefehlen zu suchen. Wenn es sich bei dem Befehl um eine Verzweigung handelt, wird die Verzweigung verarbeitet. Andernfalls wird der Befehl an den Prozessor gesendet. Der Prozessor sieht niemals einen Verzweigungsbefehl.
  • Es ist bekannt, daß hohe Leistung durch Verdoppelung der Recheneinheiten erreicht werden kann, wobei jede der Recheneinheiten identische Operationen synchron durchführt. Diese Technik wird in erster Linie in technisch-wissenschaftlichen Vektorprozessoren verwendet und ist sehr kostspielig. Prinzipien und Verfahren dieser Technik werden zum Beispiel in der US Patentschrift Nr. 3,346,851 von James E. Thornton und Seymour R. Cray behandelt.
  • Es ist außerdem bekannt, daß einige Funktionsarbeitseinheiten in unabhängige, unterschiedliche Einheiten getrennt werden können, damit gleichzeitig verschiedene Operationen in der gleichen Information durchgeführt werden können. Dies ist wichtig, da viele Operationen sich zur Spezialisierung zur Verfügung stellen, zum Beispiel zur Überprüfung und zum Vergleich von Arbeiten, die gerade durchgeführt werden. Durch Aufteilung dieser Arbeit ist es möglich, diese spezialisierten Operationen zur gleichen Zeit durchzuführen wie andere Operationen aufgetreten sind und die Auswirkung auf die Leistung des Prozessors zu vermeiden, indem diese Operationen zu einem anderen Zeitpunkt ausgeführt werden. Diese Technik wird ausführlicher in der US Patentschrift Nr. 3,969,702 von Giancarlo Tessera behandelt.
  • In dem Artikel in IEEE Transactions on computers, vol. C-27, no. 3, March 1978, pages 270-275, IEEE, New York, USA, beschreibt L.C. HIGBIE: "Overlapped Operation with microprogramming" ein Datenverarbeitungssystem mit mehreren, verschiedenen Ausführungseinheiten sowie mit separaten Steuerpfaden, die jeder Einheit entsprechen. Extra Bits werden dem Befehlswort hinzugefügt, um den Konkurrenzbetrieb zum Zugriff auf die Register zu regeln. Es ist auch bekannt, daß eine Befehlspipeline benutzt werden kann, um Befehle in einem Zeit-Offset zwischen Befehlen zu verarbeiten. Der Offset ist ein ganzzahliges Vielfaches der Zykluszeit von den Funktionseinheiten, welche die Befehle ausführen. Der Offset wird an Befehle angepaßt, die zwei Speicherzugriffe pro Ausführung verwenden und jeder Zugriff einen Zyklus erfordert. Diese Technik wird ausführlicher in der US Patentschrift Nr. 3,840,861 von Gene M. Amdahl, Glen D. Grant und Robert M. Maier behandelt.
  • Eine Anzahl von Techniken zur Befehlsverarbeitung ist in Systemen in dem Stand der Technik bekannt; es besteht jedoch ein Bedarf zur Verbesserung des Preis-/Leistungsverhältnisses für RISC Prozessorsysteme.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Deshalb ist es ein Gegenstand der vorliegenden Erfindung, eine rentable Technik zur Erhöhung der Prozessorleistung eines RISC Prozessors zu liefern.
  • Ein weiterer Gegenstand der Erfindung ist es, einen verbesserten RISC Computer bereitzustellen, der in der Lage ist, Befehle in der doppelten Geschwindigkeit von bekannten RISC Computern auszuführen.
  • Noch ein weiterer Gegenstand dieser Erfindung ist es, eine neue RISC Architektur vorzusehen, die im wesentlichen die Verarbeitungsgeschwindigkeit erhöht, jedoch etwas zusätzlichen Platz auf einem Chip erfordert.
  • Gemäß der in Anspruch 1 ausgeführten Erfindung werden diese Gegenstände erfüllt, indem ein verbesserter RISC Prozessor geliefert wird, der durch die Einrichtung zum Trennen von Befehlen in zwei Hauptkategorien von Befehlen und zur gleichzeitigen Durchführung von zwei Befehlen (einer pro Kategorie) gekennzeichnet wird. Der RISC Prozessor wird in zwei Ausführungseinheiten aufgeteilt, die in der Lage sind, einen Teilsatz aus dem gesamten Befehlssatz zu verarbeiten. Der gesamte Befehlsvorrat kann in Befehlskategorien aufgeteilt werden, die in einer der beiden Ausführungseinheiten ausgeführt werden. Ein besonderer Vorteil der RISC Architektur liegt darin, daß die meisten Befehle in einem Zyklus ausgeführt werden. Die Erfindung sieht die erforderliche Hardware vor, die dafür sorgt, daß die Befehle unter den beiden Ausführungseinheiten aufgeteilt werden. Die Durchführung erfolgt gleichzeitig in den Ausführungseinheiten. Die Hardware enthält einen Befehlspuffer, Steuer-Festwertspeicher, Steuerregister und Befehlsausführungseinheit. Die Befehlsausführungseinheit enthält eine Registerdatei mit Ein- und Ausgaben, Zwischenspeicherregister, einer ersten und zweiten Ausführungseinheit und Ausgaberegister. Die erste Ausführungseinheit enthält eine Recheneinheit und die zweite Ausführungseinheit enthält einen Rotator und Maskengenerator.
  • Die Prozessorpipeline beginnt mit dem Decodieren des Befehls. Während der Befehlsdecodierung wird auf die Registerdatei zugegriffen und die aufgerufenen Operanden werden in Zwischenspeicherregistern verriegelt, parallel zur Decodierung des Befehls durch die beiden Steuer-Festwertspeicher ROS's und der Verriegelung der Befehlsinformation in den beiden Sätzen der Steuerregister. Als nächstes werden die Zwischenspeicherregister einer der beiden Ausführungseinheiten zugeführt. Die Ergebnisse der Ausführung werden in die Registerdatei geschrieben, wenn diese in dem Ablegebereich der Pipeline sind. Der Steuer-Festwertspeicher ROS und die Register werden in zwei Sätzen aufgeteilt. Jeder Satz versorgt eine der Ausführungseinheiten. Während der Befehlsdecodierung werden der besondere Satz des Steuer-Festwertspeichers ROS und der Register auf der Basis ausgewählt, welche Ausführungseinheit die besondere Befehlskategorie ausführt, welche der Befehl darstellt. Wenn auf die Registerdatei zweimal pro Zyklus zugegriffen werden kann, sind keine zusätzlichen Ausgabeports erforderlich; andernfalls sind zusätzliche Ausgabeports und ein Eingabeport erforderlich, um für die parallele Ausführung von beiden Ausführungseinheiten zu sorgen.
  • Zusätzliche arithmetische Funktionen, zum Beispiel Multiplikatoren und Divisoren und eine zusätzliche ALU können zu jeder der Ausführungseinheiten hinzugefügt werden, um die Arbeitslast gleichmäßiger zu verteilen. Adreßberechnungen können aus der ALU ausgeladen werden und außerdem die Verteilung der Arbeitslast ausgleichen, indem ein zusätzlicher Addierer zu einer der Ausführungseinheiten hinzugefügt wird. Ein Kompilierer, der entwickelt wurde, um die Befehlsausführung zwischen beiden Ausführungseinheiten gleichmäßiger aufzuteilen, kann auch zu einer deutlichen Erhöhung der Prozessorgeschwindigkeit beitragen.
  • Die Erfindung wird durch niedrige Kosten, einfaches Design und Minimierung der zusätzlichen Hardware gekennzeichnet, die zur Erhöhung der Prozessorgeschwindigkeit erforderlich ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Das Vorhergehende und andere Gegenstände, Aspekte und Vorteile der Erfindung werden besser anhand der ausführlichen Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung mit Bezug auf die Zeichnungen verstanden, in denen
  • Fig. 1 ein Blockdiagramm eines sequentiell arbeitenden RISC Prozessors und den Stand der Technik zeigt;
  • Fig. 2 ein Blockdiagramm eines parallel arbeitenden RISC Prozessors und das erste Ausführungsbeispiel der Erfindung zeigt;
  • Fig. 3 ein Blockdiagramm eines parallel arbeitenden RISC Prozessors und das erste Ausführungsbeispiel mit einem zusätzlichen Multiplikator und Divisor zeigt;
  • Fig. 4 ein Blockdiagramm eines sequentiell arbeitenden RISC Prozessors mit Adreßgenerierung während der Decodierung und den Stand der Technik zeigt;
  • Fig. 5 ein Blockdiagramm eines parallel arbeitenden RISC Prozessors und das zweite Ausführungsbeispiel der Erfindung zeigt;
  • Fig. 6 ein Blockdiagramm eines parallel arbeitenden RISC Prozessors und das zweite Ausführungsbeispiel der Erfindung mit Registerdatei zeigt, auf die in einem Zyklus zweimal zugegriffen werden kann; und
  • Fig. 7 ein Blockdiagramm eines parallel arbeitenden RISC Prozessors und das dritte Ausführungsbeispiel zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE DER ERFINDUNG
  • In den einzelnen Figuren der Zeichnungen geben gleiche Referenznummern identische oder funktionell ähnliche Elemente an. Mit Bezug nun auf die Zeichnungen und insbesondere auf Fig. 1, die ein Diagramm eines sequentiell arbeitenden RISC Prozessors zeigt. Dieser Prozessor entspricht dem Stand der Technik, wie dieser in dem Hintergrund der Erfindung beschrieben wurde. Der Decodierungsfluß eines Befehls ist auf der linken Seite dargestellt, während die Befehlsausführung auf der rechten Seite gezeigt wird. Der Befehl fließt aus dem Befehlspuffer 10 in den Steuer-Festwertspeicher (ROS) 12 zu den Steuerregistern 14. Wie für den Fachmann offensichtlich ist, wird die Adresse des besonderen Mehrzweckregisters, in welchem die unterschiedlichen Operanden zu speichern sind oder aus dem diese abzurufen sind, in den unterschiedlichen Feldern des Befehlspuffers 10 spezifiziert.
  • Die Basis CPU enthält einen Eingabeport 15 für Daten, die aus dem Speicher in die Mehrzweckregisterdatei mit fünf Ports fließen, welche in diesem Beispiel zweiunddreißig einzelne Register enthält. Wie ein normaler Fachmann erkennen wird, kann die Registerdatei verschiedene Kombinationen von Registern und Ports enthalten und diese Lösung noch unterbringen. Der zweite Eingabeport 17 enthält die Ergebnisse von dem Befehl aus einer der beiden Ausführungseinheiten. Die beiden Basis-Ausführungseinheiten sind für die Ausführung der Befehle des Prozessors einschließlich Addieren, Multiplizieren, Dividieren, Verschieben, Laden und Speichern verantwortlich. In Fig. 1 sind die Ausführungseinheiten in zwei Funktionseinheiten aufgeteilt. Die Ausführungseinheit I enthält die ALU 24, während die Ausführungseinheit II den Rotator 26 enthält. Die beiden Eingabeports 15 und 17 in der Registerdatei 16 geben den besonderen Befehl an, der die in dem Befehl bezeichneten Operanden darstellt. Die meisten Befehle verwenden nur eine der beiden Ausführungseinheiten. Das heißt, daß eine der beiden Ausführungseinheiten inaktiv ist, während die andere arbeitet.
  • Die Prozessorpipeline beginnt mit der Decodierung des Befehls. Während der Befehlsdecodierung wird auf die Registerdatei zugegriffen und die abgerufenen Operanden werden in den Zwischenspeicherregistern 18, 20 und 22 verriegelt, parallel zu der Decodierung des Befehls durch den Steuer-Festwertspeicher ROS 12 und der Verriegelung der Befehlsinformation in den Steuerregistern 14. In der nächsten Stufe des Ausführungszyklus werden die Register 18, 20 und 22 einer der beiden Ausführungseinheiten zugeführt. Das Ergebnis der Ausführung wird in dem Ausgaberegister 36 verriegelt. Im folgenden Zyklus wird die Registerinformation im Ablegebereich der Pipeline in die Registerdatei 16 geschrieben.
  • Die Befehlsinformation fließt aus der Registerdatei 16 über die Ausgabeports 19, 21 bzw. 23 in die Zwischenspeicherregister 18, 20 und 22. Die Zwischenspeicherregister 18 und 20 geben die Information an die Formatisierungsprogramme 32 und 33. Die Formatisierungsprogramme sind für das Auffüllen mit Nullen oder Einsen zuständig, um die arithmetischen oder logischen Ausführungen vorzubereiten. Die Formatisierungsprogramme 32 und 33 gelangen in die Recheneinheit (ALU) 24, die zwei Operandenbefehle durchführt und die Ergebnisse an den Multiplexer 25 liefert. Der Rotator 26 führt gemeinsam mit dem Maskengenerator 31 und der Maskenlogik 34 eine in einem Maschinenzyklus ausführbare Maske und zyklische Vertauschungsoperation aus, die ausführlicher in der Patentschrift Nr. 4,569,016 dargestellt ist und liefert deren Ergebnisse an den Multiplexer 25. Der Maskengenerator 31 ist für die Generierung der Masken zur Steuerung der Ausgabe aus dem Rotator in die Mischlogik 34 verantwortlich. Die Mischlogik 34 verwendet die Ausgabe aus dem Zwischenspeicherregister 18 zur Steuerung des Befehls, den die Mischlogik 34 ausführen wird. Wenn zum Beispiel die Ausgabe aus dem Zwischenspeicherregister 18 einen Befehl zum zyklischen Vertauschen und zur anschließenden Maskengenerierung (RMI) spezifiziert, werden die Inhalte des Registers 22 nach links zu der Anzahl von Positionen vertauscht, die durch die Bits 27-31 des Registers 20 spezifiziert werden. Die verschobenen Daten werden von der Maskenlogik 34 mit Hilfe der Steuerung des Maskengenerators 31 an den Multiplexer 25 geliefert. Die Maskenlogik 34 füllt zuerst die Ausgaberegister 36 mit Nullen auf und überprüft anschließend jeden Bit der Maske und bestimmt, ob eine Eins oder Null ist. Wenn ein Maskenbit eine Eins ist, wird das dazugehörige Bit der zyklisch vertauschten Daten (Null oder Eins) in das Ausgaberegister plaziert; wenn das Maskenbit eine Null ist, bleiben die zugehörigen Datenbits aus dem Ausgaberegister unverändert. Der Multiplexer 25 sorgt dafür, daß die Ausgabe aus den beiden Ausführungseinheiten aufgenommen und in dem Ausgaberegister 36 gespeichert wird, welches die Information an den Eingabeport 17 der Registerdatei 16 gibt.
  • Der Befehlspuffer 10, der Steuer-Festwertspeicher ROS 12 und die Steuerregister 14 sind allen Figuren gemeinsam. Die Eingänge 15 und 17 und die Ausgänge 19, 21 und 23 der Registerdatei 16 sind ebenfalls allen Figuren gemeinsam. Die Zwischenspeicherregister 18, 20 und 22 werden in allen Figuren verwendet. Die Ausführungseinheit I enthält in allen Figuren die Formatisierungsprogramme 32 und 33 und die ALU 24. Die Ausführungseinheit II enthält in allen Figuren den Maskengenerator 31, die Maskenlogik 34 und den Rotator 26.
  • Das erste Ausführungsbeispiel der Erfindung wird in Fig. 2 dargestellt. Das Decodieren eines Befehls ist auf der linken Seite dargestellt. Der Befehl gelangt aus dem Befehlspuffer 10 über die beiden Multiplexer 64 und 65 zu den beiden Steuer- Festwertspeichern ROS's 40 und 42 in die Steuerregister 44 und 46. Das Hinzufügen von zwei Multiplexern 64 und 65 zwischen dem Befehlspuffer 10 und den beiden Steuer-Festwertspeichern ROS's 40 und 42 ermöglicht es, die Befehlsinformation gleichzeitig an die beiden Ausführungseinheiten zu geben. Auf der Basis des Befehls wird die Befehlsinformation von dem einen oder dem anderen Steuer-Festwertspeicher ROS erhalten.
  • Die Befehlsverarbeitung hat eine erweiterte Registerdatei mit acht Ports 48, welche die Registerdatei mit fünf Ports aus Figur 1 ersetzt. Die zusätzlichen zwei Ausgabeports 51 und 53 werden ausschließlich von der Ausführungseinheit II benutzt. Jede Ausführungseinheit hat in der Registerdatei 48 ihren eigenen Eingabeport 17 und 56. Die Ausführungseinheit I benutzt den Eingabeport 17, während die Ausführungseinheit II den Eingabeport 56 benutzt. Das Hinzufügen der separaten Ausgaberegister 66 und 68 in jeder der Ausführungseinheiten ermöglicht das Speichern der Ausgabeinformation, bevor diese an die Eingabeports 17 bzw. 56 der Registerdatei gesendet werden. Außerdem sorgt die Verwendung von zwei Ausgaberegistern 66 und 68 dafür, daß die Ergebnisse aus den Ausführungseinheiten gleichzeitig an die Registerdatei 48 geliefert werden.
  • Das Hinzufügen von zwei zusätzlichen Ausgabeports und einem weiteren Eingabeport in der Registerdatei 48 ermöglicht dem Prozessor die gleichzeitige Ausführung von ALU-Befehlen und Befehlen zur zyklischen Vertauschung, während diese von Datenintegritätsproblemen oder von komplexen Schnittstellen durch gemeinsame Benutzung der Registerdatei frei bleiben. Durch die Möglichkeit der Codeauflistung in einem Kompilierer kann die Datenabhängigkeit zwischen zwei parallelen Befehlen durch Trennung der Befehle minimiert werden, so daß der zweite der parallelen Befehle nicht das gleiche Quellenregister wie das Bestimmungsregister des ersten Befehls hat. Ein Kompilierer kann auch die beiden Kategorien VOD Befehlen planen, um aufeinanderfolgende Befehle zur zyklischen Vertauschung oder ALU- Befehle zu vermeiden. Mit diesen Hardware- und Kompilierer-Optimierungen wird der Leistungsvergleich zwischen dem Prozessor und dem sequentiell arbeitenden Originalprozessor nachstehend dargestellt.
  • PP = OPP - [ % ROT * CPR] + CONTP,
  • wobei: CONTP = Konkurrenzbetrieb-Pönale
  • = Summierung ( % CONT * CPC)
  • = ( % CONTA * CPC) + (% CONTB * CPC)
  • PP = Prozessorleistung in Anzahl Zyklen pro Befehl
  • OPP = Originalprozessorleistung in Anzahl Zyklen pro Befehl
  • %ROT = Prozentsatz der Befehle zum zyklischen Vertauschen
  • CPR = Zyklusanzahl pro Befehl zum zyklischen Vertauschen
  • %CONT = Prozentsatz der Datenabhängigkeit und der Belegung von Betriebsmitteln
  • CPC = Anzahl der Zykluspönalen pro Konkurrenzbetrieb
  • %CONTA = Prozentsatz des Konkurrenzbetriebs infolge der Datenabhängigkeit zwischen Einheit I und Einheit II
  • %CONTB = Prozentsatz des Konkurrenzbetriebs infolge der aufeinanderfolgenden Befehle in Einheit II
  • Einige Systeme haben die Möglichkeit der Verzweigungsvoraussage. Diese Systeme haben einen Befehlscache zum Vorauslesen von Befehlen und zur Vorübersetzung von Verzweigungsbefehlen. In diesen Systemen führt der Prozessor niemals einen Verzweigungsbefehl aus. Diese Einrichtung liefert bei dieser Erfindung zusätzliche Gewinne in der Prozessorleistung, da jetzt der Prozessor nicht warten muß, bis der Verzweigungsbefehl geregelt ist. Der Befehl nach der Verzweigung kann parallel zu dem Befehl vor dem Verzweigungsbefehl ausgeführt werden. In einem System ohne die Möglichkeit der Verzweigungsvoraussage muß die Verzweigung vor dem nächsten Befehl geregelt werden, der durchgeführt werden könnte. Indem die ALU 24 aus jeder Verwicklung in den Verzweigungsbefehl herausgehalten wird, wird das Verhältnis zwischen den beiden Ausführungseinheiten ausgewogener und führt bei einer der Ausführungseinheiten zu geringerem Konkurrenzbetrieb und besserer Leistung. Befehle aus dem Befehlspuffer 10 gelangen in Abhängigkeit der Befehlskategorie sofort in zwei separate Steuer-Festwertspeicher ROS's 40 und 42, um Steuerungssignale für die beiden unabhängigen Ausführungseinheiten zu generieren. Dies teilt den in Fig. 1 abgebildeten ROS 12 durch sehr geringes Duplizieren von den Befehlen, die beide der Ausführungseinheiten benutzen, in die zwei in den Fig. 2, 3, 5 und 6 abgebildeten ROS's 40 und 42. Nur die Operationscode-Eingaben in den Steuer-Festwertspeicher ROS 12 werden dupliziert, nicht jedoch die Steuerregister 14.
  • Die Anzahl von Hardware für die Steuerbefehlsdecodierung ist der von dem ersten, in Fig. 2 abgebildeten Ausführungsbeispiel und dem in Fig. 1 abgebildeten Stand der Technik sehr ähnlich. Der Datenfluß bleibt gleich; ausgenommen die Registerdatei 48 erfordert zwei zusätzliche Ausgabeports 51 und 53 und einen weiteren Eingabeport 56. Diese drei Ports führen zu drei weiteren Bussen, die durch den Datenfluß laufen. Da jedoch die Breite des Datenflußes wahrscheinlich durch die Breite der Ausführungseinheiten begrenzt wird, würde durch diese drei Busse der Bereich des Datenflußes nicht vergrößert werden. Wenig zusätzliche Steuerlogik ist erforderlich, um die Datenabhängigkeit, die Belegung der Betriebsmittel und die Ausnahmebedingungen zu handhaben.
  • Fig. 3 gleicht dem ersten Ausführungsbeispiel mit Ausnahme der beiden zusätzlichen Funktionseinheiten in der Ausführungseinheit II; dem Multiplizierer 60 und dem Divisor 62. Die Ausgabeports 51 und 53, die in die Zwischenspeicherregister 50 und 52 fließen, werden als Eingaben in den Multiplizierer 60 und den Divisor 62 verwendet, und ein zusätzlicher Multiplexer 63 sorgt für die Unterbringung der Ausgaben aus der Maskenlogik, dem Multiplizierer und dem Divisor und speichert die Ausgabe in dem Ausgaberegister 68. Funktionseinheiten, zum Beispiel ein Multiplizierer 60 oder ein Divisor 62, sind in der Ausführungseinheit mit dem niedrigsten Prozentsatz von Befehlen zusammengefaßt, wie dies in Fig. 3 dargestellt ist. Dies sorgt für den Ausgleich des Verhältnisses zwischen den beiden Einheiten und für die Verbesserung der Prozessorleistung.
  • Die für das erste Ausführungsbeispiel der Erfindung speziellen Situationen, die in den Fig. 2 und 3 abgebildet sind, werden nachstehend zusammengefaßt:
  • 1) Der zweite von zwei parallelen Befehlen benötigt die Ergebnisse des ersten Befehls.
  • 2) Zwei parallele Befehle gehören zur gleichen Befehlskategorie.
  • 3) Einer der parallelen Befehle benötigt mehr Zyklen als der andere. In diesem Fall muß die schnellere Einheit auf die langsamere warten, so daß die Befehle nacheinander ausgeführt werden.
  • 4) Einer der parallelen Befehle benötigt beide Ausführungseinheiten; d. h. zyklisches Vertauschen und Speichern.
  • 5) Logik wird benötigt, um zwei parallele Befehle daran zu hindern, nacheinander ausgeführt zu werden; d. h. zwei parallele Befehle haben das gleiche Bestimmungsregister, also muß einer gelöscht werden, oder wenn einer der parallelen Befehle eine Ausnahmeunterbrechung verursacht, muß der andere vor Beginn der Ausnahmeverarbeitung beendet oder abgebrochen werden.
  • Die erste Bedingung kann durch die Codeauflistung des Kompilierers beseitigt werden. Der Kompilierer kann auch Befehle zum zyklischen Vertauschen und ALU-Befehle gegenseitig versetzen, um den Konkurrenzbetrieb zu minimieren. Die dritte und vierte Bedingung tritt nicht oft auf, da ein RISC Prozessor Primitivbefehle hat und sehr wenige Befehle mehr als ein Zyklus benötigen. Diese werden sehr selten benutzt. Die Ausnahmebedingung, die als fünftes Problem erwähnt wurde, ist in dem Stand der Technik ein leichter Zuwachs in der Hardware zur Ausnahmehandhabung.
  • Der einzige Zuwachs in dem ersten Ausführungsbeispiel besteht in den drei zusätzlichen Ports in der Registerdatei. Dies erhöht lediglich die Größe der Registerdatei um etwa einhalbmal der Original-Registerdateigröße, was etwa 5 bis 8% der gesamten Chipgröße ist. Die Registerdatei kann für zwei Zugriffe während eines Zyklus entwickelt werden. Diese Entwicklung sorgt dafür, daß die Größe der Registerdatei konstant bleibt. Der einzige, zusätzliche Zuwachs in der Hardware sind die drei zusätzlichen Busse an der Spitze des Datenflußes.
  • Fig. 4 zeigt die Darstellung eines sequentiell arbeitenden Prozessors mit Adreßgenerierung im Decodierungszyklus. Die Hardware gleicht der in Fig. 1; ausgenommen, daß die Ausgabe eines Befehlsadressenregisters (IAR) 70 über einen Multiplexer 84 mit dem Ausgabeport 19 der Registerdatei 16 multiplexiert wird, um einen von zwei Operandeneingaben in einem Addierer 78 zu bilden. Der Multiplexer 82 wird verwendet, um die Information von dem Befehlspuffer 10 oder dem Ausgabeport 21 der Registerdatei 16 für die andere Operandeneingabe in den Addierer 78 zu multiplexieren. Der Addierer 78 kalkuliert die neue Adresse ohne ALU Unterbrechung. Die neue Adresse wird in dem Adreßregister 86 gespeichert.
  • In Fig. 5 wird das zweite Ausführungsbeispiel der Erfindung gezeigt. Der Unterschied zwischen dem ersten, in Fig. 2 oder 3 abgebildeten Ausführungsbeispiel und dem zweiten Ausführungsbeispiel ist die Aufnahme des in Fig. 4 dargestellten Addierers 78. Der Addierer 78 erhält über die Zwischenspeicherregister 50 und 52 Operandeneingaben aus den Ausgabeports 51 und 53 der Registerdatei 48. Der Addierer 78 gibt seine Ergebnisse an den Multiplexer 70 aus, welcher die Ausgaben der Maskenlogik 34, des Multiplizierers 60 und des Divisors 62 mit der Ausgabe aus dem Addierer 78 zur Speicherung in dem Ausgaberegister 68 multiplexiert. Der zusätzliche Addierer 78 wird zur Durchführung der Adreßberechnung verwendet, um die Lade-, Speicher- und Verzweigungsbefehle zu beschleunigen und mit dem Rotator 26 in der Ausführungseinheit II gruppiert, um die Befehlsmischung der Ausführungseinheiten auszugleichen. Die Ausführungseinheit II ist für die Durchführung aller zyklischen Vertausch-, Verschiebe-, Lade-, Speicher-, Multiplizier-, Dividier- und Adreßberechnungsbefehle verantwortlich. Die Ausführungseinheit I führt alle arithmetischen und logischen Berechnungen durch. Die durchschnittliche RISC Befehlsmischung enthält 54% Befehle zur Übertragung von Register zu Register, 20% Ladebefehle, 10% Speicherbefehle und 16% Verzweigungsbefehle. In den Befehlen zur Übertragung von Register zu Register sind 5 bis 10% zyklische Vertausch-/Verschiebebefehle enthalten. Durch Segmentieren der Arithmetik- und Logikbefehle wird ein besserer Ausgleich der Arbeitslast erreicht. Mit der Codeauflistung des Kompilierers zum gegenseitigen Versetzen dieser beiden Befehlskategorien kann die Datenabhängigkeit und Belegung der Betriebsmittel zwischen beiden Einheiten beseitigt werden. Die einzig wesentliche Verschlechterung der Leistung kommt von den mehrfachen Zyklusbefehlen, die in einem RISC Prozessor so gut wie nicht vorhanden sind. Die unten dargestellten Formeln zeigen den Leistungsvergleich zwischen dem Prozessor aus dem zweiten, in Fig. 5 gezeigten Ausführungsbeispiel und dem sequentiell arbeitenden Originalprozessor aus dem Stand der Technik in Fig. 4.
  • PP = 2 * OPP - Summierung (%MCI * CPMCI) i - CONTP
  • wobei: CONTP = Konkurrenzbetrieb-Pönale
  • = Summierung (%CONTA * CPC) + (%CONTB * CPC) + (%CONTC * CPC)
  • %MCI = Prozentsatz des mehrfachen Zyklusbefehls i
  • CPMCI = Zyklusanzahl pro mehrfachem Zyklusbefehl i
  • %CONTA = Prozentsatz des Konkurrenzbetriebs infolge der Datenabhängigkeit zwischen Einheit I und Einheit II
  • %CONTB = Prozentsatz des Konkurrenzbetriebs infolge der aufeinanderfolgenden Befehle in Einheit I
  • %CONTC = Prozentsatz des Konkurrenzbetriebs infolge der aufeinanderfolgenden Befehle in Einheit II
  • Der Steuerbereich gleicht dem aus dem ersten Ausführungsbeispiel der Erfindung mit Ausnahme der Steuer-Festwertspeicher ROS's 40 und 42, die gemäß der beiden Befehlskategorien aus dem zweiten Ausführungsbeispiel der Erfindung neu partioniert werden müssen. Mit Ausnahme des zusätzlichen Addierers 78 gleicht der Zuwachs der Hardware dem ersten Ausführungsbeispiel.
  • Fig. 6 zeigt ein Beispiel eines parallel arbeitenden Prozessors mit einer Registerdatei, die für zwei Zugriffe pro Zyklus konzipiert wurde. Fig. 6 stimmt mit Fig. 5 überein mit Ausnahme der beiden zusätzlichen Verriegelungen 110 und 112, welche den Zugriff auf die erste Registerdatei steuern, des zusätzlichen Multiplexers 25 zur Annahme der Ausgaberegister 66 und 68 von den beiden Ausführungseinheiten und der Benutzung der Original-Registerdatei 16 mit fünf Ports. Die Verriegelungen 110 und 112 befinden sich in den Ausgabeports 19 und 21, genau über den Zwischenspeicherregistern 18 und 20. Die Verriegelungen werden jeweils nach der Hälfte des Taktzyklus getriggert. In der ersten Hälfte des Taktzyklus fließen die Ausgabeports 19 und 21 in die Verriegelungen 110 und 112. In der zweiten Hälfte des Taktzyklus fließen die Ausgabeports 19 und 21 in die Zwischenspeicherregister 50 und 52 und das Ausgaberegister 68 fließt durch den Multiplexer 25 in den Eingabeport 17 der Registerdatei 16. Auch in der zweiten Hälfte des Taktzyklus fließen die Verriegelungen 110 und 112 in die Zwischenspeicherregister 18 und 20 und das Ausgaberegister 66 fließt durch den Multiplexer 25 in den Eingabeport 17 der Registerdatei 16. Dies ermöglicht die parallele Verarbeitung der beiden Ausführungseinheiten, ohne zusätzlich zwei weitere Ausgabeports und einen weiteren Eingabeport vorsehen zu müssen.
  • Fig. 7 zeigt das dritte Ausführungsbeispiel der Erfindung. Das dritte Ausführungsbeispiel gleicht dem ersten Ausführungsbeispiel; ausgenommen, daß eine zusätzliche ALU 90 mit den dazugehörigen Formatisierungsprogrammen 100 und 102 in der Ausführungseinheit II eingesetzt wurde. Die Ausgabeports 51 und 53 der Registerdatei 48 führen die Zwischenspeicherregister 50 und 52 zu, die in die Formatisierungsprogramme 100 und 102 fließen, welche die Eingaben in die ALU 90 liefern. Die Ausgabe der zweiten ALU 90 wird auf ähnliche Weise wie die Ausgabe des Addierers 78 der Fig. 5 und 6 multiplexiert. Die Ausgabe der zweiten ALU 90 wird mit der Ausgabe der Maskenlogik 34, des Multiplizierers 60 und des Divisors 62 in den Multiplexer 70 multiplexiert, welcher in das Ausgaberegister 68 fließt.
  • Das dritte Ausführungsbeispiel kann gemäß der Darstellung in Fig. 7 benutzt werden, um die Last im Kompilierer bei Durchführung der Codeauflistung zu reduzieren und den Ausgleich der Befehlslast zu erhöhen. Der Steuer-Festwertspeicher ROS 40 gleicht dem Original-Steuer-Festwertspeicher ROS 12. Der Steuer-Festwertspeicher ROS 42 hat nur die Möglichkeit des ALU-Befehls.
  • Der Nachteil dieser Annäherung ist der zusätzliche Aufwand an Hardware in Form einer zusätzlichen ALU und eines zusätzlichen Steuer-Festwertspeichers 42 zur Durchführung der ALU-Befehle in beiden Ausführungseinheiten. Der Vorteil liegt darin, daß die Komplexität des Kompilierers reduziert wird.

Claims (7)

1. Datenverarbeitungssystem mit Einrichtungen zur Befehlsverarbeitung, das einen Befehlspuffer (10), Steuer-Festwertspeicher (40) und Steuerregister (44) enthält und Einrichtungen zur Befehlsausführung mit einer Registerdatei (48) mit Eingängen und Ausgängen, wobei einer der Eingänge (15) angeschlossen ist, um Daten aus einem Speicher zu empfangen, mit Zwischenspeicherregistern (18, 20, 22), welche mit den Registerdateiausgängen verbunden sind und mit ersten und zweiten Ausführungseinheiten, wobei die erste Ausführungseinheit eine Recheneinheit (24) mit Eingängen enthält, die an zwei der Zwischenspeicherregister angeschlossen sind, wobei die zweite Ausführungseinheit Eingänge hat, welche an drei der Zwischenspeicherregister angeschlossen sind und einen Rotator (26) und Maskengenerierungsmittel (31) enthält, wobei die Recheneinheit und der Rotator sowie die Maskengenerierungsmittel Ausgaberegistriermittel (36) zum Empfang der Ausgaben von der Recheneinheit oder von dem Rotator und den Maskengenerierungsmitteln und zur Lieferung einer Eingabe an die besagte Registerdatei haben, wobei jede Ausführungseinheit sequentielle Datenmanipulationen mittels der Befehlssteuerung durchführen kann und das Datenverarbeitungssystem dadurch gekennzeichnet ist, daß der Steuer-Festwertspeicher erste und zweite Segmente (40, 42) enthält, um jeweils Befehlssätze für die erste und zweite Ausführungseinheit zu empfangen, wobei die Einrichtungen zur Befehlsverarbeitung außerdem separate Mittel (44, 46) für Richtungsbefehle aus dem ersten Segment in der ersten Ausführungseinheit und aus dem zweiten Segment in der zweiten Ausführungseinheit enthalten und das Datenverarbeitungssystem dadurch gekennzeichnet ist, daß die Ausgaberegistermittel erste und zweite Ausgaberegister (66, 68) enthalten, wobei die Ausgaben aus der Recheneinheit und dem Rotator und den Maskengenerierungsmittel jeweils mit den ersten und zweiten Ausgaberegistern verbunden sind, deren Ausgänge abwechselnd separat an den Eingang der Registerdatei angeschlossen werden (17, 56; 25), und die Registerdatei zwei Ausgänge (19, 21) mit den entsprechenden Zwischenspeicherregistern (18, 20) hat, die mit der ersten Ausführungseinheit verbunden sind, und drei Ausgänge mit den entsprechenden Zwischenspeicherregistern (50, 52, 22), die mit der zweiten Ausführungseinheit verbunden sind, wobei die Anordnung es beiden Ausführungseinheiten ermöglicht, Operationen in dem gleichen Maschinenzyklus durchzuführen, so daß Befehle, die keine uneinheitliche Quelle bezeichnen und Bestimmungsregister parallel mit den Ausführungseinheiten verarbeitet werden können.
2. Das Datenverarbeitungssystem von Anspruch 1, wobei vorgesehen sind:
wenigstens eine arithmetische Funktionseinheit (60, 62) in der zweiten Ausführungseinheit, wobei die arithmetische Funktionseinheit Eingänge hat, die mit zwei von den drei Zwischenspeicherregistern verbunden sind und einen Ausgang bereitstellen; und
ein Multiplexer (63) zum Empfang der Ausgaben von den zyklischen Vertauschungs- und Maskengenerierungsmitteln und mit wenigstens einer arithmetischen Funktionseinheit und zur Lieferung von einer der Ausgaben an das zweite Ausgaberegister.
3. Das Datenverarbeitungssystem aus Anspruch 2, wobei eine arithmetische Funktionseinheit wenigstens einen Multiplizierer (60) und einen Divisor (62) enthält.
4. Das Datenverarbeitungssystem aus Anspruch 2 oder 3, wobei eine arithmetische Funktionseinheit wenigstens einen Addierer (78) enthält und der Addierer zur Berechnung der Befehlsadressen, zur Beschleunigung der Lade-, Speicher- und Verzweigungsbefehle verwendet wird.
5. Das Datenverarbeitungssystem aus Anspruch 2, wobei eine arithmetische Funktionseinheit wenigstens eine zweite Recheneinheit (90) enthält, wobei die Codeauflistung und der Befehlsausgleich des Befehlsvorrats zwischen der ersten und zweiten Ausführungseinheit durchgeführt werden kann.
6. Das Datenverarbeitungssystem aus irgendeinem der Ansprüche 1-5, das außerdem zwei Verriegelungen (110, 112) enthält, die jeweils an die beiden Ausgänge (19, 21) der Registerdatei angeschlossen sind, die mit der ersten Ausführungseinheit und den zugehörigen Zwischenspeicherregistern verbunden ist, wobei die restlichen drei Zwischenspeicherregister direkt an die drei Ausgänge von der Registerdatei angeschlossen werden, welche die beiden, an die zwei Verriegelungen angeschlossenen Ausgänge enthält, wobei die Registerdatei bei jedem Taktzyklus des Computers zwei Zugriffe auf den Speicher vornimmt.
7. Das Datenverarbeitungssystem aus einem der Ansprüche 1-6, wobei die Registerdatei (48) wenigstens fünf Ausgänge (19, 21, 23, 51, 53) enthält und wo wenigstens fünf Zwischenspeicherregister (18, 20, 22, 50, 52), ein Zwischenspeicherregister für jeden Ausgang, enthalten sind und wo zwei (18, 20) der Zwischenspeicherregister ausschließlich an die erste Ausführungseinheit und drei (22, 50, 52) der Zwischenspeicherregister ausschließlich an die zweite Ausführungseinheit angeschlossen sind.
DE3750625T 1986-08-18 1987-07-24 Datenverarbeitungssystem mit zwei Ausführungseinheiten. Expired - Fee Related DE3750625T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/896,156 US4766566A (en) 1986-08-18 1986-08-18 Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing

Publications (2)

Publication Number Publication Date
DE3750625D1 DE3750625D1 (de) 1994-11-10
DE3750625T2 true DE3750625T2 (de) 1995-05-04

Family

ID=25405719

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750625T Expired - Fee Related DE3750625T2 (de) 1986-08-18 1987-07-24 Datenverarbeitungssystem mit zwei Ausführungseinheiten.

Country Status (4)

Country Link
US (1) US4766566A (de)
EP (1) EP0260409B1 (de)
JP (1) JPS6349843A (de)
DE (1) DE3750625T2 (de)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109524A (en) * 1985-07-02 1992-04-28 Vlsi Technology, Inc. Digital processor with a four part data register for storing data before and after data conversion and data calculations
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
JPS63253433A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd 演算処理装置
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
JPH07120283B2 (ja) * 1988-04-01 1995-12-20 株式会社東芝 マイクロプロセッサ
US4974146A (en) * 1988-05-06 1990-11-27 Science Applications International Corporation Array processor
JP3034873B2 (ja) * 1988-07-01 2000-04-17 株式会社日立製作所 情報処理装置
EP0354740B1 (de) 1988-08-09 1996-06-19 Matsushita Electric Industrial Co., Ltd. Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
US5131086A (en) * 1988-08-25 1992-07-14 Edgcore Technology, Inc. Method and system for executing pipelined three operand construct
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5125092A (en) * 1989-01-09 1992-06-23 International Business Machines Corporation Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes
EP0378415A3 (de) * 1989-01-13 1991-09-25 International Business Machines Corporation Verteilungsmechanismus für mehrere Befehle
US5226166A (en) * 1989-02-10 1993-07-06 Mitsubishi Denki K.K. Parallel operation processor with second command unit
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
DE69030931T2 (de) * 1989-04-24 1998-01-15 Ibm Mehrfachsequenzprozessorsystem
JP2816248B2 (ja) * 1989-11-08 1998-10-27 株式会社日立製作所 データプロセッサ
EP0432075B1 (de) * 1989-11-09 1997-02-26 International Business Machines Corporation Multiprozessor mit relativ atomaren Befehlen
JP2560120B2 (ja) * 1989-11-15 1996-12-04 松下電器産業株式会社 演算装置
FR2655169B1 (fr) * 1989-11-30 1994-07-08 Bull Sa Processeur a plusieurs unites de traitement microprogrammees.
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5203002A (en) * 1989-12-27 1993-04-13 Wetzel Glen F System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle
AU629007B2 (en) * 1989-12-29 1992-09-24 Sun Microsystems, Inc. Apparatus for accelerating store operations in a risc computer
WO1991011765A1 (en) * 1990-01-29 1991-08-08 Teraplex, Inc. Architecture for minimal instruction set computing system
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
DE69130588T2 (de) * 1990-05-29 1999-05-27 National Semiconductor Corp., Santa Clara, Calif. Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür
JPH04111127A (ja) * 1990-08-31 1992-04-13 Toshiba Corp 演算処理装置
JPH0679276B2 (ja) * 1990-08-31 1994-10-05 インターナショナル・ビジネス・マシーンズ・コーポレイション 同一従属型プロセスのスループット増大方法、プロセス生成回路、周期冗長コードジェネレータ、およびコントローラシステム
JPH04184534A (ja) * 1990-11-20 1992-07-01 Fujitsu Ltd プロセッサ
JP2646855B2 (ja) * 1991-01-21 1997-08-27 三菱電機株式会社 データ処理装置
US5367648A (en) * 1991-02-20 1994-11-22 International Business Machines Corporation General purpose memory access scheme using register-indirect mode
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
GB2263987B (en) * 1992-02-06 1996-03-06 Intel Corp End bit markers for instruction decode
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
KR950701437A (ko) 1992-05-01 1995-03-23 요시오 야마자끼 슈퍼스칼라 마이크로프로세서에서의 명령어 회수를 위한 시스템 및 방법
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
EP0663083B1 (de) * 1992-09-29 2000-12-20 Seiko Epson Corporation System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5617549A (en) * 1992-10-06 1997-04-01 Hewlett-Packard Co System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninklijke Philips Electronics N.V., Eindhoven Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
US5452456A (en) 1992-12-18 1995-09-19 Apple Computer, Inc. Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
WO1994016384A1 (en) 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
JP3182591B2 (ja) * 1993-01-20 2001-07-03 株式会社日立製作所 マイクロプロセッサ
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
US5440703A (en) * 1993-09-20 1995-08-08 International Business Machines Corporation System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
US5535405A (en) * 1993-12-23 1996-07-09 Unisys Corporation Microsequencer bus controller system
NL9400607A (nl) * 1994-04-15 1995-11-01 Arcobel Graphics Bv Dataverwerkingscircuit, vermenigvuldigingseenheid met pijplijn, ALU en schuifregistereenheid ten gebruike bij een dataverwerkingscircuit.
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
FR2731094B1 (fr) * 1995-02-23 1997-04-30 Dufal Frederic Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable
US6081880A (en) * 1995-03-09 2000-06-27 Lsi Logic Corporation Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file
US5966529A (en) * 1995-05-15 1999-10-12 Zsp Corporation Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution
US5900025A (en) * 1995-09-12 1999-05-04 Zsp Corporation Processor having a hierarchical control register file and methods for operating the same
US5729482A (en) * 1995-10-31 1998-03-17 Lsi Logic Corporation Microprocessor shifter using rotation and masking operations
US5761524A (en) * 1996-03-15 1998-06-02 Renditon, Inc. Method and apparatus for performing and operation multiple times in response to a single instruction
US5890009A (en) * 1996-12-12 1999-03-30 International Business Machines Corporation VLIW architecture and method for expanding a parcel
EP0858168A1 (de) 1997-01-29 1998-08-12 Hewlett-Packard Company Feldprogrammierbarer Gatterprozessor
US5805850A (en) * 1997-01-30 1998-09-08 International Business Machines Corporation Very long instruction word (VLIW) computer having efficient instruction code format
US6567834B1 (en) 1997-12-17 2003-05-20 Elixent Limited Implementation of multipliers in programmable arrays
DE69827589T2 (de) 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE69841256D1 (de) 1997-12-17 2009-12-10 Panasonic Corp Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten
US6546479B1 (en) 1998-02-10 2003-04-08 Koninklijke Philips Electronics N.V. Reduced instruction fetch latency in a system including a pipelined processor
US7089404B1 (en) * 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
US7401205B1 (en) * 1999-08-13 2008-07-15 Mips Technologies, Inc. High performance RISC instruction set digital signal processor having circular buffer and looping controls
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6823355B1 (en) 2000-05-31 2004-11-23 International Business Machines Corporation Synchronous replication of transactions in a distributed system
WO2002103515A1 (en) * 2001-06-15 2002-12-27 Cadence Design Systems, Inc. Enhancing mergeability of datapaths and reducing datapath widths responsively to required precision
US7082517B2 (en) * 2003-05-12 2006-07-25 International Business Machines Corporation Superscalar microprocessor having multi-pipe dispatch and execution unit
US7107435B2 (en) * 2003-05-27 2006-09-12 International Business Machines Corporation System and method for using hardware assist functions to process multiple arbitrary sized data elements in a register
US7882380B2 (en) * 2006-04-20 2011-02-01 Nvidia Corporation Work based clock management for display sub-system
US7937606B1 (en) 2006-05-18 2011-05-03 Nvidia Corporation Shadow unit for shadowing circuit status
US20130086359A1 (en) * 2011-09-29 2013-04-04 Qualcomm Incorporated Processor Hardware Pipeline Configured for Single-Instruction Address Extraction and Memory Access Operation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
JPS513743A (de) * 1974-06-28 1976-01-13 Hitachi Ltd
CH598106A5 (de) * 1976-07-29 1978-04-28 Ferag Ag
JPS56135243A (en) * 1980-03-26 1981-10-22 Hitachi Ltd Microprogram controller
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
US4393468A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
US4766564A (en) * 1984-08-13 1988-08-23 International Business Machines Corporation Dual putaway/bypass busses for multiple arithmetic units

Also Published As

Publication number Publication date
JPS6349843A (ja) 1988-03-02
EP0260409A3 (en) 1990-10-24
EP0260409B1 (de) 1994-10-05
DE3750625D1 (de) 1994-11-10
EP0260409A2 (de) 1988-03-23
US4766566A (en) 1988-08-23

Similar Documents

Publication Publication Date Title
DE3750625T2 (de) Datenverarbeitungssystem mit zwei Ausführungseinheiten.
DE68929215T2 (de) Datenprozessor
DE69130379T2 (de) Datenvorausladebefehl in einem Prozessor mit reduziertem Befehlssatz
DE69909829T2 (de) Vielfadenprozessor für faden-softwareanwendungen
DE68921775T2 (de) Prozessorssimulation.
DE69727773T2 (de) Verbesserte Verzweigungsvorhersage in einem Pipelinemikroprozessor
DE19735348B4 (de) Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE3789345T2 (de) Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen.
DE69209888T2 (de) Befehlablaufsteuerung für einen Rechner
DE68928848T2 (de) Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern
DE69131637T2 (de) Registerhaltige Datenbearbeitung in einem Prozessor mit reduziertem Befehlssatz
DE69032635T2 (de) Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit
DE19735350B4 (de) Vektorprozessor zum Ausführen paralleler Operationen und Verfahren hierfür
DE3686991T2 (de) Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz.
DE69622305T2 (de) Verfahren und Gerät für einen optimierenden Kompiler
DE69327637T2 (de) Superskalar-Computersystem
DE69033398T2 (de) Rechnerarchitektur mit Mehrfachbefehlsausgabe
DE69821957T2 (de) Datenprozessor mit paralleler decodierung und ausführung von daten- und adressbefehlen
DE69129569T2 (de) Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE69408769T2 (de) Fliessbandsteuerung und Registerübersetzung in Mikroprozessor
DE102018006889A1 (de) Prozessoren und Verfahren für bevorzugte Auslegung in einem räumlichen Array
DE69623461T2 (de) Koordination von befehlsausgabe in einem parallelen befehlsverarbeitungssystem
DE102018005172A1 (de) Prozessoren, verfahren und systeme mit einem konfigurierbaren räumlichen beschleuniger
DE60131214T2 (de) Verfahren und Anordnung zur Freilassung von Funktionseinheiten in einem multithreaded VLIW-Prozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee