WO2003104987A2 - Verfahren zum codieren/decodieren von vliw cached befehlen - Google Patents

Verfahren zum codieren/decodieren von vliw cached befehlen Download PDF

Info

Publication number
WO2003104987A2
WO2003104987A2 PCT/DE2003/001748 DE0301748W WO03104987A2 WO 2003104987 A2 WO2003104987 A2 WO 2003104987A2 DE 0301748 W DE0301748 W DE 0301748W WO 03104987 A2 WO03104987 A2 WO 03104987A2
Authority
WO
WIPO (PCT)
Prior art keywords
hvliw
header
instruction
instruction word
fiw
Prior art date
Application number
PCT/DE2003/001748
Other languages
English (en)
French (fr)
Other versions
WO2003104987A3 (de
Inventor
Helge Betzinger
Yuhi Tang
Original Assignee
Philips Semiconductors Dresden Ag
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 Philips Semiconductors Dresden Ag filed Critical Philips Semiconductors Dresden Ag
Priority to AU2003257376A priority Critical patent/AU2003257376A1/en
Priority to JP2004511991A priority patent/JP3981117B2/ja
Priority to EP03756954A priority patent/EP1509842A2/de
Priority to US10/516,675 priority patent/US20050246515A1/en
Priority to DE10393298T priority patent/DE10393298D2/de
Publication of WO2003104987A2 publication Critical patent/WO2003104987A2/de
Publication of WO2003104987A3 publication Critical patent/WO2003104987A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Definitions

  • the invention relates to a method for controlling functional units in a processor, a sequence of primary instruction words originating from a translation of a program code being fractionated into a sequence of instruction word parts in a configuration phase and subsequently in a program sequence.
  • instruction words controlling the processor are generated in the full instruction word width as VLIW (Very Long Instruction Word) and are temporarily stored in an instruction word memory (cache).
  • VLIW Very Long Instruction Word
  • VLIW Very Long Instruction Word
  • a current VLIW is thus constructed from a limited number of function instruction words (FIW), each of these FIWs triggering exactly one function unit (FU) of the processor.
  • FIW function instruction words
  • FU function unit
  • German patent DE 198 59 389 C1 characterizes the prior art for processes of the type mentioned at the beginning.
  • the primary instruction words present in the program are fractionated into individual program words. te, which are also known as TVLIW (Tagged Very Long Instruction Word) containers.
  • TVLIW container because the individual program word, in addition to an information part, which is mainly represented by an FIW (function instruction word), also includes information about the write and read line number of an instruction word memory to be used. The latter information represents an identifier (day) for the FIW.
  • FIW function instruction word
  • the program word also includes the information on how to proceed with the respective content of the instruction word memory identified in this way, and is thus represented by an operation code (opcode).
  • opcode operation code
  • This sequence of instruction word parts is accompanied by an operation code which is common in this regard and an identification of its periodic property which is valid for all elements of the sequence, which is supplemented with the number of links, used in the subsequent processing phase to generate the VLIW.
  • the object of the invention is to achieve an increase in processor performance in the execution phase by increasing the degree of compression of the primary instruction words into their fractional instruction word parts, regardless of special features (periodicity) of the FIW.
  • the task according to the invention is achieved in that, in a first step, a primary instruction word is fractionated in the configuration phase, as a result of a certain number of instruction word parts which are used in the execution phase for the construction of a respective VLIW.
  • a respective first and second FIW (function instruction word part) is preceded by a first or second operation code belonging to it. This determines how the cache space used by the respective FIW is dealt with in the execution phase. Furthermore, the respective first or second operation code is followed by an associated first or second identifier, which represents the information which first or second FI drives the respective FIW.
  • the first or the second operation code and their associated first or second identifier with the respective first or second FIW are combined to form the first or second TVLIW container.
  • the existing TVLIW is converted into an HVLIW in the configuration phase.
  • a general header is prefixed in the HVLIW.
  • the task according to the invention is achieved in that a "Command Code" operating mode of the HVLIW and its associated general header is implemented.
  • This general header stores the information that specifies all combinations, which first and second FIW (instruction word part), after decoding, is provided in the execution phase for controlling a respective first and / or second FI (functional unit) of the processor.
  • the general header stores which first and / or second FIW memory locations are occupied by the cache and whether or which operation with the respective memory content is to be performed in the cache during the execution phase when the VLIW is set up.
  • This solution aims to ensure that in the HVLIW's "Command Code" operating mode, a summary of several FIWs and an associated summary of the information indicating which FI is to be controlled by which FIW and which FIW is to be construction of the VLIW occupies certain memory locations of the cache and which operation is then carried out with its memory content with respect to other memory locations of the cache, the desired compression of the instructions is realized.
  • a header mode is provided in the first part of the general header, which contains information about the operating mode "command code" of the HVLIW and the general header.
  • This mostly used combination is stored in the dictionary as a coded table value.
  • a third part is connected as CE information (cache extra information), which contains a pointer that points to a designated position in the dictionary.
  • the additional information is provided as the last part of the general header.
  • the first and second FIWs necessary for the construction of the VLIW follow in immediate sequence to the general header.
  • This solution according to the invention is aimed at providing a structured general header for the “Command Mode” operating mode, which is very flexible and supports all types of “Command Code”. This should also remain valid for further developments and updates and its compression options secure.
  • a further variant of the solution of the task according to the invention is achieved in that a "reference instruction" operating mode of the general header is implemented in which the FIWs provided for setting up the VLIW in the execution phase are generally cached.
  • the associated header mode bears a correspondingly decodable identifier for this operating mode “reference instruction”.
  • the operating mode "reference instruction” is initiated by a special HVLIW.
  • HVLIW which also bears the identifier of the "reference instruction" operating mode, contains a relative address with respect to the address provided by the reference.
  • a mask is attached to it, which represents the FI to be excluded from the control.
  • the implementation of the special operating mode "reference instruction" from HVLIW avoids the large instructions for the processor kernel, which e.g. are also large in the "Command Code” header mode because they must be applicable for a large number of FIs (functional units).
  • DSP digital signal processors
  • the first and / or second FI (functional unit) for which this particular instruction is not to be used is specified in coded form.
  • HVLIW is decoded in a decoder in the execution phase, which is decoded with a header decoder, a CMDT (Command Code Decompression Table), a cache and a cache miss repair logic, the HVLIW being cached.
  • CMDT Common Code Decompression Table
  • the header decoder recognizes the "Command Code" operating mode of the general header from the header mode stored there.
  • the values of the FU-C in the general header are decompressed by comparison with the CMDT and in connection with the CE information likewise taken from the general header.
  • the additional information of the general header is processed in accordance with the detected header mode.
  • a possible incorrect access when buffering in the cache is remedied by the execution of an error handling routine in the cache miss repair logic.
  • FIG. 1 shows a block overview in which the compression steps are shown, which are to be carried out in the configuration phase for converting the TVLIW 1 into the HVLIW 10 according to the invention in the “command code” operating mode.
  • FIG. 2 shows a block overview of the decoder 23 according to the invention, which decompresses and decodes the compressed HVLIW 10 into the VLIW 22 in the "command code" operating mode in the execution phase in order to control the processor 21.
  • the starting point for the compression according to the invention is the presence of the TVLIW 1.
  • this consists of the first and second TVLIW containers 11; 12th
  • the respective first or second TVLIW container 11; 12 lies with its components, the first and second operation code 2; 5, the first or second identifier 3; 6 and the first and second FIW 4; 7, before.
  • one TVLIW container is fed to the code converter 18 and at the same time in the code analyzer 8 the combination of the three components of a TVLIW container is determined by their frequency with respect to the other TVLIW containers of the respective TVLIW 1 Compared with the information in dictionary 9.
  • This information is made available to the code converter 18. Depending on the intended mode of operation, this codes the general header 13 and links it to the respective first or second FIW 4; 7, which of the first and second TVLIW containers 11; 12 are removed.
  • the structured general header 13 is provided and is in the parts header mode 14, FU-C information 15, CE information 16 and additional information 17.
  • the general header 13 is the sequence of first and second FIW 4; 7 preceded. A complete HVLIW 10 is now stored in the memory.
  • Another TVLIW 1 can subsequently be compressed.
  • the general header 13 as a component of the HVLIW 10 is temporarily stored in its components in the cache 26 and decoded by means of the header decoder 24.
  • the FU-C information 15 From the second part of the general header 13, the FU-C information 15, the information for the first and second FU 19; 20 which of the first and second FIW 4; 7 must be taken into account by the CMDT 25.
  • the area of the CMDT 25 to be taken into account is processed from the third part of the general header 13, the CE information 16.
  • the additional information 17 is taken from the last part of the general header 13.
  • the VLIW 22 is set up by the respective first and / or second FIW 4; 7 in the decoded order and position in which the first and second FI 19; 20 is controlled accordingly on the processor 21, are arranged in the VLIW 22.
  • TVLIW Tagged Very Long Instruction Word
  • first operation code first identifier first FIW (function instruction word part)
  • second operation code second identifier second FIW code analyzer dictionary
  • HVLIW Headed Very Long Instruction Word
  • TVLIW container second TVLIW container general header header mode
  • FU- C information (function unit combination information)
  • CE information cache extra information
  • additional information code converter first FU (functional unit)
  • VLIW Very Long Instruction Word
  • decoder header decoder C M DT C ommand- C ode-Decompression table

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor, wobei in einer Konfigurationsphase eine aus einer Übersetzung eines Programmcodes stammende Folge von Primärinstruktionsworten eine Fraktionierung in eine Folge von Instruktionswortteile erfährt, wobei in einem Programmablauf den Prozessor ansteuernde Instruktionsworte in der vollen Instruktionswortbreite erzeugt und in einem Instruktionswortspeicher (Cache) zwischengespeichert werden. Die erfindungsgemässe Aufgabenstellung, in der Ausführungsphase eine Steigerung der Prozessorperformance durch Erhöhung des Komprimierungsgrad der Primärinstruktionsworte in ihre fraktionierten Instruktionswortteilen unabhängig von speziellen Merk malen (z. B. Periodizität) der FIW (Funktions-Instruktions-Wortteile) zu erreichen, wird dadurch gelöst, dass in der Konfigurationsphase in einem ersten Schritt die Fraktionierung eines Primärinstruktionswortes in ein TVLIW (Tagged Very Long Instruction Word) erfolgt und in einem zweiten Schritt wird jeweils das vorliegenden TVLIW in ein HVLIW (Headed Very Lang Instruction Word) gewandelt. In dem HVLIW wird ein General Header vorangestellt. Das HVLIW ersetzt mit seiner codeverdichteten Struktur alle Funktionen des TVLIW (1).

Description

Verfahren zum codieren/decodieren von VLIW cached Befehlen
Die Erfindung betrifft ein Verfahren zur Ansteuerung von Funk- tionsein eiten in einem Prozessor, wobei in einer Konfigurationsphase eine aus einer Übersetzung eines Programmcodes stammende Folge von Primärinstruktionsworten eine Fraktionierung in eine Folge von Instruktionswortteile erfährt und in einem Programmablauf nachfolgend . den Prozessor ansteuernde Instruktions- worte in der vollen Instruktionswortbreite als VLIW (Very Long Instruction Word) erzeugt und in einem Instruktionswortspeicher (Cache) zwischengespeichert werden.
Hierzu sind verschiedene Lösungen, die eine jeweils vorteilhaf- te Variante zur Synthese eines VLIW (Very Long Instruction Word) aus den im Programmablauf auftretenden Instruktionsworte behandeln, bekannt .
Ihnen ist gemeinsam, dass die Primarinstruktionsworte, welche aus einer Übersetzung des Programmcodes resultieren, als Folge fraktionierter Instruktionswortteile generiert werden.
So erfolgt der Aufbau eines aktuellen VLIW aus einer begrenzten Anzahl von Funktionsinstruktionsworten (FIW) , wobei jedes die- ser FIW genau eine Funktionseinheit (FU) des Prozessors ansteuert .
Die Deutsche Patentschrift DE 198 59 389 Cl charakterisiert den Stand der Technik für Verfahren der eingangs genannten Art.
Bei dieser Lösung erfolgt die Fraktionierung der im Programm vorliegender Primarinstruktionsworte in einzelnen Programmwor- te, welche auch vorteilhaft als TVLIW (Tagged Very Long Instruction Word) -Container bezeichnet werden.
TVLIW-Container deshalb, weil dem einzelnen Programmwort neben einem Informationsteil, der vorwiegend durch ein FIW (Funkti- onsinstruktionswort) repräsentiert wird, auch die Angaben über die Schreib- und Lesezeilennummer eines einzusetzenden Instruktionswortspeichers, zugehörig ist. Letztere Angaben stellen eine Kennung (Tag) zum FIW dar.
Außerdem gehören zum Programmwort auch die Angaben, wie mit dem jeweiligen Inhalt des so gekennzeichneten Instruktionswortspeichers zu verfahren ist, und werden somit durch eine Operationscode (Opcode) repräsentiert.
Bei dem o.g. Verfahren werden in günstiger Weise die Datenbreite des im Prozessor zu verarbeitenden Programmmes verringert, um den Hardwareaufwand und damit die Kosten für die Realisierung des jeweiligen Prozessors niedrig zu halten.
Weiterhin sind verschiedene Lösungen bekannt, die eine jeweils vorteilhafte Variante zur Synthese eines VLIW (Very Long Instruction Word) aus den im Programmablauf auftretenden FIW behandeln.
So ist durch die Druckschrift 102 03 541.5 zur deutschen Patent-Anmeldung der weiterführende Stand der Technik umrissen.
Bei diesem wird die in einer Konfigurationsphase durchgeführte Fraktionierung der Primarinstruktionsworte durch eine anschließende verfahrensmäßige maschinelle Ähnlichkeits-Analyse erweitert, in deren Folge, die mit bestimmten Ähnlichkeitsmerkmalen (periodische Eigenschaft) ausgewählten und somit mehrfach verwendbaren Instruktionswortteile zusammengefasst werden.
Diese Folge von Instruktionswortteilen wird mit einem diesbezüglich gemeinsamen Operationscode und einer für alle Glieder der Folge gültige Kennzeichnung ihrer periodische Eigenschaft, die mit der Anzahl der Glieder ergänzt wird, in der anschließenden Verarbeitungsphase zur Erzeugung des VLIW verwendet.
Auf diese Weise wird bei diesem speziellen Komprimierungs- vorgang in der Konfigurationsphase die Auswahl und Kennzeichnung der Instruktionswortteile vorgenommen, die in der Ausführungsphase zur Zwischenspeieherung vorgesehen sind und damit bei der Wiederverwendung gleicher Instruktionswortteile Prozessor-Performance sparen.
Bei der zunehmenden Komplexität der Prozessoren und den Anforderungen an die Verarbeitungsgeschwindigkeit wird ersichtlich, dass eine höhere Kompression bei der Codierung der Instruktionswortteile und deren Decodierung zur Erzeugung des VLIW (Very Long Instruction Word) erreicht werden muss, da eine anderweitige Erhöhung der Verarbeitungsgeschwindigkeit, z.B. durch eine Erhöhung der Arbeitstaktfrequenzen, an physikalische Grenzen stößt.
Aufgabe der Erfindung ist es, in der Ausführungsphase eine Steigerung der Prozessorperformance durch Erhöhung des Komprimierungsgrad der Primarinstruktionsworte in ihre fraktionierten Instruktionswortteilen unabhängig von speziellen Merkmalen (Pe- riodizität) der FIW zu erreichen.
Die erfindungsgemäße Aufgabenstellung wird dadurch gelöst, dass in einem ersten Schritt die Fraktionierung eines Primärinstruk- tionswortes in der Konfigurationsphase, in die Folge einer bestimmten Anzahl von Instruktionswortteilen, die in der Ausfüh- rungsphase für den Aufbau eines jeweiligen VLIW verwendet werden, erfolgt.
Dabei wird einem jeweiligen ersten und zweiten FIW (Funktions- Instruktionswortteil) ein ihm zugehöriger erster oder zweiter Operationscode vorangestellt. Dieser bestimmt damit, wie in der Ausführungsphase mit dem durch das jeweilige FIW belegten Speicherplatz des Cache umgegangen wird. Weiterhin anschließt sich dem jeweiligen ersten oder zweiten Operationscode eine zugehörige erste oder zweite Kennung an, die die Information darstellt, welche erste oder zweite FU das jeweilige FIW ansteuert.
Es werden jeweils der erste bzw. der zweite Operationscode und ihre zugehörige erste bzw. zweite Kennung mit den jeweiligen ersten bzw. zweiten FIW zu dem ersten bzw. zweiten TVLIW Container zusammengefasst .
Hierbei repräsentieren diese in ihrer Gesamtheit das TVLIW.
In einem zweiten Schritt wird in der Konfigurationsphase das jeweils vorliegenden TVLIW in ein HVLIW gewandelt. In dem HVLIW wird ein General Header vorangestellt.
Bei der Wandlung des TVLIW in das HVLIW gilt, dass dieses mit seiner enthaltenen codeverdichteten General Header Struktur alle Funktionen des TVLIW ersetzt.
In einer Variante wird die erfindungsgemäße Aufgabenstellung dadurch gelöst, dass eine Betriebsart "Command Code" des HVLIW und seines zugehörigen General Headers realisiert wird. In diesem General Header ist die Information codiert abgelegt, die alle Kombinationen angibt, welches erste und zweite FIW (Instruktionswortteil) , nach Decodierung, in der Ausführungsphase, zur Ansteuerung einer jeweiligen ersten und/oder zweiten FU (Funktionseinheit) des Prozessors vorgesehen ist.
Weiterhin ist im General Header abgelegt, welches erste und/oder zweite FIW Speicherplätze des Cache belegt und ob bzw. welche Operation mit dem jeweiligen Speicherinhalt beim Aufbau des VLIW in der Ausführungsphase im Cache ausgeführt werden sollen. Diese Lösung zielt darauf ab, dass in der Betriebsart "Command Code" des HVLIW durch eine Zusammenfassung von mehreren Fiw und einer dazu gehörigen Zusammenfassung der Angaben, welches der FU von welchem FIW anzusteuern ist, sowie welche FIW beim Auf- bau des VLIW bestimmte Speicherplätze des Cache belegt und welche Operation dann mit deren Speieherinhalt bezüglich anderer Speicherplätze des Cache ausgeführt werden, die angestrebte Kompression der Instruktionen realisiert wird.
Auf diese Weise werden Speicherplatz gespart und Prozessorperformance geschont.
Es wird eine vorteilhafte Ausprägung der Variante der erfin- dungsgemäßen Lösung der Aufgabenstellung dadurch erreicht, dass in dem erstem Teil des General Headers ein Header Mode, welcher eine Information über die Betriebsart "Command Code" des HVLIW und des General Headers enthält, bereitgestellt wird.
Diesem anschließt sich ein zweiter Teil an, in dem die jeweilige meist gebrauchten Kombination, welche der jeweiligen FU durch welches erstes oder zweites FIW angesteuert wird, enthalten ist.
Diese meist gebrauchte Kombination ist als codierter Tabellenwert im Wörterbuch abgelegt.
Es wird ein dritter Teil als CE-Information (Cache-ExtraInformation) angeschlossen, in dem ein Zeiger, der auf eine vorgesehene Stelle des Wörterbuches verweist, enthalten ist.
Als letzter Teil des General Headers ist die Zusatzinformation vorgesehen.
In unmittelbarer Reihenfolge an den General Header schließen sich die für den Aufbau des VLIW notwendigen ersten und zweiten FIW an.
Diese erfindungsgemäße Lösung hebt darauf ab, für die Betriebs- art "Command Mode" einen strukturierten General Header bereitzustellen, der sehr flexibel ist und alle Arten von "Command Code" unterstützt. Dieser soll auch für Weiterentwicklungen und update seine Gültigkeit behalten und seine Kompressionsmöglich- keiten absichern.
Eine weitere Variante der erfindungsgemäßen Lösung der Aufgabenstellung dadurch erreicht, dass eine Betriebsart "Referenz- Instruktion" des General Headers realisiert wird, bei der generell die zum Aufbau des VLIW in der Ausführungsphase vorgesehenen FIW im Cache zwischengespeichert werden.
Hierbei trägt der zugehörige Header Mode eine entsprechend de- codierbare Kennung dieser Betriebsart "Referenz-Instruktion" . Es wird die Betriebsart "Referenz-Instruktion" durch eine spezielles HVLIW eingeleitet.
In diesem ist eine Adressangabe enthalten, mit der auf eine Re- ferenz-Instruktion verwiesen wird.
Weiterhin ist im nachfolgenden HVLIW, welches ebenfalls die Kennung der Betriebsart "Referenz-Instruktion" trägt, eine relative Adresse bezüglich der durch den Verweis vorliegenden Ad- resse enthalten.
Daran wird eine Maske angefügt, welche die von der Ansteuerung auszuschließenden FU repräsentiert.
Bei dieser günstigen Variante der erfindungsgemäßen Lösung werden durch die Realisierung der speziellen Betriebsart "Referenz-Instruktion" von HVLIW die großen Instruktionen für den Prozessor-Kernel vermieden, die z.B. auch im Header Mode "Command Code" groß ausfallen, weil sie für eine Vielzahl von FU (Funktionseinheiten) anwendbar sein müssen.
Dadurch sind auch jeweils Start- und Beendigungs-Phasen der Instruktionen zur Ansteuerung der Grundbestandteile der einzelnen FU notwendig.
Aufgrund vieler gleicher FIW, die zur Ansteuerung der FU in den Instruktionen z.B. in Digitalen Signal-Prozessoren (DSP) auftreten, ist aus der Kenntnis der Instruktionen für den Prozes- sor-Kernel ersichtlich, dass die jeweiligen Start- und Beendigungs-Phasen der Instruktionen für die jeweiligen FU redundant sind.
Diese Redundanz wird durch die erfindungsgemäße Lösung vermieden, in dem mittels des HVLIW, welches die Betriebsart "Referenz-Instruktion" einleitet, eine Adressangabe als einer Referenz vorgegeben wird.
Im nachfolgenden HVLIW der Betriebsart "Referenz-Instruktion" wird in seinem General Header nur eine relative Adresseangabe mitgeteilt, mittels der das erforderliche FIW in der Ausführungsphase decodiert werden kann.
Ebenfalls in diesem HVLIW wird, an den General Header anschließend, die erste und/oder zweite FU (Funktionseinheit) , für die diese bestimmte Instruktion nicht verwendet werden soll, codiert angegeben.
Diese Angabe kann als Maske, welche die Ansteuerung von FU ausschließen, wesentlich kürzer gestaltet werden als eine Angabe aller ansteuernden FIW.
Somit brauchen bei HVLIW in der Betriebsart "Referenz- Instruktion" die jeweiligen Start- und Beendigungs-Phasen des für die Ansteuerung der vorgesehenen FU bestimmten FIW im General-Header nur einmal angegeben werden.
Auf diese Weise wird Speicherplatz gespart
Da mit dieser Kompression es nicht notwendig ist, die jeweiligen vollständigen Start- und Beendigungs-Phasen der Instruktionen beim VLIW Aufbau zu verarbeiten, wird folglich ebenfalls die Prozessorperformance in der Ausführungsphase auch weniger belastet.
Eine spezielle Variante der erfindungsgemäßen Lösung der Aufgabenstellung, welche die Betriebsart des General Headers "Refe- renz-Instruktion" lokal günstig realisiert, wird dadurch erreicht, dass das spezielle HVLIW, welches die Betriebsart "Referenz-Instruktion" einleitet, als enthaltene Adressangabe auf das vorhergehende HVLIW verweist.
Eine weitere spezielle Variante der erfindungsgemäßen Lösung der Aufgabenstellung, welche die Betriebsart des General Headers "Referenz-Instruktion" global günstig realisiert, wird dadurch erreicht, dass das spezielle HVLIW, welches die Betriebs- art "Referenz-Instruktion" einleitet, als enthaltene Adressangabe auf eine allgemeine Adresse verweist.
Eine vorteilhafte Erweiterung zur Lösung der erfindungsgemäßen Aufgabenstellung speziell für die Betriebsart "Command Code" des HVLIW wird dadurch erreicht, dass in der Ausführungsphase das HVLIW in einem Decoderl decodiert wird, welcher mit einem Header-Decoder, einer CMDT (Command-Code-Decompression- Tabelle) , einem Cache und einer Cache-Miss-Reparatur-Logik ausgestattet ist, wobei das HVLIW zwischengespeichert vorliegt.
Der Header-Decoder erkennt die Betriebsart "Command Code" des General-Headers aus dem dort gespeicherten Header Mode.
Weiterhin werden entsprechend des erkannten Header Mode die im General Header vorliegenden Werte der FU-C durch Vergleich mit der CMDT und in Verbindung mit der ebenfalls aus dem General Header entnommenen CE-Information dekomprimiert.
Entsprechend des erkannten Header Modes wird die Zusatzinforma- tion des General Headers verarbeitet.
Ein möglicher Fehlzugriff beim Zwischenspeichern im Cache (Cache-Miss) wird durch den Ablauf einer Fehlerbehandlungsroutine in der Cache-Miss-Reparatur Logik behoben.
Abschließend wird das gültige VLIW am Ausgang des Decoders bereitgestellt. Die Erfindung soll anhand eines Ausführungsbeispiels näher erläutert werden.
Die Fig. 1 zeigt eine Blockübersicht in dem die Kompressions- schritte dargestellt werden, welche in der Konfigurationsphase zur erfindungsgemäßen Wandlung des TVLIW 1 in das HVLIW 10 in der Betriebsart "Command Code" auszuführen sind.
In Fig. 2 ist eine Blockübersicht des erfindungsgemäßen Deco- derl 23 dargestellt, der in der Ausführungsphase das komprimierte HVLIW 10 in der Betriebsart "Command Code" in das VLIW 22 dekomprimiert und dekodiert, um damit den Prozessor 21 anzusteuern.
Wie in Figur 1 ersichtlich, ist in der Konfigurationsphase der Ausgangspunkt für die erfindungsgemäße Komprimierung das Vorliegen des TVLIW 1. Dieses besteht im Ausführungsbeispiel aus ersterem und zweitem TVLIW Container 11; 12.
Der jeweilige erste bzw. zweite TVLIW Container 11; 12 liegt mit seinen Bestandteilen, dem ersten bzw. zweiten Operationscode 2 ; 5, der ersten bzw. zweiten Kennung 3; 6 und dem ersten bzw. zweiten FIW 4; 7, vor.
In der auftretenden Reihenfolge wird jeweils ein TVLIW Container dem Code-Umsetzer 18 zugeführt und gleichzeitig wird im Co- de-Analyzer 8 die Kombination der drei Bestandteile eines TVLIW Containers auf ihre Häufigkeit ihres Auftretens in Bezug auf die weiteren TVLIW Container des jeweiligen TVLIW 1 durch Ver- gleich mit den Angaben des Wörterbuches 9 ermittelt.
Diese Angaben werden dem Code-Umsetzer 18 zur Verfügung gestellt. Dieser codiert daraus je nach der vorgesehenen Betriebsart den General Header 13 und verknüpft ihn mit den je- weiligen ersten bzw. zweiten FIW 4; 7, welche von den hinter- einander bereitgestellten ersten bzw. zweiten TVLIW Containern 11; 12 entnommen werden.
Wenn alle TVLIW Container des TVLIW 1 abgearbeitet sind, wird der strukturierte General Header 13 bereitgestellt und liegt in den Teilen Header Mode 14, FU-C-Information 15, CE-Information 16 und Zusatzinformation 17 vor. Der General Header 13 wird der Folge von ersten bzw. zweiten FIW 4; 7 vorangestellt. Damit wird ein nun vollständiges HVLIW 10 im Speicher abgelegt.
Nachfolgend kann ein weiteres TVLIW 1 komprimiert werden.
Das Ende der erfindungsgemäßen Kompression ist erreicht, wenn alle TVLIW 1 in ein jeweiliges HVLIW 10 gewandelt sind.
Wie in Figur 2 ersichtlich, wird in der Ausführungsphase nach dem Zwischenspeichern (fetch) der Instruktionen und dadurch mit der Bereitstellung des HVLIW 10 und Decodieren dessen Header Mode 14 mit der vorliegenden Betriebsart "Command Code", der Einsatz des erfindungsgemäßen Decoderl (23) zum Dekomprimie- ren/Dekodierens des HVLIW 10 ausgelöst.
Nachfolgend wird der General Header 13 als Bestandteil des HVLIW 10 in seinen Bestandteilen im Cache 26 zwischengespei- chert und mittels dem Header Decoder 24 decodiert.
Zuerst wird mittels dem ersten Teil des General Header 13, dem Header Mode 14, seine Betriebsart erkannt und der Decoderl 23 entsprechend eingestellt.
Aus dem zweiten Teil des General Header 13 , der FU-C- Information 15, wird die Informationen für die erste bzw. zweite FU 19; 20 entnommen, welche der ersten bzw. zweiten FIW 4; 7 von der CMDT 25 berücksichtigt werden müssen. Aus dem dritten Teil des General Header 13, der CE-Information 16 wird der zu berücksichtigende Bereich der CMDT 25 verarbeitet. Aus dem letzten Teil des General Header 13 wird die Zu- satzinformationen 17 entnommen.
Ein evtl. erkannter Fehlzugriff des Cache 26 wir von der Cache- Miss-Repair-Logik 27 behoben.
Mit diesen Informationen wird das VLIW 22 aufgebaut, indem die jeweiligen ersten und /oder zweiten FIW 4; 7 in der dekodierten Reihenfolge und Position, in der die erste bzw. zweite FU 19; 20 entsprechend am Prozessor 21 nachfolgend angesteuert wird, im VLIW 22 angeordnet werden.
Verfahren ztam codieren/decodieren von VLIW cached Befehlen
Bezugszeichenliste
TVLIW (Tagged Very Long Instruction Word) erster Operationscode erste Kennung erstes FIW (Funktions-Instruktions-Wortteil) zweiter Operationscode zweite Kennung zweites FIW Code-Analyzer Wörterbuch HVLIW (Headed Very Long Instruction Word erster TVLIW Container zweiter TVLIW Container General Header Header Mode FU-C-Information (FunctionUnit-Combination-Information) CE-Information (Cache Extra-Information) Zusatzinformation Code-Umsetzer erste FU (Funktionseinheit) zweite FU (Funktionseinheit) Prozessor VLIW (Very Long Instruction Word) Decoderl Header-Decoder CMDT (Command-Code-Decompression-Tabelle) Cache Cache-Miss-Repair-Logik

Claims

Verfahren zum codieren/decodieren von VLIW cached BefehlenPatentansprüche
1. Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor, wobei in einer Konfigurationsphase eine aus einer Übersetzung eines Programmcodes stammende Folge von Primärinstruktionsworten eine Fraktionierng in eine Folge von Instruktionswortteile erfährt, wobei in einem Programmablauf den Prozessor ansteuernde Instruktionsworte in der vollen Instruktionswortbreite zu einem VLIW aufgebaut und in einem Instruktionswortspeieher (Cache) zwischenge- speichert werden, dadurch gekennzeichnet, dass die Fraktionierung eines Primärinstruktionswortes in der Konfigurationsphase, in einem ersten Schritt in die Folge einer bestimmten Anzahl von Instruktionswortteilen, die in der Ausführungsphase für den Aufbau eines jeweiligen VLIW verwendet werden, erfolgt, wobei einem jeweiligen ersten und zweiten FIW (Funktions-Instruktions-Wortteil) (4) , (7) ein ihm zugehöriger erster oder zweiter Operationscode
(2) , (5) vorangestellt wird, der damit bestimmt, wie in der
Ausführungsphase mit dem durch das jeweilige FIW belegten Speicherplatz des Cache umgegangen wird, dass sich dem jeweiligen ersten oder zweiten Operationscode (2) , (5) eine zugehörige erste oder zweite Kennung (3), (6) anschließt, die die Information darstellt, welche erste oder zweite FU (19) , (20) das eweilige FIW ansteuert, dass die ersten oder zweiten Operationscode (2), (5) und ihre zugehörigen ersten oder zweiten Kennung (3), (6) mit den jeweiligen ersten und zweiten FIW (4) , (7) zu dem ersten bzw. zweiten TVLIW Container (11) , (12) zusammengefasst werden, wobei diese in ihrer Gesamtheit das TVLIW (1) repräsentieren, dass in einem zweiten Schritt in der Konfigurationsphase das jeweils vorliegenden TVLIW (1) in ein HVLIW (10) gewandelt wird, wobei in dem HVLIW (10) ein einvorangestellter General Header (13) enthalten ist, dass das HVLIW (10) mit seiner codeverdichteten Struktur alle Funktionen des TVLIW (1) ersetzt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Betriebsart "Command Code" des HVLIW (10) und seines zugehörigen General Headers (13) realisiert wird, dass in unmittelbarer Reihenfolge an den General Header (13) sich die für den Aufbau des VLIW (22) notwendigen ersten und zweiten FIW (4) , (7) anschließen, dass in diesem General Header (13) die Information codiert abgelegt ist, die alle Kombinationen angibt, welches erste und zweite FIW (Instruktionswortteil) (4) , (7) , nach Deco- dierung, in der Ausführungsphase, zur Ansteuerung einer jeweiligen ersten und/oder zweiten FU (Funktionseinheit) (19), (20) des Prozessors (21) vorgesehen ist, dass im General Header (13) abgelegt ist, welches erste und/oder zweite FIW (4) , (7) Speicherplätze des Cache (26) belegt und ob bzw. welche Operation mit dem jeweiligen Speicherinhalt bei Aufbau des VLIW (22) in der Ausführungsphase im Cache (26) ausgeführt werden sollen.
3. Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet, dass in dem erstem Teil des General Headers (13) ein Header Mode (14) , welcher eine Information über die Betriebsart "Command Code" des HVLIW (10) und des General Headers (13) enthält, bereitgestellt wird, dass diesem sich ein zweiter Teil anschließt, in dem als Tabellenwerte codiert, die jeweilige meist gebrauchten Kombination abgelegt ist, welche der jeweiligen FU durch welches erstes oder zweites FIW (3), (7) angesteuert wird, dass ein dritter Teil als CE-Information (16) , angeschlossen wird, in dem ein Zeiger, der auf eine vorgesehene Stelle des Wörterbuches (9) verweist, enthalten ist, dass als letzter Teil des General Headers (13) die Zusatzinformation (17) vorgesehen ist.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Betriebsart "Referenz-Instruktion" des HVLIW (10) und des enthaltenen General Headers (13) realisiert wird, bei der die zum Aufbau des VLIW (22) in der Ausführungsphase vorgesehenen FIW im Cache (26) zwischengespeichert werden, wobei der zugehörige Header Mode (14) eine entsprechend dekodierbare Kennung dieser Betriebsart "Re- ferenz- nstruktion" trägt, dass die Betriebsart "Referenz-Instruktion" durch ein spezielles HVLIW (10) eingeleitet wird, in dem eine Adressangabe enthalten ist, mit der auf eine Referenz-Instruktion verwiesen wird, dass im nachfolgenden HVLIW (10) , welches ebenfalls die Kennung der Betriebsart "Referenz-Instruktion" trägt, eine relative Adresse bezüglich der durch den Verweis vorliegenden Adressangabe enthalten ist, dass daran eine Maske der von der Ansteuerung auszuschlie- ßenden FU angefügt wird.
5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das spezielle HVLIW (10) , welches die Betriebsart "Referenz-Instruktion" einleitet, mit seiner Adressangabe auf das vorhergehende HVLIW (10) verweist.
6. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das spezielle HVLIW (10), welches die Betriebsart "Referenz-Instruktion" einleitet, mit seiner Adressangabe auf eine allgemeine Adresse verweist.
7. Verfahren nach Ansprüchen 1 bis 3, dadurch gekennzeichnet. dass in der Ausführungsphase das HVLIW (10) in einem Decoderl (23) decodiert wird, welcher mit einem Header-Decoder (24), ein CMDT (25), einem Cache (26) und eine Cache-Miss- Reparatur Logik (27) ausgestattet ist, wobei das HVLIW (10) im Cache (26) zwischengespeichert wird und der Header-Decoder (24) die Betriebsart des General- Headers (13) aus dem dort gespeicherten Header Mode (14) erkennt, dass entsprechend des erkannten Header Mode (14) die im General Header (13) vorliegenden Werte der FU-C- Information (14) durch Vergleich mit der CMDT (25) und in Verbindung mit der ebenfalls aus dem General Header (13) entnommenen CE-Information (16) dekomprimiert werden, dass entsprechend des erkannten Header Modes (14) die Zu- satzinformation (17) des General Headers (13) verarbeitet werden, dass ein möglicher Fehlzugriff beim Zwischenspeichern im Cache (26) (Cache-Miss) durch den Ablauf einer Fehlerbehandlungsroutine in der Cache-Miss-Reparatur-Logik (28) behoben wird, dass das gültige VLIW (22) am Ausgang des Decoderl (23) bereitgestellt wird.
PCT/DE2003/001748 2002-06-05 2003-05-28 Verfahren zum codieren/decodieren von vliw cached befehlen WO2003104987A2 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU2003257376A AU2003257376A1 (en) 2002-06-05 2003-05-28 Method for the coding/decoding of vliw cached instructions
JP2004511991A JP3981117B2 (ja) 2002-06-05 2003-05-28 キャッシュに記憶するvliw命令の符号化/復号化方法
EP03756954A EP1509842A2 (de) 2002-06-05 2003-05-28 Verfahren zum codieren/decodieren von vliw cached befehlen
US10/516,675 US20050246515A1 (en) 2002-06-05 2003-05-28 Method for the coding/decoding of vliw cached instructions
DE10393298T DE10393298D2 (de) 2002-06-05 2003-05-28 Verfahren zum codieren/decodieren von VLIW cached Befehlen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10225099.5 2002-06-05
DE10225099 2002-06-05

Publications (2)

Publication Number Publication Date
WO2003104987A2 true WO2003104987A2 (de) 2003-12-18
WO2003104987A3 WO2003104987A3 (de) 2004-12-29

Family

ID=29723087

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2003/001748 WO2003104987A2 (de) 2002-06-05 2003-05-28 Verfahren zum codieren/decodieren von vliw cached befehlen

Country Status (6)

Country Link
US (1) US20050246515A1 (de)
EP (1) EP1509842A2 (de)
JP (1) JP3981117B2 (de)
AU (1) AU2003257376A1 (de)
DE (1) DE10393298D2 (de)
WO (1) WO2003104987A2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142157B2 (en) * 2010-06-10 2018-11-27 Blackberry Limited Method and system for reducing transmission of redundant data
CN102662637B (zh) * 2012-03-30 2014-10-15 中国人民解放军国防科学技术大学 超长指令字处理器指令发射方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEISS M H ET AL: "DYNAMIC CODEWIDTH REDUCTION FOR VLIW INSTRUCTION SET ARCHITECTURES IN DIGITAL SIGNAL PROCESSORS" PROCEEDINGS IWISP. INTERNATIONAL WORKSHOP ON IMAGE AND SIGNAL PROCESSING ON THE THEME OF ADVANCES IN COMPUTATIONAL INTELLIGENCE, XX, XX, 4. November 1996 (1996-11-04), Seiten 517-520, XP000911908 *

Also Published As

Publication number Publication date
JP2005529402A (ja) 2005-09-29
WO2003104987A3 (de) 2004-12-29
EP1509842A2 (de) 2005-03-02
AU2003257376A1 (en) 2003-12-22
US20050246515A1 (en) 2005-11-03
JP3981117B2 (ja) 2007-09-26
AU2003257376A8 (en) 2003-12-22
DE10393298D2 (de) 2005-05-25

Similar Documents

Publication Publication Date Title
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE69622663T2 (de) Zweistufige vorausholungspufferstruktur und verfahren mit bypass
DE69925410T2 (de) Erweiterung des Befehlssatzes unter Verwendung von Präfixcode
DE602004008711T2 (de) Anordnung, Verfahren und Rechnerdatensignal zur selektiven Annullierung der Vorhersage eines Rücksprungstapelspeichers als Antwort auf die Erkennung einer nicht-standard Rücksprungsbefehlsreihe
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE3486399T2 (de) Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen.
DE1901228B2 (de) Datenverarbeitungsanlage mit einrichtungen zur wiederholung von operationen beim auftreten eines fehlers
DE2339636A1 (de) Programmsteuereinrichtung
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE2611892A1 (de) Mikroprogramm-steuersystem
DE3856139T2 (de) Mikroprozessor
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
EP1347599A1 (de) Verfahren und Protokolltester zum Dekodieren gemäss einer Protokollbeschreibung kodierter Daten
DE69428662T2 (de) System mit geringem Speicherbedarf zur Kodierung und Dekodierung von Zweipegelsymbolen und zugehöriges Verfahren
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE2900586A1 (de) Anordnung zum decodieren von codewoertern variabler laenge
WO2003104987A2 (de) Verfahren zum codieren/decodieren von vliw cached befehlen
DE69927910T2 (de) Befehlsausgabe-Schaltkreis und Verfahren zur Out-of- order-Befehlsausführung, wodurch Referenzabhängigkeitsinformationen in einem Befehl gesetzt werden, wenn ein Nachfolgender Befehl in einem Befehlspuffer gespeichert wird d
DE102005041672A1 (de) SIMD-Prozessorarchitektur bzw. Verfahren zum Verarbeiten von Daten verschiedenen Datentyps in einer SIMD-Prozessorarchitektur
DE69815656T2 (de) Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren
DE69601742T2 (de) Sprungvorhersage

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2003756954

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2004511991

Country of ref document: JP

WWP Wipo information: published in national office

Ref document number: 2003756954

Country of ref document: EP

REF Corresponds to

Ref document number: 10393298

Country of ref document: DE

Date of ref document: 20050525

Kind code of ref document: P

WWE Wipo information: entry into national phase

Ref document number: 10393298

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 10516675

Country of ref document: US