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 Verfahrens

Info

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
Application number
DE19859389A
Other languages
English (en)
Inventor
Matthias Weis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP Semiconductors Germany GmbH
Original Assignee
Systemonic 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=7892209&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE19859389(C1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Systemonic AG filed Critical Systemonic AG
Priority to DE19859389A priority Critical patent/DE19859389C1/de
Priority to JP2000590041A priority patent/JP4486754B2/ja
Priority to US09/868,797 priority patent/US7080235B1/en
Priority to DE19982820T priority patent/DE19982820D2/de
Priority to EP99963284A priority patent/EP1145113B1/de
Priority to AU19648/00A priority patent/AU1964800A/en
Priority to PCT/DE1999/004050 priority patent/WO2000038049A1/de
Publication of DE19859389C1 publication Critical patent/DE19859389C1/de
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation 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.
Bezugszeichenliste
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.
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.
DE19859389A 1998-12-22 1998-12-22 Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens Expired - Fee Related DE19859389C1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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