-
HINTERGRUND DER ERFINDUNG
-
1. GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein das Gebiet der Mikroprozessoren.
Genauer betrifft die Erfindung das Gebiet der VLIW(Very Long Instruction
Word)-Prozessoren.
-
VLIW(Very
Long Instruction Word)-Prozessoren verwenden einen Ansatz zum Parallelismus, demgemäß mehrere
Befehle in einem langen Befehlswort enthalten sind, das in jedem
Taktzyklus aus dem Speicher geholt wird. Das aus dem Speicher geholte
lange Befehlswort ist Teil eines Pakets, das in dieser Anmeldung
als VLIW-Paket oder „Befehlspaket" bezeichnet wird.
-
Befehle
in einem VLIW-Paket können
zu verschiedenen „Befehlstypen" gehören. Beispielsweise kann
ein bestimmtes VLIW-Paket Befehle des Typs Integer-ALU, wie „Shift
and Add"- und „Compare"-Befehle; Befehle
des Typs Non-Integer-ALU, wie „Shift L
Variable"-, „Shift
R Variable"-, „Move to
BR"- und „Move from
BR"-Befehle, enthalten.
Andere Beispiele für
Befehlstypen in einem typischen VLIW-Paket sind Speichertyp-Befehle,
wie „Integer
Load"-, „Integer Store"- und „Line Prefetch"-Befehle; Gleitkommatyp-Befehle,
wie „Floating
Point Compare"-
und „Floating
Point Clear Flags"-Befehle;
und Verzweigungstyp-Befehle, wie „Indirect Branch"- und „Indirect
Call"-Befehle.
-
Jeder
der mehreren Befehle in einem VLIW-Paket wird in einem besonderen „Befehls-Slot" gestellt. Jeder
Befehlstyp wird üblicherweise
einer oder zwei spezifischen logischen Einheiten in einem VLIW-Datenweg
zur Ausführung
zugewiesen. Jede dieser logischen Einheiten wird in der vorliegenden Anmeldung
als „Ausführungseinheit" bezeichnet.
-
Die
einzelnen Befehle in einem VLIW-Paket werden in verschiedenen „Ausgabegruppen" angeordnet, und
in dem VLIW-Paket können
eine Reihe von Ausgabegruppen vorhanden sein. Herkömmlich enthält ein VLIW-Paket
in der Regel eine Anzahl von Befehlen, die im gleichen Taktzyklus
ausgeführt
werden können.
Befehle in einem VLIW-Paket, die im gleichen Taktzyklus ausgeführt werden
können,
bilden eine einzelne „Ausgabegruppe". Laut Definition hängen Befehle,
die zur gleichen Ausgabegruppe gehören, nicht vom Ergebnis der
Ausführung
anderer Befehle in der gleichen Ausgabegruppe ab. Jedoch können Befehle
in einer Ausgabegruppe vom Ergebnis der Ausführung von Befehlen in einer
anderen Ausgabegruppe abhängen.
Die „Länge" einer Ausgabegruppe
bestimmt, wie viele Befehle in dieser Ausgabegruppe vorhanden sind
Beispielsweise kann eine bestimmte Ausgabegruppe eine Länge von
zwei Befehlen aufweisen.
-
Somit
werden Befehle, die sich in der gleichen Ausgabegruppe befinden,
gleichzeitig an ihre jeweiligen Ausführungseinheiten für die Ausführung im
gleichen Taktzyklus weitergegeben (d. h. „ausgegeben"). Demgemäß kann die
Ausführung
aller Befehle in einem VLIW-Paket so viele Taktzyklen dauern wie
Ausgabegruppen in diesem VLIW-Paket vorhanden sind. Mit Bezug auf 1 wird
nun ein bekanntes Verfahren zur Identifizierung der Ausgabegruppen
in einem VLIW-Paket, wie einem VLIW-Paket 100, erörtert. Wie
in 1 dargestellt, werden acht einzelne Befehle im
VLIW-Paket 100 in Befehls-Slots 102 bis 116 gestellt.
Genauer wird ein Befehl 0 in einen Befehls-Slot 102 gestellt, ein Befehl
1 wird in einen Befehls-Slot 104 gestellt, ein Befehl 2 wird
in einen Befehls-Slot 106 gestellt, ein Befehl 3 wird in
einen Befehls-Slot 108 gestellt, ein Befehl 4 wird in einen
Befehls-Slot 110 gestellt, ein Befehl 5 wird in einen Befehls-Slot 112 gestellt,
ein Befehl 6 wird in einen Befehls-Slot 114 gestellt und
ein Befehl 7 wird in einen Befehls-Slot 116 gestellt.
-
In
diesem bekannten Verfahren zur Identifizierung der Ausgabegruppen
im VLIW-Paket 100 wird ein für diesen Zweck vorgesehenes
bzw. reserviertes Bit in jedem Befehls-Slot 102 bis 116 verwendet,
um die verschiedenen Ausgabegruppen im VLIW-Paket zu identifizieren. In dem in 1 dargestellten
Beispiel ist das für
diesen Zweck verwendete reservierte Bit durch eine gestrichelte
Linie isoliert. Beispielsweise zeigt der Befehls-Slot 102,
dass das reservierte Bit, das für
den Zweck der Identifizierung der Ausgabegruppe, zu welcher der
Befehl 0 gehört, verwendet
wird, eine „0" ist. Ebenso zeigen
die Befehls-Slots 104, 106 und 108, dass
die jeweiligen reservierten Bits, die für den Zweck der Identifizierung der
Ausgabegruppen, zu denen die Befehle 1, 2 und 3 jeweils gehören, verwendet
werden, alle „0" sind. Der Befehls-Slot 110 zeigt,
dass das reservierte Bit, das für
den Zweck der Identifizierung der Ausgabegruppe, zu welcher der
Befehl 5 gehört,
verwendet wird, eine „0" ist. Schließlich zeigen
die Befehls-Slots 114 und 116, dass die jeweiligen
reservierten Bits, die für
den Zweck der Identifizierung der Ausgabegruppen, zu denen die Befehle
6 und 7 jeweils gehören, verwendet
werden, beide „1" sind.
-
Gemäß diesem
bekannten Verfahren zur Spezifizierung und Identifizierung von Ausgabegruppen
ist, wenn das reservierte Bit in einem bestimmten Befehl eine „0" ist, dieser Befehl
der letzte Befehl in der Ausgabegruppe. Wie im obigen Beispiel angegeben,
sind die Befehle 7 und 6 in der gleichen Ausgabegruppe wie der Befehl
5, welcher der letzte Befehl in der Ausgabegruppe ist. Der Grund
dafür ist,
dass das reservierte Bit im Befehl 5 eine „0" ist. Der Befehl 4 ist in der gleichen
Ausgabegruppe wie der Befehl 3, welcher der letzte Befehl in dieser
Ausgabegruppe ist. Der Grund dafür
ist, dass das das reservierte Bit im Befehl 3 eine „0" ist. Der Befehl
2 ist allein der erste und letzte Befehl in der Ausgabegruppe. Der Grund
dafür ist,
dass das reservierte Bit im Befehl 2 eine „0" ist. Ebenso ist der Befehl 1 für sich eine
Ausgabegruppe, und das gleiche gilt für den Befehl 0. Der Grund dafür ist, dass
die entsprechenden reservierten Bits in den Befehlen 1 und 0 beide „0" sind.
-
Wie
in 1 dargestellt, sind somit die Befehle 7 bis 5
in einer Ausgabegruppe, die von der Bezugszahl 118 bezeichnet
wird; die Befehle 4 und 3 sind in einer Ausgabegruppe, die von der
Bezugszahl 120 bezeichnet wird; der Befehl 2 ist für sich eine Ausgabegruppe,
die mit der Bezugszahl 124 bezeichnet wird, und der Befehl
0 ist eine Ausgabegruppe für
sich, die mit der Bezugszahl 126 bezeichnet wird. Somit
sind insge samt fünf
Ausgabegruppen in dem in 1 dargestellten Beispiel für ein VLIW-Paket
vorhanden.
-
Ein
Nachteil des oben beschriebenen bekannten Verfahrens zum Spezifizieren
und Identifizieren von Ausgabegruppen in einem VLIW-Paket ist, dass
der VLIW-Prozessor so entworfen werden muss, dass er der Möglichkeit
des Vorhandenseins von bis zu acht Ausgabegruppen in jedem VLIW-Paket
gerecht wird. Da jede Ausgabegruppe einen Taktzyklus für ihre Ausführung braucht,
muss der VLIW-Prozessor so entworfen werden, dass er der Möglichkeit
gerecht wird, dass es irgendetwas zwischen einem und acht Taktzyklen
dauern kann, um die Ausführung
aller einzelnen Befehle in einem einzigen VLIW-Paket abzuschließen. Offenkundig
besteht ein hoher Grad an Unsicherheit, ob ein VLIW-Paket, das aus
dem Speicher geholt wird, einen, zwei, drei, vier, fünf, sechs,
sieben der acht Taktzyklen für
seine Ausführung
braucht. Es folgt auch, dass der VLIW-Prozessor irgendetwas zwischen einem
und acht Taktzyklen „warten" muss, bevor der Prozessor
ein anderes Paket aus dem Speicher holen kann. Es ist auch offenkundig,
dass ein hoher Grad an Unsicherheit dahingehend besteht, wie viele Taktzyklen
der VLIW-Prozessor „warten" muss, bevor ein
neues VLIW-Paket aus dem Speicher geholt wird. Die Unsicherheiten
in Bezug auf die Zahl der Taktzyklen, die für die Ausführung eines VLIW-Pakets erforderlich
sind, und auch auf die Zahl der Taktzyklen, die ein VLIW-Prozessor warten
muss, erzeugt Schwierigkeiten beim Entwurf von Hardware-Einheiten,
wie der Abhol- und Decode-Logik, der Zeitvergabe-Logik und der Datenzuverlässigkeitsprüfungs-Logik
des VLIW-Prozessors.
-
Ein
weiterer Nachteil des oben beschriebenen bekannten Verfahrens ist,
dass acht Bits verwendet werden müssen, um die Ausgabegruppen
zu identifizieren, die im VLIW-Paket vorhanden sind. Anders ausgedrückt, auch
wenn nur eine oder zwei Ausgabegruppen in dem VLIW-Paket vorhanden sind,
müssen
acht Bits verwendet werden, um die Ausgabegruppen in dem VLIW-Paket
zu identifizieren. Die Tatsache, dass acht Bits verwendet werden, um
die Ausgabegruppen zu identifizieren, die in einem VLIW-Paket vorhanden sind,
bedeutet, dass alle acht einzelnen Befehle in einem VLIW-Paket abgetastet
werden müssen,
um die vorhandenen Gruppen in dem VLIW-Paket zu bestimmen. Der Grund
dafür ist,
dass der Wert jedes entsprechenden reservierten Bits in den einzelnen
Befehlen bekannt sein muss, um die Ausgabegruppen zu bestimmen,
die im VLIW-Paket vorhanden sind. Die Notwendigkeit, alle acht Befehle
in einem VLIW-Paket
jedes Mal abzutasten, wenn ein VLIW-Paket geholt wird, führt zu einer
unerwünschten
logischen Komplexität.
-
Aus
der obigen Erörterung
geht hervor, dass in der Technik ein Bedarf an einem VLIW-Paket-Packungsschema
besteht, das in mehr Sicherheit resultiert, was die mögliche Zahl
von Ausgabegruppen im VLIW-Paket betrifft. Außerdem ist es bevorzugt, weniger
als acht Bits zu verwenden, um alle möglichen Ausgabegruppen im VLIW-Paket zu bezeichnen,
und es ist auch wünschenswert,
die Notwendigkeit, alle Bits und Befehle in einem VLIW-Paket abzutasten, um
die Ausgabegruppen, die im VLIW-Paket vorhanden sind, zu identifizieren,
zu vermeiden.
-
WO-A-9919792 und
WO-A-0022515 sind
auf die Verarbeitung von Befehlen für digitale Prozessoren gerichtet.
WO-A-9919792 offenbart
Programmcode-Segmente, die in eine oder mehrere Befehlsgruppen geteilt
sind, wobei jede Gruppe in Befehlsbündel unterteilt ist, die N
Befehls-Slots zur Verarbeitung auf der Basis von Templates aufweisen.
-
WO-A-0022515 offenbart
ein VLIW-Befehlspaket, das mindestens sieben Befehls-Slots und ein Steuer-Template,
das eine Vielzahl von Ausgabegruppen im Paket spezifiziert, aufweist.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung ist eine Vorrichtung und ein Verfahren für die Ausgabegruppierung von
Befehlen in einem VLIW-Prozessor. Die Erfindung erlaubt eine, zwei
oder drei Ausgabegruppen (aber nicht mehr als drei Ausgabegruppen)
in jedem VLIW-Paket. Die Erfindung verwendet ein Template in jedem
VLIW-Paket. In einer Ausführungsform
der Erfindung umfasst das Template zwei Ausgabegruppen-Endemarken,
wobei jede Ausgabegruppen-Endemarke drei Bits umfasst. Die drei
Bits in der ersten Ausgabegruppen-Endemarke identifizieren den Befehl,
bei dem es sich um den letzten Befehl in der ersten Ausgabegruppe
handelt. Ebenso identifizieren die drei Bits in der zweiten Ausgabegruppen-Endemarke
den Befehl, bei dem es sich um den letzten Befehl in der zweiten
Ausgabegruppe handelt.
-
Jedweder
Befehl im VLIW-Paket, der nicht in die ausdrücklich definierten ersten und
zweiten Ausgabegruppen fällt,
wird in eine dritte Ausgabegruppe gestellt. Somit können drei
Ausgabegruppen mittels der beiden Ausgabegruppen-Endemarken identifiziert
werden. Unter Verwendung eines Template, das die beiden Ausgabegruppen-Endemarken enthält, kann
das VLIW-Paket eine, zwei oder drei Ausgabegruppen (aber nicht mehr
als drei Ausgabegruppen) aufweisen.
-
Die
vorliegende Erfindung schafft einen Prozessor, der aufweist:
eine
erste Vielzahl von Befehlen in einem ersten Befehlspaket im Prozessor;
eine
Vielzahl von Ausgabegruppen im ersten Paket; gekennzeichnet durch
ein
erstes Template im ersten Paket, wobei das erste Template eine zweite
Vielzahl von Endemarken aufweist, wobei die zweite Vielzahl von
Endemarken die erste Vielzahl von Befehlen in höchstens drei Ausgabegruppen
unterteilt, wobei jede der höchstens
drei Ausgabegruppen mindestens einen von der ersten Vielzahl von
Befehlen enthält,
und wobei die zweite Vielzahl von Marken jede der mindestens drei
Ausgabegruppen identifiziert.
-
In
einer Ausführungsform
der Erfindung weist das Template des VLIW-Pakets ein Chaining-Bit
bzw. Verkettungsbit auf. Das Verkettungsbit wird verwendet, um Befehle,
die nach dem letzten Befehl der letzten Ausgabegruppe eines ersten VLIW-Pakets
erscheinen, an die Befehle in der ersten Ausgabegruppe eines zweiten
VLIW-Pakets zu „ketten". Somit kann mithilfe
des Verkettungsbits eine kombinierte Ausgabegruppe, die Befehle
in den ersten und zweiten VLIW-Paketen enthält, gebildet werden.
-
In
einer Ausführungsform
verwendet die Erfindung eine Maskenerzeugungslogik zusammen mit anderen
logischen Blöcken,
um eine geeignete Maske zu erzeugen. Die erzeugte Maske wird verwendet, um
Befehle in einem VLIW-Paket, das zur gleichen Ausgabegruppe gehört, zur
Ausführung
im gleichen Taktzyklus durchzulassen.
-
Gemäß der vorliegenden
Erfindung wird die Unsicherheit in Bezug auf die Zahl der Blockzyklen, die
nötig sind,
um alle einzelnen Befehle in einem VLIW-Paket auszuführen, wesentlichen
verringert, da nicht mehr als drei Ausgabegruppen im VLIW-Paket
vorhanden sein können.
Außerdem
verwendet eine Ausführungsform
der Erfindung nur sechs Bits, d. h. zwei Endemarken, die jeweils
drei Bits aufweisen, um alle Ausgabegruppen in einem VLIW-Paket zu
identifizieren. Somit werden weniger als acht Bits verwendet, um
alle Ausgabegruppen in einem VLIW-Paket zu identifizieren, und es
besteht auch keine Notwendigkeit, das gesamte VLIW-Paket und jeden
einzelnen Befehl im VLIW-Paket abzutasten, um alle Ausgabegruppen,
die in einem VLIW-Paket vorhanden sind, zu identifizieren.
-
Die
Tatsache, dass die Ausgabegruppeninformationen vollständig auf
das Template im VLIW-Paket beschränkt sind, erlaubt es dem VLIW-Prozessor,
die Ausgabegruppeninformationen schnell mit einer einfachen Maske
zu extrahieren, statt die Ausgabegruppeninformationen in Bits aus verschiedenen
Bitpositionen im VLIW-Paket extrahieren zu müssen. Somit optimiert die Erfindung
die Schnelligkeit und den Leistungsverbrauch im Zusammenhang mit
verschiedenen Hardware-Einheiten des VLIW-Prozessors, wie der Abhol-
und Decode-Logik, der Zeitvergabe-Logik und der Datenzuverlässigkeitsprüfungs-Logik.
-
Außerdem kann
es gemäß der vorliegenden Erfindung
infolge der Begrenzung der Zahl an Ausgabegruppen in einem VLIW-Paket
auf maximal drei höchstens
drei Taktzyklen dauern, bis jedes VLIW-Paket ausgeführt ist.
Dies resultiert in einer einfacheren Abhol- und Decode-Logik, da
die Abhol- und Decode-Logik nicht für Situationen ausgelegt sein
muss, wo vier, fünf,
sechs, sieben oder acht Ausgabegruppen in einem einzigen VLIW-Paket
vorhanden sind.
-
Da
die Zahl der Ausgabegruppen in der vorliegenden Erfindung auf drei
begrenzt ist, ist ferner auch die Logik, die für die Verkettung von Befehlen von
einem ersten VLIW-Paket mit einer Ausgabegruppe in einem zweiten
VLIW-Paket verwendet wird, einfacher, da die Verkettung entweder
ab dem letzten Befehl in der zweiten Ausgabegruppe des ersten VLIW-Pakets
oder ab dem letzten Befehl in der dritten Ausgabegruppe im ersten
VLIW-Paket stattfinden kann. Jedoch könnte in anderen VLIW-Prozessor-Designs
die Verkettung ab dem letzten Befehl in der zweiten Ausgabegruppe,
dem letzten Befehl in der dritten Ausgabegruppe, dem letzten Befehl
in der vierten Ausgabegruppe, dem letzten Befehl in der fünften Ausgabegruppe,
dem letzten Befehl in der sechsten Ausgabegruppe oder dem letzten
Befehl in der siebten Ausgabegruppe stattfinden. Um diesem breiten
Bereich an Verkettungsmöglichkeiten
gerecht zu werden, sind die Hardware-Einheit für die Datenabhängigkeitsprüfung und
die Hardware für
die Weiterleitung von Befehlen an Ausführungseinheiten in diesen anderen
VLIW-Prozessoren komplexer und langsamer und verbrauchen mehr Leistung.
-
KURZE BESCHREIBUNG DER ZEICHNUNG
-
1 zeigt
ein Verfahren des Standes der Technik zum Identifizieren von Ausgabegruppen
in einem VLIW-Paket.
-
2 zeigt
allgemein eine Ausführungsform des
erfindungsgemäßen VLIW-Pakets
und ein Template, das Ausgabegruppen-Endemarken-Slots aufweist.
-
3 zeigt
ein spezielles Beispiel für
das erfindungsgemäße VLIW-Paket
und ein Template, das Ausgabegruppen-Endemarken-Slots aufweist.
-
4 zeigt
ein weiteres spezifisches Beispiel für das erfindungsgemäße VLIW-Paket
und ein Template, das Ausgabegruppen-Endemarken-Slots aufweist.
-
5 zeigt
spezifische Beispiele für
erste und zweite VLIW-Pakete, wo bestimmte Befehle im ersten VLIW-Paket
mit bestimmten Befehlen im zweiten VLIW-Paket verkettet sind, gemäß einer
Ausführungsform
der Erfindung:
-
6 zeigt
ein Beispiel für
ein Begriffs-Blockdiagramm zur Implementierung einer Ausführungsform
der Erfindung, wo das VLIW-Paket sieben Befehle enthält und wo
das Verkettungsbit gleich „0" ist.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Die
vorliegende Erfindung ist eine Vorrichtung und ein Verfahren für die Ausgabegruppierung von
Befehlen in einem VLIW-Prozessor. Die folgende Beschreibung enthält spezifische
Informationen, die sich auf die Implementierung der vorliegenden
Erfindung beziehen. Ein Fachmann wird erkennen, dass die vorliegende
Erfindung auch auf andere Weise als in der vorliegenden Erfindung
ausdrücklich
erörtert implementiert
werden kann. Außerdem
werden einige der spezifischen Einzelheiten der Erfindung nicht erörtert, um
die Erfindung nicht zu verunklaren. Die in der vorliegenden Anmeldung
nicht beschriebenen spezifischen Details sind Teil des Wissens eines Durchschnittsfachmanns.
-
Die
Zeichnung in der vorliegenden Anmeldung und ihre dazugehörige ausführliche
Beschreibung sind lediglich auf Ausführungsbeispiele der Erfindung
gerichtet. Um der Kürze
willen werden andere Ausführungsformen
der Erfindung, welche die Grundlagen der vorliegenden Erfindung
verwenden, in der vorliegenden Anmeldung nicht ausführlich beschrieben
und werden in der vorliegenden Zeichnung nicht ausdrücklich dargestellt.
-
2 stellt
eine Ausführungsform
der vorliegenden Erfindung dar. 2 zeigt
ein VLIW-Paket 200, das ein Template 202 und eine
Anzahl von einzelnen Befehlen im VLIW-Paket 200 enthält. Es sei darauf
hingewiesen, dass, um die Benennung zu erleichtern, jeder der „einzelnen
Befehle" in einem VLIW-Paket
in der vorliegenden Anmeldung auch einfach als „Befehl" bezeichnet wird. Außerdem wird ein VLIW-Paket,
wie ein VLIW-Paket 200, im vorliegenden Beispiel auch als „Befehlspaket" bezeichnet. Die
Erfindung ist flexibel, was die zulässige Zahl von einzelnen Befehlen
im VLIW-Paket betrifft.
Beispielsweise darf das VLIW-Paket vier oder mehr einzelne Befehle
aufweisen. In dem spezifischen Bespiel, das in 2 dargestellt
ist, weist das VLIW-Paket 200 sieben
einzelne Befehle auf. Diese einzelnen Befehle sind der Befehl 0
im Befehls-Slot 204, der Befehl 1 im Befehls-Slot 206,
der Befehl 2 im Befehls-Slot 208, der Befehl 3 im Befehls-Slot 210,
der Befehl 4 im Befehls-Slot 212, der Befehl 5 im Befehls-Slot 214 und der
Befehl 6 im Befehls-Slot 216.
-
In
dem in 2 dargestellten Ausführungsbeispiel umfasst das
Template 202 16 Bits. Es sei jedoch klargestellt, dass
die Zahl der Bits im Template 202 eine Frage des Designs
ist und variiert werden kann, ohne vom Bereich der vorliegenden
Erfindung abzuweichen. Beispielsweise kann das Template 202 fünf Bits,
acht Bits oder 24 Bits oder mehr umfassen. Außerdem besteht in dem Ausführungsbeispiel
der Erfindung, das in 2 dargestellt ist, jeder Befehl
0 bis 6 ebenfalls aus 16 Bits. Die Zahl der Bits in den einzelnen
Befehlen 0 bis 6 ist jedoch eine Frage des Designs und kann sich
zwischen unterschiedlichen VLIW-Prozessoren unterscheiden. Beispielsweise kann
jeder einzelne Befehl 0 bis 6 aus 16 Bits, 32 Bits oder 41 Bits
bestehen. Obwohl außerdem
einige der einzelnen Befehle in einem bestimmten VLIW-Paket eine
bestimmte Länge
aufweisen können,
können andere
einzelne Befehle im gleichen VLIW-Paket eine andere Länge aufweisen.
Beispielsweise kann zwar einer der einzelnen Befehle in einem bestimmten
VLIW-Paket 16 Bits lang sein, aber ein anderer einzelner Befehl
im gleichen VLIW-Paket kann 32 Bits lang sein.
-
2 zeigt
auch eine vergrößerte Ansicht des
Template 202. Wie in 2 zu sehen,
weist das Template 202 einen ersten „Ausgabegruppen-Endemarken"-Slot 224 und
einen zweiten „Ausgabegruppen-Endemarken"-Slot 226 und
einen „Verkettungsbit"-Slot 228 auf.
Im Ausführungsbeispiel
der Erfindung, das in 2 dargestellt ist, ist jeder
der ersten und zweiten Ausgabegruppen-Endemarken-Slots 224 und 226 drei
Bits lang. Jedoch ist die Zahl der Bits in jedem Ausgabegruppen-Endemarken-Slot eine
Frage des Designs und kann für
unterschiedliche VLIW-Prozessoren verschieden sein. Ein Verkettungsbit-Slot 228 besteht
in der Regel aus einem einzigen Bit.
-
Es
sei darauf hingewiesen, dass gemäß der vorliegenden
Erfindung ein VLIW-Paket
in mehr als drei Ausgabegruppen unterteilt sein kann. Somit verringert
die vorliegende Erfindung die Unsicherheit und die damit zusammenhängenden
Design-Probleme, die mit der Unsicherheit zusammenhängen, wie viele
Taktzyklen ein bestimmtes VLIW-Paket für seine Ausführung benötigt, erheblich.
Wie nachstehend ausführlicher
erläutert,
enthält
das Template 202 im VLIW-Paket 200 Informationen,
die verwendet werden können,
um das VLIW-Paket in eine, zwei oder drei Ausgabegruppen, aber in
nicht mehr als drei Ausgabegruppen zu unterteilen. Die erste Ausgabegruppen-Endemarke
im Slot 224 des Template 202 zeigt an, welche
einzelnen Befehle im VLIW-Paket 200 sich
in der ersten Ausgabegruppe befinden, während die zweite Ausgabegruppen-Endemarke
im Slot 226 des Template 202 anzeigt, welche einzelnen
Befehle im VLIW-Paket 200 sich in der zweiten Ausgabegruppe
befinden. Die übrigen
Befehle im VLIW-Paket 200, falls vorhanden, wären dann
in der dritten Ausgabegruppe. Somit ist eine eigene Ausgabegruppen-Endemarke
zur Identifizierung, welche einzelnen Befehle im VLIW-Paket 200 sich
in der dritten Ausgabegruppe befinden, nicht nötig. Wie nachstehend ausführlicher
erläutert,
macht es die Erfindung unter Verwendung des obigen Schemas möglich, dass
das VLIW-Paket 200 eine, zwei oder drei Ausgabegruppen,
aber nicht mehr als drei Ausgabegruppen aufweist.
-
Nun
wird mit Bezug auf 3 ein spezifisches Beispiel
zur Erläuterung
der vorliegenden Ausführungsform
der Erfindung erörtert. 3 zeigt
ein VLIW-Paket 300, das einen Template-Slot 302 und Befehls-Slots 304, 306, 308, 310, 312, 314 und 316 aufweist.
Wie im VLIW-Paket 300 in 3 zu sehen, befindet
sich der Befehl 0 im Befehls-Slot 304, der Befehl 1 im
Befehls-Slot 306, der Befehl 2 im Befehls-Slot 308, der
Befehl 3 im Befehls-Slot 310, der Befehl 4 im Befehls-Slot 312,
der Befehl 5 im Befehls-Slot 314 und der Befehl 6 im Befehls-Slot 316. Wie
in dem in 2 dargestellten Beispiel umfasst das
Template 302 im VLIW-Paket 300 16 Bits, während jeder
einzelne Befehl 0 bis 6 ebenfalls 16 Bits umfasst.
-
3 zeigt
auch, dass das Template 302 einen ersten Ausgabegruppen-Endemarken-Slot 324, einen
zweiten Ausgabegruppen-Endemarken-Slot 326 und einen Verkettungsbit-Slot 328 aufweist.
Wie in 2 ist in dem in 3 dargestellten
Beispiel jeder Ausgabegruppen-Endemarken-Slot 324 oder 326 drei
Bits breit, während
der Verkettungsbit-Slot 328 ein Bit breit ist. In dem in 3 dargestellten
Beispiel enthält
der erste Ausgabegruppen-Endemarken-Slot 324 Bits „011" (d. h. eine dezimale
3), während
der zweite Ausgabegruppen-Endemarken-Slot 326 Bits „101" (d. h. eine dezimale
5) enthält.
Wie im Template 302 dargestellt, enthält der Verkettungsbit-Slot 328 eine „0". Das tatsächliche
Bitmuster in jedem Ausgabegruppen-Endemarken-Slot wird in der vorliegenden
Anmeldung als Ausgabegruppen-Endemarke oder einfach als „Endemarke" bezeichnet.
-
Weiter
mit diesem Beispiel – die
drei Bits, die in der ersten Ausgabegruppen-Endemarke 324 enthalten
sind, d. h. „011" (oder dezimal 3),
zeigen an, dass der dritte Befehl im VLIW-Paket 300 das „Ende" der ersten Ausgabegruppe
im VLIW-Paket 300 ist. Anders ausgedrückt, die Ausgabegruppen-Endemarke 324 zeigt
an, dass der Befehl 0 im Befehls-Slot 304, der Befehl 1
im Befehls-Slot 306 und der Befehl 2 im Befehls-Slot 308 sich
in der ersten Ausgabegruppe befinden. Die erste Ausgabegruppe, die
Befehle 0 bis 2 enthält,
wird in 3 allgemein mit dem Bezugszeichen 318 bezeichnet.
Ebenso zeigen die drei Bits, die in der zweiten Ausgabegruppen-Endemarke 326 enthalten
sind, d. h. „101" (oder dezimal 5),
an, dass der fünfte
Befehl im VLIW-Paket 300 das „Ende" der zweiten Ausgabegruppe im VLIW-Paket 300 ist.
Anders ausgedrückt,
die Ausgabegruppen-Endemarke 326 zeigt an, dass der Befehl
3 im Befehls-Slot 310 und der Befehl 4 im Befehls-Slot 312 sich
in der zweiten Ausgabegruppe befinden. Die zweite Ausgabegruppe,
welche die Befehle 3 und 4 enthält,
wird in 3 allgemein mit dem Bezugszeichen 320 bezeichnet.
Obwohl im Template 302 für die dritte Ausgabegruppe keine
Endemarke vorhanden ist, gehören
gemäß der Erfindung
die übrigen Befehle
im VLIW-Paket 300 zur dritten Ausgabegruppe. Anders ausgedrückt, der
Befehl 5 im Befehls-Slot 314 und der Befehl 6 im Befehls-Slot 316 bilden
die dritte Ausgabegruppe. Die dritte Ausgabegruppe, welche die Befehle
5 und 6 enthält,
wird in 3 allgemein mit der Bezugszahl 322 bezeichnet.
-
Somit
ist in dem speziellen Beispiel, das mit Bezug auf 3 angegeben
ist, das VLIW-Paket 300 in drei Ausgabegruppen unterteilt.
Eine erste Ausgabegruppe, welche die Befehle 0 bis 2 umfasst, eine zweite
Ausgabegruppe, welche die Befehle 3 und 4 umfasst, und eine dritte
Ausgabegruppe, welche die Befehle 5 und 6 umfasst. Gemäß diesem
Beispiel können
die Befehle 0 bis 2 an ihre jeweiligen Ausführungseinheiten weitergeleitet
werden und in einem ersten Taktzyklus ausgeführt werden. Ebenso können die
Befehle 3 und 4 zu ihren jeweiligen Ausführungseinheiten weitergeleitet
werden und können
in einem zweiten Taktzyklus ausgeführt werden. In einem dritten
Taktzyklus können
die Befehle 5 und 6 an ihre jeweiligen Ausführungseinheiten weitergeleitet und
ausgeführt
werden. Somit würde
in diesem Beispiel die Ausführung
aller einzelnen Befehle 0 bis 6 im VLIW-Paket 300 drei
Taktzyklen dauern.
-
Es
sei darauf hingewiesen, dass die vorliegende Erfindung für das Überschreiten
von Paketgrenzen und das Kombinieren von einzelnen Befehlen in einem
ersten VLIW-Paket
mit einzelnen Befehlen in einem zweiten (d. h. einem folgenden) VLIW-Paket,
um eine Ausgabegruppe zu bilden, ausgelegt ist. Anders ausgedrückt, einer
oder mehrere Befehle in einem ersten VLIW-Paket können mit
einzelnen Befehlen in einem zweiten VLIW-Paket „verkettet" werden, um eine Ausgabegruppe zu bilden.
In dem speziellen Beispiel von 3 ist das
Verkettungsbit, das im Verkettungsbit-Slot 328 im Template 302 enthalten
ist, eine „0". Somit liegt keine
Verkettung eines der einzelnen Befehle im VLIW-Paket 300 mit
einem der einzelnen Befehle in einem nachfolgenden VLIW-Paket vor.
Die Art und Weise, wie das Verkettungsbit verwendet wird, um einen
oder mehrere einzelne Befehle in einem ersten VLIW-Paket mit einem
oder mehreren Befehlen in einem zweiten VLIW-Paket zu „verketten", wird in einem späteren Abschnitt
der vorliegenden Anmeldung erläutert,
wo das Verkettungsbit eine „1" ist.
-
Mit
Bezug auf 4 wird nun ein weiteres spezifisches
Beispiel zur Erläuterung
der vorliegenden Ausführungsform
der Erfindung erörtert. 4 zeigt
ein VLIW-Paket 400,
das einen Template-Slot 402 und Befehls-Slots 404, 406, 408 und 410 aufweist.
Wie im VLIW-Paket 400 in 4 zu sehen
ist, befindet sich der Befehl 0 im Befehls-Slot 404, der Befehl
1 im Befehls-Slot 406, der Befehl 2 im Befehls-Slot 408 und
der Befehl 3 im Befehls-Slot 410. Wie bei den Beispielen,
die in den 2 und 3 dargestellt
sind, umfasst das Template 402 im VLIW-Paket 400 16
Bits. Anders als in den in den 2 und 3 dargestellten
Beispielen sind jedoch die Befehle 0 bis 2 im VLIW-Paket 400 „lange" Befehle, die jeweils
32 Bits umfassen, während
der Befehl 3 nur 16 Bits umfasst.
-
4 zeigt
auch, dass das Template 402 einen ersten Ausgabegruppen-Endemarken-Slot 412, einen
zweiten Ausgabegruppen-Endemarken-Slot 414 und einen Verkettungsbit-Slot 416 aufweist.
In dem in 4 dargestellten Beispiel enthält der erste Ausgabegruppen-Endemarken-Slot 412 Bits „110" (d. h. eine dezimale
6), während
der zweite Ausgabegruppen-Endemarken-Slot 414 Bits „111" (d. h. eine dezimale
7) enthält.
Wie im Template 402 dargestellt, enthält der Verkettungsbit-Slot 416 eine „0".
-
Weiter
mit diesem Beispiel – die
drei Bits, die in der ersten Ausgabegruppen-Endemarke 412 enthalten sind,
d. h. „110" (oder dezimal 6),
zeigen an, dass ein kurzer sechster Befehl, der dem langen dritten
Befehl im VLIW-Paket 400 entspricht, das „Ende" der ersten Ausgabegruppe
im VLIW-Paket 400 darstellt. Anders ausgedrückt, die
Ausgabegruppen-Endemarke 412 zeigt an, dass ein langer
Befehl 0 im Befehls-Slot 404, ein langer Befehl 1 im Befehls-Slot 406 und
ein langer Befehl 2 im Befehls-Slot 408 sich in der ersten
Ausgabegruppe befinden. Die erste Ausgabegruppe, die lange Befehle
0 bis 2 enthält, wird
in 4 allgemein mit dem Bezugszeichen 418 bezeichnet.
Ebenso zeigen die drei Bits, die in der zweiten Ausgabegruppen-Endemarke 414 enthalten sind,
d. h. „111" (oder dezimal 7),
an, dass der siebte kurze Befehl, der dem vierten Befehl im VLIW-Paket 400 entspricht,
das „Ende" der zweiten Ausgabegruppe
im VLIW-Paket 400 ist. Anders ausgedrückt, die Ausgabegruppen-Endemarke 414 zeigt an,
dass der (kurze) Befehl 3 im Befehls-Slot 420 sich in der zweiten
Ausgabegruppe befindet. Die zweite Ausgabegruppe, die nur drei Befehle
3 enthält,
wird in 4 allgemein mit der Bezugszahl 420 bezeichnet. Obwohl
im Template 402 für
die dritte Ausgabegruppe keine Endemarke vorhanden ist, gehören gemäß der Erfindung
jegliche verbliebenen Befehle im VLIW-Paket 400 zur dritten
Ausgabegruppe. Jedoch ist der Befehl 3 der letzte Befehl im VLIW-Paket 400. Demgemäß weist
das VLIW-Paket 400 keine dritte Ausgabegruppe auf und es
(d. h. das VLIW-Paket 400) besteht nur aus zwei Ausgabegruppen.
-
In
dem speziellen Beispiel, das mit Bezug auf 4 angegeben
wird, ist das VLIW-Paket 400 in zwei Ausgabegruppen unterteilt.
Eine erste Ausgabegruppe, die lange Befehle 0 bis 2 enthält, und
eine zweite Ausgabegruppe, die einen kurzen Befehl 3 enthält. Gemäß diesem
Beispiel können
die langen Befehle 0 bis 2 an ihre jeweiligen Ausführungseinheiten
weitergeleitet und in einem ersten Taktzyklus ausgeführt werden.
Ebenso kann der kurze Befehl 3 an seine entsprechende Ausführungseinheit
weitergeleitet und in einem zweiten Taktzyklus ausgeführt werden.
Somit würde
in diesem Beispiel die Ausführung
aller einzelnen Befehle 0 bis 3 im VLIW-Paket 400 zwei
Taktzyklen dauern.
-
Wie
in dem Beispiel, das mit Bezug auf 3 angegeben
ist, ist in dem speziellen Beispiel, das in 4 angegeben
ist, das Verkettungsbit, das im Verkettungsbit-Slot 416 im Template 402 enthalten
ist, eine „0". Somit liegt keine
Verkettung irgendeines einzelnen Befehls im VLIW-Paket 400 mit
irgendeinem der einzelnen Befehle in einem folgenden VLIW-Paket
vor. Die Art und Weise, wie das Verkettungsbit verwendet wird, um
einen oder mehrere einzelne Befehle in einem ersten VLIW-Paket mit
einem oder mehreren einzelnen Befehlen in einem zweiten VLIW-Paket
zu „verketten", wird im folgenden
Beispiel erläutert.
-
Unter
Bezugnahme auf 5 wird ein weiteres spezifisches
Beispiel zur Erläuterung
der vorliegenden Ausführungsform
der Erfindung erörtert.
Anders als in den Beispielen, die mit Bezug auf die 3 und 4 erörtert werden,
ist im Beispiel, das mit Bezug auf 5 erörtert wird,
das Verkettungsbit gleich „1". 5 zeigt,
dass das VLIW-Paket 500 einen Template-Slot 502 und
Befehls-Slots 504, 506, 508, 510 und 512 enthält. Wie
im VLIW-Paket 500 in 5 zu sehen,
befindet sich der lange Befehl 0 im Befehls-Slot 504, der
lange Befehl 1 im Befehls-Slot 506, der kurze Befehl 2
im Befehls-Slot 508, der kurze Befehl 3 im Befehls-Slot 510 und
der kurze Befehl 4 im Befehls-Slot 512. Das Template 502 im VLIW-Paket 500 umfasst
16 Bits, während
jeder einzelne der langen einzelnen Befehle 0 und 1 32 Bits umfasst
und jeder einzelne der kurzen einzelnen Befehle 2 bis 4 16 Bits
umfasst.
-
5 zeigt
auch, dass das Template 502 einen ersten Ausgabegruppen-Endemarken-Slot 514, einen
zweiten Ausgabegruppen-Endemarken-Slot 516 und einen Verkettungsbit-Slot 518 aufweist.
In dem in 5 dargestellten Beispiel enthält der erste Ausgabegruppen-Endemarken-Slot 514 Bits „100" (d. h. eine dezimale
4), während
der zweite Ausgabegruppen-Endemarken-Slot 516 Bits „000" enthält. Wie
im Template 502 dargestellt, enthält der Verkettungsbit-Slot 518 eine „1".
-
Da
das Verkettungsbit in dem vorliegenden Beispiel eine „1" ist, müssen bestimmte
einzelne Befehle im VLIW-Paket 500 und bestimmte andere
einzelne Befehle im nachfolgenden VLIW-Paket, das in 5 als
VLIW-Paket 550 dargestellt ist, in eine kombinierte Ausgabegruppe
gestellt werden. Gemäß der vorliegenden
Erfindung wird eine Ausgabegruppe, die ganz auf das VLIW-Paket 500 beschränkt ist, von
einer Endemarke identifiziert, die einen der Befehle im VLIW-Paket 500 als
letzten Befehl in der Ausgabegruppe identifiziert. Im vorliegenden
Beispiel zeigt der erste Ausgabegruppen-Endemarken-Slot 514 an,
dass der mindestens eine Befehl in der ersten Ausgabegruppe ein
kurzer vierter Befehl ist, der dem langen zweiten Befehl im VLIW-Paket 500,
d. h. dem Befehl 1 im VLIW-Paket 500, entspricht. Somit
besteht die erste Ausgabegruppe, die ganz auf das VLIW-Paket 500 beschränkt ist,
aus einzelnen langen Befehlen 0 und 1. Lange Befehle 0 und 1 im
VLIW-Paket 500 werden in 5 allgemein durch
die Bezugszahl 520 bezeichnet.
-
Gemäß der Erfindung
müssen,
wenn eine Ausgabegruppen-Endemarke „000" ist, alle Befehle nach dem letzten
Befehl in der vorangehenden Ausgabegruppe eines VLIW-Pakets mit
Befehlen in einem folgenden VLIW-Paket verkettet werden. Im vorliegenden
Beispiel enthält
die zweite Ausgabegruppen-Endemarke im VLIW-Paket 500 (die
sich im Slot 516 des Template 502 befindet) Bits „000", um anzuzeigen,
dass alle Befehle nach dem letzten Befehl in der ersten Ausgabegruppe
im VLIW-Paket 500 mit bestimmten Befehlen im VLIW-Paket 550 verkettet werden
müssen.
Somit müssen
Befehle im VLIW-Paket 500, die nach dem letzten Befehl
der ersten Ausgabegruppe erscheinen, d. h. Befehle im VLIW-Paket 500,
die nach dem Befehl 1 erscheinen, mit bestimmten anderen Befehlen
im VLIW-Paket 550 verkettet werden. Daher müssen kurze
Befehle 2, 3 und 4 im VLIW-Paket 500 mit bestimmten anderen
Befehlen im VLIW-Paket 550 verkettet
werden, um eine kombinierte Ausgabegruppe zu bilden.
-
Weiter
mit dem vorliegenden Beispiel – 5 zeigt,
dass das VLIW-Paket 550 einen Template-Slot 552 und
Befehls-Slots 554, 556, 558 und 560 aufweist.
Wie im VLIW-Paket 550 in 5 zu sehen
ist, befindet sich der kurze Befehl 0 im Befehls-Slot 554, der lange Befehl
1 im Befehls-Slot 556, der lange Befehl 2 im Befehls-Slot 558 und
der lange Befehl 3 im Befehls-Slot 560. Das Template 552 im
VLIW-Paket 550 umfasst 16 Bits, während der einzelne kurze Befehl
0 ebenfalls 16 Bits umfasst. Jedoch umfasst in dem Beispiel für ein VLIW-Paket 550,
das in 5 dargestellt ist, jeder der einzelnen langen
Befehle 1 bis 3 32 Bits.
-
5 zeigt
ein Template 552 mit einem ersten Ausgabegruppen-Endemarken-Slot 562,
einem zweiten Ausgabegruppen-Endemarken-Slot 564 und einem
Verkettungsbit-Slot 566. In dem in 5 dargestellten
Beispiel enthält
der erste Ausgabegruppen-Endemarken-Slot 562 Bits „001" (d. h. eine dezimale
1), während
der zweite Ausgabegruppen-Endemarken-Slot 564 Bits „111" (d. h. eine dezimale
7) enthält.
Wie im Template 552 dargestellt, enthält der Verkettungsbit-Slot 566 eine „0".
-
Da
der erste Ausgabegruppen-Endemarken-Slot 562 Bits „001" enthält, ist
der erste Befehl im VLIW-Paket 550 (d. h. der kurze Befehl
0) auch der letzt Befehl in der ersten Ausgabegruppe des VLIW-Pakets 550.
Da das Verkettungsbit im vorangehenden VLIW-Paket, d. h. im VLIW-Paket 500,
jedoch gleich „1" war, enthält die erste
Ausgabegruppe des VLIW-Pakets 550 zusätzlich zum kurzen Befehl 0
des VLIW-Pakets 550 diejenigen Befehle im VLIW-Paket 500,
die nicht zur letzten Ausgabegruppe des VLIW-Pakets 500 gehören. Somit
besteht die erste Ausgabegruppe des VLIW-Pakets 550 aus
kurzen Befehlen 2, 3 und 4 des VLIW-Pakets 500 zusätzlich zum
kurzen Befehl 0 des VLIW-Pakets 550. Kurze Befehle 2, 3
und 4 im VLIW-Paket 500 werden in 5 allgemein
mit der Bezugszahl 522 bezeichnet, während der kurze Befehl 0 im
VLIW-Paket 550 allgemein
mit der Bezugszahl 568 bezeichnet ist.
-
Wie
im Template 552 zu sehen ist, enthält der zweite Ausgabegruppen-Endemarken-Slot
Bits „111" (d. h. eine dezimale
7). Somit endet die zweite Ausgabegruppe mit einem kurzen siebten
Befehl, der dem langen letzten Befehl (d. h. dem langen Befehl 3)
im VLIW-Paket 550 entspricht. Somit ist die zweite Ausgabegruppe
im VLIW-Paket 550, die lange Befehle 1, 2 und 3 umfasst,
die letzte Ausgabegruppe in diesem Paket. Da das Verkettungsbit
im Slot 566 des Template 552 gleich „0" ist, werden außerdem lange Befehle
1, 2 und 3 in der zweiten (und letzten) Ausgabegruppe im VLIW-Paket 550 nicht
mit irgendwelchen Befehlen in einem nachfolgenden VLIW-Paket verkettet.
-
Somit
umfassen in dem mit Bezug auf 5 dargestellten
Beispiel die langen Befehle 0 und 1 im VLIW-Paket 500 eine
Ausgabegruppe. Da das Verkettungsbit im Template 502 des
VLIW-Pakets 500 gleich „1" ist, bilden kurze Befehle 2, 3 und
4 im VLIW-Paket 500 und ein kurzer Befehl 0 im VLIW-Paket 550 eine
eigene kombinierte Ausgabegruppe, und schließlich bilden lange Befehle
1, 2 und 3 im VLIW-Paket 550 eine noch weitere Ausgabegruppe. Gemäß diesem
Beispiel können
lange Befehle 0 und 1 im VLIW-Paket 500 an ihre jeweiligen
Ausführungseinheiten
weitergeleitet werden und in einem ersten Taktzyklus ausgeführt werden.
Kurze Befehle 2, 3 und 4 im VLIW-Paket 500 zusammen
mit einem kurzen Befehl 0 im VLIW-Paket 550 können zu
ihren jeweiligen Ausführungseinheiten
weitergeleitet werden und in einem zweiten Taktzyklus ausgeführt werden. Schließlich können lange
Befehle 1, 2 und 3 im VLIW-Paket 550 an ihre jeweiligen
Ausführungseinheiten
weitergeleitet werden und in einem dritten Taktzyklus ausgeführt werden.
-
Wie
oben erläutert,
ermöglicht
die Erfindung mittels eines Verkettungsbits im Template des VLIW-Pakets
die Überschreitung
von Paketgrenzen, so dass einzelne Befehle von einem ersten VLIW-Paket
und einzelne Befehle von einem zweiten VLIW-Paket gemeinsam eine kombinierte Ausgabegruppe
bilden können.
Die Fähigkeit,
eine kombinierte Ausgabegruppe unter Verwendung von Befehlen von
zwei verschiedenen VLIW-Paketen zu bilden, sorgt für eine größere Flexibilität bei der
Programmierung und Verwendung des VLIW-Prozessors und sorgt auch
für eine
größere Flexibilität der Architektur und
des logischen Designs des VLIW-Prozessors.
-
Aus
den mit Bezug auf die 3, 4 und 5 erörterten
Beispielen geht hervor, dass gemäß der vorliegenden
Erfindung in jedem VLIW-Paket eine, zwei oder drei Ausgabegruppen
(aber nicht mehr als drei Ausgabegruppen) vorhanden sein können. In dem
oben erörterten
Beispiel für
einen VLIW-Prozessor können
höchstens
sieben einzelne (kurze) Befehle in einem VLIW-Paket vorhanden sein.
In diesem VLIW-Prozessor-Beispiel wären, wenn der erste Ausgabegruppen-Endemarken-Slot
in einem VLIW-Paket-Template Bits „111" enthält, alle sieben einzelnen Befehle
im VLIW-Paket in
der ersten Ausgabegruppe, die in diesem speziellen VLIW-Paket auch
die einzige Ausgabegruppe wäre.
Wenn der erste Ausgabegruppen-Endemarken-Slot in einem VLIW-Paket-Template
eine binäre
Zahl unter „111" enthält und der
zweite Ausgabegruppen-Endemarken-Slot die binäre Zahl „111" enthält, dann wäre die zweite Ausgabegruppe
die letzt Ausgabegruppe im VLIW-Paket, und somit waren insgesamt
zwei Ausgabegruppen im VLIW-Paket.
-
Wenn
die ersten und zweiten Ausgabegruppen-Endmarken beide eine binäre Zahl
unter „111" sind und die zweite
Ausgabegruppen-Endmarke eine binäre
Zahl ist, die größer ist
als die erste Ausgabegruppen-Endmarke, gäbe es eine dritte Ausgabegruppe,
die diejenigen einzelnen Befehle enthält, die sich weder in der ersten
noch in der zweiten Ausgabegruppe befinden. Aus den obigen Beispielen
und Erörterungen
geht hervor, dass die Erfindung bis zu drei Ausgabegruppen, aber
nicht mehr als drei Ausgabegruppen in jedem VLIW-Paket erlaubt.
-
Aufgrund
der Tatsache, dass die Erfindung eine, zwei oder drei Ausgabegruppen
(aber nicht mehr als drei Ausgabegruppen) in jedem VLIW-Paket erlaubt,
herrscht eine wesentlich geringere Unsicherheit in Bezug auf die
Zahl der Taktzyklen, die nötig sind,
um alle einzelnen Befehle in einem VLIW-Paket auszuführen. Aufgrund
der verringerten Unsicherheit in Bezug auf die Zahl der Taktzyklen,
die nötig
sind, um alle einzelnen Befehle in einem VLIW-Paket auszuführen, können Hardware-Einheiten
wie die Abhol- und
Decode-Logik, die Zeitvergabe-Logik und die Datenzuverlässigkeitsprüfungs-Logik
des VLIW-Prozessors, leichter entworfen werden.
-
Aus
den obigen Erörterungen
und Beispielen geht auch hervor, dass das Ausführungsbeispiel der Erfindung,
das in der vorliegenden Anmeldung erörtert wird, nur sechs Bits
verwendet, um alle Ausgabegruppen zu identifizieren, die im VLIW-Paket
vorhanden sind. Dies steht im Gegensatz zu oben erörterten bekannten
Verfahren, die acht Bits benötigen,
um alle Ausgabegruppen im VLIW-Paket zu identifizieren. Außerdem benötigt die
Erfindung, anders als die oben erörterten Verfahren, keine Abtastung
aller Bits und Befehle im VLIW-Paket, um die Ausgabegruppen zu identifizieren,
die im VLIW-Paket vorhanden sind. Die Tatsache, dass eine solche „Abtastung" aller Bits und Befehle
im VLIW-Paket nicht notwendig ist, führt zu einer weiteren Verringerung
der Komplexität
der Logik.
-
In 6 ist
ein Beispiel und Begriffs-Blockdiagramm für die Implementierung der vorliegenden Erfindung
dargestellt. Für
einen Durchschnittsfachmann ist klar, dass die Erfindung auf mehrere
Weisen anders als im Beispiels-Blockdiagramm, das in 6 dargestellt
ist, implementiert werden kann. Außerdem wird im Blockdiagramm
von 6 ein Beispiels-VLIW-Paket 600 verwendet,
das sieben einzelne Befehle umfasst. Es ist kein gattungsgemäßes bzw.
allgemeines Blockdiagramm für
die Implementierung der Erfindung, wenn eine kleinere oder größere Zahl
von einzelnen Befehlen im VLIW-Paket
verwendet wird, dargestellt. Ein solches allgemeines Blockdiagramm ähnelt je doch
dem in 6 und kann von einem Durchschnittsfachmann angesichts
des in 6 dargestellten Blockdiagramms und der nachstehenden
zugehörigen
Erörterung
erstellt werden. Außerdem
wurde das in 6 dargestellte Begriffs-Blockdiagramm
auch vereinfacht, um ein Beispiel zu erörtern, wo das Verkettungsbit
im VLIW-Paket 600 gleich „0" ist.
-
Weiter
mit dem Beispiel und dem Konzept-Blockdiagramm von 6 – das Beispiels-VLIW-Paket 600 umfasst
Befehle 0 bis 6, die allgemein durch eine Bezugszahl 604 bezeichnet werden,
und ein Template, das allgemein mit der Bezugszahl 602 bezeichnet
wird. In dem Beispiels-VLIW-Paket 600 ist jeder einzelne
der Befehle 0 bis 6 16 Bits lang, während das Template 602 ebenfalls
16 Bits lang ist. Es ist gezeigt, dass das Template 602 einen
ersten Ausgabegruppen-Endemarken-Slot 603 und einen zweiten
Ausgabegruppen-Endemarken-Slot 605 und einen Verkettungsbit-Slot 607 aufweist.
Wie oben angegeben, enthält
in dem in der vorliegenden Anmeldung beschriebenen Beispiels-VLIW-Prozessor
jeder der ersten und zweiten Ausgabegruppen-Endemarken-Slots 603 und 605 drei
Bits, während
der Verkettungsbit-Slot 607 ein einziges Bit enthält.
-
Wie
in 6 dargestellt, sind die ersten und zweiten Ausgabegruppen-Endemarken-Slots 603 und 605 über eine
drei Bit breite Leitung 615 bzw. eine drei Bit breite Leitung 617 mit
einem 3-to-1-MUX 608 verkoppelt. Eine drei Bit breite Leitung 621 ist ebenfalls
mit dem 3-to-1-MUX 608 verkoppelt. Im vorliegenden Beispiel,
wo das VLIW-Paket 600 sieben einzelne Befehle aufweist,
gibt die Leitung 621 eine konstante binäre Zahl „111" (d. h. eine dezimale 7) an den 3-to-1-MUX 608 aus.
Ein erster Ausgabegruppen-Endemarken-Slot 603, ein zweiter
Ausgabegruppen-Endemarken-Slot 605 und der Verkettungsbit-Slot 607 sind über eine
drei Bit breite Leitung 615, eine drei Bit breite Leitung 617 bzw.
eine ein Bit breite Leitung 619 mit einer MUX-Steuerung
bzw. MUX Control 610 verkoppelt. Die MUX Control 610 gibt
ein Ausgabesignal über
eine drei Bit breite Leitung 633 an den 3-to-1-MUX 608 aus.
Der 3-to-1-MUX 608 gibt sein Ausgangssignal über eine drei
Bit breite Leitung 629 an eine Maskenerzeugungslogik 612 aus.
Die Maskenerzeugungslogik 612 gibt ein Ausgangssignal über eine
sieben Bit breite Leitung 631 an eine Befehlsauswahl-/Reformatierungs-/Verteilungs-Logik 614 aus.
Die Maskenerzeugungslogik 612 gibt auch über eine
sieben Bit breite Leitung 625 ein Ausgangssignal an Register 616 aus.
Die Register 616 geben wiederum über eine sieben Bit breite
Leitung 627 ein Ausgangssignal zurück an die Maskenerzeugungslogik 612.
Das VLIW-Paket 600 ist über
einen Bus 627 mit der Befehlsauswahl-/Reformatierungs-/Verteilungs-Logik 614 verkoppelt.
Schließlich
wird das Ausgangssignal von der Befehlsauswahl-/Reformatierungs-/Verteilungs-Logik 614 über den
Bus 635 an einen Datenweg des VLIW-Prozessors ausgegeben.
-
Im
Betrieb gibt die Leitung 615 die drei Bits im ersten Ausgabegruppen-Endemarken-Slot 603 an die
MUX Control 610 aus, während
die Leitung 617 die drei Bits im zweiten Ausgabegruppen-Endemarken-Slot 605 an
die MUX Control 610 ausgibt. Außerdem wird das Verkettungsbit
im Slot 607 über
die Leitung 619 an die MUX Control 610 ausgegeben.
Wie oben angegeben, ist das Begriffs-Blockdiagramm, das in 6 dargestellt
ist, auf ein Beispiel gerichtet, wo das Verkettungsbit eine „0" ist. Für den Zweck
des vorliegenden Beispiels sind die drei Bits im ersten Ausgabegruppen-Endemarken-Slot 603 „010" (d. h. eine dezimale
2), während
die drei Bits im zweiten Ausgabegruppen-Endemarken-Slot 605 „100" sind (d. h. eine
dezimale 4), und wie oben angegeben ist das Verkettungsbit im Verkettungsbit-Slot 607 eine „0".
-
Die
MUX Control 610 gibt während
eines ersten Taktzyklus eine binäre „001" auf einer drei Bit breiten
Leitung 633 an den 3-to-1-MUX 608 aus. Ansprechend
auf die binäre „001", die sie von der
MUX Control 608 empfängt,
wählt der
3-to-1-MUX 608 die „erste" Eingabe des 3-to-1-MUX
aus, bei der es sich um die Eingabe handelt, die auf der drei Bit
breiten Leitung 615 ausgegeben wird. Wie in 6 dargestellt,
ist die drei Bit breite Leitung 615 mit dem ersten Ausgabegruppen-Endemarken-Slot 603 verkoppelt und
gibt die drei Bits, die im ersten Ausgabegruppen-Endemarken-Slot 603 vorhanden
sind, als „erste" Eingabe an den 3-to-1-MUX 608 aus.
Somit werden während
des ersten Taktzyklus die drei Bits im ersten Ausgabegruppen-Endemarken-Slot 603 vom 3-to-1-MUX 608 ausgewählt und über die
drei Bit breite Leitung 629 an die Maskenerzeugungslogik 612 ausgegeben.
-
Die
Maskenerzeugungslogik 612 verwendet die drei Bits, die
auf der Leitung 629 ausgegeben werden, um eine Maske zu
erzeugen, mit der diejenigen Befehle eliminiert werden, die nicht
Teil der ersten Ausgabegruppe sind, und um diejenigen Befehle durchzulassen,
die Teil der ersten Ausgabegruppe sind. Im vorliegenden Beispiel
enthält
der erste Ausgabegruppen-Endemarken-Slot Bits „010" (d. h. eine dezimale 2). Wie oben angegeben,
werden während des
ersten Taktzyklus diese Bits (d. h. Bits „010") über
die drei Bit breite Leitung 629 an die Maskenerzeugungslogik 612 durchgelassen.
Ansprechend auf die binäre
Zahl, die über
die drei Bit breite Leitung 629 ausgegeben wird (d. h. „010"), und da im vorliegenden
Beispiel die Maskenerzeugungslogik 612 „weiß", dass insgesamt sieben einzelne Befehle
im VLIW-Paket 600 vorhanden sind, gibt die Maskenerzeugungslogik 612 eine
Siebenbit-Maske „0000011" auf der Leitung 631 an
die Befehlsauswahl-/Reformatierungs-/Verteilungs-Logik 614 aus.
Die Siebenbit-Maske „0000011" (deren zwei erste
Bits beide „1" sind) bewirkt, dass
die beiden ersten einzelnen Befehle im VLIW-Paket 600,
die den ersten zwei Bits in der Maske entsprechen, über den
Bus 635 zu einem Datenweg des VLIW-Prozessors durchgelassen
werden. Somit werden im ersten Taktzyklus einzelne Befehle 0 und
1 im VLIW-Paket 600 zu einem Datenweg des VLIW-Prozessors
durchgelassen, und somit werden die Befehle 0 und 1 als erste Ausgabegruppe
des VLIW-Pakets 600 ausgegeben.
-
Weiter
mit der Beschreibung des Beispiels-Konzept-Blockdiagramms in 6 – während eines
zweiten Taktzyklus gibt die MUX Control 610 eine binäre „010" auf der drei Bit
breiten Leitung 633 an den 3-to-1-MUX 608 aus.
Ansprechend auf die binäre „010", die von der MUX
Control 610 empfangen wird, wählt der 3-to-1-MUX 608 die „zweite" Eingabe des 3-to-1-MUX,
bei der es sich um die Eingabe handelt, die auf der drei Bit breiten
Leitung 617 ausgegeben wird, aus. Wie in 6 dargestellt,
ist die drei Bit breite Leitung 617 mit einem zweiten Ausgabegruppen-Endemarken-Slot 605 verkoppelt
und gibt die drei Bits, die im zweiten Ausgabegruppen-Endemarken-Slot 605 vorhanden
sind, als „zweite" Eingabe an den 3-to-1-MUX 608 aus.
Somit werden während
des zweiten Taktzyklus die drei Bits im zweiten Ausgabegruppen-Ende marken-Slot 605 vom
3-to-1-MUX 608 ausgewählt
und über
die drei Bit breite Leitung 629 an die Maskenerzeugungslogik 612 ausgegeben.
-
Die
Maskenerzeugungslogik 612 verwendet die drei Bits, die
auf der Leitung 629 ausgegeben werden, um eine Maske zu
erzeugen, um diejenigen Befehle zu eliminieren, die nicht Teil der
zweiten Ausgabegruppe sind, und um diejenigen Befehle, die Teil der
zweiten Ausgabegruppe sind, durchzulassen. Im vorliegenden Beispiel
enthält
der zweite Ausgabegruppen-Endemarken-Slot Bits „100" (d. h. eine dezimale 4). Wie oben angegeben,
werden während
des zweiten Taktzyklus diese Bits (d. h. die Bits „100") über die
drei Bit breite Leitung 629 an die Maskenerzeugungslogik 612 weitergegeben.
Ansprechend auf die binäre
Zahl, die über
die drei Bit-Leitung 629 ausgegeben wird (d. h. „100"), und da im vorliegenden Beispiel
die Maskenerzeugungslogik 612 „weiß", dass insgesamt sieben einzelne Befehle
im VLIW-Paket 600 vorhanden sind, gibt die Maskenerzeugungslogik 612 eine
Siebenbit-Maske „0001100" auf der Leitung 631 an
die Befehlsauswahl-/Reformatierungs-/Verteilungs-Logik 614 aus.
Die Siebenbit-Maske „0001100" (deren dritte und
vierte Bits beide „1" sind) bewirkt, dass
die einzelnen Befehle 2 und 3 im VLIW-Paket 600, die den
dritten und vierten Bits in der Maske entsprechen, über einen
Bus 635 zu einem Datenweg des VLIW-Prozessors durchgelassen werden.
Somit werden im zweiten Taktzyklus einzelne Befehle 2 und 3 im VLIW-Paket 600 zu
einem Datenweg des VLIW-Prozessors durchgelassen, und somit werden
Befehle 2 und 3 als zweite Ausgabegruppe des VLIW-Pakets 600 ausgegeben.
-
Weiter
mit der Beschreibung des Beispiels-Konzept-Blockdiagramms in 6 – während eines
dritten Taktzyklus gibt die MUX Control 610 eine binäre „100" auf der drei Bit
breiten Leitung 633 an den 3-to-1-MUX 608 aus.
Ansprechend auf die binäre „100", die er von der
MUX Control 610 empfängt,
wählt der
3-to-1-MUX 608 die „dritte" Eingabe des 3-to-1-MUX
aus, welche die Eingabe ist, die auf der drei Bit breiten Leitung 621 ausgegeben
wird. Im vorliegenden Beispiel, wo das VLIW-Paket sieben einzelne
Befehle aufweist, liefert die drei Bit breite Leitung 621 eine
konstante binäre „111" (d. h. eine dezimale
7) als „dritte" Eingabe des 3-to-1-MUX 608 and
den 3- to-1-MUX 608.
Somit werden während
des dritten Taktzyklus die drei Bits „111" über
die drei Bits breite Leitung 629 an die Maskenerzeugungslogik 612 ausgegeben.
-
Die
Maskenerzeugungslogik 612 verwendet die drei Bits, die
auf der Leitung 629 ausgegeben werden, um eine Maske zu
erzeugen, um diejenigen Befehle zu eliminieren, die nicht Teil der
dritten Ausgabegruppe sind, und um diejenigen Befehle, die Teil der
dritten Ausgabegruppe sind, durchzulassen. Wie oben angegeben, werden
während
des dritten Taktzyklus die drei Bits „111" über
die drei Bit breite Leitung 629 an die Maskenerzeugungslogik 612 weitergegeben.
Ansprechend auf diese binäre
Zahl, die über
die drei Bit-Leitung 629 ausgegeben wird (d. h. „111"), und da im vorliegenden
Beispiel die Maskenerzeugungslogik 612 „weiß", dass insgesamt sieben einzelne Befehle
im VLIW-Paket 600 vorhanden sind, gibt die Maskenerzeugungslogik 612 eine
Siebenbit-Maske „1110000" auf der Leitung 631 an
die Befehlsauswahl-/Reformatierungs-/Verteiler-Logik 614 aus.
Die Siebenbit-Maske „1110000" (deren fünfte, sechste
und siebte Bits „1" sind) bewirkt, dass
einzelne Befehle 4, 5 und 6 im VLIW-Paket 600, die jeweils fünften, sechsten
und siebten Bits in der Maske entsprechen, über einen Bus 635 zu
einem Datenweg des VLIW-Prozessors durchgelassen werden. Somit werden
im dritten Taktzyklus einzelne Befehle 4, 5 und 6 im VLIW-Paket 600 an
einen Datenweg des VLIW-Prozessors weitergegeben, und somit werden die
Befehle 4, 5 und 6 als dritte Ausgabegruppe des VLIW-Pakets 600 ausgegeben.
-
Wie
oben angegeben, erzeugt die Maskenerzeugungslogik 612 geeignete
Masken, die von der Befehlsauswahl-/Reformatierungs-/Verteiler-Logik 614 verwendet
werden, um die gewünschten
Befehlsausgabegruppen zu erzeugen. Wie ferner oben angegeben wurde,
empfängt
die Maskenerzeugungslogik 612 während des ersten Taktzyklus
die drei Bits „010" über die Leitung 629.
Da im vorliegenden Beispiel insgesamt sieben einzelne Befehle im VLIW-Paket
vorhanden sind, erzeugt die Maskenerzeugungslogik 612 das
Siebenbit-Muster „0000011" während des
ersten Taktzyklus. Dieses Siebenbit-Muster wird auf der Leitung 631 und
auch auf der Leitung 625 ausgegeben.
-
Die
Register 616 speichern das Siebenbitmuster, das von der
Maskenerzeugungslogik 612 auf der Leitung 625 ausgegeben
wird. Während
des zweiten Taktzyklus verwendet die Maskenerzeugungslogik 612 den
in den Registern 616 gespeicherten Wert, um zu bestimmen,
was der erste Befehl in der zweiten Ausgabegruppe sein sollte. Wie
oben erläutert,
identifiziert der 3-to-1-MUX 608 für die Maskenerzeugungslogik 612 über die
Leitung 629, welcher Befehl im VLIW-Paket 600 der
letzte Befehl in der zweiten Ausgabegruppe sein sollte. Jedoch muss auch
der erste Befehl in der zweiten Ausgabegruppe der Maskenerzeugungslogik 612 mitgeteilt
werden. Dies wird unter Verwendung der Register 616 durchgeführt, um
den letzten Befehl in der ersten Ausgabegruppe für die Maskenerzeugungslogik 612 über die Leitung 627 zu
identifizieren. Ebenso werden während
des dritten Taktzyklus die Register 616 auf ähnliche
Weise verwendet, um den letzten Befehl in der zweiten Ausgabegruppe
für die
Maskenerzeugungslogik 612 zu identifizieren, so dass der
erste Befehl in der dritten Ausgabegruppe der Maskenerzeugungslogik 612 bekannt
gegeben wird.
-
Wie
oben angegeben, wurde im Blockdiagramm von 6 ein Beispiels-VLIW-Paket verwendet,
das sieben einzelne Befehle umfasst. Ein allgemeines Blockdiagramm
für die
Implementierung der Erfindung, wenn eine größere oder kleinere Anzahl an
einzelnen Befehlen im VLIW-Paket verwendet wird, ist nicht dargestellt.
Ein solches Blockdiagramm ähnelt
jedoch dem von 6 und kann von einem Durchschnittsfachmann
angesichts des in 6 dargestellten Blockdiagramms
und der obigen zugehörigen
Erörterung
implementiert werden. Außerdem wurde
das in 6 dargestellte Konzept-Blockdiagramm auch vereinfacht,
um ein Beispiel zu erörtern, wo
das Verkettungsbit im VLIW-Paket gleich „0" ist.
-
Die
Tatsache, dass die Ausgabegruppierungsinformationen ganz auf das
Template im VLIW-Paket beschränkt
ist, ermöglicht
es dem VLIW-Prozessor, die Ausgabegruppierungsinformationen schnell
mit einer einfachen Maske zu extrahieren, statt die Ausgabegruppierungsinformationen
in Bits von unterschiedlichen Bitpositionen im VLIW-Paket extrahieren
zu müssen.
In Designs, wo der VLIW-Prozessor gezwungen ist, die Ausgabegruppierungsinformationen
aus verschiedenen Bitpositionen im VLIW- Paket zusammenzusuchen, wird zusätzliche
Leistung verbraucht, da lange und kapazitivere Verbindungsleitungen
verwendet werden, um auf die verschiedenen Bitpositionen im VLIW-Paket zuzugreifen.
Aufgrund der größeren Verbindungskapazitanz
kommt es auch zu längeren
Verzögerungen bei
der Extrahierung von Ausgabegruppierungsinformationen, wenn diese
Informationen über
das VLIW-Paket verteilt sind, statt auf ein Template-Feld beschränkt zu sein.
Somit optimiert die Erfindung die Schnelligkeit und den Leistungsverbrauch
im Zusammenhang mit mehreren Hardware-Einheiten des VLIW-Prozessors,
wie der Abhol- und Decode-Logik, der Zeitvergabe-Logik und der Datenzuverlässigkeitsprüfungs-Logik.
-
Gemäß der vorliegenden
Erfindung kann infolge der Begrenzung der Zahl der Ausgabegruppen in
einem VLIW-Paket auf maximal drei jedes VLIW-Paket höchstens
drei Taktzyklen brauchen, um ausgeführt zu werden. Gemäß anderen
bekannten Designs kann ein VLIW-Paket maximal acht Taktzyklen für seine
Ausführung
brauchen, da die Zahl der Ausgabegruppen in jedem VLIW-Paket so
groß sein kann
wie die Zahl der Befehle; und die Zahl der Befehle in einem VLIW-Paket
kann immerhin 8 betragen. Dagegen können gemäß der Erfindung eine, zwei
oder drei Ausgabegruppen in einem bestimmten VLIW-Paket vorhanden
sein. Dies führt
zu einer einfacheren Abhol- und Decode-Logik, da die Abhol- und
Decode-Logik nicht für
Situationen ausgelegt sein muss, wo sich vier, fünf, sechs, sieben oder acht Ausgabegruppen
in einem einzigen VLIW-Paket befinden.
-
Da
die Zahl der Ausgabegruppen in der vorliegenden Erfindung auf drei
begrenzt ist, ist darüber hinaus
auch die Logik, die für
die Verkettung von Befehlen aus einem ersten VLIW-Paket mit einer
Ausgabegruppe in einem zweiten VLIW-Paket verwendet wird, einfacher,
da die Verkettung entweder ab dem letzten Befehl in der zweiten
Ausgabegruppe des ersten VLIW-Pakets oder ab dem letzten Befehl
in der dritten Ausgabegruppe des ersten VLIW-Pakets stattfindet.
Jedoch könnte
in anderen VLIW-Prozessor-Designs
die Verkettung auch ab dem letzten Befehl in der vierten Ausgabegruppe,
dem letzten Befehl in der fünften
Ausgabegruppe, dem letzten Befehl in der sechsten Ausgabegruppe
oder dem letzten Befehl in der siebten Ausgabegruppe stattfinden.
Um diesem breiten Bereich der Möglichkeiten
gerecht zu werden, sind die Hardware-Einheit für die Datenzuverlässigeitsprüfung und
die Hardware für
die Weiterleitung von Befehlen an die Ausführungseinheiten in diesen anderen
VLIW-Prozessoren komplexer und langsamer und verbrauchen mehr Leistung.
-
Aus
der obigen Beschreibung der Erfindung geht hervor, dass verschiedene
Verfahren verwendet werden können,
um die Idee der vorliegenden Erfindung zu implementieren, ohne von
deren Bereich abzuweichen. Außerdem
wurde die Erfindung zwar mit besonderem Bezug auf bestimmte Ausführungsformen
beschrieben, aber ein Durchschnittsfachmann wird erkennen, dass Änderungen
an Form und Einzelheiten vorgenommen werden können, ohne vom Bereich der
Erfindung abzuweichen. Die beschriebenen Ausführungsformen sollen in allen
Bereichen als erläuternd
und nicht als beschränkend
angesehen werden. Es sei auch klargestellt, dass die Erfindung nicht
auf die hierin beschriebenen speziellen Ausführungsformen beschränkt ist,
sondern dass viele Umordnungen, Modifikationen und Ersetzungen an
ihr vorgenommen werden können,
ohne vom Bereich der Erfindung abzuweichen.
-
Somit
wurden eine Vorrichtung und ein Verfahren zur Ausgabegruppierung
von Befehlen in einem VLIW-Prozessor beschrieben.
-
Der
Prozessor der Erfindung kann so sein, dass die erste Vielzahl von
Befehlen gleich sieben ist.
-
Der
Prozessor kann so sein, dass das Paket mindestens 128 Bits umfasst
und dass jeder aus der ersten Vielzahl von Befehlen mindestens 16
Bits umfasst.
-
Der
Prozessor kann so sein, dass jede aus der Vielzahl von Endemarken
mindestens drei Bits umfasst.
-
Der
Prozessor kann so sein, dass die Vielzahl von Endemarken zwei Endemarken
umfasst, wobei die beiden Endemarken jede von der zweiten Vielzahl
von Ausgabe gruppen im Paket identifizieren. Jede der beiden Endemarken
kann mindestens drei Bis umfassen, und die zweite Vielzahl von Ausgabegruppen
kann drei Ausgabegruppen umfassen.
-
Der
Prozessor kann so sein, dass die zweite Vielzahl von Ausgabegruppen
gleich sieben ist. Der Prozessor kann aufweisen:
eine erste
Vielzahl von Befehlen in einem ersten Befehlspaket des Prozessors;
eine
zweite Vielzahl von Befehlen in einem zweiten Befehlspaket des Prozessors;
und
ein erstes Paket-Template, wobei das erste Paket-Template
ein Verkettungsbit einschließt;
wobei
das Verkettungsbit bewirkt, dass eine dritte Vielzahl von Befehlen
im ersten Paket und eine vierte Vielzahl von Befehlen im zweiten
Paket in eine kombinierte Ausgabegruppe gestellt werden,
wobei
das erste Paket-Template jeden aus der dritten Vielzahl von Befehlen
in der kombinierten Ausgabegruppe identifiziert.
-
In
diesem Fall ist die erste Vielzahl von Befehlen in die dritte Vielzahl
und die fünfte
Vielzahl von Befehlen aufgeteilt, wobei die fünfte Vielzahl von Befehlen
in eine Vielzahl von ersten Paketausgabegruppen unterteilt ist.
-
Dieser
Prozessor kann so sein, dass die Vielzahl der ersten Paketausgabegruppen
mindestens drei erste Paketausgabegruppen umfasst.
-
Der
Prozessor kann so sein, dass die zweite Vielzahl an Befehlen in
die vierte Vielzahl und eine sechste Vielzahl von Befehlen unterteilt
ist, wobei die sechste Vielzahl von Befehlen in eine Vielzahl von zweiten
Paketausgabegruppen unterteilt ist.
-
In
diesem Fall umfasst die Vielzahl von zweiten Paketausgabegruppen
mindestens drei zweite Paketausgabegruppen.
-
Dieser
Prozessor kann so sein, dass das erste Paket-Template eine Vielzahl
von ersten Paketendemarken aufweist, wobei die Vielzahl aus ersten
Paketendemarken mindestens drei erste Paketausgabegruppen identifiziert.
-
In
diesem Fall umfasst jede der Vielzahl von ersten Paketendemarken
mindestens drei Bits, und jede von der Vielzahl von zweiten Paketendemarken umfasst
höchstens
drei Bits.
-
Dieser
Prozessor kann ferner ein zweites Paket-Template umfassen, wobei
das zweite Paket-Template eine Vielzahl von zweiten Paketendemarken
aufweist, wobei die Vielzahl von Paketendemarken mindestens drei
zweite Paketausgabegruppen identifiziert.
-
Dieser
Prozessor kann so sein, dass jede der ersten und zweiten Vielzahlen
gleich sieben ist.
-
Dieser
Prozessor kann auch so sein, dass jedes der ersten und zweiten Pakete
mindestens 128 Bits umfasst, und jeder von der ersten Vielzahl von Befehlen
und der zweiten Vielzahl von Befehlen mindestens 16 Bits umfasst.
-
Der
Prozessor kann umfassen:
eine erste Vielzahl von Befehlen in
einem Befehlspaket des Prozessors;
ein Template im Paket, wobei
das Template eine Vielzahl von Endemarken umfasst; und
eine
Maskenerzeugungslogik, wobei die Maskenerzeugungslogik eine erste
Maske während
eines ersten Taktzyklus erzeugt, wobei die erste Maske einer ersten
von der Vielzahl von Endemarken im Template entspricht; und
wobei
die erste Maske eine zweite Vielzahl von Befehlen im Paket auswählt, wobei
die zweite Vielzahl kleiner oder gleich der ersten Vielzahl ist,
wobei die zweite Vielzahl von Befehlen zu einer ersten Ausgabegruppe
gehört.
-
In
diesem Fall erzeugt die Maskenerzeugungslogik eine zweite Maske
in einem zweiten Taktzyklus, wobei die zweite Maske einer zweiten
von einer Vielzahl von Endemarken im Template entspricht; und
die
zweite Maske eine dritte Vielzahl von Befehlen im Paket auswählt, wobei
die dritte Vielzahl kleiner oder gleich der ersten Vielzahl ist,
wobei die dritte Vielzahl von Befehlen zu einer zweiten Ausgabegruppe
gehört.
-
Vorzugsweise
erzeugt die Maskenerzeugungslogik eine dritte Maske in einem dritten
Taktzyklus, wobei die dritte Maske einer dritten von der Vielzahl
von Endemarken im Template entspricht; und
die dritte Maske
wählt eine
vierte Vielzahl von Befehlen im Paket aus, wobei die vierte Vielzahl
kleiner oder gleich der ersten Vielzahl ist, wobei die vierte Vielzahl
von Befehlen zur dritten Ausgabegruppe gehört.
-
In
diesem Fall ist die erste Vielzahl gleich sieben.
-
Dieser
Prozessor kann so sein, dass das Paket mindestens 128 Bits umfasst,
und jeder von der ersten Vielzahl von Befehlen mindestens 16 Bits
umfasst.
-
Dieser
Prozessor kann auch so sein, dass jede von der Vielzahl von Endemarken
mindestens drei Bits umfasst.
-
Die
Erfindung schafft auch ein Verfahren, das die folgenden Schritte
umfasst:
Vorsehen einer Vielzahl von Endemarken in einem Template
in einem Paket von Befehlen in einem Prozessor;
Teilen einer
ersten Vielzahl von Befehlen im Paket in mindestens drei Ausgabegruppen,
wobei jede der drei Ausgabegruppen durch die Vielzahl von Endemarken
identifiziert wird.
-
Die
erste Vielzahl von Befehlen kann sieben Befehle umfassen, und die
Vielzahl von Endemarken kann zwei Endemarken oder drei Endemarken
umfassen.
-
Das
Verfahren kann so sein, dass das Paket mindestens 128 Bits umfasst
und jeder von der Vielzahl von Befehlen mindestens 16 Bits umfasst.
-
Dieses
Verfahren kann auch so sein, dass jede von der Vielzahl von Endemarken
mindestens drei Bits umfasst.