DE69327504T2 - Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen - Google Patents

Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen

Info

Publication number
DE69327504T2
DE69327504T2 DE69327504T DE69327504T DE69327504T2 DE 69327504 T2 DE69327504 T2 DE 69327504T2 DE 69327504 T DE69327504 T DE 69327504T DE 69327504 T DE69327504 T DE 69327504T DE 69327504 T2 DE69327504 T2 DE 69327504T2
Authority
DE
Germany
Prior art keywords
register
data
processor
unit
memory
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 - Lifetime
Application number
DE69327504T
Other languages
English (en)
Other versions
DE69327504D1 (de
Inventor
Antoine Delaruelle
Hendricus A. Hilderink
Paul E.R. Lippens
Jozef Van Meerbergen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69327504D1 publication Critical patent/DE69327504D1/de
Publication of DE69327504T2 publication Critical patent/DE69327504T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • 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
    • 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

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

Description

  • Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen.
  • ANWENDUNGSBEREICH DER ERFINDUNG
  • Die Erfindung bezieht sich auf einen Datenprozessor, der Datenverarbeitungsmittel mit einer Vielzahl von Operationseinheiten umfaßt, die jeweils so ausgelegt sind, daß sie entsprechende Daten empfangen und eine entsprechende Datenverarbeitungsoperation an den entsprechenden Daten durchführen, wobei mindestens zwei der Operationseinheiten unterschiedliche Funktionen haben, wobei Registerspeichermittel mit den Eingängen der Datenverarbeitungsmittel verbunden sind und so funktionieren, daß sie Daten speichern, bevor sie die Daten an die Datenverarbeitungsmittel weiterleiten, wobei die Registerspeichermittel eine Vielzahl von physisch getrennten Registerspeichern enthalten und wobei ein Eingang von mindestens einer der Operationseinheiten ausschließlich mit einem ersten Registerspeicher verbunden ist.
  • HINTERGRUND DER ERFINDUNG
  • Ein Datenprozessor ist eine wohlbekannte Vorrichtung, die das Kernstück fast jedes Rechners bildet. Ein Datenprozessor bearbeitet Eingangsdaten zum Erzeugen von Ausgangsdaten, indem er einen vorher spezifizierten Algorithmus ausführt. Typischerweise enthält ein Prozessor funktionell eine oder mehrere der folgenden Operationseinheiten: ein Rechenwerk (z. B. ein ALU) zur Durchführung von Additionen, Subtraktionen und Verschiebungen, eine Multipliziereinheit (MUL) zum Multiplizieren von zwei Datenwörtern, einen Direktzugriffsspeicher (RAM) zum Lesen und Schreiben von Daten, einen Festwertspeicher (ROM) zum ausschließlichen Lesen von Daten, eine Adreßrecheneinheit zum Liefern von Adressen für den Zugriff auf die Speicher und eine anwendungsspezifische Einheit (ASU). Eine ASU ist eine spezielle Einheit, die typischerweise dazu genutzt wird, Operationen auszuführen, die nicht in die Befehlsfolge einer anderen Operationseinheit innerhalb der begrenzten Anzahl von für diese andere Operationseinheit festgelegten Befehlszyklen passen. Es kann effizienter sein, die zusätzlichen Operationen auf eine ASU abzubilden, anstatt die Anzahl der Befehlszyklen für die andere Operationseinheit zu erhöhen oder eine zusätzliche Operationseinheit des gleichen Typs wie die andere Operationseinheit zu schaffen.
  • Ein Prozessor wie eingangs erwähnt ist in "PIRAMID: An Architecture- Driven Silicon Compiler for Complex DSP Applications" von R. Woudsma, F. P. M. Beenker, J. L. Van Meerbergen und C. Niessen, erschienen im 1990 IEEE International Symposium on Circuits and Systems, New Orleans, Louisiana, USA, 1.-3. Mai 1990, auf den Seiten 2596-2600, beschrieben. Die Fig. 2 und 3 dieses Dokuments nach dem Stand der Technik zeigen einen modularen Schaltungsaufbau eines Prozessors. Der Schaltungsaufbau wird automatisch durch einen Silizium-Compiler (PIRAMID) auf der Grundlage einer Funktionsspezifikation für den Prozessor erzeugt. Im Gegensatz zu einem herkömmlichen Datenprozessor, der in Silizium "eingefroren" ist und daher so konfiguriert werden muß, daß er universell einsetzbar ist, wird der durch PIRAMID geschaffene Prozessor speziell für die geplante Anwendung optimiert.
  • In Fig. 2 des Dokuments nach dem Stand der Technik ist der modulare Schaltungsaufbau des Prozessors mit einer Vielzahl von Ausführungseinheiten dargestellt, die durch Datenbusse miteinander verbunden und über ein in einem Controller gespeichertes Mikrocode-Programm gesteuert werden. Der allgemeine Aufbau einer Ausführungseinheit ist in Fig. 3 des Dokuments dargestellt. Eine Ausführungseinheit ist eine physische Funktionseinheit, die eine oder mehrere zur Ausführung eines Algorithmus erforderliche Operationen durchführt. Jede Ausführungseinheit beinhaltet daher eine Operationseinheit des oben beschriebenen Typ zur tatsächlichen Durchführung der Operation und einen Registerspeicher zum Speichern der als Operanden von der Operationseinheit verwendeten Eingangsdaten und bei Bedarf zum Zuführen der Eingangsdaten zur Operationseinheit.
  • Im allgemeinen umfaßt der Registerspeicher einen Registerspeicherbereich "A" und einen Registerspeicherbereich "B". Der Registerspeicherbereich "A" führt der Operationseinheit den Operanden "A" zu und der Registerspeicherbereich "B" führt den Operanden "B" zu. Die Operationseinheit arbeitet dann mit beiden Operanden. So kann die Operationseinheit beispielsweise die beiden Operanden "A" und "B" als Daten interpretieren, die einer logischen oder mathematischen Operation unterzogen werden sollen. Falls die Operationseinheit einen RAM enthält, empfängt sie den Operanden "A" als Daten, die unter einer durch den Operanden "B" angegebenen Adresse gespeichert werden sollen. Operationen, die beide Operanden "A" und "B" betreffen, werden als "dyadische" Operationen bezeichnet, während Operationen, die nur einen einzigen Operanden betreffen, als "mona dische" Operationen bezeichnet werden. Ein Beispiel für letzteres ist eine Operationseinheit, die einen ROM enthält und nur einen einzigen Operanden benötigt, nämlich eine Adresse im ROM. Der ROM-Registerspeicher enthält daher nur einen Registerspeicherbereich "A".
  • Ein Registerspeicher ist eine Vorrichtung mit zwei Ports, die dazu dient, einen Lesevorgang und einen Schreibvorgang in einem einzigen Befehlszyklus durchzuführen. Der Registerspeicher dient als schneller Vordergrundspeicher, der mit der Operationseinheit verbunden ist. Ein Hintergrundspeicher besitzt nur einen Port und kann nur einen Lesevorgang oder einen Schreibvorgang in einem einzigen Befehlszyklus durchführen. Daher ist der Hintergrundspeicher im Vergleich zu dem Vordergrundspeicher langsam und wird als Operationseinheit einer separaten Ausführungseinheit (z. B. RAM, ROM) behandelt. Registerspeicher werden durch den Controller über ein Befehlsregister adressiert, während der Hintergrundspeicher über Adreßrecheneinheiten adressiert wird, die in einer anderen Ausführungseinheit implementiert sind. Es ist anzumerken, daß jede einzelne Ausführungseinheit ihren eigenen Registerspeicher besitzt.
  • AUFGABE DER ERFINDUNG
  • Durch die PIRAMID-Methode wird der Schaltungsaufbau eines Prozessors zwar in großem Maße verbessert, jedoch kann die modulare Bauweise immer noch zu relativ großen Prozessorsystemen und einer relativ ineffizienten Nutzung der Fähigkeiten des Prozessors führen. Dies kann unter anderem darauf zurückzuführen sein, daß die Ausführungseinheiten einzeln optimiert wurden, ohne funktionelle Abhängigkeiten zwischen den Ausführungseinheiten für die spezielle geplante Anwendung zu berücksichtigen.
  • Der Erfindung liegt daher die Aufgabe zugrunde, einen Datenprozessor der eingangs erwähnten Art zu schaffen, der kleiner und effizienter als Datenprozessoren nach dem Stand der Technik ist und mindestens die gleichen Fähigkeiten wie ein Prozessor nach dem Stand der Technik aufweist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Zur Erreichung dieser Ziele ist der Datenprozessor dadurch gekennzeichnet, daß ein zweiter Registerspeicher mit den entsprechenden Eingängen einer zweiten und einer dritten Operationseinheit verbunden ist.
  • Bei der Erfindung benutzen einige der Operationseinheiten gemeinsam denselben Registerspeicher, während andere Operationseinheiten gemeinsam einen anderen Registerspeicher benutzen oder getrennte Registerspeicher haben, die nicht von anderen Operationseinheiten benutzt werden. Die Erfindung basiert auf der Erkenntnis, daß die Registerspeicher von Operationseinheiten einige Zeit nach der Zuführung des Inhalts der Speicherplätze (d. h. der Operanden) zu der zugehörigen Operationseinheit freie Speicherplätze enthalten, und auf der Erkenntnis, daß ein und derselbe Operand in mehreren Operationseinheiten gleichzeitig oder über die Zeit verteilt verwendet werden kann. Dementsprechend können die Registerspeicher für zwei oder mehr Operationseinheiten je nach dem Anwendungsbereich des Prozessors physisch und funktionell zusammengefügt werden.
  • So empfangen beispielsweise bei sich wiederholenden Operationen eine erste und eine zweite Operationseinheit den/die gleichen Operanden von einem gemeinsam benutzten Registerspeicher. Die erste Einheit verarbeitet den/die Operanden auf eine vorher festgelegte Weise und führt das Verarbeitungsergebnis einer dritten Operationseinheit zu, während die zweite Operationseinheit auf der Grundlage des/der empfangenen Operanden den/die nachfolgenden Operanden berechnet, der/die der ersten Einheit bei der nächsten Wiederholung zuzuführen ist/sind.
  • Die Vorteile sind vielfältig. Der gemeinsam benutzte Registerspeicher ist kleiner als eine Gruppe von getrennt benutzten Registerspeichern. Die gemeinsame Nutzung von Registerspeicherplätzen reduziert die tatsächlich erforderliche Registerspeicherkapazität. Die periphere Schaltungsanordnung zur Realisierung der Eingabe- und Ausgabefunktionen des Registers, wie beispielsweise der Befehlsregister, wird ebenfalls gemeinsam genutzt, wodurch eine weitere Reduzierung der Größe ermöglicht wird.
  • Die sich auf die Speicherplatzadressen zusammengefügter Register beziehenden Datenfelder des Mikrocodes können inhärent länger sein, da der Platz für Adressen für zusammengefügte Register vergrößert wird, jedoch ersetzt ein einzelnes Adressendatenfeld jetzt zwei oder mehr Adressendatenfelder nach dem Stand der Technik. Infolgedessen wird die Länge eines Mikrocodewortes reduziert, und es kann ein kleinerer Controller eingesetzt werden. Es kann erforderlich sein, den Ablauf der Mikrocodebefehle neu zu steuern und den Befehlssatz geringfügig zu erweitern. Dies kann jedoch angesichts der gewonnenen Vorteile lohnend sein.
  • Außerdem erfordert eine Vielzahl kleiner Schaltungsblöcke im allgemeinen eine größere Substratfläche in einer integrierten Schaltung als ein einzelner größerer Schaltungsblock mit der gleichen Funktionalität. Dies ist darauf zurückzuführen, daß die Elemente des Schaltungsblocks typischerweise die für den Schaltungsblock vorgesehene Substratfläche aufgrund der in der Technik der integrierten Schaltungen verwendeten Sicherheitsabstände und Auflösung nicht vollständig ausfüllen. Außerdem wird das Layout einer Schaltungsbausteins zur Verwendung auf einem Chip bei rechnergestütztem Entwurf automatisch auf der Grundlage der Spezifikationen eines Parameterformats generiert. Typischerweise ist das erzeugte Layout für einen Baustein in einem Rechteck enthalten, das auf der Chipfläche zu reservieren, um zu einem späteren Zeitpunkt einfache Verbindungsleitungen hinzufügen zu können. Der Anteil an freibleibender Fläche auf dem Chip nimmt bei zunehmender Anzahl von Rechtecken zu. Außerdem kann die automatische Generierung eines Layouts für einen bestimmten Parameterwert oder einen Bereich von Parameterwerten optimiert werden, z. B. für die Speichergröße oder die Speicherkapazität. Außerhalb des optimierten Bereichs kann das zugehörige Layout die Chipfläche eventuell weniger effizient nutzen. Durch das Zusammenfügen der gleichen Funktionen von einer Vielzahl von Blöcken innerhalb eines einzelnen Blocks oder innerhalb von einigen wenigen Blöcken reduziert sich im Verhältnis dazu die Größe der freibleibenden Flächen.
  • Bei dem erfindungsgemäßen Prozessor sind die Operationseinheiten nicht gleich. Das bedeutet, daß die Operationseinheiten unterschiedliche Funktionen haben können und daher einen unterschiedlichen Schaltungsaufbau aufweisen können. Die gruppenweise gemeinsame Nutzung von Registerspeichern durch die verschiedenen Operationseinheiten ist für den Prozessor als Ganzes vorteilhaft.
  • Es ist anzumerken, daß aus der Patentanmeldung EP-A 0 588 341, die nach Artikel 54(3) und (4) EPÜ ein älteres Recht darstellt, ein Prozessor bekannt ist, der in der Lage ist, zwischen parallelen und seriellen Operationen umzuschalten. Der Prozessor enthält zwei ALUs (ALU1 und ALU2) und drei Registerspeicher. Bei einem seriellen Operationsbefehl wird nur ALU1 genutzt und ALU2 gestoppt. In diesem Modus hat das ALU1 Zugriff auf alle drei Registerspeicher. Bei einem parallelen Operationsbefehl werden beide ALUs genutzt. In diesem Modus hat jedes ALU Zugriff auf einen speziellen Registerspeicher und auf einen gemeinsamen Registerspeicher. Im parallelen Modus sind ALUs des gleichen Typs aktiv und führen denselben Befehl aus. In dem Dokument wird nicht die Verwendung von Operationseinheiten unterschiedlichen Typs beschrieben.
  • Bei einer weiteren Ausführungsform der Erfindung funktioniert die zweite Operationseinheit (180) so, daß sie eine dyadische Operation durchführt, und die dritte Operationseinheit (194) funktioniert so, daß sie eine monadische Operation durchführt. Die zweite Operationseinheit enthält typischerweise einen Speicher (z. B. einen RAM) und die dritte Operationseinheit eine Adreßrecheneinheit (ACU), die beispielsweise von Vorteil ist, wenn die Adressen iterativ zu berechnen sind.
  • Es ist beachten, daß herkömmliche Datenprozessoren, die keinen modularen Aufbau wie der obengenannte PIRAMID-Prozessor besitzen, einen einzigen überdimensionierten Registerspeicher für alle geplanten kombinierten Funktionen aufweisen können. Die Erfindung betrifft jedoch einen speziellen Datenprozessor, wobei der modulare Aufbau stellenweise leicht verändert ist, um Größe, Geschwindigkeit und Kosten zu optimieren. Insbesondere bei einer Ausführungsform als integrierte Schaltung bietet die Erfindung viele interessante Merkmale.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im folgenden näher beschrieben. Es zeigen:
  • Fig. 1 ein Beispiel für die modulare Architektur eines Datenprozessors;
  • Fig. 2 den Schaltungsblock nach dem Stand der Technik zur Realisierung des Aufbaus aus Fig. 1;
  • Fig. 3 ein Beispiel für einen erfindungsgemäßen Schaltungsblock zur Realisierung des Datenprozessors aus Fig. 1 und
  • Fig. 4 eine typische Kombination von Operationseinheiten, die gemeinsam denselben Registerspeicher benutzen.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE Prozessor-Architektur
  • Fig. 1 zeigt ein schematisches Beispiel für die Architektur eines Prozessors 10. Der Prozessor 10 enthält unter anderem die Ausführungseinheiten 12, 14, 16 und 18, die über einen oder mehrere Datenbusse 20 zur Datenübertragung zwischen den Ausführungseinheiten verbunden sind und deren Betrieb von einem Controller 22 gesteuert wird. Der Controller 22 führt den Ausführungseinheiten 12-18 über einen Befehlsbus 24 Befehle zu, die möglicherweise von Statusinformationen, z. B. Marken, abhängen, die von den Ausführungseinheiten 12 und 14 über einen Statusbus 26 empfangen wurden, um eine datenabhängige Verarbeitung, z. B. eine Verzweigung, zu ermöglichen. Die Ausführungsein heit 12 enthält ein Rechenwerk (ALU). Die Ausführungseinheit 14 beinhaltet eine Adreßrecheneinheit (ACU) zum Erzeugen optimierter Adressenfolgen für die Speicher, z. B. für die Ausführungseinheit 16, die einen RAM enthält, und die Ausführungseinheit 18, die einen ROM enthält.
  • Ausführungseinheit nach dem Stand der Technik
  • In Fig. 2 ist ein Blockschaltbild einer typischen Ausführungseinheit 40 nach dem Stand der Technik dargestellt. Die Ausführungseinheit 40 ist an ihrem Eingang mit den Multiplexem 42 und 44 für den Zeit-Multiplexbetrieb innerhalb einer Anwendung versehen. Die Multiplexer 42 und 44 koppeln die (nicht dargestellten) Datenleitungen des Busses 20 selektiv mit einem Registerspeicher 46, der einen Bereich für "A"-Operanden 48 und einen Bereich für "B"-Operanden 50 umfaßt. Die Multiplexer 42 und 44 funktionieren gesteuert von dem Controller 22, der die geeigneten Auswahlsignale SEL über die Befehlsregister 52 und 54 zuführt. Der Registerspeicher 46 speichert die von den Multiplexem 42 und 44 empfangenen Daten und überträgt sie an eine Operationseinheit 56, die die Daten als Operanden empfängt. Die Bereiche 48 und 50 empfangen über die Befehlsregister 58 und 60 Lese- und Schreibadressen (ADDR) vom Controller 22. Die Operationseinheit 56 führt eine Operation an den Daten durch, die vom Registerspeicher 46 unter der Steuerung eines Befehls empfangen wurden, welcher vom Controller 22 über das Befehlsregister 62 empfangen wurde. Das Ergebnis dieser Operation wird dem Datenbus 20 über einen Pufferspeicher 64 zugeführt, der von dem Controller 22 über ein Befehlsregister 66 selektiv aktiviert oder deaktiviert (Enabled/Disabled) wird.
  • Wenn die ROM-Funktion in der Ausführungseinheit 40 implementiert ist, entfallen der Multiplexer 44, der Bereich 50 und die Befehlsregister 54 und 60.
  • Erfindungsgemäßer Schaltungsblock
  • In Fig. 3 ist ein erfindungsgemäßer Schaltungsblock zur Realisierung der Architektur des Prozessors 10 aus Fig. 1 dargestellt. Der Block 100 umfaßt die Operationseinheiten 102, 104 und 106, die ihre Eingangsdaten von den Registerspeichern 108 und 110 empfangen. Der Registerspeicher 108 empfängt die Eingangsdaten über die Multiplexer 112 und 113, und der Registerspeicher 110 empfängt die Eingangsdaten über die Multiplexer 114 und 115. Die Multiplexer 112-115 sind mit einem Bus 116 verbunden. Die von den Operationseinheiten 102, 104 und 106 gelieferten Ergebnisse werden dem Bus 116 über die Pufferspeicher 118, 120 bzw. 122 zugeführt. Die Multiplexer 112-115 werden von einem Controller 124 über die Befehlsregister 126, 127, 128 und 129 durch die Auswahlsignale SEL gesteuert. Die Adressen (ADDR) werden den Registerspeichern 108 und 110 durch den Controller 124 über die Befehlsregister 130 und 132 zugeführt. Die Betriebsarten der Operationseinheiten 102, 104 und 106 werden von dem Controller 124 bestimmt, der die Befehle (INST) über die Befehlsregister 134, 136 und 138 zuführt. Die Pufferspeicher 118, 120 und 122 werden über den Controller 124 selektiv aktiviert und deaktiviert (Enabled/Disabled).
  • Es ist zu beachten, daß der in Fig. 3 dargestellte Block so angepaßt wurde, daß er als Ausführungseinheit höherer Ebene eingesetzt wird, damit er mit anderen Ausführungseinheiten der gleichen Art oder der in Fig. 2 dargestellten Art zusammenarbeiten kann. Es ist außerdem zu beachten, daß die innerhalb der Zeichnungen gezeigten einzelnen Linien, die Eingänge zum Empfangen von Daten oder anderen Signalen oder Verbindungen darstellen, für Busse mit mehreren Signalleitungen stehen können.
  • Bei dem dargestellten Beispiel wird der Registerspeicher 108 dazu verwendet, den Operationseinheiten 102 und 104 unter der Steuerung des Controllers 124 selektiv Operanden zu liefern, während der Registerspeicher 110 die Operationseinheit 106 mit Operanden versorgt. Dem Fachkundigen wird ersichtlich sein, daß der Registerspeicher 108 aus beispielsweise zwei oder mehr parallel angeordneten Registerspeichern (nicht dargestellt) mit jeweils einem Eingang bestehen kann, um die entsprechenden Operanden zwei oder mehr entsprechenden Operationseinheiten zuzuführen, von denen nur 102, 104 und 106 dargestellt sind. Es ist außerdem offensichtlich, daß im allgemeinen weitere Multiplexer (nicht dargestellt) zwischen die Ausgänge von zumindest einigen Registerspeichern einerseits und die Eingänge von einigen Operationseinheiten andererseits geschaltet werden können, um eine geeignete Verteilung der Operanden ablaufmäßig zu steuern.
  • Es sei angenommen, daß die Operationseinheiten 102-106 in diesem Beispiel dyadische Befehle ausführen. Verglichen mit dem Stand der Technik sind die Registerspeicher für die Operationseinheiten 102 und 104 nun zusammengefügt, um einen einzigen Registerspeicher zu schaffen.
  • Typisches Beispiel
  • In Fig. 4 ist lediglich das Wesentliche eines typischen Beispiels für einen gemeinsam benutzten Registerspeicher dargestellt. Es sei angenommen, daß die Steuer- und Ein-/Ausgabefunktionen denjenigen in Fig. 3 entsprechen. Ein RAM 180 speichert die über den Registerspeicher 182 empfangenen Daten bei über den Registerspeicher 182 empfangenen Adressen und führt die Daten dem Bus 116 zu. Eine Adreßrecheneinheit (ACU) 184 empfängt dieselbe Adresse wie der RAM 180 zur iterativen Berechnung der nächsten Adresse. Die nächste Adresse wird dann dem Bus 116 zugeführt und wieder zum Registerspeicher 182 geleitet. Die unterbrochenen Verbindungen in Fig. 4 sollen an die Steuer- und Ein-/Ausgabefunktionen erinnern, die hier der Kürze halber weggelassen wurden.
  • Ob die Registerspeicher für mehrere Operationseinheiten zusammengefügt werden können, hängt von den tatsächlich durchzuführenden Operationen ab. Im folgenden wird erläutert, auf welche Weise der Befehlssatz das Zusammenfügen von Registerspeichern beeinflußt. Zum Erarbeiten einer Zusammenfügungsmethode kann der Entwerfer einen anfänglichen Ablaufplan für die Operationseinheiten als Grundlage verwenden, um zu ermitteln, welche der Operationseinheiten in welchen Befehlszyklen aktiv sind. Die Registerspeicher der Operationseinheiten, die nicht gleichzeitig, d. h. während derselben Befehlszyklen, aktiv sind, können zusammengefügt werden. Derartige Situationen sind jedoch selten. Es ist eher wahrscheinlich, daß Operationseinheiten lediglich für einige wenige Befehlszyklen gleichzeitig aktiv sind. Das Zusammenfügen der Registerspeicher kann zwar immer noch erfolgen, jedoch nur durch die Einführung zusätzlicher Befehlszyklen, um Konflikte zu vermeiden. Eine etwas größere Anzahl von Befehlszyklen kann sich lohnen, wenn man sich den Vorteil zusammengefügter Registerspeicher vor Augen hält. Der Entwerfer könnte ebenfalls Operanden berücksichtigen, die in mehr als einer Operationseinheit gleichzeitig oder in verschiedenen Befehlszyklen verwendet werden. Ein derartiger Operand benötigt dann nur einen einzigen Registerspeicherplatz, der möglicherweise für mehrere Befehlszyklen in Folge besetzt wird. Dem Fachkundigen wird klar sein, daß die Einsparung von Hardware hauptsächlich von dem Programm abhängt, für dessen Ausführung der erfindungsgemäße Prozessor geschaffen werden soll. Es hat sich herausgestellt, daß die Einsparung an Substratfläche für eine integrierte Schaltung eines erfindungsgemäßen Prozessors typischerweise in der Größenordnung von 15%-20% liegt.

Claims (4)

1. Datenprozessor, der folgendes beinhaltet:
- Datenverarbeitungsmittel (10) mit einer Vielzahl von Operationseinheiten (102, 104, 106), die jeweils so ausgelegt sind, daß sie entsprechende Daten empfangen und eine entsprechende Datenverarbeitungsoperation an den entsprechenden Daten durchführen, wobei mindestens zwei der Operationseinheiten unterschiedliche Funktionen haben;
- Registerspeichermittel, die mit den Eingängen der Datenverarbeitungsmittel verbunden sind und so funktionieren, daß sie Daten speichern, bevor sie die Daten an die Datenverarbeitungsmittel weiterleiten, wobei die Registerspeichermittel eine Vielzahl von physisch getrennten Registerspeichern (108, 110) enthalten; und
- einen Eingang von mindestens einer der Operationseinheiten (106), der ausschließlich mit einem ersten Registerspeicher (110) verbunden ist;
dadurch gekennzeichnet, daß ein zweiter Registerspeicher (108) mit den entsprechenden Eingängen einer zweiten und einer dritten Operationseinheit (102, 104) verbunden ist.
2. Prozessor nach Anspruch 1, wobei die zweite Operationseinheit (180) so funktioniert, daß sie eine dyadische Operation durchführt, und die dritte Operationseinheit (194) so funktioniert, daß sie eine monadische Operation durchführt.
3. Prozessor nach Anspruch 2, wobei die zweite Operationseinheit (180) einen Speicher umfaßt und die dritte Operationseinheit (184) eine Adreßrecheneinheit enthält.
4. Prozessor nach Anspruch 1, der in einer integrierten Schaltung realisiert ist.
DE69327504T 1992-10-19 1993-10-12 Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen Expired - Lifetime DE69327504T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP92203192 1992-10-19

Publications (2)

Publication Number Publication Date
DE69327504D1 DE69327504D1 (de) 2000-02-10
DE69327504T2 true DE69327504T2 (de) 2000-08-10

Family

ID=8210979

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69327504T Expired - Lifetime DE69327504T2 (de) 1992-10-19 1993-10-12 Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen

Country Status (4)

Country Link
US (1) US5613152A (de)
JP (1) JP3595562B2 (de)
KR (1) KR100288170B1 (de)
DE (1) DE69327504T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713039A (en) * 1995-12-05 1998-01-27 Advanced Micro Devices, Inc. Register file having multiple register storages for storing data from multiple data streams
JP2869379B2 (ja) * 1996-03-15 1999-03-10 三菱電機株式会社 プロセッサ合成システム及びプロセッサ合成方法
US6006296A (en) * 1997-05-16 1999-12-21 Unisys Corporation Scalable memory controller
JPH1131137A (ja) * 1997-07-11 1999-02-02 Nec Corp レジスタファイル
EP0951671A1 (de) * 1997-08-18 1999-10-27 Koninklijke Philips Electronics N.V. Datenverarbeitungsvorrichtung mit relativer sprunginformation
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US7107302B1 (en) 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
JP2002544587A (ja) * 1999-05-12 2002-12-24 アナログ デバイセス インコーポレーテッド デジタル信号プロセッサ計算コア
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
JP3776644B2 (ja) 1999-10-05 2006-05-17 富士通株式会社 パイプライン演算装置、情報処理装置およびパイプライン演算装置の演算方法
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
EP1168242B1 (de) * 2000-06-20 2008-05-07 Nxp B.V. Datenverarbeitungsgerät
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7315934B2 (en) * 2002-03-06 2008-01-01 Matsushita Electric Industrial Co., Ltd. Data processor and program for processing a data matrix
US7246218B2 (en) * 2004-11-01 2007-07-17 Via Technologies, Inc. Systems for increasing register addressing space in instruction-width limited processors
US9367462B2 (en) * 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3978452A (en) * 1974-02-28 1976-08-31 Burroughs Corporation System and method for concurrent and pipeline processing employing a data driven network
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
US4348720A (en) * 1979-08-31 1982-09-07 Bell Telephone Laboratories, Incorporated Microcomputer arranged for direct memory access
EP0078034B1 (de) * 1981-10-22 1987-01-14 Nec Corporation Datenverarbeitungsgerät für die Verarbeitung mit sehr hohen Geschwindigkeiten
JPS58134357A (ja) * 1982-02-03 1983-08-10 Hitachi Ltd ベクトルプロセッサ
US4835733A (en) * 1985-09-30 1989-05-30 Sgs-Thomson Microelectronics, Inc. Programmable access memory
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
JPH077388B2 (ja) * 1988-09-13 1995-01-30 富士通株式会社 ベクトル演算処理装置
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US4980819A (en) * 1988-12-19 1990-12-25 Bull Hn Information Systems Inc. Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JP2879070B2 (ja) * 1989-02-15 1999-04-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラム可能論理ユニット及び信号プロセッサ
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle

Also Published As

Publication number Publication date
US5613152A (en) 1997-03-18
JP3595562B2 (ja) 2004-12-02
DE69327504D1 (de) 2000-02-10
JPH06222920A (ja) 1994-08-12
KR100288170B1 (ko) 2001-05-02
KR940009821A (ko) 1994-05-24

Similar Documents

Publication Publication Date Title
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE69713784T2 (de) Rekonfigurierbares rechnersystem
DE69429226T2 (de) Absendung von Befehlen an mehrere Verarbeitungseinheiten
DE69619885T2 (de) Datenverarbeitungsanordnung mit Koprozessor
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE69408601T2 (de) System und Verfahren zur Emulierung von Vielfachprozess-Pipelines in einer Einprozessumgebung
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE69130723T2 (de) Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE69305366T2 (de) System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE19926538A1 (de) Hardware und Betriebsverfahren
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE69226272T2 (de) Bedingungsfeststellen in asynchronpipeline
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE3587446T2 (de) Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor.
DE2912073C2 (de)
DE3786973T2 (de) Semaphorschaltung für gemeinsam genutzte Speicherzellen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition