DE19859389C1 - Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens - Google Patents
Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des VerfahrensInfo
- Publication number
- DE19859389C1 DE19859389C1 DE19859389A DE19859389A DE19859389C1 DE 19859389 C1 DE19859389 C1 DE 19859389C1 DE 19859389 A DE19859389 A DE 19859389A DE 19859389 A DE19859389 A DE 19859389A DE 19859389 C1 DE19859389 C1 DE 19859389C1
- Authority
- DE
- Germany
- Prior art keywords
- word
- instruction word
- program
- instruction
- words
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 229940036310 program Drugs 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000004916 vomit Anatomy 0.000 description 1
- 230000008673 vomiting Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Der Erfindung, die ein Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor, bei dem in einer Konfiguration eine aus einer Übersetzung eines Programmcodes stammende Folge von Primärinstruktionsworten aus mehreren Instruktionswortteilen komprimiert und als Folge von zugehörigen Programmworten gespeichert wird, und eine Prozessoranordnung zur Durchführung des Verfahrens betrifft, liegt die Aufgabe zugrunde, unter Beibehaltung einer geringen Programmwortbreite die Arbeitsgeschwindigkeit anwendungsspezifisch zu erhöhen. Verfahrensseitig wird dies dadurch gelöst, daß ein Programmwort ein erstes Kennzeichen eines Primärinstruktionswortes und Instruktionswortteile, die das zu dem Programmwort gehörige Primärinstruktionswort von dem zu dem Kennzeichen gehörigen Primärinstruktionswort unterscheidenden, enthält. Mittels dem in dem Programmwort enthaltenen ersten Kennzeichen wird ein Sekundärinstruktionswort erzeugt, indem aus einem vorhergehenden Sekundärinstruktionswort die in dem Programmwort enthaltenen Instruktionswortteile ausgetauscht werden. Anordnungsseitig wird die Aufgabe dadurch gelöst, daß der Instruktionswortpuffer aus einem Speicher mit wahlweisem zeilenweisen Zugriff besteht.
Description
Die Erfindung betrifft ein Verfahren zur Ansteuerung von Funk
tionseinheiten in einem Prozessor, bei dem in einer Konfigura
tion eine aus einer Übersetzung eines Programmcodes stammende
Folge von Primärinstruktionsworten aus mehreren Instruktions
wortteilen komprimiert und als Folge von zugehörigen Programm
worten gespeichert wird. Dabei werden in einer nachfolgenden
Ausführungsphase aus der Folge von Programmworten aufeinand
erfolgende Sekundärinstruktionsworte aus mehreren Instruk
tionswortteilen in der zur Ansteuerung aller Funktionsein
heiten benötigten vollen Instruktionswortbreite erzeugt.
Die Erfindung betrifft auch eine Prozessoranordnung zur Durch
führung des Verfahrens mit Funktionseinheiten, einem diesen
Funktionseinheiten zugeordneten Instruktionswortspeicher und
einem Instruktionswortpuffer zur Speicherung bereits erzeugter
Instruktionsworte mit einer Breite, die mindestens gleich der
Bitbreite des Sekundärinstruktionswortes ist.
Prozessoranordnungen der eingangs genannten Art beinhalten
Funktionseinheiten, die parallel zueinander arbeiten und die
zu jedem Takt von einem Instruktionswort angesteuert werden.
Das jeweilige Instruktionswort wird aus einem Programmwort
gewonnen, das einem Programmspeicher entnommen wird.
Die Instruktionsworte ihrerseits bestehen aus mehreren In
struktionswortteilen, wobei je ein Instruktionswortteil der
Ansteuerung je einer Funktionseinheit dient.
Zur Erhöhung der Leistungsfähigkeit von Prozessoranordnungen
besteht das Bestreben nach einer Vergrößerung der Verarbei
tungsbreite, was eine Erhöhung der Anzahl von Funktionsein
heiten erforderlich werden läßt. Damit vergrößert sich im
allgemeinen die Bitbreite der Instruktionsworte und damit auch
der Programmworte. Dies hat eine Bereitstellung eines ent
sprechenden Speicherplatzes im Programmspeicher zur Folge, der
der wesentliche Flächenteile auf dem Halbleiterchip einnimmt.
Da die Größe der Programmworte die Größe des Programmspeichers
bestimmen, ist es das Bestreben, die Größe der Programmworte
zu verringern, um eine Verringerung des Speicherplatzbedarfes
zu erreichen. Hierfür sind mehrere Komprimierungsverfahren
bekannt. Das naheliegendste Verfahren ist in dem Bericht von
Weiss H., Fettweis, G. "Dynamic Codewidth Reduction for VLIW
Instruction Set Architectures in Digital Signal Processors"
(Tagungsbericht des 3. Int. Workshop on Signal an Image Pro
cessing IWSIP '96 S. 517 bis 520) beschrieben. Darin werden
die Programmworte aus hintereinanderliegenden Primärinstruk
tionsworten so zusammengestellt, daß anschließend daraus wie
der Sekundärinstruktionsworte erstellt werden können, indem
ein einmal erzeugtes Sekundärinstruktionswort (VLIW) in einen
Instruktionswortspeicher geschrieben wird und zur Erzeugung
des nächsten Sekundärinstruktionswortes bei dem gespeicherten
Sekundärinstruktionswort nur die Instruktionswortteile ausge
tauscht werden, die sich von dem gespeicherten Sekundärin
struktionswort zu dem zu erzeugenden Sekundärinstruktionswort
unterscheiden. Mithin braucht in dem Programmwort nur die
Information enthalten zu sein, welches Instruktionswortteil
sich unterscheidet und mit welchem Inhalt es sich unterschei
det. Damit ist es möglich, die Programmworte sehr schmal zu
gestalten und damit Speicherplatz zu sparen.
Bei größeren Unterschieden zwischen dem gespeicherten und dem
herzustellenden Sekundärinstruktionswort ist allerdings die
Breite des Programmwortes zu vergrößern, wenn diese größeren
Unterschiede häufig auftreten, was den Nachteil eines größeren
Speicherplatzes mit sich bringt, oder die Unterschiede sind
über mehrere Programmwörter zu verteilen. Damit ist das Se
kundärinstruktionswort aus mehreren Programmworten über mehre
re Takte herzustellen. Daraus entsteht der Nachteil eines
größeren Zeitaufwandes.
Der Erfindung liegt damit die Aufgabe zugrunde, unter Beibe
haltung einer geringen Programmwortbreite die Arbeitsgeschwin
digkeit anwendungsspezifisch zu erhöhen.
Verfahrensseitig wird die Aufgabe dadurch gelöst, daß im Er
gebnis der Konfiguration ein Programmwort ein erstes Kenn
zeichen eines Primärinstruktionswortes aus einer ersten Gruppe
vorhergehender Primärinstruktionsworte, welches mit dem zum
Programmwort zugehörigen Primärinstruktionswort die größte
Übereinstimmung aufweist, und Instruktionswortteile, die das
zu dem Programmwort gehörige Primärinstruktionswort von dem
zu dem Kennzeichen gehörigen Primärinstruktionswort unter
scheidenden, enthält. In der Ausführungsphase wird eine der
ersten Gruppe in der Anzahl entsprechende zweite Gruppe von
Sekundärinstruktionsworten mit je einer zweiten Kennzeichnung
versehen gespeichert. Mittels dem in dem Programmwort enthal
tenen ersten Kennzeichen wird ein dem zugehörigen Primärin
struktionswort entsprechendes Sekundärinstruktionswort aus der
zweiten Gruppe über das zugehörige zweite Kennzeichen ermit
telt wird und das dem Programmwort entsprechende Sekundärin
struktionswort erzeugt, indem in dem Sekundärinstruktionswort
aus der zweiten Gruppe die in dem Programmwort enthaltenen
Instruktionswortteile ausgetauscht werden.
Bereits bei der Konfigurationsphase können die Programmworte
so aufgebaut werden, daß sie nur die geringstmögliche Informa
tion zur späteren Erzeugung eines Sekundärinstruktionswortes
in der Ausführungsphase beinhalten. Dies wird damit erreicht,
daß auf die vorhergehenden Primärinstruktionswörter zurück
gegriffen wird, die die größte Übereinstimmung mit dem zu
konfigurierenden Primärinstruktionswort aufweisen. Da in der
Ausführungsphase die Sekundärinstruktionswörter in der glei
chen Breite und in der gleichen Reihenfolge wie die Primärin
struktionswörter erzeugt werden sollen, wird in der Ausfüh
rungsphase praktisch in umgekehrter Reihenfolge zur der Konfi
gurationsphase verfahren und jeweils ein bereits erzeugtes
Sekundärinstruktionswort, welches dem Primärinstruktionswort
entspricht, das in der Konfigurationsphase einem aktuellen
Primärinstruktionswort am ähnlichsten ist, zur Erzeugung eines
neuen Sekundärinstruktionswortes verwendet wird. Da stets auf
das Instruktionswort mit der größten Ähnlichkeit oder der
größten Übereinstimmung zurückgegriffen wird, läßt sich die
Menge der zur Erzeugung eines neuen Sekundärinstruktionswortes
erforderliche Information so klein wie möglich halten. Damit
kann der Speicherbedarf eines Programmspeichers minimiert
werden.
In einer Ausführungsform des Verfahrens ist vorgesehen, daß
die erste Gruppe aus einer ersten Anzahl der dem jeweiligen
Primärinstruktionswort direkt vorausgehenden Primärinstruk
tionswörtern besteht. Die zweite Gruppe besteht aus einer
zweiten Anzahl von Sekundärinstruktionswörtern, die mindestens
gleich der ersten Anzahl ist, wobei jedes Sekundärinstruk
tionswort vor der Erzeugung des nächstfolgenden Sekundärin
struktionswortes der Gruppe als letztes hinzugefügt und das
über die zweite Anzahl hinausgehende zuerst hinzugefügte Se
kundärinstruktionswort aus der zweiten Gruppe entfernt wird.
Damit besteht die Gruppe stets aus den unmittelbar vorher
gehenden Instruktionswörtern, wovon eines eine größtmögliche
Ähnlichkeit aufweist, wenn sich die Instruktionswörter in
nerhalb einer Gruppe inhaltlich unterscheiden.
Eine andere Möglichkeit der Ausgestaltung des Verfahrens be
steht darin, daß das neu erzeugte Sekundärinstruktionswort der
zweiten Gruppe hinzugefügt wird, indem dieses anstelle des
seiner Erzeugung dienenden Sekundärinstruktionswortes gespei
chert wird.
Mit dieser Variante des Verfahrens wird es ausgeschlossen, daß
sich die Gruppe mit inhaltsgleichen Instruktionswörtern beim
mehrmaligen Durchlaufen ein und derselben Funktion anfüllt.
Eine andere Möglichkeit besteht darin, daß das neu erzeugte
Sekundärinstruktionswort nicht gespeichert wird. Dabei wird
bei jeder Erzeugung eines Sekundärinstruktionswortes stets auf
den gleichen Vorrat von einmal erzeugten Instruktionswörtern
zurückgegriffen, was günstig ist, wenn diese gespeicherten
Instruktionswörter als Musterwörter für die Erzeugung anderer
Sekundärinstruktionswörter geeignet sind, dabei hierbei Spei
chervorgänge vermieden werden können.
In einer Ausgestaltung des Verfahrens ist vorgesehen, daß das
erste Kennzeichen als Abstand des zum jeweiligen Programmwort
gehörigen Primärinstruktionswortes zu dem Primärinstruktions
wort mit der größten Übereinstimmung gebildet wird.
Eine weitere Ausgestaltung des Verfahrens sieht vor, daß das
zweite Kennzeichen aus einer dem ersten Kennzeichen entspre
chenden Adresse eines vorhergehenden Sekundärinstruktions
wortes in einem der Abspeicherung der zweiten Gruppe dienen
den Speicher besteht.
Diese beiden Ausgestaltungen zeigen eine besonders einfache
Erzeugung von Merkmalen.
Eine Reduzierung der Programmwortbreite und damit verbunden
eine Verringerung der Breite des Programmspeichers kann da
durch erreicht werden, daß das Programmwort aus einer Anzahl
von Instruktionswortteilen besteht, die der innerhalb der
Konfiguration am häufigsten auftretenden Anzahl zu unterschei
dender Instruktionswortteile entspricht und daß zur Zusammen
setzung von Sekundärinstruktionsworten, die zu dem der Erzeu
gung dienenden Sekundärinstruktionswort mehr als die in einem
Programmwort abgelegte Anzahl von Instruktionsworten benötigt,
mehrere Programmwörter verwendet werden. Somit genügt die
Breite des Programmspeichers den häufigsten Anwendungsfällen,
wobei auch keine Verzögerung in der Erstellung des Sekundärin
struktionswortes eintritt. Lediglich in den relativ wenigen
Fällen, in denen die Anzahl der zu ändernden Instruktions
wortteile die Breite eines Programmwortes überschreitet, wer
den zwei oder mehr Programmworte in zwei oder mehr Takten zur
Herstellung des Sekundärinstruktionswortes benötigt.
Eine weitere Verringerung der Programmwortbreite kann dadurch
erreicht werden, daß die Instruktionswortteile in einem Pro
grammwort komprimiert werden. Dies geschieht dadurch, daß die
Bitbreite in dem Maße verringert wird, wie eine Darstellung
der am häufigsten vorkommenden Instruktionswortteile möglich
ist, und daß bei einem Auftreten von Instruktionswortteilen,
die zur Darstellung eine größere Bitbreite benötigen, mehrere
Programmwörter verwendet werden.
Für eine derartige Komprimierung des Programmwortes ist es
insbesondere zweckmäßig, daß die Breite der Instruktionswort
teile in dem Programmwort halbiert wird und zur Darstellung
der Instruktionswortteile ein oder zwei Programmwörter vor
gesehen sind. Hat beispielsweise normalerweise das Programm
wort eine Breite von 8 Bit, so stehen 256 Kombinationen zur
Verfügung. Ein großer Teil dieser Kombinationen wird jedoch
nur äußerst selten oder gar nicht benötigt. Dementsprechend
kann das Programmwort mit einer Breite von 4 Bit vorgesehen
werden, was für die 16 häufigsten Kombinationen zur Darstel
lung ausreichend ist. Soll eine andere als eine dieser Kombi
nation dargestellt werden, werden hierfür zwei oder mehr Pro
grammworte verwendet. Da dies jedoch nur sehr selten auftritt,
ist die erreichte Einsparung an Speicherplatz für den Pro
grammspeicher größer als der mögliche Zeitaufwand zur Erzeu
gung seltener Kombinationen.
Die Aufgabenstellung wird erfindungsgemäß auch durch eine
Prozessoranordnung gelöst, die dadurch gekennzeichnet ist, daß
der Instruktionswortpuffer aus einem Speicher mit wahlfreiem
zeilenweisen Zugriff besteht. Im Unterschied zu dem darge
stellten Stand der Technik besteht damit die Möglichkeit,
direkt auf verschiedene abgespeicherte Instruktionsworte zur
Herstellung eines neuen Sekundärinstruktionswortes zurück
zugreifen. Damit muß nicht irgendein gespeichertes Instruk
tionswort der Erzeugung eines neuen Sekundärinstruktionswortes
dienen, sondern es kann dasjenige abgespeicherte Instruktions
wort verwendet werden, das mit dem zu erzeugenden Sekundärin
struktionswort die größte Übereinstimmung aufweist. Damit ist
der Änderungsaufwand relativ klein, was nur eine geringe Bit
breite des Programmwortes und damit einen kleinen Programm
speicher erfordert.
Die Erfindung soll nachfolgend anhand eines Ausführungsbei
spieles näher erläutert werden. In den zugehörigen Zeichnungen
zeigt
Fig. 1 ein Ablaufschema des erfindungsgemäßen Verfahrens und
Fig. 2 das Prinzip der erfindungsgemäßen Erzeugung der
Primär- und Sekundärinstruktionsworte
Bei dem in Fig. 1 dargestellten Verfahren zur Ansteuerung von
Funktionseinheiten 1 in einem Prozessor 2 wird aus einem Pro
grammcode 3 mittels einer Übersetzung 4 in einer Konfigura
tionsphase eine Folge von Primärinstruktionsworten 5 aus meh
reren Instruktionswortteilen 6 erzeugt. Diese Folge von Primä
rinstruktionsworten 5 wird komprimiert und als Folge von zu
gehörigen Programmworten 7 in einem Programmspeicher 8 gespei
chert.
Die Programmworte 7 bestehen aus einer Anzahl von Instruk
tionswortteilen 6, die der innerhalb der Konfiguration am
häufigsten auftretenden Anzahl zu unterscheidender Instruk
tionswortteile 6 entspricht. Zur Zusammensetzung von Sekun
därinstruktionsworten 9 können mehr als die in einem Programm
wort 7 abgelegte Anzahl von Instruktionswortteilen 6 benötigt
werden. Dazu werden dann mehrere Programmwörter 7 verwendet.
In einer nachfolgenden Ausführungsphase werden aus der Folge
von Programmworten 7 aufeinanderfolgende Sekundärinstruktions
worte 9 aus mehreren Instruktionswortteilen 6 in der zur An
steuerung aller Funktionseinheiten 1 benötigten vollen In
struktionswortbreite erzeugt.
Im Ergebnis der Konfiguration weist ein Programmwort 7 ein
erstes Kennzeichen 10 eines Primärinstruktionswortes 5 aus
einer ersten Gruppe 11 vorhergehender Primärinstruktionsworte
5, welches mit dem zum Programmwort 7 zugehörigen Primärin
struktionswort 5 die größte Übereinstimmung aufweist, und
Instruktionswortteile 6, die das zu dem Programmwort 7 gehö
rige Primärinstruktionswort 5 von dem zu dem Kennzeichen gehö
rigen Primärinstruktionswort 5 unterscheidenden, enthält. Das
erste Kennzeichen 10 wird als Abstand des zum jeweiligen Pro
grammwort 7 gehörigen Primärinstruktionswortes 5 zu dem Primä
rinstruktionswort 5 mit der größten Übereinstimmung gebildet.
In der Ausführungsphase wird eine der ersten Gruppe 11 in der
Anzahl entsprechende zweite Gruppe 12 von Sekundärinstruk
tionsworten 9 mit je einem zweiten Kennzeichen 13 versehen
gespeichert. Das zweite Kennzeichen 13 wird aus einer Zeilen
nummer eines der Abspeicherung der zweiten Gruppe 12 dienenden
Speichers 14 gebildet.
Mittels dem in dem Programmwort 7 enthaltenen ersten Kenn
zeichen 10 wird ein dem zugehörigen Primärinstruktionswort 5
entsprechendes Sekundärinstruktionswort 9 aus der zweiten
Gruppe 12 über das zugehörige zweite Kennzeichen 13 ermittelt.
Das dem Programmwort entsprechende Sekundärinstruktionswort 9
wird erzeugt, indem in dem Sekundärinstruktionswort 9 aus der
zweiten Gruppe 12 die in dem Programmwort 7 enthaltenen In
struktionswortteile 6 ausgetauscht werden.
Die erste Gruppe 11 besteht aus einer ersten Anzahl der dem
jeweiligen Primärinstruktionswort 5 vorausgehenden Primärin
struktionswörtern 5. Die zweite Gruppe 12 besteht aus einer
zweiten Anzahl von Sekundärinstruktionswörtern 9, die minde
stens gleich der ersten Anzahl ist, wobei jedes Sekundärin
struktionswort 9 vor der Erzeugung des nächstfolgenden Se
kundärinstruktionswortes 9 der zweiten Gruppe 12 als letztes
hinzugefügt werden kann. Das über die zweite Anzahl hinausge
hende zuerst hinzugefügte Sekundärinstruktionswort 9 wird aus
der zweiten Gruppe 12 entfernt.
1
Funktionseinheit
2
Prozessor
3
Programmcode
4
Übersetzung
5
Primärinstruktionswort
6
Instruktionswortteil
7
Programmwort
8
Programmspeicher
9
Sekundärinstruktionswort
10
erstes Kennzeichen
11
erste Gruppe
12
zweite Gruppe
13
zweites Kennzeichen
14
Speicher
Claims (10)
1. Verfahren zur Ansteuerung von Funktionseinheiten in einem
Prozessor, bei dem in einer Konfiguration eine aus einer
Übersetzung eines Programmcodes stammende Folge von Primä
rinstruktionsworten aus mehreren Instruktionswortteilen
komprimiert und als Folge von zugehörigen Programmworten
gespeichert wird und bei dem in einer nachfolgenden Aus
führungsphase aus der Folge von Programmworten aufeinand
erfolgende Sekundärinstruktionsworte aus mehreren Instruk
tionswortteilen in der zur Ansteuerung aller Funktionsein
heiten benötigten vollen Instruktionswortbreite erzeugt
werden, dadurch gekennzeichnet,
daß im Ergebnis der Konfiguration ein Programmwort (7) ein erstes Kennzeichen (10) eines Primärinstruktionswortes (5) aus einer ersten Gruppe (11) vorhergehender Primärinstruk tionsworte (5), welches mit dem zum Programmwort (7) zu gehörigen Primärinstruktionswort (5) die größte Überein stimmung aufweist, und Instruktionswortteile (6), die das zu dem Programmwort (7) gehörige Primärinstruktionswort (5) von dem zu dem ersten Kennzeichen (10) gehörigen Pri märinstruktionswort (5) unterscheidenden, enthält,
daß in der Ausführungsphase eine der ersten Gruppe (11) in der Anzahl entsprechende zweite Gruppe (12) von Sekundä rinstruktionsworten (9) mit je einem zweiten Kennzeichen (13) versehen gespeichert wird, und
daß mittels dem in dem Programmwort (7) enthaltenen ersten Kennzeichen (10) ein dem zugehörigen Primärinstruktions wort (5) entsprechendes Sekundärinstruktionswort (9) aus der zweiten Gruppe (12) über das zugehörige zweite Kenn zeichen (13) ermittelt wird und das dem Programmwort (7) entsprechende Sekundärinstruktionswort (9) erzeugt wird, indem in dem Sekundärinstruktionswort (9) aus der zweiten Gruppe (12) die in dem Programmwort (7) enthaltenen In struktionswortteile (6) ausgetauscht werden.
daß im Ergebnis der Konfiguration ein Programmwort (7) ein erstes Kennzeichen (10) eines Primärinstruktionswortes (5) aus einer ersten Gruppe (11) vorhergehender Primärinstruk tionsworte (5), welches mit dem zum Programmwort (7) zu gehörigen Primärinstruktionswort (5) die größte Überein stimmung aufweist, und Instruktionswortteile (6), die das zu dem Programmwort (7) gehörige Primärinstruktionswort (5) von dem zu dem ersten Kennzeichen (10) gehörigen Pri märinstruktionswort (5) unterscheidenden, enthält,
daß in der Ausführungsphase eine der ersten Gruppe (11) in der Anzahl entsprechende zweite Gruppe (12) von Sekundä rinstruktionsworten (9) mit je einem zweiten Kennzeichen (13) versehen gespeichert wird, und
daß mittels dem in dem Programmwort (7) enthaltenen ersten Kennzeichen (10) ein dem zugehörigen Primärinstruktions wort (5) entsprechendes Sekundärinstruktionswort (9) aus der zweiten Gruppe (12) über das zugehörige zweite Kenn zeichen (13) ermittelt wird und das dem Programmwort (7) entsprechende Sekundärinstruktionswort (9) erzeugt wird, indem in dem Sekundärinstruktionswort (9) aus der zweiten Gruppe (12) die in dem Programmwort (7) enthaltenen In struktionswortteile (6) ausgetauscht werden.
2. Verfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß die erste Gruppe (11) aus einer er
sten Anzahl der dem jeweiligen Primärinstruktionswort (5)
direkt vorausgehenden Primärinstruktionswörtern (5) be
steht und
daß die zweite Gruppe (12) aus einer zweiten Anzahl von
Sekundärinstruktionswörtern (9) besteht, die mindestens
gleich der ersten Anzahl ist, wobei jedes Sekundärinstruk
tionswort (9) vor der Erzeugung des nächstfolgenden Se
kundärinstruktionswortes (9) der zweiten Gruppe (12) als
letztes hinzugefügt und das über die zweite Anzahl hin
ausgehende zuerst hinzugefügte Sekundärinstruktionswort
(9) aus der zweiten Gruppe (12) entfernt wird.
3. Verfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß das neu erzeugte Sekundär
instruktionswort (9) der zweiten Gruppe (12) hinzugefügt
wird, indem dieses anstelle des seiner Erzeugung dienenden
Sekundärinstruktionswortes (9) gespeichert wird.
4. Verfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß das neu erzeugte Sekundärinstruk
tionswort (9) nicht gespeichert wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß das erste Kennzeichen
(10) als Abstand des zum jeweiligen Programmwort gehörigen
Primärinstruktionswortes zu dem Primärinstruktionswort mit
der größten Übereinstimmung gebildet wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch
gekennzeichnet, daß das zweite Kennzeichen
(13) aus einer dem ersten Kennzeichen entsprechenden
Adresse eines vorhergehenden Sekundärinstruktionswortes
in einem der Abspeicherung der zweiten Gruppe (12) dienen
den Speichers (14) besteht.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch
gekennzeichnet, daß das Programmwort (7) aus
einer Anzahl von Instruktionswortteilen (6) besteht, die
der innerhalb der Konfiguration am häufigsten auftretenden
Anzahl zu unterscheidender Instruktionswortteile (6)
entspricht und daß zur Zusammensetzung von Sekundärin
struktionsworten (9), die zu dem der Erzeugung dienenden
Sekundärinstruktionswort (9) mehr als die in einem Pro
grammwort (7) abgelegte Anzahl von Instruktionsworten (9)
benötigt, mehrere Programmwörter (7) verwendet werden.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch
gekennzeichnet, daß die Instruktionsworttei
le (6) in einem Programmwort (7) komprimiert werden, indem
die Bitbreite in dem Maße verringert wird, wie eine Dar
stellung der am häufigsten vorkommenden Instruktionswort
teile (6) möglich ist, und daß bei einem Auftreten von
Instruktionswortteilen (6), die zur Darstellung eine grö
ßere Bitbreite benötigen, mehrere Programmwörter (7) ver
wendet werden.
9. Verfahren nach Anspruch 8, dadurch gekenn
zeichnet, daß die Breite der Instruktionswortteile
(6) in dem Programmwort (7) halbiert wird und zur Dar
stellung der Instruktionswortteile (6) ein oder zwei Pro
grammwörter (7) vorgesehen sind.
10. Prozessoranordnung zur Durchführung des Verfahrens nach dem PA1 mit
Funktionseinheiten, einem diesen Funktionseinheiten zu
geordneten Instruktionswortspeicher und einem Instruk
tionswortpuffer zur Speicherung bereits erzeugter Instruk
tionsworte mit einer Breite, die mindestens gleich der
Bitbreite des Sekundärinstruktionswortes ist, da
durch gekennzeichnet, daß der Instruk
tionswortpuffer aus einem Speicher (14) mit wahlweisem
zeilenweisen Zugriff besteht.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19859389A DE19859389C1 (de) | 1998-12-22 | 1998-12-22 | Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens |
EP99963284A EP1145113B1 (de) | 1998-12-22 | 1999-12-21 | Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors |
US09/868,797 US7080235B1 (en) | 1998-12-22 | 1999-12-21 | Device and method for generating and executing compressed programs of a very long instruction word processor |
DE19982820T DE19982820D2 (de) | 1998-12-22 | 1999-12-21 | Verfahren und Anordnung zur Erzeugung und Ausführung von Komprimierten Programmen eines VLIW-Prozessors |
JP2000590041A JP4486754B2 (ja) | 1998-12-22 | 1999-12-21 | Vliwプロセッサの圧縮されたプログラムを生成して実行する方法 |
AU19648/00A AU1964800A (en) | 1998-12-22 | 1999-12-21 | Device and method for generating and executing compressed programs of a very long instruction word processor |
PCT/DE1999/004050 WO2000038049A1 (de) | 1998-12-22 | 1999-12-21 | Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19859389A DE19859389C1 (de) | 1998-12-22 | 1998-12-22 | Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19859389C1 true DE19859389C1 (de) | 2000-07-06 |
Family
ID=7892209
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19859389A Expired - Fee Related DE19859389C1 (de) | 1998-12-22 | 1998-12-22 | Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens |
DE19982820T Expired - Lifetime DE19982820D2 (de) | 1998-12-22 | 1999-12-21 | Verfahren und Anordnung zur Erzeugung und Ausführung von Komprimierten Programmen eines VLIW-Prozessors |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19982820T Expired - Lifetime DE19982820D2 (de) | 1998-12-22 | 1999-12-21 | Verfahren und Anordnung zur Erzeugung und Ausführung von Komprimierten Programmen eines VLIW-Prozessors |
Country Status (6)
Country | Link |
---|---|
US (1) | US7080235B1 (de) |
EP (1) | EP1145113B1 (de) |
JP (1) | JP4486754B2 (de) |
AU (1) | AU1964800A (de) |
DE (2) | DE19859389C1 (de) |
WO (1) | WO2000038049A1 (de) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10107102A1 (de) * | 2001-02-14 | 2002-08-29 | Systemonic Ag | Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor |
WO2003012630A1 (de) * | 2001-07-27 | 2003-02-13 | Systemonic Ag | Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens |
DE10203541A1 (de) * | 2002-01-29 | 2003-08-14 | Systemonic Ag | Verfahren zum Zwischenspeichern von Befehlen |
WO2003104987A2 (de) * | 2002-06-05 | 2003-12-18 | Philips Semiconductors Dresden Ag | Verfahren zum codieren/decodieren von vliw cached befehlen |
DE10065114B4 (de) * | 1999-12-30 | 2005-02-17 | Systemonic Ag | Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor |
FR2868853A1 (fr) * | 2004-04-09 | 2005-10-14 | St Microelectronics Sa | Procede de delivrance de mots d'instruction tres longs a un processeurs et circuit integre avec un dispositif de memoire programme associe |
DE102006047741B4 (de) * | 2005-10-06 | 2010-06-24 | Technische Universität Dresden | Verfahren zur Kompression und Dekompression sehr langer Instruktionswörter (VLIW) und Anordnung zur Durchführung des Verfahrens |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9250916B2 (en) * | 2013-03-12 | 2016-02-02 | International Business Machines Corporation | Chaining between exposed vector pipelines |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8828796D0 (en) * | 1988-12-09 | 1989-01-18 | British Telecomm | Data compression |
CA2077271C (en) | 1991-12-13 | 1998-07-28 | David J. Craft | Method and apparatus for compressing data |
US5636352A (en) * | 1994-12-16 | 1997-06-03 | International Business Machines Corporation | Method and apparatus for utilizing condensed instructions |
US5826054A (en) * | 1996-05-15 | 1998-10-20 | Philips Electronics North America Corporation | Compressed Instruction format for use in a VLIW processor |
US5819058A (en) | 1997-02-28 | 1998-10-06 | Vm Labs, Inc. | Instruction compression and decompression system and method for a processor |
-
1998
- 1998-12-22 DE DE19859389A patent/DE19859389C1/de not_active Expired - Fee Related
-
1999
- 1999-12-21 JP JP2000590041A patent/JP4486754B2/ja not_active Expired - Lifetime
- 1999-12-21 AU AU19648/00A patent/AU1964800A/en not_active Abandoned
- 1999-12-21 WO PCT/DE1999/004050 patent/WO2000038049A1/de active IP Right Grant
- 1999-12-21 US US09/868,797 patent/US7080235B1/en not_active Expired - Lifetime
- 1999-12-21 EP EP99963284A patent/EP1145113B1/de not_active Expired - Lifetime
- 1999-12-21 DE DE19982820T patent/DE19982820D2/de not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
Weiss, H., Fettweis, G.:"Dynamic Codewidth Reduc- tion for VLIW Instruction Set Architectures in Digital Signal Processors", Tagungsbericht des 3. Int. Workshop on Signal and Image Processing IWSIP1996, S. 517-520 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10065114B4 (de) * | 1999-12-30 | 2005-02-17 | Systemonic Ag | Verfahren und Anordnung zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten in einem Prozessor |
GB2375197B (en) * | 2001-02-14 | 2004-02-11 | Systemonic Ag | Method and arrangement for instruction word generation in the driving of functional units in a processor |
GB2375197A (en) * | 2001-02-14 | 2002-11-06 | Systemonic Ag | A method of generating instruction words for driving functional units in a procssor. |
DE10107102A1 (de) * | 2001-02-14 | 2002-08-29 | Systemonic Ag | Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor |
DE10107102B4 (de) * | 2001-02-14 | 2004-02-26 | Systemonic Ag | Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor |
FR2824154A1 (fr) * | 2001-02-14 | 2002-10-31 | Systemonic Ag | Procede et dispositif pour generer des mots d'instruction pour la commande d'unites fonctionnelles dans un processeur |
WO2003012630A1 (de) * | 2001-07-27 | 2003-02-13 | Systemonic Ag | Verfahren zur abarbeitung eines programmcodes sowie eine prozessoranordnung zur ausführung des verfahrens |
DE10203541A1 (de) * | 2002-01-29 | 2003-08-14 | Systemonic Ag | Verfahren zum Zwischenspeichern von Befehlen |
DE10203541B4 (de) * | 2002-01-29 | 2005-10-13 | Systemonic Ag | Verfahren zur Erzeugung von Instruktionsworten zur Ansteuerung von Funktionseinheiten |
WO2003104987A2 (de) * | 2002-06-05 | 2003-12-18 | Philips Semiconductors Dresden Ag | Verfahren zum codieren/decodieren von vliw cached befehlen |
WO2003104987A3 (de) * | 2002-06-05 | 2004-12-29 | Philips Semiconductors Dresden | Verfahren zum codieren/decodieren von vliw cached befehlen |
FR2868853A1 (fr) * | 2004-04-09 | 2005-10-14 | St Microelectronics Sa | Procede de delivrance de mots d'instruction tres longs a un processeurs et circuit integre avec un dispositif de memoire programme associe |
DE102006047741B4 (de) * | 2005-10-06 | 2010-06-24 | Technische Universität Dresden | Verfahren zur Kompression und Dekompression sehr langer Instruktionswörter (VLIW) und Anordnung zur Durchführung des Verfahrens |
Also Published As
Publication number | Publication date |
---|---|
EP1145113B1 (de) | 2006-03-01 |
WO2000038049A1 (de) | 2000-06-29 |
EP1145113A1 (de) | 2001-10-17 |
AU1964800A (en) | 2000-07-12 |
US7080235B1 (en) | 2006-07-18 |
DE19982820D2 (de) | 2002-02-28 |
JP4486754B2 (ja) | 2010-06-23 |
JP2002533804A (ja) | 2002-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2756890C2 (de) | Schaltungungsanordnung zur Steuerung der Datenübertragung zwischen einer zentralen Verarbeitungseinheit und einer Mehrzahl peripherer Einheiten | |
DE2230987C2 (de) | ||
DE4220698C2 (de) | Verfahren zum Betreiben einer Datenverarbeitungsanlage | |
DE2846117A1 (de) | Informationsverarbeitungsvorrichtung | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE3535436C2 (de) | ||
DE3043100C2 (de) | ||
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE19859389C1 (de) | Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens | |
DE2758829A1 (de) | Multiprozessor-datenverarbeitungssystem | |
DE2213953C3 (de) | Schaltungsanordnung zum Darstellen von Zeichen auf dem Bildschirm eines Sichtgerätes | |
DE2656086A1 (de) | Rechnersystem | |
DE1271433B (de) | Adressiereinrichtung fuer einen Tabellenwertspeicher | |
EP0788632A1 (de) | Computergestützte umwandlung von tabellen | |
DE3729494C3 (de) | Einrichtung zur Speicherung von Videosignalen | |
DE3843372A1 (de) | Verfahren und schaltungsanordnung zur taktanpassung in der digitalen nachrichtentechnik | |
DE2636788A1 (de) | Datenspeicher fuer datensichtgeraete | |
DE10107102B4 (de) | Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor | |
DE2233164B2 (de) | Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern | |
DE2601379C3 (de) | Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen | |
DE2605066A1 (de) | Kanalzuordnungsschaltung zur herstellung einer zeitvielfach-breitbandverbindung | |
DE3105503A1 (de) | Assoziativer zugriffsspeicher | |
DE2748859A1 (de) | Schaltungsanordnung zum speichern eines textes | |
DE2630711A1 (de) | Speichersteuersystem | |
DE2836873A1 (de) | Speichersystem mit wahlfreiem zugriff sowie verfahren zu dessen betrieb |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |