DE69635881T2 - VLIW-Befehlsprozessor mit variabler Wortlänge - Google Patents

VLIW-Befehlsprozessor mit variabler Wortlänge Download PDF

Info

Publication number
DE69635881T2
DE69635881T2 DE69635881T DE69635881T DE69635881T2 DE 69635881 T2 DE69635881 T2 DE 69635881T2 DE 69635881 T DE69635881 T DE 69635881T DE 69635881 T DE69635881 T DE 69635881T DE 69635881 T2 DE69635881 T2 DE 69635881T2
Authority
DE
Germany
Prior art keywords
instruction
vliw
word length
command
vliw instruction
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
DE69635881T
Other languages
English (en)
Other versions
DE69635881D1 (de
Inventor
Hiraku Kyoto-shi Nakano
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69635881D1 publication Critical patent/DE69635881D1/de
Application granted granted Critical
Publication of DE69635881T2 publication Critical patent/DE69635881T2/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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

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

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Technik
  • Diese Erfindung betrifft die Verbesserungen des VLIW-Befehlsprozessors für variable Wortlänge.
  • 2. Hintergrund der Technik
  • Auf diesem Gebiet gibt es eine Technik, die als Verfahren der parallelen Befehlsausführung bekannt ist. Bei diesem Verfahren werden zwei oder mehr Befehle gleichzeitig mittels Parallelverarbeitung ausgeführt, um die Leistung des Prozessors zu verbessern.
  • Ein Beispiel für das Verfahren der parallelen Befehlsausführung wird in US. Pat. Nr. 4.833.599 gezeigt. Im Besonderen wird ein Prozessor gezeigt, der gleichzeitig parallel eine Vielzahl von Befehlen ausführt, indem er VLIW (Very Long Instruction Words – sehr lange Befehlswörter) verwendet. Obwohl in diesem Prozessor die Anzahl der Befehle, die ein einzelner VLIW-Befehl enthalten kann, 20 oder mehr beträgt, ist die VLIW-Befehlswortlänge festgelegt.
  • Da die VLIW-Befehlswortlänge bei einem solchen dem Stand der Technik entsprechenden Prozessor festgelegt ist, bestehen die folgenden Vor- und Nachteile. Der Vorteil besteht darin, dass der Prozessor bei der Ausführung einer Vielzahl von Befehlen, die beinahe der maximalen Anzahl der parallel ausführbaren Befehle entspricht, eine hohe Leistung erreicht. Ist hingegen die Anzahl der parallel ausgeführten Befehle klein, steigt die Häufigkeit, dass der Befehl, der die in einem VLIW-Befehl enthaltenen Informationen anzeigt, zu einem NOP-Befehl (Leerbefehl) wird. Obwohl eine solche „NOP"-Anzeige ein Befehl ist, wird dadurch erheblich Befehlsspeicher verschwendet. Um auf den oben genannten Nachteil einzugehen und die Anzahl der indem VLIW-Befehl enthaltenen „NOP"-Befehle zu verringern, wenn beispielsweise eine VLIW-Befehlswortlänge klein festgelegt ist, wird die maximale Anzahl der parallel ausführbaren Befehle verringert. Folglich kann selbst der VLIW-Befehlsprozessor keine hohe Leistung erbringen. Wie oben erwähnt, kann in herkömmlichen VLIW-Befehlsprozessoren die Anzahl der gleichzeitig ausgeführten Befehle nicht dynamisch geändert werden, da die VLIW-Befehlswortlänge festgelegt ist. Deshalb besitzen die herkömmlichen VLIW-Befehlsprozessoren den Nachteil, dass sie weder eine sehr hohe Leistung, die bei einer großen Anzahl von parallel ausgeführten Befehle erzielt werden kann, erreichen, noch die Anzahl der „NOP"-Befehle verringern können, was durch eine kleine Anzahl von parallel ausgeführten Befehlen erreicht wird.
  • US Pat. Nr. 5.241.636 offenbart einen Prozessor. Dieser Prozessor verfügt über zwei Ausführungsmodi, wobei in dem einem ein einzelner Befehl ausgeführt wird und in dem anderen zwei Befehle gleichzeitig parallel ausgeführt werden. In diesem US-Patent wird das Umschalten zwischen diesen beiden Ausführungsmodi von einem in dem Befehl enthaltenen Feld bestimmt.
  • Ein Bericht über einen VLIW-Befehlsprozessor, der ein solches Feld verwendet, ist im „MICROPROCESSOR REPORT", Dezember 1995, S. 12–15 zu finden. Ein Feld, in dem die Anzahl der Befehle angezeigt wird, ist in einem VLIW-Befehl enthalten, und die VLIW-Befehlswortlänge ist variabel gestaltet.
  • Der oben genannte Prozessor erreicht eine effiziente Nutzung des Befehlsspeichers und bewerkstelligt die gleichzeitige Ausführung einer Vielzahl von Befehlen. Es ist jedoch notwendig, ein Feld für die Anzeige einer Befehlsanzahl (der Anzahl von Befehle) in einem VLIW-Befehl bereitzustellen und ein Befehlsformat zu verwenden, das sich von einem herkömmlich verwendeten Befehlsformat für konventionelle Prozessoren unterscheidet. Demzufolge ist es schwierig, ein Objektprogramm auszuführen, das für die Verwendung durch herkömmliche Prozessoren erstellt und übersetzt wurde, und es ist schwer möglich, die Vergleichbarkeit des Objektprogramms mit herkömmlichen Prozessoren aufrecht zu erhalten.
  • Dokument EP-0 551 090 A2 offenbart einen RISC-Prozessor, der mehrere Befehle mit kurzer Wortlänge, die einer einzelnen Operation entsprechen bzw. einen Befehl mit großer Wortlänge, der mehrere Operationen verbindet, ausführen kann. Dieser Prozessor enthält eine Einheit, die die Befehlslänge bestimmt und die dynamisch festlegt, ob der von einem Programmzähler angezeigte Befehl ein Befehl mit kurzer oder langer Wortlänge ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung entstand unter Berücksichtigung des oben angeführten Problems mit den dem Stand der Technik entsprechenden Verfahren.
  • Entsprechend ist es die Aufgabe der vorliegenden Erfindung, einen verbesserten VLIW-Befehlsprozessor bereitzustellen, so dass Befehlsspeicher effizient genutzt, eine Vielzahl von Befehlen gleichzeitig ausgeführt und Objektprogramme für herkömmliche Prozessoren ausgeführt werden können.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen verbesserten VLIW-Befehlsprozessor bereitzustellen, der VLIW-Befehle fehlerfrei ausführen kann, selbst in solch einem Fall, in dem sich entsprechende VLIW-Befehlsprozessoren unterschiedlicher Modelle voneinander durch die maximale Anzahl der gleichzeitig parallel ausgeführten Befehle unterscheiden und in solch einem Fall, in dem die Anzahl der Befehle, die in einem VLIW-Befehl enthalten sind, die maximale Anzahl der Befehle, die ein Prozessor gleichzeitig parallel ausführen kann, überschreitet.
  • Diese Aufgabe wird durch die in Anspruch 1 aufgeführten Bestandteile erfüllt. Weitere vorteilhafte Ausführungsbeispiele der vorliegenden Erfindung werden in den Unteransprüchen beschrieben.
  • Es wird ein VLIW-Befehlswortlängen-Register oder ein Befehlsanzahlregister für das Speichern von Informationen bereitgestellt, die die Anzahl der in einem VLIW-Befehl enthaltenen Befehle anzeigen. Die Anzahl der in einem VLIW-Befehl enthaltenen Befehle wird durch die Anzahl der Ausführungseinheiten (das heißt, die größte Anzahl von Befehlen, die der Prozessor parallel ausführen kann) dividiert, um einen Quotienten m und einen Rest δ zu ermitteln. Nachdem die Befehlsausführung eine Anzahl von Malen ausgeführt wurde, die dem Quotienten m gleich ist, werden Befehle, deren Anzahl dem Rest δ gleich ist, ausgeführt.
  • Ein verbesserter VLIW-(Very Long Instruction Word)Befehlsprozessor für variable Wortlänge umfasst:
    • (a) eine Vielzahl von Ausführungseinheiten für die Ausführung von Befehlen;
    • (b) ein VLIW-Befehlswortlängen-Register, das eine VLIW-Befehlswortlänge speichert; und
    • (c) eine Befehls-Steuereinheit; die Befehls-Steuereinheit empfängt einen VLIW-Befehl mit einer Anzeige, die eine VLIW-Befehlswortlänge anzeigt; die Befehls-Steuereinheit überschreibt auf Basis der durch den empfangenen VLIW-Befehl angezeigten VLIW-Befehlswortlänge die in dem VLIW-Befehlswortlängen-Register gespeicherte VLIW-Befehlswortlänge; die Befehls-Steuereinheit steuert auf Basis der in dem VLIW-Befehlswortlängen-Register gespeicherten überschriebenen VLIW-Befehlswortlänge die parallele Ausführung von Befehlen, die durch alle oder einige der Vielzahl von Ausführungseinheiten durchgeführt wird.
  • In dem VLIW-Befehlsprozessor für variable Wortlänge wird der VLIW-Befehl, der die VLIW-Befehlswortlänge enthält, durch eine Vielzahl von Befehlen gebildet, wobei einer der Befehle ein Wortlängen-Überschreibbefehl zum Überschreiben der VLIW-Befehlswortlänge ist.
  • Ein verbesserter VLIW-Befehlsprozessor für variable Wortlänge umfasst:
    • (a) eine Vielzahl von Ausführungseinheiten, von denen jede einen Befehl ausführt;
    • (b) ein Befehlsanzahl-Register, das die Anzahl der in einem VLIW-Befehl enthaltenen Befehle speichert;
    • (c) eine Befehls-Steuereinheit; die Befehls-Steuereinheit empfängt einen VLIW-Befehl mit einer Anzeige, die die Anzahl der Befehle anzeigt; die Befehls-Steuereinheit überschreibt auf Basis der Anzeige der Befehlsanzahl, die in dem Befehlsanzahl-Register gespeicherte Befehlsanzahl; die Befehls-Steuereinheit steuert auf Basis der überschriebenen Befehlsanzahl die parallele Ausführung von Befehlen, die durch alle oder einige der Vielzahl von Ausführungseinheiten durchgeführt wird.
  • In dem oben genannten Prozessor wird der VLIW-Befehl, der die Anzeige der Befehlsanzahl enthält, durch eine Vielzahl von Befehlen gebildet, wobei einer der Befehle ein Befehlsanzahl-Überschreibbefehl zum Überschreiben der Befehlsanzahl ist.
  • Ein VLIW-Befehlsprozessor für variable Wortlänge umfasst eine Vielzahl von Ausführungseinheiten für die Ausführung von Befehlen und eine Befehls-Steuereinheit für die Steuerung der Befehlsausführung, die durch jede Ausführungseinheit durchgeführt wird.
  • Die Befehls-Steuereinheit umfasst:
    • (a) eine Divisionseinrichtung, die eine Divisionsoperation mit der Anzahl von Befehlen, die einen einzelnen VLIW-Befehl bilden, als einem Dividenden und der Anzahl der Ausführungseinheiten als einem Divisor durchführt, um einen Quotienten und einen Rest zu ermitteln;
    • (b) eine Befehls-Steuereinrichtung; wenn der Quotient nicht Null ist, steuert die Befehls-Steuereinrichtung die Ausführungseinheiten so, dass sie gleichzeitig parallel Befehle, deren Anzahl der Anzahl der Ausführungseinheiten gleich ist, eine Anzahl von Malen ausführen, die dem Quotienten gleich ist; wenn der Rest nicht Null ist, steuert die Befehls-Steuereinrichtung einige der Ausführungseinheiten, deren Anzahl dem Rest gleich ist, so, dass sie gleichzeitig parallele Befehlsausführung durchführen; wenn der Quotient Null beträgt, steuert die Befehls-Steuereinrichtung einige der Ausführungseinheiten, deren Anzahl dem Rest gleich ist, so, dass sie gleichzeitig parallele Befehlsausführung durchführen; wobei als ein Ergebnis dieses Aufbaus eine Vielzahl von Befehlen, die einen einzelnen VLIW-Befehl bilden, in eine Vielzahl von Befehlssätzen unterteilt werden, um die Befehlsausführung parallel dem Befehlssatz nach durchzuführen.
  • Entweder auf Basis der Anzeige der VLIW-Befehlswortlänge, die in einem VLIW-Befehl enthalten ist oder auf Basis der Anzeige der Befehlsanzahl, die in einem VLIW-Befehl enthalten ist (zum Beispiel auf Basis eines Befehlswortlängen-Überschreibbefehls oder eines Befehlsanzahl-Überschreibbefehls), wird eine in dem VLIW-Befehlswortlängen-Register gespeicherte VLIW-Befehlswortlänge oder eine in dem Befehlsanzahl-Register gespeicherte Befehlsanzahl überschrieben und aktualisiert. Dementsprechend wird, wenn entweder die Wortlänge von VLIW-Befehlen kurz oder die Anzahl der Befehle, die aktualisiert werden, gering ist, die Anzeige von „NOP"-Befehlen verringert oder ist nicht mehr vorhanden, wodurch eine effiziente Nutzung des Befehlsspeichers erreicht werden kann. Andererseits wird, für den Fall normaler Befehle (Objektprogramme) ohne die Bereitstellung von Feldern, in denen die VLIW-Befehlswortlänge angezeigt wird, eine VLIW-Wortlänge oder eine Befehlsanzahl, die die Anzahl der Befehle anzeigt, an eine Befehlswortlänge entsprechend eines jeden Modells initialisiert. Danach wird eine solche initialisierte Wortlänge als festgelegter Wert verwendet, und die Objektprogramme werden ausgeführt. Ein VLIW-Befehl wird aus einer Vielzahl von Befehlen gebildet. Es kann jedoch ein VLIW-Befehl verwendet werden, dem Start- und Enddaten zu seinem Anfang beziehungsweise Ende hinzugefügt werden.
  • Zusätzlich kann das oben Beschriebene für den Fall der Bereitstellung eines Befehlsanzahl-Registers für das Speichern einer Befehlsanzahl angewendet werden, die die Anzahl der in einem VLIW-Befehl enthaltenen Befehle anzeigt. Mit anderen Worten bedeutet dies, dass, wenn alle Bitlängen, die für die Spezifizierung jedes einer Vielzahl von Befehlen, der in einem VLIW-Befehl enthalten ist, die selben sind, eine eineindeutige Entsprechung zwischen der VLIW-Befehlswortlänge und der Anzahl der Befehle (der Befehlsanzahl) besteht. Wenn beispielsweise die Wortlänge eines VLIW-Befehls 64 Bytes lang ist, kann die Anzahl der in einem VLIW-Befehl enthaltenen Befehle auf 16 berechnet werden, wenn die Bitlänge eines Befehls 4 Bytes beträgt. Dementsprechend können, wie in dem oben beschriebenen Fall, VLIW-Befehle mit einem Feld, in dem die Befehlsanzahl angezeigt wird sowie Objektprogramme für herkömmlich verwendete Prozessoren ausgeführt werden.
  • Des Weiteren werden ein Quotient m und ein Rest δ der Divisionsoperation verwendet. Wenn m = 0 ist, werden L Befehle (L = δ) parallel ausgeführt. Wenn m nicht Null ist, werden Befehle, deren Anzahl der Anzahl der in dem Prozessor bereitgestellten Ausführungseinheiten gleich ist, parallel eine Anzahl von Malen ausgeführt, die dem Quotienten m gleich ist. Wenn δ nicht Null beträgt, wird die Anzahl von Befehlen ausgeführt, die dem Rest δ gleich ist. Als ein Ergebnis dieser Bedingungen können, selbst wenn ein Unterschied in der maximalen Anzahl der parallel ausführbaren Befehle zwischen VLIW-Befehlsprozessoren besteht, oder wenn die Anzahl der in einem VLIW-Befehl enthaltenen Befehle die maximale Anzahl der Befehle, die ein VLIW-Befehlsprozessor parallel ausführen kann, überschreitet, die VLIW-Befehle ausgeführt werden, indem der Quotient m unter der maximalen Anzahl der parallel ausführbaren Befehle festgelegt wird.
  • Die zuvor beschriebenen Aufgaben und anderen Aspekte der vorliegenden Erfindung sind mit Hilfe der folgenden Beschreibung und der beigefügten Abbildungen besser nachzuvollziehen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird mit Bezug auf die Zeichnungen beschrieben, wobei:
  • 1 einen VLIW-Befehlsprozessor für variable Wortlänge in Blockform entsprechend des ersten Ausführungsbeispiels der vorliegenden Erfindung darstellt;
  • 2 die interne Konfiguration einer Befehls-Steuereinheit des VLIW-Befehlsprozessors in Blockform darstellt;
  • 3 ein Beispielprogramm darstellt, das im VLIW-Prozessor ausgeführt wird;
  • 4, 5, 6 und 7 Schemen sind, die ein erstes, zweites, drittes bzw. viertes Beispiel über die Auswirkungen von VLIW-Befehlswortlängen-Überschreibbefehlen auf die Pipeline-Operationen des VLIW-Befehlsprozessors darstellen;
  • 8 die interne Konfiguration einer internen VLIW-Befehlswiederholungs-Steuereinrichtung der Befehls-Steuereinheit in Blockform darstellt;
  • 9, 10, 11 und 12 Schemen sind, in denen ein erstes, zweites, drittes bzw. viertes Beispiel über die Auswirkungen von Verzweigungsbefehlen auf die Pipeline-Operationen des VLIW-Befehlsprozessors dargestellt werden;
  • 13 ein Ablaufplan ist, in dem die Einzelheiten des Ladens eines Startprogramms in dem VLIW-Prozessor dargestellt werden;
  • 14 ein Schema ist, das für das Verstehen eines Falls hilfreich ist, in dem ein Objektprogramm für einen herkömmlich verwendeten VLIW-Befehlsprozessor in dem VLIW-Befehlsprozessor der vorliegenden Erfindung verwendet wird;
  • 15 ein Schema ist, in dem ein Modifizierungsbeispiel für Fälle gezeigt wird, in denen ein VLIW-Befehl mit einem Feld, in dem eine VLIW-Befehlswortlänge angezeigt wird, verwendet wird; und
  • 16 die interne Konfiguration einer Befehls-Steuereinheit eines VLIW-Befehlsprozessors für variable Wortlänge entsprechend eines zweiten Ausführungsbeispiels darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung wird mit Bezug auf die beigefügten Abbildungen beschrieben.
  • In der vorliegenden Erfindung werden die Begriffe „Befehl" und „VLIW-Befehl" wie folgt definiert. Es ist zu beachten, dass diese Definitionen ebenfalls auf die vorherige Beschreibung zutreffen. „Befehl" ist eine Aufgabe, die einer der Vielzahl von Ausführungseinheiten, aus denen sich ein Prozessor zusammensetzt, zugewiesen wird. „VLIW-Befehl" ist ein einzelner Befehl oder ein Satz von Befehlen, der von einem Compiler als logisch erkannt und gleichzeitig von einem Prozessor ausgeführt wird.
  • ERSTES AUSFÜHRUNGSBEISPIEL
  • 1 zeigt die gesamte Konfiguration eines VLIW-Befehlsprozessors für variable Wortlänge entsprechend der vorliegenden Erfindung.
  • 1 ist eine Befehls-Steuereinheit. 2a2n sind Ausführungseinheiten. 4 ist eine Registerdatei. 5 ist ein Befehlsspeicher. 6 ist ein Datenspeicher. 7 ist eine Speicherverwaltungseinheit (MMU). 8 ist eine Bussteuereinheit. 9 ist ein Hauptspeicher.
  • Die Befehls-Steuereinheit 1 liest einen Befehl aus dem Befehlsspeicher 5 und decodiert den Befehl.
  • Danach erteilt die Befehls-Steuereinheit 1 einen Befehl an die Ausführungseinheiten 2a2n, mit der Befehlsausführung zu beginnen, während die Befehlsausführung gesteuert wird.
  • Als Antwort auf eine solche Anzeige für den von der Befehls-Steuereinheit 1 erteilten Befehlsstart beginnen die Ausführungseinheiten 2a2n mit der Befehlsausführung, lesen die erforderlichen Operanden aus der Registerdatei 4 und schreiben die Ergebnisse der Befehlsausführung in die Registerdatei 4. Wenn des Weiteren die Ausführungseinheiten 2a2n Operanden-Ladebefehle an die Registerdatei 4 oder Operanden-Speicherbefehle der Registerdatei 4 ausführen, senden die Ausführungseinheiten 2a2n entweder Lade- oder Speicheranforderungen und Operandenadressen an die Speicherverwaltungseinheit 7. Zusätzlich dazu stellt jede Ausführungseinheit 2a2n, wenn sie einen Verzweigungsbefehl ausführt, entweder die Information, dass eine Verzweigung gebildet wurde oder die Information, dass keine Verzweigung gebildet wurde sowie eine Verzweigungsadresse an die Befehls-Steuereinheit 1 bereit.
  • Die Speicherverwaltungseinheit 7 beurteilt, ob ein Befehl, der einer Adresse eines von der Befehls-Steuereinheit 1 angeforderten Befehlsabrufes entspricht, in dem Befehlsspeicher 5 existiert. Wenn laut Beurteilung kein solcher Befehl in dem Befehlsspeicher 5 existiert, sendet die Speicherverwaltungseinheit 7 eine Anforderung an die Bussteuereinheit 8, so dass der besagte Befehl aus dem Hauptspeicher 9 abgerufen wird.
  • Des Weiteren beurteilt die Speicherverwaltungseinheit 7, ob Daten in dem Datenspeicher 5 existieren, die einer Adresse entsprechen, die das Laden von Operanden aus den Ausführungseinheiten 2a2n in die Registerdatei 4 anfordert. Wenn laut Beurteilung keine solche Daten in dem Datenspeicher 6 existieren, sendet die Speicherverwaltungseinheit 7 eine Anforderung an die Bussteuereinheit 8, so dass die besagten Daten aus dem Hauptspeicher 9 abgerufen werden.
  • Die Speicherverwaltungseinheit 7 beurteilt weiterhin, ob Daten, die überschrieben werden sollen und die einer Adresse entsprechen, die die Speicherung von Operanden aus den Ausführungseinheiten 2a2n in die Registerdatei 4 anfordert, in dem Datenspeicher 6 existieren. Wenn taut Beurteilung keine solche Daten in dem Datenspeicher 6 existieren, werden die Daten aus der Registerdatei 4 in den Datenspeicher 6 geschrieben. Des Weiteren gibt die Speicherverwaltungseinheit 7 ohne Berücksichtigung des Vorhandenseins oder Nichtvorhandenseins von in dem Datenspeicher 6 zu überschreibenden Daten eine Anforderung an die Bussteuereinheit 8 aus, so dass die besagten Daten in dem Hauptspeicher 9 gespeichert werden.
  • In 2 wird die interne Konfiguration der Befehls-Steuereinheit 1 dargestellt.
  • 11 ist ein VLIW-Befehlswortlängen-(IWL)Register. 12 ist eine Einrichtung (Befehlszähler) zum Berechnen der Anzahl von Befehlen (L). 13 ist Ausführungseinheiten-Anzahlregister (Anzahl der Ausführungseinheiten) (N). 21 ist eine Steuereinrichtung, die eine Vielzahl von Befehlen (L-Befehlen), die einen einzelnen VLIW-Befehl bilden, in eine Vielzahl von Befehlssätzen (m oder (m + 1) Befehlssätze) unterteilt und gleichzeitig Befehlsausführung parallel dem Befehlssatz nach durchführt. Die Steuereinrichtung 21 enthält eine Divisionseinrichtung 14 und eine Befehls-Steuereinrichtung 23. Die Befehls-Steuereinrichtung 23 umfasst einen konstanten „1"- Addierer 15 und einen Multiplexer (MPX) 16 mit zwei Eingängen und einem Ausgang und eine interne VLIW-Befehlswiederholungs-Steuereinrichtung 18.
  • 17 ist ein MPX mit zwei Eingängen und einem Ausgang. 19 ist eine Multipliziereinrichtung. 20a20n sind MPX mit zwei Eingängen und einem Ausgang. 22a und 22n sind Befehlsregister. 24a24n sind Decodier-/Ausführungs-Steuereinrichtungen. 26 und 27 sind MPX mit n Eingängen und einem Ausgang. 28 ist ein Verzweigungszieladressen-Halteregister. 29 ist ein MPX mit drei Eingängen und einem Ausgang. 30 ist ein Befehlsabruf-Adressenregister. 31 ist ein Addierer.
  • Die VLIW-Befehlswortlänge eines Objektprogramms, welches zuerst nach der Beendigung eines IPL (einleitenden Programmladens) ausgeführt wird, wird vervollständigt, und die Anzahl der Ausführungseinheiten (N) wird vom IPL an das VLIW-Befehlswortlängen-Register 11 als ein Anfangswert bzw. an das Ausführungseinheiten-Anzahlregister 13 festgesetzt.
  • IPL bedeutet im engeren Sinne das Laden eines Programms wie zum Beispiel eines Ladeprogramms in Fällen, in denen keine Programme in dem Hauptspeicher 9 eingegeben wurden. Im vorliegenden Patent bedeutet IPL des Weiteren eine Reihe von Verarbeitungsschritten, die Folgendes umfassen: (a) das Festlegen eines Anfangswertes für einen Prozessor und das Testen, ob der Prozessor vor dem Laden des Programms normal arbeitet, (b) das Laden des Programms, wenn laut Ergebnis der Prozessor betriebsbereit ist und (c) die Genehmigung, dass der Prozessor das geladene Programm ausführen darf. Dieses IPL ist ausführlich in 13 dargestellt. Das IPL wird entweder nach dem Anschalten des Prozessors oder nach dem Zurücksetzen des Prozessors gestartet. Nach dem Starten des Prozessors wird die Anfangseinstellung des Prozessors wie beispielsweise das Schreiben der Anfangswerte in die vorhandenen Register vor dem Ladeprozess durchgeführt. Danach wird ein Testanzahlzähler zunächst auf Null gesetzt, um einen Test n-Mal durchzuführen, um herauszufinden, ob der Prozessor seine verschiedenen Operationen normal ausführt. Anschließend wird der Testanzahlzähler um den Wert eins erhöht und ein erster Test durchgeführt. Ein Testergebnis wird entweder als richtig oder unrichtig bewertet. Wenn das Ergebnis als fehlerhaft bewertet wird, wird das IPL sofort abgebrochen. Wenn das Ergebnis des ersten Tests normal ist, wird der Testanzahlzähler wiederum um den Wert eins erhöht. Wenn alle Tests normale Ergebnisse aufweisen, wird der Prozessor als betriebsfähig beurteilt. Das Programm wird dann geladen, und der Prozessor kann das geladene Programm ausführen. Werden die Tests fehlerhaft beendet, leuchtet entweder eine Warmlampe auf, oder der Alarm wird aktiviert.
  • Wenn eine einzelne der n Ausführungseinheiten 2a2n einen Wortlängen-Überschreibbefehl für das VLIW-Befehlswortlängen-Register 1 (wird später beschrieben) ausführt, wählt der MPX 26 eine VLIW-Befehlswortlänge aus, die von der oben genannten Ausführungseinheit zur Weiterleitung an das VLIW-Befehlswortlängen-Register 11 gesendet wird.
  • Die Einrichtung zum Berechnen der Anzahl von Befehlen (L) 12 berechnet eine Befehlsanzahl (L) (die Anzahl von Befehlen) aus der VLIW-Befehlswortlänge, die von dem VLIW-Befehlswortlängen-Register 11 bereitgestellt wird. In dem vorliegenden Ausführungsbeispiel wird ein VLIW-Befehl aus L Befehlen gebildet, die vier Bytes lang sind. Dementsprechend wird die VLIW-Befehlswortlänge aus dem VLIW-Befehlswortlängen-Register 11 durch vier Bytes dividiert. Dies bedeutet im Einzelnen, dass die Einrichtung zum Berechnen der Anzahl von Befehlen (L) 12 die VLIW-Befehlswortlänge, die vom VLIW-Befehlswortlängen-Register 11 bereitgestellt wird, um zwei Bit-Stellen nach rechts verschiebt, um L (die Befehlsanzahl) zu erhalten.
  • Zur Ermittlung eines Quotienten (m) und eines Rests (δ) führt die Divisionseinrichtung 14 eine Divisionsoperation durch, bei der die Befehlsanzahl L von der Einrichtung zum Berechnen der Anzahl von Befehlen 12 ein Dividend und die Anzahl der Ausführungseinheiten N vom Ausführungseinheiten-Anzahlregister 13 ein Divisor ist.
  • Der Addierer 15 addiert den Wert ,eins' zum Quotienten m. Der MPX 16 wählt den Quotienten m, wenn δ = 0 ist. Wenn δ nicht Null ist, wählt der MPX 16 ein Ergebnis der vom Addierer 15 durchgeführten Additionsoperation aus, der MPX 16 wählt also (m + 1) aus.
  • Die Wiederholungs-Steuereinrichtung 18 steuert die gesamte Befehls-Steuereinheit 1, so dass N Befehle eines VLIW-Befehls eine Anzahl von Malen ausgeführt werden, die dem Quotienten m (d. h., m Male) gleich ist und, wenn der Rest δ nicht Null beträgt, werden Befehle, deren Anzahl dem Rest δ gleich ist, ausgeführt.
  • Wenn ein VLIW-Befehl verarbeitet wird, und wenn der Quotient m nicht Null ist, wählt der MPX 17 wiederholt N (Befehle) m Male aus, die von dem Ausführungseinheiten-Anzahlregister 13 ausgegeben wurden. Der MPX 17 wählt den Rest δ nur aus, wenn der von der Divisionseinrichtung 14 ausgegebene Rest δ nicht Null beträgt. Wenn m = 0 ist, wählt der MPX 17 den Rest δ aus, der von der Divisionseinrichtung 14 ausgegeben wurde.
  • Die Multipliziereinrichtung 19 führt eine Multiplikationsoperation durch, indem sie den Output des MPX 17 mit vier (in der vorliegenden Ausführung wird der Output um zwei Bit-Positionen nach links verschoben) multipliziert. Dadurch werden zwei niederwertige Bits auf Null gesetzt, um eine Erhöhung in der Abrufadresse zu berechnen.
  • Jeder der MPX 20a20n wählt unter Steuerung der Wiederholungs-Steuereinrichtung 18 entweder einen aus dem Befehlsspeicher 5 ausgelesenen Befehl oder „NOP" aus. Das bedeutet im Einzelnen, dass Fälle, in denen jeder MPX 20 unter Steuerung der Steuereinrichtung 18 „NOP" auswählt, wie folgt aussehen. Jeder MPX 20 wählt „NOP" aus, wenn die letzten (N – δ) Befehle der N Befehle, die aus dem Befehlsspeicher 5 ausgelesen werden und wenn der Rest δ nicht Null beträgt in einem nachfolgenden VLIW-Befehl eingeschlossen werden. Des Weiteren wählt jeder MPX 20 „NOP" aus, wenn an dem Punkt, an dem das VLIW-Befehlswortlängen-Register 11 nicht durch einen VLIW-Befehlswortlängen-Überschreibbefehl überschrieben wurde, die IF-Phase (Befehlsabrufphase) für einen nachfolgenden VLIW-Befehl gesperrt ist. Dies wird später beschrieben.
  • Die Ausgänge der MPX 20a20n werden in den entsprechenden Befehlsregistern 22a22n festgelegt.
  • Die Decodier-/Ausführungs-Steuereinrichtungen 24a24n decodieren die Outputs der Befehlsregister 22a22n und weisen die Ausführungseinheiten 2a2n an, mit der Befehlsausführung zu beginnen. Demzufolge decodiert eine entsprechende Decodier-/Ausführungs-Steuereinrichtung 24 einen solchen Überschreibbefehl, wenn jedes Befehlsregister 22a22n einen VLIW-Befehlswortlängen-Überschreibbefehl speichert, und eine entsprechende Ausführungseinheit 2 führt einen Überschreibbefehl für die VLIW-Befehlswortlänge des VLIW-Befehlswortlängen-Registers 11 aus.
  • Das Befehlsabruf-Adressenregister 30 speichert Adressen für Befehle, die abgerufen werden sollen. Wenn kein Verzweigungsbefehl erzeugt wurde, wird eine Adressenerhöhung, die von der Multipliziereinrichtung 19 ausgegeben wurde, von Addierer 31 zur Ad resse des Befehlsabruf-Adressenregisters 30 addiert. Dieses Additionsergebnis wird vom MPX 29 ausgewählt und wieder in das Befehlsabruf-Adressenregister 30 aufgenommen. Wenn andererseits ein Verzweigungsbefehl erzeugt wurde, dann wählt der MPX 27 eine Verzweigungsadresse aus, die von einer Ausführungseinheit übertragen wurde, die jetzt den Verzweigungsbefehl ausführt, und die ausgewählte Verzweigungsadresse wird in das Verzweigungszieladressen-Halteregister 28 aufgenommen.
  • Die Wiederholungs-Steuereinrichtung 18 steuert die MPX 17, 20a20n und 29 so, dass alle Befehle einschließlich eines Verzweigungsbefehls ausgeführt werden. Die Wiederholungs-Steuereinrichtung 18 wählt einen der drei unterschiedlichen Inputs als eine passende Befehlsadresse aus, und der ausgewählte Input wird in das Verzweigungszieladressen-Halteregister 30 aufgenommen.
  • Damit die wichtigsten Punkte der vorliegenden Erfindung leichter zu verstehen sind, wird in 3 ein Programm dargestellt, das die Funktionsweise eines VLIW-Befehlsprozessors des vorliegenden Ausführungsbeispiels beschreibt, da die eigentlichen Programme einen langen Programm-Trace erfordern. In dem in der 3 dargestellten Programm werden die VLIW-Befehle 1 bis 10 dargestellt. Die VLIW-Befehle 1, 2 und 3 enthalten jeweils zwei Befehle. Die VLIW-Befehle 48 enthalten jeweils L Befehle. Die VLIW-Befehle 9 und 10 enthalten jeweils zwei Befehle. Auch in einem eigentlichen Programm wird eine Umgebung für die Ausführung eines VLIW-Befehls, der eine größere Anzahl von Befehlen enthält, von einem VLIW-Befehl vorbereitet, der eine kleinere Anzahl von Befehlen enthält (3). Im Allgemeinen erreicht der VLIW-Befehlsprozessor eine hohe Leistung für VLIW-Befehle, die eine Vielzahl von Befehlen enthalten und führt eine Nachbearbeitung durch VLIW-Befehle durch, die eine kleine Anzahl von Befehlen enthalten.
  • Das IPL wird normal abgeschlossen. Acht (8) wird als Anfangswert in dem VLIW-Befehlswortlängen-Register 11 gespeichert, und N, das die Anzahl der Ausführungseinheiten anzeigt, wird in dem Ausführungseinheiten-Anzahlregister 13 gespeichert (für den in 3 dargestellten Fall soll die Anzahl N einen Wert größer 2 haben). Die Anfangsadresse des Programms wird durch das IPL in dem Befehlsabruf-Adressenregister 30 gespeichert. Zu dem Zeitpunkt, zu dem die Befehls-Steuereinheit 1 eine Befehlsabrufanforderung gleichzeitig an den Befehlsspeicher 5 und an die Speicherverwaltungs einheit 7 sendet, befinden sich noch keine gültigen Daten in dem Befehlsspeicher 5. Folglich wird eine Reihe von Operationen durchgeführt, so dass entsprechende Daten aus dem Hauptspeicher 9 in den Befehlsspeicher 5 übertragen werden.
  • Die Einrichtung zum Berechnen der Anzahl von Befehlen 12 gibt die Befehlsanzahl ,zwei' aus. Die Divisionseinrichtung 14 liefert einen Quotienten Null und einen Rest ,zwei'. Der MPX 16 wählt einen Output ,eins' vom konstanten „1"-Addierer 15 aus.
  • Die Wiederholungs-Steuereinrichtung 18 steuert die MPX 20a20n auf eine Art und Weise, dass die ersten zwei der MPX 20a20n Daten aus dem Befehlsspeicher 5 auswählen, während die übrigen (N – 2) MPX „NOP" auswählen. Als Antwort auf ein Signal, das über die Übertragung von Abrufanforderungsdaten aus der Speicherverwaltungseinheit 7 an den Befehlsspeicher 5 informiert, weist die Wiederholungs-Steuereinrichtung 18 die Befehlsregister 22a22n an, Daten einzugeben.
  • Der VLIW-Befehlsprozessor des vorliegenden Ausführungsbeispiels ist ein Pipeline-Prozessor, und sein grundlegendes Pipelining umfasst die folgenden vier Phasen: die IF-Phase (Instruction Fetch – Befehlsabrufphase), die DEC-Phase (Befehlsdecodier-/Ausgabephase), die EX-Phase (Ausführungsphase) und der WB-Phase (Registerschreib-Phase) Phase. Im Allgemeinen operiert jede Phase in einem Zyklus.
  • 4 zeigt die Pipeline-Operationen des VLIW-Befehlsprozessors für die VLIW-Befehle 1, 2, 3 und 4. Wie oben beschrieben, liegen in der IF-Phase des VLIW-Befehls 1 keine gültigen Daten in dem Befehlsspeicher 5 vor. Aus diesem Grund wird eine Reihe von Operationen für die Übertragung von Daten aus dem Hauptspeicher 9 in den Befehlsspeicher 5 durchgeführt.
  • Der VLIW-Befehl 1 geht in die DEC-Phase über und gleichzeitig tritt der VLIW-Befehl 2 in die IF-Phase ein. Danach erfolgt die Verarbeitung der VLIW-Befehle 1, 2 und 3 durch ein Cycle Pitch Pipelining. In der DEC-Phase des VLIW-Befehls 3 wird ein in dem VLIW-Befehl 3 enthaltener Befehl (beispielsweise ein Befehl 31), durch eine der Ausführungseinheiten 2a2n als ein VLIW-Befehlswortlängen-Überschreibbefehl erkannt. Die Wiederholungs-Steuereinrichtung 18 wird über ein solches Erkennungsergebnis benachrichtigt. In der DEC-Phase der VLIW-Befehls 3 gibt die Wiederholungs-Steuereinrichtung 18 eine Befehlsabrufanforderung aus, um den VLIW-Befehl 4 abzurufen. Ob die VLIW-Befehlswortlänge größer oder kleiner wird, ist jedoch solange schwierig zu festzustellen, bis eine neue VLIW-Befehlswortlänge in dem VLIW-Befehlswortlängen-Register 11 gespeichert wird. Aus diesem Grund werden keine Befehlsabrufanforderungen ausgegeben, und jeder MPX 20a20n wird so gesteuert, dass er „NOP" auswählt, bis zwei in dem VLIW-Befehl 3 enthaltenen Befehle in die WB-Phase eintreten. Danach wird zu dem Zeitpunkt, zu dem sich zwei Befehle in der WB-Phase befinden, L (Befehlsanzahl) durch den VLIW-Befehlswortlängen-Überschreibbefehl in das VLIW-Befehlswortlängen-Register 11 geschrieben. Die Divisionseinrichtung 14 stellt m (den Quotienten) und δ (den Rest) zur Verfügung und, wenn der Quotient m nicht gleich Null ist, steuert die Wiederholungs-Steuereinrichtung 18 jeden MPX 20a20n, um Daten aus dem Befehlsspeicher 5 auszuwählen, so dass im nächsten Zyklus die DEC-Phase für die ersten N-Befehle des VLIW-Befehls 4 beginnt.
  • Sobald die oben genannten ersten N Befehle des VLIW-Befehls 4 in die DEC-Phase eintreten, wird der vom MPX 29 ausgewählte Output des Addierers 31 in das Befehlsabruf-Adressenregister 30 eingegeben. Dieser Output (Adresse) ist ein Wert, der sich aus der Addition von (N × 4), dem Output der Multipliziereinrichtung 19, zur Anfangsadresse des VLIW-Befehls 4 ergibt.
  • Die m-te DEC-Phase des VLIW-Befehls 4 ist nun erreicht. Um die letzten δ Befehle des VLIW-Befehls 4 in dessen IF-Phase zu verarbeiten, steuert die Wiederholungs-Steuereinrichtung 18 die MPX 20a20n gleichzeitig so, dass die ersten δ MPX der MPX 20a20n die Daten aus dem Speicher 5 und die übrigen (N – δ) MPX „NOP" auswählen. Die Multipliziereinrichtung 19 liefert einen Output von (δ × 4) und, im nächsten Zyklus wird dem Befehlsabruf-Adressenregister 30 eine Adresse zugeführt, die sich aus der Addition vom m (N × 4) + (δ × 4) zur Anfangsadresse des VLIW-Befehls 4 ergibt, welches dann die Anfangsadresse des VLIW-Befehls 5 ist.
  • Der VLIW-Befehl 5, der VLIW-Befehl 6 und der VLIW-Befehl 7 werden in der selben Art und Weise wie der VLIW-Befehl 4 ausgeführt.
  • Der VLIW-Befehl 8 enthält einen VLIW-Befehlswortlängen-Überschreibbefehl. In Abhängigkeit von der Position dieses VLIW-Befehlswortlängen-Überschreibbefehls im VLIW- Befehl 8, wird die IF-Phase für den VLIW-Befehl 8 entweder gesperrt oder nicht. Diese Sperrsteuerung der IF-Phase wird in den 5, 6 und 7 dargestellt.
  • In einem in 5 dargestellten Beispielfall enthält ein Befehlssatz aller Befehlssätze des VLIW-Befehls 8, der als letzter verarbeitet werden soll, einen VLIW-Befehlswortlängen-Überschreibbefehl. In der DEC-Phase dieses Befehlssatzes wird der VLIW-Befehlswortlängen-Überschreibbefehl erkannt, so dass die IF-Phase des VLIW-Befehls 9 für Zyklen gesperrt wird. Zu dem Zeitpunkt, zu dem die WB-Phase eines der Befehlssätze des VLIW-Befehls 8, der als letzter verarbeitet werden soll, anfängt, wird das VLIW-Befehlswortlängen-Register 11 aktualisiert und die IF-Phase des VLIW-Befehls 9 beginnt.
  • In einem in 6 dargestellten Beispielfall enthält ein Befehlssatz aller Befehlssätze des VLIW-Befehls 8, der einen Maschinenzyklus vor der Verarbeitung des letzten Befehlssatzes verarbeitet wird, einen VLIW-Befehlswortlängen-Überschreibbefehl. In der DEC-Phase dieses Befehlssatzes, der den Überschreibbefehl enthält, wird das Vorhandensein des VLIW-Befehlswortlängen-Überschreibbefehls erkannt und die IF-Phase des VLIW-Befehls 9 für einen Zyklus gesperrt. Wenn die WB-Phase des Befehlssatzes beginnt, wird das VLIW-Befehlswortlängen-Register 11 aktualisiert, und gleichzeitig beginnt die IF-Phase des VLIW-Befehls 9.
  • In einem in 7 dargestellten Beispielfall enthält ein Befehlssatz des VLIW-Befehls 8, der zwei Maschinenzyklen vor der Verarbeitung des letzten Befehlssatzes verarbeitet wird, einen VLIW-Befehlswortlängen-Überschreibbefehl. In der DEC-Phase des Befehlssatzes, der den Überschreibbefehl enthält, der zwei Positionen vor dem letzten Befehlssatz angeordnet ist, wird das Vorhandensein des VLIW-Befehlswortlängen-Überschreibbefehls erkannt. Wenn die WB-Phase des besagten Befehlssatzes beginnt, wird das VLIW-Befehlswortlängen-Register 11 aktualisiert, und gleichzeitig beginnt die IF-Phase des VLIW-Befehls 9. Aufgrund der Aktualisierung des VLIW-Befehlswortlängen-Registers 11 kommt es nicht zu einer Sperrung der IF-Phase.
  • In 8 wird die interne Konfiguration der Wiederholungs-Steuereinrichtung 18 dargestellt. Es wird ein Beispiel einer Pipeline-Steuereinrichtung für die Steuerung der oben genannten Pipeline-Operationen gezeigt.
  • 41 ist ein MPX (Multiplexer). 42 ist ein IF-Anzahlregister. 43 ist ein DEC-Anzahlregister. 44 ist ein EX-Anzahlregister. 45 ist ein konstanter Subtrahierer. 46, 47 und 48 sind OR-Kreisläufe mit N Eingängen. 49 ist eine IF-Pipeline-Steuereinrichtung. 50 ist eine DEC-Pipeline-Steuereinrichtung. 51 ist eine EX-Pipeline-Steuereinrichtung. 52 ist eine WB-Pipeline-Steuereinrichtung.
  • Der MPX 41 wählt den Output des MPX 16 aus, wenn der Output des konstanten Subtrahierers 45 „0" ist. Der MPX 41 wählt den Output des konstanten Subtrahierers 45, wenn der Output des konstanten Subtrahierers 45 nicht „0" ist.
  • Die Werte „1", „0" und „0" werden vom IPL für das IF-Anzahlregister 42, an das DEC-Anzahlregister 43 bzw. das EX-Anzahlregister 44 als deren Anfangswerte festgelegt. Diese drei Anzahlregister 4244 zeigen jeweils an, wie viele Befehlssätze, von denen jeder N oder δ Befehle enthält, in einem VLIW-Befehl unverarbeitet bleiben.
  • Eine der N Decodier-/Ausführungs-Steuereinrichtungen 24a24n erkennt das Vorhandensein eines VLIW-Befehlswortlängen-Überschreibbefehls. Dieser Überschreibbefehl wird durch den OR-Kreislauf mit N-Eingängen an die IF-Pipeline-Steuereinrichtung (Befehlsabrufpipeline-Steuereinrichtung) 49 übertragen. Als Antwort auf eine solche Übertragung liefert die IF-Pipeline-Steuereinrichtung 49 Anweisungen für die IF-Phase. Wenn das DEC-Anzahlregister 43 einen Output „1" bereitstellt, wird die IF-Phase durch die Steuereinrichtung 49 für zwei Zyklen gesperrt. Wenn das DEC-Anzahlregister 43 einen Output „2" bereitstellt, wird die IF-Phase für einen Zyklus gesperrt. Wenn das DEC-Anzahlregister 43 einen Output von „3" bereitstellt, wird die IF-Phase nicht gesperrt.
  • Die Operation der Verzweigungsbefehle wird im Folgenden mit Bezug auf die 912 beschrieben.
  • In dem VLIW-Befehlsprozessor des vorliegenden Ausführungsbeispiels (a) gibt es keine Einschränkungen bezüglich der Position des Verzweigungsbefehls in einem VLIW-Befehl, (b) bestimmt das Verzweigungsziel immer die Anfangsadresse des VLIW-Befehls, und (c) findet die Verzweigung nach der Verarbeitung eines Befehls entspre chend des Verzweigungsbefehls statt. Dies stimmt mit der zuvor genannten Definition des VLIW-Befehls überein.
  • In einem in 9 gezeigten Beispielfall enthält einer der Vielzahl von Befehlssätzen, die zu einem VLIW-Befehl A gehören, der als letzter in dem VLIW-Befehl A verarbeitet wird, einen Verzweigungsbefehl. Am Ende der EX-Phase des besagten Befehlssatzes wird die Bildung einer Verzweigung zu einem VLIW-Befehl P sichergestellt. In der WB-Phase des Befehlssatzes wird eine Verzweigungszieladresse in das Befehlsabruf-Adressenregister 30 geschrieben. Ein VLIW-Befehl B und ein VLIW-Befehl C, die aufgrund der Verzweigungsbildung nicht verarbeitet werden dürfen, laufen zusätzlich einen Zyklus länger und werden in ihrer WB- und EX-Phase abgebrochen, da sich die IF-Phase eines der Befehlssätze des VLIW-Befehls P (Verzweigungsziel) und die WB-Phase eines der oben genannten Befehlssätze des VLIW-Befehls A, der als letzter verarbeitet werden soll, im selben Zyklus befinden.
  • Dementsprechend beträgt der Overhead des Verzweigungsbefehls im Fall von 9 zwei Zyklen.
  • In einem in 10 dargestellten Beispielfall ist ein Verzweigungsbefehl in einem der Befehlssätze eines VLIW-Befehls D enthalten, der einen Maschinenzyklus vor der Verarbeitung des letzten der Befehlssätze verarbeitet wird, und am Ende der EX-Phase des Befehlssatzes, der den Verzweigungsbefehls enthält, wird die Bildung einer Verzweigung zu einem VLIW-Befehl Q sichergestellt. In der WB-Phase des Befehlssatzes wird eine Verzweigungszieladresse in das Befehlsabruf-Adressenregister 30 geschrieben. Ein VLIW-Befehl E, der aufgrund einer solchen Verzweigungsbildung nicht ausgeführt werden darf, läuft zusätzlich einen Zyklus länger und wird in der EX-Phase abgebrochen, da sich die IF-Phase eines der Befehlssätze des VLIW-Befehls Q, der als erster ausgeführt werden soll und der EX-Phase des Befehlssatzes des VLIW-Befehls A, der als letztes ausgeführt werden soll, im selben Zyklus befinden.
  • Dementsprechend beträgt der Overhead des Verzweigungsbefehls im Fall von 10 einen Zyklus.
  • In einem in 11 gezeigten Beispielfall ist ein Verzweigungsbefehl in einem der Vielzahl von Befehlssätzen des VLIW-Befehls F enthalten, welcher zwei Maschinenzyk len vor der Verarbeitung des letzten Befehlssatzes des VLIW-Befehls F verarbeitet wird. Am Ende der EX-Phase des Befehlssatzes wird die Bildung einer Verzweigung zu einem VLIW-Befehl R sichergestellt. Zu Beginn der WB-Phase des Befehlssatzes wählt der MPX 29 nicht die Anfangsdresse eines VLIW-Befehls entsprechend dem VLIW-Befehl F aus, sondern die Anfangsdresse des VLIW-Befehls R, die ein Verzweigungsziel ist, wobei die Anfangsdresse des Verzweigungsbefehls R in das Befehlsabruf-Adressenregister 30 geschrieben wird. Dementsprechend wird in dem in 1 dargestellten Fall kein Overhead durch den Verzweigungsbefehl verursacht.
  • In einem in 12 dargestellten Beispielfall ist ein Verzweigungsbefehl in einem der Befehlssätze eines VLIW-Befehls G enthalten, der drei Maschinenzyklen vor der Verarbeitung des letzten dieser Befehlssätze verarbeitet wird. Am Ende der EX-Phase des Befehlssatzes, der den Verzweigungsbefehl enthält, wird die Bildung einer Verzweigung zu einem VLIW-Befehl S sichergestellt. Zu Beginn der WB-Phase des Befehlssatzes wird die Anfangsadresse des VLIW-Befehls S einmal in das Verzweigungszieladressen-Halteregister 28 geschrieben. Nach einem Zyklus wird der Output des Registers 28 vom MPX 29 ausgewählt, um diesen in das Befehlsabruf-Adressenregister 30 zu schreiben. So wird auch in dem in 12 dargestellten Fall kein Overhead durch den Verzweigungsbefehl verursacht.
  • Mit Bezug auf 8 werden die Operationen von 9 bis 12 beschrieben.
  • Die Bildung einer Verzweigung wird in jeder der N Ausführungseinheiten 2a2n erkannt, und eine solche Erkennungsinformation wird über den OR-Kreislauf mit N-Eingängen 48 an die EX-Pipeline-Steuereinrichtung 51 und an die WB-Pipeline-Steuereinrichtung 52 übertragen.
  • Die EX-Pipeline-Steuereinrichtung (Ausführungspipeline-Steuereinrichtung) 51 sperrt zu Beginn des nächsten Zyklus die Verzweigungsbildungsinformation und einen Wert, der sich aus der Subtraktion des Outputs des IF-Anzahlregisters 42 vom Output des EX-Anzahlregisters 44 ergibt. Die EX-Pipeline-Steuereinrichtung 51 bricht später die EX-Phase eines Zyklus ab, wenn zwei Bedingungen vorliegen, dass (i) eine Verzweigung gebildet wurde und (ii) die Differenz Null oder negativ ist.
  • Die WB-Pipeline-Steuereinrichtung (Schreibpipeline-Steuereinrichtung) 52 sperrt zu Beginn des nächsten Zyklus die Verzweigungsbildungsinformation und einen Wert, der sich aus der Subtraktion des Outputs des DEC-Anzahlregisters 43 vom Output des EX-Anzahlregisters 44 ergibt. Die WB-Pipeline-Steuereinrichtung 52 bricht später die WB-Phase eines Zyklus ab, wenn die zwei Bedingungen gelten, dass (i) eine Verzweigung gebildet wurde und (ii) die Differenz Null oder negativ ist.
  • Wenn die zwei Bedingungen gelten, dass (i) eine Verzweigung vor der Sperrung gebildet wurde und (ii) der Output des EX-Anzahlregisters 44 3 oder weniger ist, übt die WB-Pipeline-Steuereinrichtung 52 eine Steuerfunktion aus, so dass die MPX 27 und 29 eine Verzweigungszieladresse auswählen, die von einer der N Ausführungseinheiten 2a2n übertragen wurde, und das Befehlsabruf-Adressenregister 30 nimmt die Verzweigungszieladresse im nächsten Zyklus auf.
  • Wenn des Weiteren die zwei Bedingungen gelten, dass (i) eine Verzweigung vor der Sperrung gebildet wurde und (ii) der Output des EX-Anzahlregisters 44 4 oder mehr beträgt, übt die WB-Pipeline-Steuereinrichtung 52 eine Steuerfunktion aus, so dass der MPX 27 eine Verzweigungszieladresse auswählt, die von einer der N Ausführungseinheiten 2a2n bereitgestellt wird, und das Zieladressen-Halteregister 28 die Verzweigungszieladresse im nächsten Zyklus aufnimmt. Danach wird der Output des EX-Anzahlregisters 44 3 und zu dem Zeitpunkt, zu der ein Befehlssatz, der dieser EX-Anzahl 3 entspricht und in die WB-Phase gelangt, wird der Output des Verzweigungszieladressen-Halteregisters 28 vom MPX 29 ausgewählt und in das Befehlsabruf-Adressenregister 30 übernommen.
  • Entsprechend der oben beschriebenen Verzweigungsbefehlsoperation wird es möglich, die Einbettung eines Befehls in Anlehnung an einen in einem einzelnen VLIW-Befehl enthaltenen Verzweigungsbefehl, mit mehr Flexibilität in Bezug auf eine verzögerte Verzweigungsbefehlsmethode, durchzuführen.
  • Mit Bezug auf 4 wird beschrieben, dass ein VLIW-Befehlsprozessor mit einem VLIW-Befehlswortlängen-Register 11, einem Bestandteil der vorliegenden Erfindung, in der Lage ist, eine Programmbibliothek für einen konventionellen VLIW- Befehlsprozessor, welcher kein VLIW-Befehlswortlängen-Register 11 hat, zu verwenden.
  • Die in 14 dargestellte VLIW-Befehlsgruppe A enthält einen VLIW-Befehlswortlängen-Überschreibbefehl. Die VLIW-Befehlsgruppe B ist ein Programm, das in einer Programmbibliothek eines konventionellen VLIW-Befehlsprozessors enthalten ist. In der Beschreibung dieser Operation wird ein Beispielfall erklärt, bei dem nachdem der VLIW-Befehlssatz A bis zu einem VLIW-Befehl 3 ausgeführt wurde, jeder in dem konventionellen VLIW-Befehlssatz B enthaltene Befehl ausgeführt wird, und die Befehlsausführung zurück zum VLIW-Befehlssatz A kehrt. Auch in 14 wird das Programm vereinfacht dargestellt, um die wesentlichen Punkte der vorliegenden Erfindung besser verständlich zu machen.
  • In den Befehlen 11 und 12 eines VLIW-Befehls 1 des VLIW-Befehlssatzes A und in einem Befehl 21 eines VLIW-Befehls 2 des VLIW-Befehlssatzes A werden Daten, die für die Verwendung durch VLIW-Befehlssatz B bestimmt sind, so aufbereitet, dass auf die Daten durch Befehle zurückgegriffen werden kann, die einen VLIW-Befehl in dem VLIW-Befehlssatz B bilden. Als nächstes wird in einem Befehl 22 des VLIW-Befehls 2 in dem VLIW-Befehlssatz A die Anfangsadresse eines VLIW-Befehls 8 in dem VLIW-Befehlssatz A, zum Beispiel eine Rücksprungadresse, auf ein 0-tes Register der Registerdatei 4 gesetzt. Ein Befehl 31 eines VLIW-Befehls 3 in dem VLIW-Befehlssatz A enthält einen VLIW-Befehlswortlängen-Überschreibbefehl. Dieser Überschreibbefehl ist ein Befehl, der eine Wortlänge zu einer Wortlänge für den VLIW-Befehlssatz B für die Verwendung durch den konventionellen VLIW-Befehlsprozessor überschreibt. Die Befehlswortlänge des VLIW-Befehlswortlängen-Registers 11 wird in eine solche Befehlswortlänge überschrieben. Ein Befehl 32 eines VLIW-Befehls 3 des VLIW-Befehlssatzes A enthält einen Verzweigungsbefehl, der in dem konventionellen VLIW-Befehlssatz B zuerst verzweigt werden muss, und dementsprechend tritt am Anfang des VLIW-Befehlssatzes B auf. VLIW-Befehle 5, 6 und 7, die alle L Befehle enthalten, werden ausgeführt. Der letzte VLIW-Befehl 7 enthält einen Verzweigungsbefehl, dessen Adresse die Inhalte des 0-ten Registers der Registerdatei 4 sind. Die Ausführung dieses Befehls bewirkt, dass die Befehlsausführung zum VLIW-Befehl 8 des VLIW-Befehlssatzes A zurückkehrt. Dieser VLIW-Befehl 8 enthält die gleiche Anzahl von Befehlen, das heißt, L Befehle, wie jeder VLIW-Befehl 5, 6 und 7 des VLIW-Befehlssatzes B. Der VLIW- Befehlssatz 8 enthält einen VLIW-Befehlswortlängen-Überschreibbefehl. Durch diesen Überschreibbefehl wird die VLIW-Befehlswortlänge überschrieben. Danach erfolgt die Ausführung der VLIW-Befehle mit einer überschriebenen VLIW-Befehlswortlänge, zum Beispiel die VLIW-Befehle 9 und 10, die jeweils aus zwei Befehlen bestehen. Bei Rückkehr vom VLIW-Befehlssatz B zum VLIW-Befehlssatz A ist das VLIW-Befehlswortlängen-Register 11 noch nicht überschrieben. Deshalb muss die VLIW-Befehlswortlänge dieses VLIW-Befehls 8, der als erster in dem VLIW-Befehlssatz A ausgeführt werden soll, vor einer solchen Rückkehr die selbe sein, wie die des VLIW-Befehls des VLIW-Befehlssatzes B.
  • In dem vorliegenden Ausführungsbeispiel enthält einer der Vielzahl von Befehlen, die einem VLIW-Befehl bilden, einen VLIW-Befehlswortlängen-Überschreibbefehl, der nicht als Einschränkung angesehen werden sollte. Die folgende Konfiguration kann verwendet werden. Beispielsweise wird in einem VLIW-Befehl, in dem eine VLIW-Wortlänge innerhalb eines Feldes eines Gesamtsteuerabschnittes, der sich am Anfangsteil des VLIW-Befehls befindet (siehe 15), angezeigt wird, eine Decodier-/Steuereinrichtung 24n + 1 bereitgestellt, die diese VLIW-Befehlswortlänge decodieren soll. Die von der Decodier-/Steuereinrichtung 24n + 1 gesteuerte und decodierte VLIW-Befehlswortlänge wird in dem VLIW-Befehlswortlängen-Register 11 gespeichert. Des Weiteren kann eine Ausführungseinheit 2n + 1 vorhanden sein, die für die Aktualisierung von VLIW-Befehlswortlängen verantwortlich ist, die in dem VLIW-Befehlswortlängen-Register 11 gespeichert sind.
  • ZWEITES AUSFÜHRUNGSBEISPIEL
  • Ein zweites Ausführungsbeispiel wird mit Bezug auf 16 beschrieben. In 16 wird eine Befehls-Steuereinheit 1' dargestellt, die aus der teilweisen Modifizierung der Befehls-Steuereinheit 1 des ersten Ausführungsbeispiels hervorgeht. Mit Ausnahme folgender Punkte besitzen diese beiden Befehls-Steuereinheiten 1 und 1' eine identische Konfiguration. Das heißt im Einzelnen, dass das VLIW-Befehlswortlängen-Register 11 und die Einrichtung zum Berechnen der Anzahl von Befehlen 12 der Interaktions-Steuereinheit 1 entfernt wurden und das Befehlsanzahlregister 60 bereitgestellt wird. In dem ersten Ausführungsbeispiel wird eine VLIW-Befehlswortlänge durch einen Wortlängen-Überschreibbefehl überschrieben, der in einem VLIW-Befehl enthalten ist und wird in dem VLIW-Befehlswortlängen-Register 11 gespeichert, und die Befehlswortlänge wird von der Einrichtung zum Berechnen der Anzahl von Befehlen 12 durch die Bitlänge eines Befehls dividiert. In dem vorliegenden Ausführungsbeispiel wird hingegen das Befehlsanzahlregister 60 bereitgestellt. Als ein Ergebnis einer solchen Bereitstellung ist in einem VLIW-Befehl ein Befehl (Befehlsanzahl-Überschreibbefehl) enthalten, der in der Lage ist, die Anzahl der in dem VLIW-Befehl enthaltenen Befehle in eine gewünschte Anzahl von Befehlen zu überschreiben und zu aktualisieren. In diesem Fall wird einfach das Wort „VLIW-Befehlswortlängen-Überschreibbefehl" in das Wort „Befehlsanzahl-Überschreibbefehl" überschrieben, und es werden keine relevanten Figuren für Beschreibungszwecke dargestellt. In dem vorliegenden Ausführungsbeispiel sind die in einem VLIW-Befehl enthaltenen einzelnen Befehle nicht notwendigerweise in der Bitlänge einander identisch und sie können sich voneinander unterscheiden.

Claims (19)

  1. VLIW-Befehlsprozessor für variable Wortlänge, der umfasst: eine Vielzahl von Ausführeinheiten (2a2n), von denen jede zum Ausführen eines Befehls eingerichtet ist; und eine Befehls-Steuereinheit (1), die die parallele Ausführung von Befehlen steuert, die durch alle oder einige der Vielzahl von Ausführeinheiten (2a2n) durchgeführt wird; gekennzeichnet durch: ein VLIW-Befehlswortlängen-Register (11), das eine VLIW-Befehlswortlänge speichert; wobei die Befehls-Steuereinheit (1) so eingerichtet ist, dass sie einen VLIW-Befehl mit einer Anzeige empfängt, die eine VLIW-Befehlswortlänge anzeigt; die Befehls-Steuereinheit (1) so eingerichtet ist, dass sie auf Basis der durch die Anzeige angezeigten VLIW-Befehlswortlänge die in dem VLIW-Befehlswortlängen-Register (11) gespeicherte VLIW-Befehlswortlänge überschreibt; und die Befehls-Steuereinheit (1) so eingerichtet ist, dass sie die parallele Ausführung von Befehlen, die durch alle oder einige der Vielzahl von Ausführeinheiten (2a2n) durchgeführt wird, auf Basis der in dem VLIW-Befehlswortlängen-Register (11) gespeicherten überschriebenen VLIW-Befehlswortlänge steuert.
  2. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 1, wobei der VLIW-Befehl, der die Anzeige der VLIW-Befehlswortlänge enthält, durch eine Vielzahl von Befehlen gebildet wird, und wobei einer der Vielzahl von Befehlen ein Wortlängen-Überschreibbefehl zum Überschreiben der VLIW-Befehlswortlänge ist.
  3. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 2, wobei der Wortlängen-Überschreibbefehl durch eine beliebige der Vielzahl von Ausführeinheiten (2a2n) ausgeführt wird.
  4. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 1 bis 3, wobei der VLIW-Befehl, der die Anzeige der VLIW-Befehlswortlänge enthält, ein Feld für die Anzeige der VLIW-Befehlswortlänge hat.
  5. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 4, wobei der Prozessor des Weiteren umfasst: eine Ausführeinheit (2n + 1), die für das Überschreiben der in dem VLIW-Befehlswortlängen-Register gespeicherten VLIW-Befehlswortlänge bestimmt ist; und eine Decodier-/Steuereinrichtung (24n + 1); wobei die Decodier-/Steuereinrichtung (24n + 1) so eingerichtet ist, dass sie die VLIW-Befehlswortlänge decodiert, die in dem Feld des VLIW-Befehls dargestellt ist; die Decodier-/Steuereinrichtung (24n + 1) so eingerichtet ist, dass sie die Ausführeinheit (2n + 1) so steuert, dass die in dem VLIW-Befehlswortlängen-Register (11) gespeicherte VLIW-Befehlswortlänge mit der decodierten VLIW-Befehlswortlänge überschrieben wird.
  6. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 1 bis 5, wobei ein einzelner VLIW-Befehl durch eine Vielzahl von Befehlen gebildet wird und die Vielzahl von Befehlen die gleiche vorgegebene Bitlänge haben; und die Befehls-Steuereinheit (1) eine Einrichtung (12) zum Berechnen der Anzahl von Befehlen enthält, die so eingerichtet ist, dass sie eine Divisionsoperation zum Divi dieren der in dem VLIW-Befehlswortlängen-Register (11) gespeicherten VLIW-Befehlswortlänge durch die vorgegebene Bitlänge durchführt, um die Anzahl von Befehlen zu berechnen, die in dem VLIW-Befehl enthalten sind.
  7. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 1 bis 6, wobei die Befehls-Steuereinheit (1) eine Steuereinrichtung (21) enthält, die eine Vielzahl von Befehlen, die einen einzelnen VLIW-Befehl bilden, in eine Vielzahl von Befehlssätzen unterteilt und Befehlsausführung parallel dem Befehlssatz nach durchführt.
  8. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7, wobei die Steuereinrichtung (21) enthält: eine Divisionseinrichtung (14), die eine Divisionsoperation mit der Anzahl von Befehlen, die einen einzelnen VLIW-Befehl bilden, als einem Dividenden und der Anzahl der Ausführungseinheiten (2a2n) als einem Divisor durchführt, um einen Quotienten und ein Rest zu ermitteln; und eine Befehls-Steuereinrichtung (23); wobei die Befehls-Steuereinrichtung (23) so eingerichtet ist, dass sie, wenn der Quotient nicht Null ist, die Vielzahl von Ausführungseinheiten (2a2n) so steuert, dass sie gleichzeitig parallel Befehle, deren Anzahl der Anzahl der Vielzahl von Ausführungseinheiten gleich ist, eine Anzahl von Malen ausführen, die dem Quotienten gleich ist; die Befehls-Steuereinheit (23) so eingerichtet ist, dass sie, wenn der Rest nicht Null beträgt, einige der Vielzahl von Ausführungseinheiten (2a2n), deren Anzahl dem Rest gleich ist, so steuert, dass sie simultan parallele Befehlsausführung durchführen; die Befehls-Steuereinrichtung (23) so eingerichtet ist, dass sie, wenn der Quotient Null beträgt, einige der Vielzahl von Ausführungseinheiten (2a2n), deren Anzahl dem Rest gleich ist, so steuert, dass sie gleichzeitig parallele Befehlsausführung durchführen.
  9. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei der VLIW-Befehl, der den der VLIW-Befehlswortlängen-Überschreibbefehl enthält, der aus der Vielzahl von Befehlssätzen besteht, den Wortlängen-Überschreibbefehl in einem der Vielzahl von Befehlssätzen enthält, der als letzter auszuführen ist.
  10. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei der VLIW-Befehl, der den VLIW-Befehlswortlängen-Überschreibbefehl enthält, der aus der Vielzahl von Befehlssätzen besteht, den Wortlängen-Überschreibbefehl in einem der Vielzahl von Befehlssätzen enthält, der als zweitletzter auszuführen ist.
  11. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei der VLIW-Befehl, der den VLIW-Befehlswortlängen-Überschreibbefehl enthält, der aus der Vielzahl von Befehlssätzen besteht, den Wortlängen-Überschreibbefehl in einem der Vielzahl von Befehlssätzen enthält, der als drittletzter auszuführen ist.
  12. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 9 bis 11, wobei die Befehls-Steuereinheit (1) eine Befehlsabrufpipeline-Steuereinrichtung (49) enthält, die entsprechend der Position eines der Vielzahl von Befehlssätzen, der den VLIW-Befehlswortlängen-Überschreibbefehl enthält, verhindert, dass ein Befehl abgerufen wird, der in einem nachfolgenden VLIW-Befehl als erster auszuführen ist, der auf den VLIW-Befehl folgt, der den VLIW-Befehlswortlängen-Überschreibbefehl enthält.
  13. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei ein VLIW-Befehl, der aus einer Vielzahl von Befehlssätzen besteht, einen Verzweigungsbefehl in einem der Vielzahl von Befehlssätzen enthält, der als letzter auszuführen ist.
  14. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei ein VLIW-Befehl, der aus einer Vielzahl von Befehlssätzen besteht, einen Verzweigungsbefehl in einem der Vielzahl von Befehlssätzen enthält, der als zweitletzter auszuführen ist.
  15. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 7 oder Anspruch 8, wobei ein VLIW-Befehl, der aus einer Vielzahl von Befehlssätzen besteht, einen Verzweigungsbefehl in einem der Vielzahl von Befehlssätzen enthält, der als drittletzter auszuführen ist.
  16. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 13 bis 15, wobei die Befehls-Steuereinheit enthält: eine Ausführungspipeline-Steuereinrichtung (51) und eine Schreibpipeline-Steuereinrichtung (52), die entsprechend der Position eines der Vielzahl von Befehlssätzen, der den Verzweigungsbefehl enthält, das Ausführen/Schreiben eines Befehls aufheben, der in einem nachfolgenden VLIW-Befehl enthalten ist, der auf den VLIW-Befehl folgt, der den Verzweigungsbefehl enthält, der in dem nachfolgenden VLIW-Befehl als erster auszuführen ist.
  17. VLIW-Befehlsprozessor für variable Wortlänge nach Anspruch 16, wobei die Befehls-Steuereinheit (1) des Weiteren ein Verzweigungszieladressen-Halteregister (28) enthält, das eine Verzweigungszieladresse für den in dem VLIW-Befehl enthaltenen Verzweigungsbefehl speichert.
  18. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 1 bis 17, wobei die VLIW-Befehlswortlänge, die in dem VLIW-Befehlswortlängen-Register (11) gespeichert ist, zum Zeitpunkt des Anschaltens oder des Zurücksetzens des Systems initialisiert wird.
  19. VLIW-Befehlsprozessor für variable Wortlänge nach einem der Ansprüche 1 bis 18, wobei zum Zeitpunkt des Laufens eines Objektprogramms für einen Prozessor, der einen VLIW-Befehl ausführt, der im Befehlsformat identisch mit dem VLIW-Befehl ist und der sich in der Anzahl von Ausführungseinheiten (2a2n) von dem VLIW-Befehl unterscheidet, die in dem VLIW-Befehlswortlängen-Register (11) gespeicherte VLIW-Befehlswortlänge mit der Anzeige zum Überschreiben der Wortlänge, die in dem VLIW-Befehl enthalten ist, der einen Befehl vor dem Anfangsteil des Objektprogramms ausgeführt wird, überschrieben wird.
DE69635881T 1995-10-13 1996-10-11 VLIW-Befehlsprozessor mit variabler Wortlänge Expired - Fee Related DE69635881T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26515195 1995-10-13
JP26515195 1995-10-13

Publications (2)

Publication Number Publication Date
DE69635881D1 DE69635881D1 (de) 2006-05-04
DE69635881T2 true DE69635881T2 (de) 2006-08-10

Family

ID=17413346

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69635881T Expired - Fee Related DE69635881T2 (de) 1995-10-13 1996-10-11 VLIW-Befehlsprozessor mit variabler Wortlänge

Country Status (3)

Country Link
US (1) US5774737A (de)
EP (1) EP0768602B1 (de)
DE (1) DE69635881T2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898865A (en) * 1997-06-12 1999-04-27 Advanced Micro Devices, Inc. Apparatus and method for predicting an end of loop for string instructions
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6032252A (en) * 1997-10-28 2000-02-29 Advanced Micro Devices, Inc. Apparatus and method for efficient loop control in a superscalar microprocessor
US5974537A (en) * 1997-12-29 1999-10-26 Philips Electronics North America Corporation Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
FR2773234B1 (fr) * 1997-12-31 2003-07-25 Sgs Thomson Microelectronics Memoire a double acces pour processeur de signal numerique
US6081884A (en) * 1998-01-05 2000-06-27 Advanced Micro Devices, Inc. Embedding two different instruction sets within a single long instruction word using predecode bits
EP0942357A3 (de) * 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Mit einer Mehrzahl von Befehlsformaten vereinbarer Datenprozessor
EP0947922B1 (de) * 1998-04-01 2006-09-27 Matsushita Electric Industrial Co., Ltd. Kompiler
US6356994B1 (en) * 1998-07-09 2002-03-12 Bops, Incorporated Methods and apparatus for instruction addressing in indirect VLIW processors
US6192465B1 (en) * 1998-09-21 2001-02-20 Advanced Micro Devices, Inc. Using multiple decoders and a reorder queue to decode instructions out of order
US6311262B1 (en) 1999-01-18 2001-10-30 Infineon Technologies Ag Apparatus for the hierarchical and distributed control of programmable modules in large-scale integrated systems
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US7366876B1 (en) * 2000-10-31 2008-04-29 Analog Devices, Inc. Efficient emulation instruction dispatch based on instruction width
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US20030023830A1 (en) * 2001-07-25 2003-01-30 Hogenauer Eugene B. Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
JP3738842B2 (ja) * 2002-06-04 2006-01-25 富士通株式会社 遅延分岐機能を備えた情報処理装置
EP1378824A1 (de) 2002-07-02 2004-01-07 STMicroelectronics S.r.l. Verfahren zur Ausführung von Programmen in einem Mehrprozessorsystem, und entsprechenes Prozessorsystem
AU2003282553A1 (en) * 2002-08-05 2004-02-25 Koninklijke Philips Electronics N.V. Processor and method for processing vliw instructions
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
SE0202770D0 (sv) * 2002-09-18 2002-09-18 Coding Technologies Sweden Ab Method for reduction of aliasing introduces by spectral envelope adjustment in real-valued filterbanks
EP1554649A2 (de) * 2002-10-11 2005-07-20 Koninklijke Philips Electronics N.V. Datenverarbeitungsvorrichtungs-adressenbereichsabhängige parallelisierung von anweisungen
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
EP1622009A1 (de) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM-Architektur und Systeme
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
CN102707929A (zh) * 2012-04-12 2012-10-03 江苏中科芯核电子科技有限公司 一种并行指令打包方法
CN102855120B (zh) * 2012-09-14 2014-11-26 北京中科晶上科技有限公司 超长指令字vliw的处理器和处理方法
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
DE69129569T2 (de) * 1990-09-05 1999-02-04 Philips Electronics Nv Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
EP0855647A1 (de) * 1992-01-06 1998-07-29 Hitachi, Ltd. Rechner zur parallelen Durchführung von Datenabholung und Datenvorgriff
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
US5664135A (en) * 1994-09-28 1997-09-02 Hewlett-Packard Company Apparatus and method for reducing delays due to branches
US5600810A (en) * 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
US5649135A (en) * 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions

Also Published As

Publication number Publication date
US5774737A (en) 1998-06-30
DE69635881D1 (de) 2006-05-04
EP0768602B1 (de) 2006-03-08
EP0768602A3 (de) 2004-07-28
EP0768602A2 (de) 1997-04-16

Similar Documents

Publication Publication Date Title
DE69635881T2 (de) VLIW-Befehlsprozessor mit variabler Wortlänge
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE3210816C2 (de)
DE3116100C2 (de) Datenverarbeitungseinheit
DE69433621T2 (de) Geraet zur verarbeitung von befehlen in einem rechnersystem
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE69725278T2 (de) Programmierbares system und verfahren zum vorhersagen von verzweigungen für computersysteme
DE4211245B4 (de) Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE69628480T2 (de) Ausnahmebehandlung in einem Datenprozessor
DE69534148T2 (de) Rechnersystem zur Ausführung von Verzweigungsbefehlen
DE4206062C2 (de) Pipelineverarbeitung von Instruktionen
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE4434895C2 (de) Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen
DE1934365A1 (de) Automatische Programmschaltung bei Computern mit Multiprogrammierung
DE4345028A1 (de) Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE69233282T2 (de) Datenverarbeitungsvorrichtung
DE3507584C2 (de)
EP0325677A2 (de) Schaltungsanordnung und Steuerverfahren eines Befehlspufferspeichers in einer Datenverarbeitungsanlage
DE10303053B4 (de) Prozessorarchitektur mit einem Array von Pipelines und einer Registerdatei zum Vermeiden von Datenrisiken und Verfahren zur Datenweiterleitung in einer derartigen Prozessorarchitektur
DE69626263T2 (de) System zur Zuteilung mehrerer Befehle ohne Verzweigungsunterbrechung in einem Pipelineprozessor
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee