DE69527933T2 - Datenverarbeitungssystem mit datenverarbeitungseinheiten und eine erweiterungsvorrichtung - Google Patents

Datenverarbeitungssystem mit datenverarbeitungseinheiten und eine erweiterungsvorrichtung

Info

Publication number
DE69527933T2
DE69527933T2 DE69527933T DE69527933T DE69527933T2 DE 69527933 T2 DE69527933 T2 DE 69527933T2 DE 69527933 T DE69527933 T DE 69527933T DE 69527933 T DE69527933 T DE 69527933T DE 69527933 T2 DE69527933 T2 DE 69527933T2
Authority
DE
Germany
Prior art keywords
data
data processing
connection
control
processing units
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
DE69527933T
Other languages
English (en)
Other versions
DE69527933D1 (de
Inventor
Peter Elias
Colin Turley
Roberto Woudsma
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 DE69527933D1 publication Critical patent/DE69527933D1/de
Publication of DE69527933T2 publication Critical patent/DE69527933T2/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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

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)
  • Advance Control (AREA)

Description

  • Die Erfindung betrifft ein Datenverarbeitungssystem wie im Oberbegriff von Anspruch 1 dargelegt.
  • Ein Datenverarbeitungssystem dieser Art ist aus der US-Patentschrift Nr. 5.280.620 (PHN 12.762) bekannt. Beispiele für Datenverarbeitungseinheiten sind Recheneinheiten (ALUs: arithmetic/logic units). Multiplizierer, Datenspeicher mit autonomen Adressierbetriebsarten, eine Eingangs-/Ausgangseinheit usw. Die Programmspeichermittel dieses Datenverarbeitungssystems sind aus Teilspeichern zusammengesetzt, von denen jeder für die Kommandos für eine jeweilige Datenverarbeitungseinheit bestimmt ist. In jedem Befehlszyklus erzeugt der Programmzähler eine neue Adresse, bei der Kommandos parallel aus den verschiedenen Teilspeichern ausgelesen werden. Die von den verschiedenen Datenverarbeitungseinheiten ausgeführten Kommandos sind somit voneinander unabhängig und Parallelität zwischen den Datenverarbeitungseinheiten kann maximal zum Schreiben des Programms genutzt werden. Weil für verschiedene Datenverarbeitungseinheiten während jedes Befehlszyklus eine große Anzahl von separaten Kommandos erforderlich ist, wird eine derartige Architektur auch als VLIW-Architektur (VLIW: Very Long Instruction Word; sehr langes Befehlswort) bezeichnet.
  • Daten müssen im Betrieb zwischen den verschiedenen Datenverarbeitungseinheiten transportiert werden. Hierzu umfasst das in der erwähnten Veröffentlichung offenbarte System Verbindungselemente in Form von Datenbussen, die bei Kreuzungen steuerbar mit Leitungen verbunden sind, die zu den Datenanschlüssen der einzelnen Datenverarbeitungseinheiten verlaufen. Steuercodes für diese Kreuzungen sind in den Teilspeichern gespeichert, zusammen mit den Kommandos für die Datenverarbeitungseinheiten. In jedem Befehlszyklus gibt jeder Teilspeicher diese Steuercodes zur Steuerung von Kreuzungen aus.
  • Bei einer integrierten Schaltung nehmen die Programmspeicher zusammen einen erheblichen Raum ein, insbesondere wenn es viele Datenverarbeitungseinheiten gibt und das Programm viele Befehle enthält.
  • Der Erfindung liegt unter anderem als Aufgabe zugrunde, den für das Programm benötigten Speicherraum zu verkleinern.
  • Das erfindungsgemäße Datenverarbeitungssystem ist durch den kennzeichnenden Teil von Anspruch 1 gekennzeichnet.
  • Das Verbindungselement hat die Funktion, den Inhalt eines einzelnen Steuerfeldes zu einer Auswahl von Datenverbindungen zu erweitern, die von den verschiedenen Verbindungselementen hergestellt werden, ohne dass das Steuerfeld in Teilfelder für voneinander unabhängige Auswahlen in den verschiedenen Verbindungselementen getrennt werden kann. Das Verbindungsauswahlelement wird daher kürzer als "Expander" bezeichnet werden.
  • Wenn beispielsweise für das erste Verbindungselement eine Datenverbindung von einem Speicher aus zu einem Eingangsregister einer ALU ausgewählt wird, kann eine Gruppe von Verbindungen von oder zu anderen Registern in der betreffenden ALU für das zweite Verbindungselement auswählbar gemacht werden, während, wenn für das erste Verbindungselement eine Verbindung zwischen einem Ausgangsregister der ALU und einer Ausgangseinheit gewählt wird, die Gruppe von auswählbaren Verbindungen für das zweite Verbindungselement leer ist, sodass keine Verbindungen über das zweite Verbindungselement möglich sind. Einschränkungen dieser Art sind drastischer als für das Ausschließen inkonsistenter Kombinationen von Datenverbindungen notwendig ist, z. B. Kombinationen, bei denen das erste und das zweite Verbindungselement eine Datenverbindung zum gleichen Eingang hin erstellen, welche Kombination nicht sinnvoll ist, ungeachtet des ausgeführten Programms.
  • Die Erfindung beruht auf der Erkenntnis, dass beim Ausführen spezieller Programme für einen Satz zusammenarbeitender Datenverarbeitungseinheiten meistens ein Zusammenhang zwischen den auftretenden Datenverbindungen gefunden wird. Es hat sich gezeigt, dass lange nicht alle möglichen Konfigurationen von Datenverbindungen in einem vollständigen Programm auftreten. Es stellt sich im Gegenteil heraus, dass in Abhängigkeit vom Typ des Programms (beispielsweise eines mit Filteroperationen oder eines mit schnellen Fouriertransformationen) ein spezieller begrenzter Vorrat an Verbindungskonfigurationen vorkommt. Zum Schreiben eines Programms für das System können daher für diesen Vorrat Einschränkungen akzeptiert werden, ohne dass dies eine wesentliche Beschränkung des Ausmaßes bedeutet, in dem Parallelität in einer speziellen Anwendung genutzt werden kann.
  • Obwohl das Datenverarbeitungssystem die Freiheit hat, die Datenverarbeitungseinheiten unabhängig voneinander zu steuern, ist es darum für ein System, das nur einen speziellen Typ eines Programms ausführen muss, nicht notwendig, dass die Datenverbindungen der verschiedenen Datenverarbeitungseinheiten auch unabhängig voneinander gesteuert werden können. Dies gilt insbesondere für "eingebettete" Signalprozessoren, deren Entwurf insbesondere an einen einzigen, speziellen Typ eines Gerätes angepasst ist, beispielsweise einen Rundfunkempfänger oder eine Decodiereinheit.
  • Die Erfindung nutzt den beschriebenen Gedanken, indem nicht mehr die Verbindungen für jede Datenverarbeitungseinheit separat in den Befehl aufgenommen werden, sondern stattdessen ein einzelnes Steuerfeld des Befehls zum Auswählen eines aus dem begrenzten Vorrat an Konfigurationen möglicher Verbindungen verwendet wird. In Abhängigkeit davon, welche Datenverbindung von dem ersten Verbindungselement hergestellt wird, braucht das Steuerfeld dann aus nur einem Teil der real möglichen Datenverbindungen zu wählen, um das zweite Verbindungselement zu steuern. Daher kann das aus Bits bestehende Steuerfeld kürzer gemacht werden, ohne dass das Ausmaß der möglichen Parallelität von Programmen wesentlich verringert wird.
  • Es sei insbesondere bemerkt, dass dies die Folge der Verwendung von Programmen eines bestimmten Typs ist und nicht der Verwendung nur einer begrenzten Anzahl unterschiedlicher Kommandos für die Datenverarbeitungseinheiten. Die Beschränkung des Vorrats an Verbindungen ist daher auch für "pipelined" Systeme sinnvoll. Pipelining bedeutet, dass die über die Verbindungselemente während eines bestimmten Befehlszyklus transportierten Daten in einem vorhergehenden Befehlszyklus erzeugt worden sind und/ oder in einem späteren Befehlszyklus behandelt werden. Die jeweiligen Kommandofelder des Befehls betreffen in diesem Fall andere Daten als die Daten, deren Transport vom Steuerfeld des gleichen Befehls gesteuert wird. Unter diesen Umständen bleibt es interessant, um das Steuerfeld des Befehls zu nutzen, um eine aus dem begrenzten Vorrat an Konfigurationen möglicher Verbindungen auszuwählen.
  • Eine Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems ist dadurch gekennzeichnet, dass die Programmspeichermittel mit den Datenverarbeitungseinheiten über Verbindungsmittel verbunden sind, die einen Steuereingang umfassen, und dass der Expander ein weiteres Steuersignal für die Verbindungsmittel durch Erweiterung des Steuerfeldes auswählt und dieses weitere Steuersignal dem Steuereingang zuführt, um zu steuern, welches Kommandofeld des Befehlswortes welcher Datenverarbeitungseinheit zugeführt wird, und dass für jede mögliche erste Auswahl der Expander nur eine, eventuell leere, weitere Gruppe aus weiteren Auswahlen für das weitere Steuersignal verschafft, wo bei zumindest zwei der jeweiligen weiteren Gruppen sich voneinander unterscheiden. Die Anzahl pro Befehl benötigter Bits wird somit weiter begrenzt, ohne hinsichtlich des Ausmaßes, in dem Parallelität in einem speziellen Programmtyp genutzt werden kann, eine wesentliche Einschränkung aufzuerlegen.
  • Die Verwendung von Verbindungsmitteln, um unter der Steuerung durch ein Formatauswahlfeld des Befehlsworte zu steuern, welcher Teil des Befehls durch welche Datenverarbeitungseinheit ausgeführt wird, ist an sich aus einer Veröffentlichung von A. De Gloria: "A Programmable Instruction Format Extension to VLIW Architecture" bekannt, veröffentlicht in "CompEuro 1992 Proceedings, Computer Systems and Software Engineering", S. 35-40, "IEEE Computer Society Press", Los Alamitos, Kalifornien. De Gloria zeigt auch, dass das Formatauswahlfeld die Verbindungsmittel über einen Expander steuert, der eine begrenzte Anzahl von Verbindungskonfigurationen für den Befehlstransport zwischen dem Speicher und den Datenverarbeitungseinheiten berücksichtigt. De Gloria macht jedoch keinerlei Vorschläge hinsichtlich eines Expanders zum Auswählen einer begrenzten Anzahl von Verbindungskonfigurationen für den Datentransport zwischen den verschiedenen Datenverarbeitungseinheiten und schon gar nicht hinsichtlich der Kombination der Wahl von Verbindungen für den Datentransport und den Befehlstransport.
  • Eine Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems ist dadurch gekennzeichnet, dass der Expander mit zumindest einer der Datenverarbeitungseinheiten gekoppelt ist, um unter der Steuerung des Steuerfeldes ein Steuerkommando für die zumindest eine der Datenverarbeitungseinheiten zu bilden, und dass für jede erste Auswahl das Verbindungsauswahlelement nur eine jeweilige, eventuell leere, weitere Gruppe auswählbarer Steuerkommandos verschafft, wobei zumindest zwei der jeweiligen weiteren Gruppen sich voneinander unterscheiden. Somit wird in einem Teil der Datenverarbeitungseinheiten die Kommandoausführung über den Expander gesteuert, zumindest teilweise zusammen mit den Verbindungselementen. Es hat sich gezeigt, dass die Anzahl von pro Befehl benötigten Bits somit weiter begrenzt wird, ohne das Ausmaß, in dem in einem speziellen Programmtyp Parallelität verwendet werden kann, zu beschränken.
  • Eine Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems ist dadurch gekennzeichnet, dass zumindest eine der Datenverarbeitungseinheiten ein erstes und ein zweites Register umfasst, von denen jedes real mit den Verbindungselementen zur Zuführ von Daten über einen jeweiligen Datenanschluss gekoppelt ist, wobei die ersten Auswahlen eine Anzahl von Datenverbindungen zum ersten Register und die jeweiligen Gruppen eine Anzahl von Datenverbindungen zum zweiten Register umfassen. Die Erfindung kann somit auch für Datenverarbeitungseinheiten verwendet werden, deren Register unabhängig voneinander gleichzeitig geladen werden können.
  • Eine weitere Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems ist dadurch gekennzeichnet, dass die Kopplung ein Register umfasst, zur Speicherung und Übertragung des Steuersignals zu den Verbindungselementen, während ein folgendes Steuersignal gebildet wird. Das Register sorgt für Pipelining, sodass eine eventuelle Verzögerung infolge des Einbringens des Expanders zwischen die Programmspeichermittel und die Verbindungsmittel keine Verringerung der maximal verwendbaren Befehlsfrequenz bewirkt. Es kann dann jedoch vorkommen, dass das Steuerfeld eines Befehls in einem anderen Befehlszyklus verwendet wird als die Kommandofelder des betreffenden Befehls. Es hat sich gezeigt, dass dies das Ausmaß, in dem in einem speziellen Programmtyp Parallelität verwendet werden kann, nicht wesentlich beschränkt, weil die Wirkung der Erfindung die Folge der Verwendung eines Programms eines bestimmten Typs ist und nicht der Verwendung nur einer begrenzten Anzahl von verschiedenen Kommandos für die Datenverarbeitungseinheiten.
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
  • Fig. 1 eine erste Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems,
  • Fig. 2 eine zweite Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems,
  • Fig. 3 eine Ausführungsform der Verbindung zwischen einem Expander und einer Datenverarbeitungseinheit und
  • Fig. 4 eine Ausführungsform einer Datenverarbeitungseinheit.
  • Fig. 1 zeigt eine erste Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems. Dieses System umfasst einen Programmzähler 10, der einen mit einem Adresseingang eines Programmspeichers 12 gekoppelten Ausgang hat. Der Programmspeicher 12 umfasst eine Anzahl Stellen zur Speicherung von Programmbefehlen. Der Programmspeicher 12 umfasst eine Anzahl Ausgänge (z. B. vier), die mit einer Anzahl jeweiliger Datenverarbeitungseinheiten 14-1, 14-2 ... 14-N (von denen als Beispiel drei gezeigt sind) und mit einem Expander 18 gekoppelt sind. Die Datenverarbeitungseinheiten 14-1, 14-2 ... 14-N sind über Verbindungsmittel 16 miteinander verbunden. Der Expander 18 umfasst einen Ausgang, der mit den Verbindungsmitteln 16 gekoppelt ist.
  • Für die Datenverarbeitungseinheit kann beispielsweise eine Einheit vom ALU-(Recheneinheits-), Multiplizierer- oder Speichertyp verwendet werden. Von jedem Typ können je nach Wunsch einer oder mehrere aufgenommen werden. Jede Datenverarbeitungseinheit 14-1, 14-2 ... 14-N umfasst eine Anzahl Eingänge und Ausgänge für Operanden und Ergebnisse, wobei die Anzahl vom Typ abhängt. Beispielsweise hat ein Multiplizierer normalerweise zwei Eingänge für Operanden und einen Ausgang für ein resultierendes Produkt, während ein Speicher häufig nur einen Dateneingang und einen Datenausgang umfasst (der Speicher empfängt eine Adresse als Teil des Befehls, oder der Speicher selbst enthält ein Adressregister, in das in einem gesonderten Befehlszyklus geschrieben kann). Diese Eingänge und Ausgänge sind mit Verbindungsmitteln 16 verbunden. Ungeachtet der Anzahl Eingänge und Ausgänge zeigt Fig. 1 der Einfachheit halber die Eingänge und Ausgänge aller Datenverarbeitungseinheiten als einen einzigen Doppelpfeil.
  • Im Betrieb erzeugt der Programmzähler 10 in aufeinander folgenden Befehlszyklen aufeinander folgende Adressen für den Programmspeicher 12. In Reaktion auf jede Adresse liest der Programmspeicher 12 ein an der durch die Adresse angegebenen Stelle gespeichertes Befehlswort. Der Programmspeicher 12 gibt die verschiedenen Felder dieses Befehls aus. Diese Felder umfassen Kommandofelder für die verschiedenen Datenverarbeitungseinheiten 14-1, 14-2 ... 14-N und ein Steuerfeld für den Expander 18. Beispiele für den Inhalt des Kommandofeldes für die Datenverarbeitungseinheiten 14-1, 14-2 ... 14-N sind "ADDIER"- oder " SUBTRAHIER"-codes für eine ALU oder "LADE"- und "SPEICHER"-codes für eine Speichereinheit.
  • Das System ist somit vom "VLIW-Typ (VLIW: Very Large Instruction Word). Zum Programmieren eines solchen Systems wird vor Ausführung des Programms bestimmt, welche Operationen in welchem Befehlszyklus durch welche Datenverarbeitungseinheit 14-1, 14-2 ... 14-N ausgeführt werden müssen. Für jeden Befehlszyklus wird dann ein Befehlswort gebildet, in dem alle Kommandofelder für die während des betreffenden Zyklus auszuführenden Operationen enthalten sind. Die so gebildeten Befehlswörter werden in dem Programmspeicher 12 gespeichert und zu gegebener Zeit ausgeführt. Die Bildung des Befehlswortes kann manuell erfolgen oder, wenn nötig, mit Hilfe bekannter VLIW-Kompilierungstechniken.
  • In Abhängigkeit vom Inhalt der Kommandofelder verbrauchen und/oder erzeugen die Datenverarbeitungseinheiten 14-1, 14-2 ... 14-N Daten an ihren Eingängen und Ausgängen. Über die Verbindungsmittel 16 dienen die von einer Datenverarbeitungseinheit 14-1, 14-2 ... 14-N erzeugten Daten als Eingang für eine andere Datenverarbeitungseinheit. Die von den Verbindungsmitteln hergestellten Verbindungen werden unter dem Einfluss des dem Expander 18 zugeführten Steuerfeldes gesteuert.
  • Der Expander 18 ist beispielsweise als Speicher ausgeführt, in dem ein Vorrat an Steuersignalen für die Verbindungsmittel 16 gespeichert ist. Der Adresseingang 17 dieses Speichers ist mit dem Ausgang des Programmspeichers 12 gekoppelt und empfangt das Steuerfeld des Befehlswortes, wobei der Datenausgang dieses Speichers mit dem Steuereingang 19 der Verbindungsmittel 16 gekoppelt ist und diesem Steuersignale von adressierten Speicherstellen zuführt. Das Steuerfeld umfasst weniger Bits als die Steuersignale, sodass das Steuerfeld weniger Raum in dem Programmspeicher einnimmt, als nötig wäre, um alle möglichen Steuersignale speichern zu können. Daher bildet der Vorrat an Steuersignalen, der erzeugt werden kann, eine Teilmenge innerhalb der Menge aller möglichen Steuersignale, die am Steuereingang 19 der Verbindungsmittel 16 funktionell wären.
  • Dieser Fall sollte von dem Fall unterschieden werden, bei dem der Ausgang des Programmspeichers 12 direkt mit dem Steuereingang 19 der Verbindungsmittel 16 in solcher Weise gekoppelt wird, dass die Verbindungen jeder Datenverarbeitungseinheit 14- 1, 14-2 ... 14-N unabhängig von den Verbindungen der anderen Datenverarbeitungseinheiten gesteuert werden können (wobei Inkonsistenzen, wie der Fall, dass zwei Datenverarbeitungseinheiten als Quelle von Daten für den gleichen Eingang einer anderen Datenverarbeitungseinheit dienen, vernachlässigt werden). Im Fall unabhängiger Steuerbarkeit ist die Menge Steuersignale in folgender mathematischer Hinsicht reduzierbar.
  • Reduzierbarkeit wird folgendermaßen definiert. Man nehme eine der Datenverarbeitungseinheiten und spalte die Menge Steuersignale in solcher Weise in Teilmengen auf, dass innerhalb jeder der Teilmengen die mit Hilfe der einen Datenverarbeitungseinheit hergestellten Verbindungen die gleichen sind, während diese Verbindungen sich von einer Teilmenge zur anderen unterscheiden. Es wird dann geprüft, ob eine Abbildung der Teilmengen aufeinander in solcher Weise besteht, dass jedes Paar Steuersignale, die eine Abbildung voneinander sind, die gleichen Verbindungen zwischen den anderen Datenverarbeitungseinheiten erzeugen wie die eine Datenverarbeitungseinheit (unter Vernachlässigung von Inkonsistenzen). Wenn eine solche Abbildung besteht, wird die Menge von Steuersi gnalen reduzierbar über die eine Datenverarbeitungseinheit genannt. Wenn die Menge von generierbaren Steuersignalen über jede der Datenverarbeitungseinheiten reduzierbar ist, dann wird die Menge von generierbaren Steuersignalen reduzierbar genannt.
  • Bei Verwendung eines erfindungsgemäßen Expanders 18 ist die Menge von generierbaren Steuersignalen nicht reduzierbar. Dies stellt eine Einschränkung der Steuerungsfreiheit der Verbindungsmittel 16 dar. Es hat sich jedoch gezeigt, dass sogar eine wesentliche Einschränkung die Leistungsfähigkeit des Datenverarbeitungssystems kaum beeinflusst.
  • Fig. 2 zeigt eine zweite Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems. Diese Ausführungsform umfasst wieder einen Programmzähler 20, der mit einem Programmspeicher 22 gekoppelt ist. Der Datenausgang des Programmspeichers 22 ist an der einen Seite mit einem System von Befehlsbussen 222 gekoppelt, von denen jeder eine Breite von n Bits hat, wobei n beispielsweise 5 ist, und an der anderen Seite mit einem Eingang eines Expanders 230, der eine Breite von t Bits hat, wobei t beispielsweise 5 ist. Der Expander umfasst einen ersten und einen zweiten Satz Ausgangsleitungen 232, 234. Jede der Leitungen des ersten Satzes 232 hat eine Breite von k Bits, wobei k beispielsweise 3 ist; jede der Leitungen des zweiten Satzes 234 hat eine Breite von s Bits, wobei s beispielsweise 4 ist.
  • Die Leitungen des ersten Satzes 232 sind mit jeweiligen Befehlsauswahlregistern 25-1, 25-2 ... 25-N gekoppelt. Die Befehlsauswahlregister 25-1, 25-2 ... 25-N sind mit jeweiligen Befehlsselektoren 27-1, 27-2 ... 27-N gekoppelt. Die Befehlsselektoren 27-1, 27-2 ... 27-N sind zwischen dem Satz Befehlsbussen 222 und jeweiligen Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N angeordnet.
  • Die Leitungen des zweiten Satzes 234 von Ausgängen des Expanders 230 sind mit den Verbindungsmitteln 26 gekoppelt. Die Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N sind über die Verbindungsmittel 26 miteinander verbunden. In den Verbindungsmitteln 26 sind die Leitungen des zweiten Satzes mit jeweiligen Datenauswahlregistern 262-1, 262-2 ... 262-N gekoppelt. Die Datenauswahlregister 262-1, 262-2 ... 262-N sind mit jeweiligen Datenselektoren 264-1, 264-2 ... 264-N gekoppelt. Die Datenselektoren 264-1, 264-2 ... 264-N sind zwischen einem Satz Datenbusse 266 (von denen jeder eine Breite von m Bits hat, mit m beispielsweise 16) und jeweiligen Datenverarbeitungseinheiten 24-1, 24- 2 ... 24-N angeordnet.
  • Eine der Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N ist beispielsweise eine Programmsteuereinheit (PCU) und ist mit dem Programmzähler 20 verbunden (nicht abgebildet), um beispielsweise Sprungkommandos auszuführen, wodurch der Inhalt des Programmzählers geändert wird. Weiterhin umfasst die Programmsteuereinheit 24-1 Verbindungen (nicht abgebildet) zu anderen Datenverarbeitungseinheiten 24-2 ... 24-N, um Statusinformationen zur Verwendung in bedingten Sprungkommandos zu empfangen. Die Programmsteuereinheit 24-1 ist darüber hinaus mit den Verbindungsmitteln zur Übertragung sogenannter "unmittelbarer" Daten verbunden, die über eine Vielzahl von Kommandofeldern eines Befehls verteilt sein können.
  • Die Verbindungsmittel 26 arbeiten folgendermaßen. Die Steuersignale auf dem zweiten Satz 234 von Leitungen, die aus dem Expander 230 stammen, werden in den Auswahlregistern 262-1, 262-2 ... 262-N gespeichert. Diese Signale steuern die zwischen den Datenverarbeitungseinheiten 24-1, 24-2... 24-N von den Datenselektoren 264-1, 264-2 ... 264-N hergestellten Verbindungen.
  • Wenn eine Datenverarbeitungseinheit, beispielsweise 24-2, Daten an einem Ausgang erzeugt, die als Operand von einer anderen Datenverarbeitungseinheit, beispielsweise 24-N, benötigt werden, wird der Ausgang der erzeugenden Datenverarbeitungseinheit 24-2 über den Datenselektor 264-2 mit einem der Datenbusse 266 verbunden. Dieser Datenbus wird dann, über den zu der empfangenden Datenverarbeitungseinheit 24-N gehörenden Selektor 264-N, mit dem Eingang der empfangenden Datenverarbeitungseinheit 24-N verbunden. Ein Ausgang einer anderen Datenverarbeitungseinheit kann gleichzeitig mit einem Eingang einer Datenverarbeitungseinheit, beispielsweise 24-1, oder sogar einem Eingang zweier Datenverarbeitungseinheiten, beispielsweise 24-1 und 24-2, verbunden werden.
  • Infolge der Verwendung der Auswahlregister 262-1, 262-2 ... 262-N können die Steuersignale in einem Befehlszyklus erzeugt werden, der der eigentlichen Steuerung mittels des Expanders 230 vorausgeht. Somit verringert die vom Expander 230 benötigte Zeit, um diese Steuersignale zu bilden, auf diese Weise nicht die Befehlsausführungsrate des Systems.
  • Fig. 3 zeigt eine weitere Ausführungsform der Verbindung zwischen dem Expander 230 und einer des Datenverarbeitungseinheiten 24-1, die auf Wunsch für einen Teil der Datenverarbeitungseinheiten verwendet werden kann. Teile, die Fig. 2 entsprechen, werden mit den gleichen Bezugszeichen bezeichnet wie in Fig. 2. Zusätzlich zu Fig. 2 zeigt Fig. 3 auch ein Kommandoregister 35, dessen Ausgang eine Verbindung 36 zu einem Kommandoeingang der Datenverarbeitungseinheit 34 umfasst. Dadurch kann ein Teil des aus dem Expander 230 kommenden Steuersignals direkt als Kommando für die Datenverarbeitungseinheit 24-1 verwendet werden. Beispielsweise können so Kommandos gegeben werden, die eng mit Datentransport zusammenhängen (beispielsweise "Adresszeigerregister erhöhen" beim Auslesen von Daten, wenn die Datenverarbeitungseinheit 24-1 eine Speichereinheit ist).
  • Fig. 4 zeigt eine Ausführungsform einer der Datenverarbeitungseinheiten 24-1. Diese Ausführungsform umfasst eine Funktionseinheit 441 und eine Anzahl von Registern 442, 443, 444. Die Funktionseinheit 441 ist mit dem Befehlseingang gekoppelt; die Register sind zwischen die Datenanschlüsse und die Funktionseinheit geschaltet. Als Beispiel werden zwei Register 442, 443 als Eingangsregister gezeigt und ein Register 444 als Ausgangsregister. Die Funktionseinheit führt im Betrieb die Kommandos aus, wobei dann die Daten aus den Eingangsregistern 442, 443 verarbeitet werden und das Ergebnis im Ausgangsregister 444 gespeichert wird. Bei Verwendung der Steuersignale können die Kombinationen von Datenverbindungen, die über die Leitungen 266 von und zu den Registern 242, 243 und 444 verlaufen, unabhängig gesteuert werden. Es genügt jedoch die Verwendung eines nicht reduzierbaren Satzes von Kombinationen, sodass der Expander 230 vereinfacht werden kann.
  • Der Satz Befehlsbusse 222 umfasst weniger Busse, als es Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N gibt. Dies beruht auf der Erkenntnis, dass die Anzahl gleichzeitig steuerbarer Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N begrenzt werden kann, ohne die Leistungsfähigkeit ernsthaft zu verschlechtern. Daher braucht der Programmspeicher 22 nicht so breit zu sein, dass er Kommandofelder (von denen jedes ein jeweiliges Kommando für eine Datenverarbeitungseinheit bildet) für alle Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N separat parallel ausgeben kann; es genügt, eine kleinere Anzahl von Kommandofeldern parallel auszugeben. Die Befehlsselektoren 27-1, 27-2 ... 27-N sorgen dafür, dass diese Kommandofelder über den Satz Befehlsbusse 222 denjenigen Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N zugeführt werden, die in einem bestimmten Taktzyklus gleichzeitig aktiv sein müssen. Die Befehlsselektoren 27-1, 27-2 ... 27-N versorgen die anderen Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N beispielsweise standardmäßig mit einem NOP-Kommando (NOP: no-operation, nicht in Betrieb).
  • Die Zuführung von Kommandofeldern wird mit Hilfe des Expanders 230 gesteuert. Aus dem Programmspeicher 22 empfangt der Expander einen Teil des Befehlswortes, das angibt, welcher Teil des Befehls aus dem Programmspeicher 22 welcher Kombination von Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N zugeführt werden muss. Bei gleichzeitiger Verwendung von N Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N, wobei jede einen auf P verschiedene Steuersignale ansprechenden Befehlsselektor 27-1, 27-2 ... 27-N umfasst, wären insgesamt PN Steuersignale möglich.
  • Es hat sich jedoch gezeigt, dass für eine geeignete Programmierbarkeit nicht alle PN möglichen Kombinationen von Verbindungen zwischen dem Satz Befehlsbusse 222 und den Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N auswählbar zu sein brauchen. Daher verschafft der Expander 230 nur Steuersignale für einen Vorrat an Kombinationen, der eine Teilmenge alle möglichen Kombinationen ist. Mutatis mutandis ist auch dieser Vorrat in dem vorstehend genannten Sinn nicht reduzierbar, sodass der Vorrat weniger als PN Steuersignale umfasst. Jedesmal wird ein Steuersignal aus dem Vorrat auf Basis des Teils des Befehls ausgewählt, der vom Programmspeicher 22 dem Expander 230 zugeführt wird. Dieses Steuersignal wird in die Register 25-1, 25-2 ... 25-N geladen und den Befehlsselektoren 27-1, 27-2 ... 27-N zugeführt.
  • Die Bits des Steuerfeldes, die den Bus festlegen, mit dem der Ausgang einer bestimmten Datenverarbeitungseinheit verbunden wird, können beispielsweise auch den Bus bestimmen, mit dem der Eingang einer anderen Datenverarbeitungseinheit verbunden wird.
  • Es hat sich auch gezeigt, dass es ebenfalls nicht notwendig ist, die Verbindungen, die von den Befehlsselektoren 27-1, 27-2 ... 27-N hergestellt werden können, und die Verbindungen, die von den Datenselektoren 264-1, 264-2, 264-N hergestellt werden können, unabhängig zu steuern. Dies wird zur Vereinfachung des Expanders 230 genutzt, sodass er nur eine begrenzte Anzahl von Kombinationen von Steuersignalen für die Befehlsselektoren 27-1, 27-2 ... 27-N und Steuersignalen für die Datenselektoren 264-1, 264-2 in Reaktion auf den vom Programmspeicher 22 empfangenen Befehl liefern kann.
  • Daher kann die Menge von generierbaren Steuersignalen für die Datenselektoren 264-1, 264-2 ... 264-N und die Befehlsselektoren 27-1, 27-2 ... 27-N nicht auf ein Produkt aus Daten- und Befehlsauswahl reduziert werden. In diesem Zusammenhang wird Reduzierbarkeit auf ein Produkt aus Daten- und Befehlsauswahl folgendermaßen definiert: die Menhe von generierbaren Steuersignalen für die Datenselektoren 264-1, 264-2 ... 264-N und die Befehlsselektoren 27-1, 27-2 ... 27-N wird in Teilmengen aufgespalten, wobei in jeder davon die Steuerung der Befehlsselektoren 27-1, 27-2 ... 27-N die gleiche ist. Anschließend wird geprüft, ob eine Abbildung der Teilmengen aufeinander in solcher Weise vorliegt, dass jedes Paar Steuersignale, das eine Abbildung eines anderen ist, die gleiche Steuerung der Datenselektoren 264-1, 264-2 ... 264-N ergibt. Wenn eine solche Abbildung nicht besteht, kann die Menge von Steuersignalen nicht auf ein Produkt aus Daten- und Befehlsauswahl reduziert werden.
  • In diesem Fall, wenn BI verschiedene Steuersignale für die Befehlsselektoren 27-1, 27-2 ... 27-N und BD Steuersignale für die Datenselektoren 264-1, 264-2 ... 264- N generiert werden können, können weniger als BI · BD Kombinationen dieser Steuersignale generiert werden.
  • Es hat sich auch gezeigt, dass es ebenfalls nicht notwendig ist, die in das Kommandoregister 35 von Fig. 4 geladenen Kommandos unabhängig von den Datenverbindungen zu steuern, die von den Datenselektoren 264-1, 264-2 ... 264-N hergestellt werden. Dies wird auch zur Vereinfachung des Expanders 230 verwendet, sodass er nur eine begrenzte Anzahl von Kombinationen von Kommandos für das Kommandoregister 35 und Steuersignale für die Datenselektoren 264-1, 264-2 in Reaktion auf den vom Programmspeicher 22 empfangenen Befehl liefern kann.
  • Natürlich betreffen die Zeichnung und die zugehörige Beschreibung nur nicht einschränkende Ausführungsformen der Erfindung. Die Tatsache, dass die verschiedenen Busse und die verschiedenen Signalverbindungen für die verschiedenen Datenverarbeitungseinheiten überall durch die gleiche Anzahl Leitungen dargestellt werden, ist beispielsweise rein illustrativ; in der Praxis können diese Anzahlen sich von einem Bus zum anderen und von einer Datenverarbeitungseinheit zur anderen unterscheiden.
  • Weiterhin kann der Expander 18, 230 wie beschrieben als Speicher ausgeführt werden, in dem an jeder Speicherstelle ein anderes Steuersignal gespeichert wird. In diesem Fall liefert der Programmspeicher 12, 32 die Adresse für den Speicher in dem Expander 18, 230 und der Speicher in dem Expander 18, 230 liefert das Steuersignal als ausgelesene Daten (der Speicher in dem Expander 18, 230 kann ein RAM oder ein (E)(P)ROM sein, je nach der Notwendigkeit, den Inhalt zu verändern). Statt des Speichers kann der Expander 18, 230 eine speziell entworfene Logikschaltung mit der gleichen Eingangs-/Ausgangsbeziehung enthalten. Allgemein gesagt kann die Ausführung dieser Schaltung kleiner sein als die ROM-Version, weil viele Auswahlsignale für die meisten Steuersignale nicht aktiv sind. Weiterhin kann beispielsweise die Funktion der Datenselektoren 264-1, 264-2 ... 264-N in den Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N realisiert werden.
  • Das in dem Programmspeicher 12, 22 gespeicherte Programm kann von einem menschlichen Programmierer geschrieben werden, aber es kann auch ein zu diesem Zweck konstruierter Compiler genutzt werden. Dieser Compiler stellt eine Planung für die Befehle auf, die für die Datenverarbeitungseinheiten 24-1, 24-2 ... 24-N benötigt werden, und für die notwendigen Verbindungen zwischen den Datenverarbeitungseinheiten. Wenn die Verbindungen, die den Expander 18,230 steuern, zuvor bestimmt sind, sollte der Compiler eine dieser Verbindungen auswählen, um die geplante Verbindung zu implementieren und er sollte auch den zugehörigen Code zum Steuern des Expanders 18, 230 in dem Programm enthalten.
  • Sollte eine geplante Verbindung in der Teilmenge verfügbarer Verbindungen nicht zur Verfügung stehen, ist eine Neuanordnung des Programms notwendig. Der Compiler kann beispielsweise die Ausführung eines Befehls durch eine bestimmte Datenverarbeitungseinheit um einen Taktzyklus aufschieben. Der benötigte Operand bleibt dann einen Taktzyklus lang in einem Register in der Datenverarbeitungseinheit, die diesen Operanden erzeugt, gespeichert. Es ist ratsam, zumindest alle 1-zu-1-Verbindungen zwischen Datenverarbeitungseinheiten in der Teilmenge verfügbarer Verbindungen aufzunehmen; in diesem Fall ist dafür gesorgt, dass alle Programme nötigenfalls mit Hilfe von später auszuführenden Befehlen ausführbar sind. Dies kann zu einem langsameren Programm führen. In der Praxis hat sich jedoch gezeigt, dass diese Verlangsamungen kaum signifikant sind, wenn zulässige Verbindungen geeignet gewählt werden.
  • Es ist jedoch auch möglich, dass der Compiler selbst bestimmt, welche Teilmenge von Verbindungen durch den Expander 18, 230 hergestellt werden kann. Hierzu führt der Compiler beim Compilieren Buch über die benötigten Verbindungen, und es wird dafür gesorgt, dass der Expander genau diese Verbindungen herstellen kann. Es ist dann auch möglich, den Compiler zählen zu lassen, wie häufig jeder Verbindungstyp auftritt. Verbindungstypen, die nur selten auftreten, können anschließend durch Neuananordnung des Programms eliminiert werden, sodass der Expander vereinfacht und der Programmspeicher verkleinert werden kann.

Claims (5)

1. Datenverarbeitungssystem mit
- Datenverarbeitungseinheiten (24-1 ... N), von denen jede Dateneingänge und/oder -ausgänge hat,
- einem Programmzähler (20), der mit Programmspeichermitteln (22) gekoppelt ist, um ein Befehlswort zu adressieren, wobei das Befehlswort eine Anzahl Kommandofelder umfasst und die Programmspeichermittel (22) mit den Datenverarbeitungseinheiten (24-1 ... N) gekoppelt sind, um jedes Kommandofeld einer jeweiligen Datenverarbeitungseinheit (24- 1 ... N) zuzuführen,
- mit den Programmspeichermitteln (22) gekoppelte Verbindungselemente (264-1 ... N) zum Empfangen eines in dem Befehlswort verkörperten Steuersignals, wobei jedes Verbindungselement (264-1 ... N) mit zumindest zwei der Dateneingänge und zumindest zwei der Datenausgänge gekoppelt ist, wobei jedes Verbindungselement (264-1 ... N) Datenverbindungen zwischen den mit dem Verbindungselement gekoppelten Dateneingängen und Datenausgängen herstellt, wobei das Steuersignal eine Auswahl steuert, nämlich zwischen welchen der mit dem Verbindungselement (264-1 ... N) gekoppelten Dateneingänge und Datenausgänge das Verbindungselement die Datenverbindungen herstellt, dadurch gekennzeichnet, dass das Befehlswort ein Steuerfeld zum Auswählen einer Kombination von Datenverbindungen aus einem begrenzten Vorrat an Datenverbindungen umfasst, wobei das System ein zwischen die Programmspeichermittel (22) und die Verbindungselemente (264- 1 ... N) geschaltetes Verbindungsauswahlelement (230) umfasst, wobei das Verbindungsauswahlelement (230) unter der Steuerung des Steuerfeldes eine Kombination von zumindest den Datenverbindungen auswählt, die von einem ersten und einem zweiten der Verbindungselemente (264-1 ... N) hergestellt werden, wobei das Verbindungsauswahlelement (230) eine Anzahl möglicher erster Auswahlen für die eigene Datenverbindung des ersten Verbindungselementes (264-1 ... N) verschafft sowie, für jeweils jede mögliche Auswahl, eine jeweilige, eventuell leere Gruppe von zweiten Auswahlen, wobei jede jeweilige Gruppe von zweiten Auswahlen mögliche Datenverbindungen für die Datenverbindung des zweiten Verbindungselementes (264-1 ... N) definiert, wobei zumindest zwei der jeweiligen Gruppen sich voneinander in mehr Hinsichten unterscheiden, als zur Beschränkung auf konsistente Datenverbindungen notwendig ist.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die Programmmittel (22) mit den Datenverarbeitungseinheiten (24-1 ... N) über Verbindungsmittel (27-1 ... N) verbunden sind, die einen Steuereingang umfassen, und dass das Verbindungsauswahlelement (230) ein weiteres Steuersignal für die Verbindungsmittel (27- 1 ... N) durch Erweiterung des Steuerfeldes auswählt und dieses weitere Steuersignal dem Steuereingang zuführt, um zu steuern, welches Kommandofeld des Befehlswortes welcher Datenverarbeitungseinheit (24-1 ... N) zugeführt wird, und dass für jede mögliche erste Auswahl das Verbindungsauswahlelement (230) nur eine jeweilige, eventuell leere, weitere Gruppe aus weiteren Auswahlen für das weitere Steuersignal verschafft, wobei zumindest zwei der jeweiligen weiteren Gruppen sich voneinander unterscheiden.
3. Datenverarbeitungssystem nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass das Verbindungsauswahlelement (230) mit zumindest einer der Datenverarbeitungseinheiten (24-1 ... N) gekoppelt ist, um unter der Steuerung des Steuerfeldes ein Steuerkommando für die zumindest eine der Datenverarbeitungseinheiten (24-1 ... N) zu bilden, und dass für jede erste Auswahl das Verbindungsauswahlelement (230) nur eine jeweilige, eventuell leere, weitere Gruppe auswählbarer Steuerkommandos verschafft, wobei zumindest zwei der jeweiligen weiteren Gruppen sich voneinander unterscheiden.
4. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass zumindest eine der Datenverarbeitungseinheiten (24-1 ... N) ein erstes und ein zweites Register umfasst, von denen jedes real mit den Verbindungselementen (264-1 ... N) zur Zufuhr von Daten über einen jeweiligen Dateneingang oder -ausgang gekoppelt ist, wobei die ersten Auswahlen eine Anzahl von Datenverbindungen zum ersten Register und die jeweiligen Gruppen eine Anzahl von Datenverbindungen zum zweiten Register umfassen.
5. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass das System zwischen dem Verbindungsauswahlelement (230) und den Verbindungselementen (264-1 ... N) ein Register (262-1 ... N) umfasst, zur Speicherung und Übertragung des Steuersignals zu den Verbindungselementen (264-1 ... N), während ein folgendes Steuersignal gebildet wird.
DE69527933T 1994-09-15 1995-09-06 Datenverarbeitungssystem mit datenverarbeitungseinheiten und eine erweiterungsvorrichtung Expired - Fee Related DE69527933T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP94202663 1994-09-15
PCT/IB1995/000738 WO1996008777A1 (en) 1994-09-15 1995-09-06 A data processing system comprising data processing units and an expander

Publications (2)

Publication Number Publication Date
DE69527933D1 DE69527933D1 (de) 2002-10-02
DE69527933T2 true DE69527933T2 (de) 2003-03-27

Family

ID=8217198

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69527933T Expired - Fee Related DE69527933T2 (de) 1994-09-15 1995-09-06 Datenverarbeitungssystem mit datenverarbeitungseinheiten und eine erweiterungsvorrichtung

Country Status (4)

Country Link
US (1) US5724535A (de)
EP (1) EP0729616B1 (de)
DE (1) DE69527933T2 (de)
WO (1) WO1996008777A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247036B1 (en) 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US5771362A (en) * 1996-05-17 1998-06-23 Advanced Micro Devices, Inc. Processor having a bus interconnect which is dynamically reconfigurable in response to an instruction field
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
US6728862B1 (en) * 2000-05-22 2004-04-27 Gazelle Technology Corporation Processor array and parallel data processing methods
US8667252B2 (en) * 2002-11-21 2014-03-04 Stmicroelectronics, Inc. Method and apparatus to adapt the clock rate of a programmable coprocessor for optimal performance and power dissipation
JP2009516254A (ja) * 2005-11-15 2009-04-16 エヌエックスピー ビー ヴィ 命令を実行するための処理システムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
US5280620A (en) * 1988-12-16 1994-01-18 U.S. Philips Corporation Coupling network for a data processor, including a series connection of a cross-bar switch and an array of silos
US5175824A (en) * 1989-05-08 1992-12-29 Trw Inc. Crossbar switch connected modular multiprocessor system with processor timing relationship selected and synchronized to be appropriate for function being performed
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
DE69132675T2 (de) * 1990-04-06 2002-06-13 Nec Corp., Tokio/Tokyo Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
US5355335A (en) * 1991-06-25 1994-10-11 Fujitsu Limited Semiconductor memory device having a plurality of writing and reading ports for decreasing hardware amount

Also Published As

Publication number Publication date
WO1996008777A1 (en) 1996-03-21
EP0729616B1 (de) 2002-08-28
US5724535A (en) 1998-03-03
EP0729616A1 (de) 1996-09-04
DE69527933D1 (de) 2002-10-02

Similar Documents

Publication Publication Date Title
DE69933088T2 (de) Vliw-verarbeiter verarbeitet befehle von verschiedenen breiten
DE2912287C3 (de) Datenverarbeitungsanlage
DE69325785T2 (de) Verbesserte Architektur für Prozessor mit sehr langem Befehlswort
DE2350884C2 (de) Adreßumsetzungseinheit
DE3784050T2 (de) Ein paralleler datenprozessor.
DE69428396T2 (de) Bildverarbeitungssystem mit Fliessbandarbeitsprinzip für Einzelanwendungsumgebung
DE69129569T2 (de) Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE68928848T2 (de) Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern
DE69130723T2 (de) Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten
DE3686436T2 (de) Speichersystem mit hoher leistung.
DE2753062C2 (de) Einrichtung zur wiederholten Durchführung von Programmschleifen
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE4342250A1 (de) Rechnerarchitektur und Verfahren zum Betreiben eines Parallelrechners
DE3689595T2 (de) Datenverarbeitungssystem.
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
EP1599794A2 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE69230118T2 (de) Prozessor mit hierarchischer Struktur

Legal Events

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