DE10301323A1 - Verfahren und Anordnung zur variablen Befehlskodierung - Google Patents

Verfahren und Anordnung zur variablen Befehlskodierung Download PDF

Info

Publication number
DE10301323A1
DE10301323A1 DE2003101323 DE10301323A DE10301323A1 DE 10301323 A1 DE10301323 A1 DE 10301323A1 DE 2003101323 DE2003101323 DE 2003101323 DE 10301323 A DE10301323 A DE 10301323A DE 10301323 A1 DE10301323 A1 DE 10301323A1
Authority
DE
Germany
Prior art keywords
instruction word
decoder
section
decoder device
assigned
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.)
Granted
Application number
DE2003101323
Other languages
English (en)
Other versions
DE10301323B4 (de
Inventor
Helge Dipl.-Ing. Betzinger
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 BV
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
Application filed by Systemonic AG filed Critical Systemonic AG
Priority to DE2003101323 priority Critical patent/DE10301323B4/de
Publication of DE10301323A1 publication Critical patent/DE10301323A1/de
Application granted granted Critical
Publication of DE10301323B4 publication Critical patent/DE10301323B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

Um bei einem Verfahren zur Befehlscodierung in einer Prozessoranordnung, die mehrere, synchron Daten verarbeitende Funktionseinheiten mit jeweils zumindest einer zugeordneten Decodereinrichtung aufweist, wobei ein Instruktionswort durch mehrere, jeweils ein Opcode umfassende Instruktionswortteile (FIW) gebildet wird, und jedes Instruktionswortteil zumindest einer Funktionseinheit zugeordnet und zur Ansteuerung der zumindest einen Funktionseinheit in einer zugeordneten Decodereinrichtung decodiert wird, den Programmspeicherbedarf zu verringern, ist vorgesehen, dass in einem vorgegebenen, jedoch einstellbaren Abschnitt des Instruktionswortes ein Instruktionswortteil erfasst wird und im Ansprechen auf das im vorgegebenen Abschnitt abgelegte Instruktionswortteil Information zur Festlegung eines weiteren Abschnittes des Instruktionswortes ermittelt wird, in welchem nachfolgend ein weiteres Instruktionswortteil für eine weitere Decodereinrichtung erfasst wird. Damit kann eine höhere Flexibilität beim Aufbau des aus mehreren Instruktionswortteilen zusammengesetzten Instruktionswortes bereitgestellt und letztlich Programmspeicher eingespart werden. Die Erfindung betrifft ferner eine solche Prozessoranordnung.

Description

  • Die Erfindung betrifft ein Verfahren zur Befehlsdecodierung in einer Prozessoranordnung, wie einem digitalen Signalprozessor, die mehrere, synchron Daten verarbeitende Funktionseinheiten mit jeweils zumindest einer zugeordneten Decodereinrichtung aufweist, wobei ein Instruktionswort (VLIW) durch mehrere, jeweils eine Kennung umfassende Instruktionswortteile gebildet wird und jedes Instruktionswortteil zumindest einer Funktionseinheit zugeordnet und zur Ansteuerung der zumindest einen Funktionseinheit in einer zugeordneten Decodereinrichtung decodiert wird. Ferner betrifft die Erfindung eine derartige Prozessoranordnung.
  • Ein solches Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und einer Prozessoranordnung zur Durchführung des Verfahrens ist beispielsweise in der deutschen Patentschrift DE 198 59 389 C1 offenbart. Dabei arbeiten die Funktionseinheiten zueinander parallel und werden zu jedem Takt von einem Instruktionswort angesteuert. Diese Instruktionsworte ihrerseits bestehen aus mehreren Instruktionswortteilen, wobei je ein Instruktionswortteil zur Ansteuerung je einer Funktionseinheit dient. Die Instruktionswortteile weisen eine vorgegebene Breite und Reihenfolge im Instruktionswort auf, sodass diese in Abhängigkeit ihrer Anordnung im Instruktionswort ihrer jeweiligen Funktionseinheit bzw. deren Decodereinheit zuordenbar sind. Eine Erhöhung der Anzahl der parallel arbeitenden Funktionseinheiten zur Steigerung des Verarbeitungspotentials des Rechners hat demnach eine Vergrößerung der Bit-Breite der Instruktionsworte zur Folge. Damit verbunden erhöht sich der Speicherbedarf für die Instruktionsworte im Programmspeicher.
  • Der Erfindung liegt somit die Aufgabe zugrunde, bei einem gattungsbildenden Verfahren zur Befehlscodierung bzw. einer gattungsbildenden Prozessoranordnung den Programmspeicherbedarf zu verringern.
  • Verfahrensseitig wird die Aufgabe dadurch gelöst, dass in einem vorgegebenen, jedoch einstellbaren Abschnitt des Instruktionswortes ein Instruktionswortteil erfasst wird und im Ansprechen auf das im vorgegebenen Abschnitt abgelegte Instruktionswortteil Information zur Festlegung eines weiteren Abschnittes des Instruktionswortes ermittelt wird, in welchem nachfolgend ein weiteres, d.h. ein nächstes Instruktionswortteil für eine weitere, d.h. eine nächste Decodereinrichtung erfasst wird. Durch das erfindungsgemäße Verfahren kann das einer bestimmten Decodereinrichtung zugeordnete Instruktionswortteil innerhalb des Instruktionswortes erfasst und erkannt werden, wodurch die Notwendigkeit vermieden werden kann, das jedes Instruktionswortteil in einem vorgegebenen Bereich innerhalb des Instruktionswortes angeordnet ist. Damit kann eine höhere Flexibilität beim Aufbau des aus mehreren Instruktionswortteilen zusammengesetzten Instruktionswortes bereitgestellt und letztlich Programmspeicher eingespart werden.
  • Der Erfindung liegt die Idee zugrunde, von dem vorgegebenen Aufbau des Instruktionswortes, d.h. einer festen Abfolge von Instruktionswortteilen gleicher Länge, bei welcher ein vorgegebener Abschnitt des Instruktionswortes einer vorgegebenen Decodereinrichtung zuordenbar ist, dahingehend abzuweichen, dass auch unterschiedliche Instruktionswortlängen und eine flexible Anordnung der Instruktionswortteile innerhalb des Instruktionswortes möglich sind. Erfindungsgemäß kann somit die Notwendigkeit vermieden werden, dass alle Instruktionswortteile die gleiche Bit-Breite aufweisen. Für die Umsetzung dieser Idee ist vorgesehen, dass wahlfrei auf Abschnitte des Instruktionswortteils zugegriffen werden kann und nachfolgend überprüft wird, ob ein erfasstes Instruktionswortteil für eine vorgegebene Decodereinrichtung gültig ist, d.h. von dieser verarbeitet werden kann. Um das Auffinden eines weiteren Instruktionswortteils für eine andere Decodereinrichtung zu erleichtern, ist erfindungsgemäß vorgesehen, dass im Ansprechen auf das im vorgegebenen Abschnitt abgelegte Instruktionswortteil Information zur Festlegung des weiteren, nächsten Abschnittes des Instruktionswortes ermittelt wird, in welchem nachfolgend das Instruktionswortteil für die nächste Decodereinrichtung erfasst wird.
  • Um beim Nichterfassen eines gültigen Instruktionswortteils für die vorgegebene Decodereinrichtung in dem vorgegebenen Abschnitt dieses Instruktionswortteil zur Gültigkeitsüberprüfung für eine weitere Decodereinrichtung bereitzustellen, kann vorgesehen sein, dass im Ansprechen auf das Nichterfassen eines gültigen Instruktionswortteils für die vorgegebene Decodereinrichtung in dem vorgegebenen Abschnitt der weitere Abschnitt als der vorgegebene Abschnitt festgelegt wird. Auf diese Weise kann nachfolgend überprüft werden, ob ein erfasstes Instruktionswortteil für eine weitere, d.h. eine andere Decodereinrichtung ein gültiges Instruktionswortteil darstellt.
  • Um für alle Decodereinrichtungen zu überprüfen, ob ein bestimmtes Instruktionswort ein gültiges Instruktionswortteil beinhaltet, kann vorgesehen sein, dass das Instruktionswort sukzessiv abschnittsweise nach einem der jeweiligen Decodereinrichtung zugeordneten, d.h. gültigen Instruktionswortteil durchsucht wird, wobei nach jeder, jeweils einer Decodereinrichtung zugeordneten Suche Information zur Festlegung des nachfolgend zu durchsuchenden weiteren Abschnittes des Instruktionswortes nach einem Instruktionswortteil für die nächste Decodereinrichtung ermittelt wird. Ausgehend von einer ersten Decodereinrichtung bis zur letzten Decodereinrichtung kann auf die beschriebene Weise für die jeweilige Decodereinrichtung ein zugeordnetes, d.h. gültiges Instruktionswortteil erfasst werden, wobei die Festlegung des zu durchsuchenden Abschnittes im Instruktionswort von der bzw. den vorhergehenden Erfassungen von Instruktionswortteilen abhängt.
  • Vorteilhaft können die ermittelten Informationen zur Festlegung des weiteren Abschnittes des Instruktionswortes Angaben über die Bit-Breite eines im vorgegebenen Abschnitt aufgefundenen gültigen Instruktionswortteils und Angaben über die Lage des vorgegebenen Abschnittes im Instruktionswort umfassen, sodass mit beiden Angaben der weitere, d.h. der nächste Abschnitt im Instruktionswort berechnet werden kann, in welchem dann nachfolgend nach einem gültigen Instruktionswortteil für die weitere, d.h. nächste Decodereinrichtung gesucht wird.
  • Um zu ermitteln, ob ein erfasstes Instruktionswortteil einer bestimmten Decodereinrichtung zugeordnet ist, d.h. für diese gültig und somit verarbeitbar ist, kann vorgesehen sein, dass ein erfasstes Instruktionswortteil mit den für die jeweilige Decodereinrichtung gültigen Instruktionswortteilen verglichen wird. Darüber hinaus kann im Instruktionswortteil selbst auch die Gültigkeit für eine vorgegebene Decodereinrichtung codiert sein.
  • Zur weiteren Verminderung des Programmspeicherbedarfs kann ferner vorgesehen sein, dass ein Instruktionswortteil als ein für mehrere Decodereinrichtungen gültiger Instruktionswortteil erkannt wird und jeweils der vorgegebene Abschnitt als der weitere Abschnitt festgelegt wird, sodass das im vorgegebenen Abschnitt erfasste Instruktionswortteil von allen nachfolgenden Decodereinrichtungen decodiert wird. Dies bedeutet, dass der vorgegebene Abschnitt für alle nachfolgenden Decodereinrichtungen nach einem gültigen Instruktionswortteil durchsucht wird, was letztlich dazu führt, dass das im vorgegebenen Abschnitt abgelegte Instruktionswortteil auch allen nachfolgenden Deco dereinrichtungen zugeführt und von diesen decodiert wird.
  • Um die Flexibilität des erfindungsgemäßen Verfahrens zusätzlich zu erhöhen, kann vorgesehen sein, dass operandenspezifische Informationen eines Instruktionswortteils von einer Decodereinrichtung zu einer weiteren Decodereinrichtung übermittelt werden. Damit sind beispielsweise Strukturen ausbildbar, bei welchen operandenspezifische Informationen durch eine Decodereinrichtung ausgewertet werden und das Ergebnis zur weiteren Verarbeitung an eine den zugeordneten Operationscode verarbeitende Decodereinrichtung weitergegeben wird, wodurch unter Umständen eine höhere Verarbeitungsgeschwindigkeit realisierbar ist.
  • Zweckmäßig wird die Bit-Breite eines Instruktionswortteils in dessen Opcode codiert, sodass ohne Zeitverlust die Information zur Ermittlung des nächsten Abschnittes innerhalb des Instruktionswortes erfassbar ist. Ferner können damit auch Hardwarestrukturen zur Erfassung der Bit-Breite vermieden werden.
  • Um den Hardwareaufwand zur Erfassung der Instruktionswortteile innerhalb des Instruktionswortes zu verringern, kann vorgesehen sein, dass die Breite der jeweiligen Instruktionswortteile auf ein Vielfaches einer vorgegebenen ganzzahligen Konstanten eingestellt wird. Dies bedeutet, dass zwar Instruktionswortteile unterschiedliche Bit-Breiten aufweisen können, diese jedoch einen gemeinsamen, vorgegebenen Teiler besitzen.
  • Um zu ermöglichen, dass mehr als ein Instruktionswortteil eines Instruktionswortes von jeweils mehreren zugeordneten Decodereinrichtungen decodiert wird, kann vorgesehen sein, dass Abschnitten den Instruktionswortes nicht einzelne Decodereinrichtungen, sondern Decodervorrichtungen zugeordnet sind, welche die Decodierfunktionalitäten mehrerer Decodereinrichtungen umfassen. Dabei ist ein Instruktionswortteil innerhalb des Instruktionswortes jeweils einer Decodervorrichtung zugeordnet. Damit wird die Decodierfunktionalität einer Funktionseinheit über mehrere, jeweils einem Abschnitt des Instruktionswortes zugeordnete Decodervorrichtungen redundant verteilt. In jeder Decodervorrichtung wird das im jeweils zugeordneten Abschnitt des Instruktionswortes erfasste Instruktionswortteil in den Decodierfunktionalitäten decodiert, für welche das Instruktionswortteil gültig ist. Dieses Verfahren bietet sich vorteilhaft insbesondere dann an, wenn verschiedene Funktionseinheiten gleiche Instruktionswortteile parallel verarbeiten. Der Speicherbedarf für das Instruktionswort wird dabei dadurch erniedrigt, dass ein für mehrere Decodereinrichtungen gültiges Instruktionswortteil nur einmal innerhalb des Instruktionswortes angeordnet sein muss. Da das Instruktionswortteil einer einzelnen Decodervorrichtung den Decodierfunktionalitäten mehrerer Decodereinrichtungen zugeführt wird, kann das Instruktionswort allen Decodierfunktionalitäten der Decodervorrichtung zugeführt und von diesen verarbeitet werden, für welche es gültig ist.
  • Das Prinzip der Zuordnung eines Abschnittes des Instruktionswortes zu einer Decodervorrichtung, welche die Decodierfunktionalitäten mehrerer Decodereinrichtungen aufweist, kann prinzipiell auf alle Abschnitte des Instruktionswortes übertragen werden. Damit verbunden ist zwar eine hohe Redundanz in Bezug auf einzelne Decodierfunktionalitäten aufgrund der beschriebenen Decoderstruktur, der Speicherbedarf für den Programmspeicher kann durch das erfindungsgemäße Verfahren jedoch insbesondere bei spezifischen Anwendungen stark herabgesetzt werden. Um die jeweilige Funktionseinheit anzusteuern, werden die Decoderausgänge der verschiedenen Decodervorrichtungen für die der Funktionseinheit zugeordneten Decodierfunktionalität zusammengeführt.
  • Vorrichtungsseitig löst die Erfindung die Aufgabe mit einer Prozessoranordnung mit mehreren, synchron datenverarbeitenden Funktionseinheiten, wobei zur Befehlssteuerung der Funktionseinheiten ein Instruktionswort vorgesehen ist, welches den Funktionseinheiten zugeordnete Instruktionswortteile umfasst und jeder Funktionseinheit zumindest eine Decodereinrichtung zugeordnet ist, welche ein der jeweiligen Funktionseinheit zugeordnetes Instruktionswortteil zur Ansteuerung der Funktionseinheit decodiert. Dabei ist eine Registereinrichtung zur Aufnahme des Instruktionswortes vorgesehen und mehrere, jeweils zumindest einer Decodereinrichtung zugeordnete Mittel, mit welchen jeweils ein Instruktionswortteil in einem jeweils vorgegebenen Abschnitt des Instruktionswortes erfassbar ist. Dieser Abschnitt des Instruktionswortes ist im Betrieb der Prozessoranordnung flexibel festlegbar und dann für den nachfolgenden Verfahrensschritt vorgegeben. Weiterhin umfasst die Prozessoranordnung Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes im Ansprechen auf das erfasste Instruktionswortteil im vorgegebenen Abschnitt des Instruktionswortes. Das in der Registereinrichtung abgelegte Instruktionswort kann über die angegebenen Mittel nach einem für eine jeweilige Decodereinrichtung gültigen Instruktionswort durchsucht werden. Letztlich ist auf diese Weise für alle umfassten Decodereinrichtungen das jeweils zugeordnete Instruktionswortteil innerhalb des Instruktionswortes ermittelbar.
  • Zur sukzessiven Festlegung des zu untersuchenden Abschnittes innerhalb der Registereinrichtung nach einem gültigen Instruktionswortteil für die dem jeweiligen Abschnitt zugeordneten Decodereinrichtung kann ein Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes ein Addierglied aufweisen, in welchem eine Information über die Lage des vorgegebenen Abschnittes des Instruktionswortes innerhalb der Registereinrichtung und eine Information über die Länge des Instruktionswortteils im vorgegebenen Abschnitt des Instruktionswortes datenverarbeitbar ist.
  • Zweckmäßig kann ein oder mehrere Mittel zum Erfassen eines Instruktionswortteils innerhalb des Instruktionswortes zum wahlfreien Zugreifen innerhalb eines vorgegebenen Bereichs auf die Registereinrichtung vorgesehen sein. Dieser vorgegebene Bereich kann je nach Ausführungsform die gesamte Bit-Breite der Registereinrichtung oder auch nur einen Teil davon umfassen, welcher auf der Basis der vorhergehenden Erfassungen von Instruktionswortteilen innerhalb der Registereinrichtung ermittelbar ist. Dieses Mittel kann insbesondere als eine mit der Registereinrichtung verbundene Multiplexereinrichtung ausgebildet sein, mit der auf vorbestimmte Bit-Bereiche der Registereinrichtung zugegriffen werden kann.
  • Zweckmäßigerweise ist das i-te Mittel zum Erfassen eines der i-ten Decodereinrichtung zugeordneten Instruktionswortteils so ausgebildet, dass auf einen Bereich der Registereinrichtung zugegriffen werden kann, der größer als der Bereich des (i-1)-ten Mittels zum Erfassen eines Instruktionswortteils ist, wobei der i-te Bereich den (i-1)-Bereich der Registereinrichtung einschließt. Damit kann insbesondere sichergestellt werden, dass Instruktionswortteile, die in einem vorderen Bereich des Instruktionswortes angeordnet sind, prinzipiell von allen zumindest einer Decodereinrichtung zugeordneten Mitteln zum Erfassen eines Instruktionswortteils nach einem jeweils gültigen Instruktionswortteil untersucht werden können. Somit kann vorgesehen sein, dass ein Instruktionswort nur für einzelne Funktionseinheiten bzw. deren zugeordneten Decodereinrichtungen gültige Instruktionswortteile umfasst, sodass die Bit-Breite des Instruktionswortes reduziert werden kann. Dabei kann insbesondere vorgesehen sein, dass für die Decodereinrichtungen, für welche innerhalb des Instruktionswortes kein gültiges Instruktionswortteil umfasst ist, automatisch ein sogenannter „NOP"-Befehl eingefügt wird.
  • In einer vorteilhaften Ausführungsform sind die Decodierfunktionalitäten der Decodereinrichtungen in der Prozessoranordnung redundant angeordnet, wobei mehrere Decodervorrichtungen umfasst sind, welche jeweils Funktionalitäten mehrerer Decodereinrichtungen aufweisen, und den Decodervorrichtungen jeweils ein Mittel zugeordnet ist, mit welchem ein Instruktionswortteil in einem vorgegebenen Abschnitt des Instruktionswortes erfassbar ist sowie ein Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes im Ansprechen auf das Instruktionswortteil im vorgegebenen Abschnitt des Instruktionswortes. Auf diese Weise ist den verschiedenen Abschnitten der Registereinrichtung des Instruktionswortes jeweils eine Decodervorrichtung zugeordnet, in welcher das im zugeordneten Abschnitt erfasste Instruktionswortteil verarbeitet wird. Somit kann erreicht werden, dass ein einzelnes Instruktionswortteil als Compound-Befehl in mehreren Decodereinrichtungen verarbeitbar ist. Ferner ist es auch möglich, innerhalb eines einzelnen Instruktionswortes mehrere derartiger Compound-Befehle anzugeben.
  • Beliebige Compound-Befehle innerhalb des Instruktionswortes sind umsetzbar, wenn die dem ersten Abschnitt zugeordnete Decodervorrichtung die Decodierfunktionalitäten aller Funktionseinheiten aufweist und die den nachfolgenden Abschnitten zugeordneten Decodervorrichtungen jeweils eine Dekodierfunktionalität weniger, sodass die dem letzten Abschnitt der Registereinrichtung zugeordnete Decodervorrichtung die Decodierfunktionalität einer einzigen Funktionseinheit umfasst.
  • Eine grundsätzliche Regel bei dem Betrieb der erfindungsgemäßen Prozessoranordnung besteht darin, dass unabhängig von der Verwendung von einem oder mehreren Compound-Instruktionswortteilen innerhalb des Instruktionswortes nur ein einzelnen Instruktionswortteil einer Decodereinrichtung zugeordnet ist, sodass innerhalb eines Instruktionswortes die bestimmte Decodereinrichtung, d.h. die Decodierfunktionalität nur einmal angesprochen wird. Um den Eingang einer Funktionseinheit mit dem Ausgang der ihr zugeordneten Decodereinrichtung zu verknüpfen, kann vorgesehen sein, dass der jeweilige Ausgang einer in mehreren Decodervorrichtungen angeordneten Decodierfunktionalität über ein logisches Netzwerk mit der Funktionseinheit verbunden ist, damit diese mit ihrem entsprechenden decodierten Instruktionswortteil angesprochen werden kann.
  • Eine grundsätzlich neue Betriebsweise der erfindungsgemäßen Prozessoranordnung kann dadurch bereitgestellt werden, dass Decodereinrichtungen zum Übermitteln von decodierten Operanten eines Instruktionswortteils miteinander verbunden sind, sodass die Decoder untereinander Decodierinformation austauschen, welche für nachfolgende Decoderoperationen verwendet werden.
  • Die Erfindung wird im Folgenden durch das Beschreiben zweier Ausführungsformen auf der Grundlage der beiliegenden Zeichnungen erläutert, wobei
  • 1 in einer Prinzipdarstellung und im Ausschnitt eine herkömmliche Prozessoranordnung zur parallelen Datenverarbeitung,
  • 2 in einer Prinzipdarstellung und im Ausschnitt eine erste Ausführungsform einer erfindungsgemäßen Prozessoranordnung zur parallelen Datenverarbeitung,
  • 3 ein beispielhaftes Instruktionswort für die in 2 dargestellte Anordnung und
  • 4 in einer Prinzipdarstellung im Ausschnitt eine zweite Ausführungsform einer erfindungsgemäßen Prozessoranordnung zur parallelen Datenverarbeitung zeigt.
  • Die Erfindung baut auf einer Prozessoranordnung zur parallelen Datenverarbeitung auf, wie sie im Ausschnitt in 1 dargestellt ist. Diese umfasst synchron datenverarbeitende Funktionseinheiten 310, 320, 330, 340, welchen jeweils eine Decodereinrichtung 210, 220, 230, 240 zugeordnet ist, die ihrerseits jeweils mit vorgegebenen und sich nicht überlappenden Abschnitten einer Registereinrichtung 100 verbunden sind. Die Registereinrichtung 100 ist zur Aufnahme eines Instruktionswortes (VLIW: very large instruction word) ausgebildet. Ein solches Instruktionswortes setzt sich aus einer vorgegebenen Anzahl von sogenannten Instruktionswortteilen (FIW: function instruction word) zusammen, die eine feste Breite von 20 Bit aufweisen und an einem bestimmten und festen Bereich innerhalb des Instruktionswortes angeordnet sind. Jedes dieser Instruktionswortteile ist zum Ansteuern einer Funktionseinheit gebildet und wird von der ihr zugeordneten Decodereinrichtung decodiert. Da das einer bestimmten Funktionseinheit zugeordnete Instruktionswortteil innerhalb des Registers 100 immer am gleichen Ort mit der vorgegebenen Breite angeordnet ist, ist der jeweilige Decodereingang fest mit dem bestimmten Bereich der Registereinrichtung 100 verbunden. Die erste Decodereinrichtung 210 ist beispielsweise von der Bit-Stelle A0 bis zur Bit-Stelle A19, die zweite Decodereinrichtung 220 ist von der Bit-Stelle A20 bis zur Bit-Stelle A39 und die letzte Decodereinrichtung 220 ist von der Bit-Stelle A180 bis zur Bit-Stelle A199 mit der Registereinrichtung 100 verbunden. Wie ersichtlich, umfasst die dargestellte herkömmliche Prozessoranordnung somit 10 Funktionseinheiten mit jeweils zugeordneter Decodereinrichtung, wobei die Registereinrichtung 100 ein Instruktionswort von 200 Bit aufnimmt. Ein abzuarbeitendes Instruktionswort wird in das Register 100 eingelesen und im darauffolgenden Takt abschnittsweise von den Decodereinrichtungen 210 bis 240 erfasst, welche das ihr zugeordnete Instruktionswortteil decodieren und zur synchronen Steuerung aller Funktionseinheiten 310 bis 340 an die ihr zugeordnete Funktionseinheit weitergeben, in welcher die im jeweiligen Funktionsinstruktionswort niedergelegte Datenverarbeitung durchgeführt wird. Es versteht sich, dass in den einzelnen Funktionseinheiten nicht notwendigerweise gleiche Berechnungen durchgeführt werden sondern auch unterschiedliche Befehle ausgeführt werden können. Wie bekannt, setzt sich ein Instruktionswortteil in der Regel aus einer Kennung d.h. einem Operationscode und einem oder mehreren Operanden zusammen. Es werden jedoch auch Instruktionswortteile verwendet, die nur aus einem Operationscode bestehen.
  • 2 zeigt in einer Prinzipdarstellung eine erste Ausführungsform einer erfindungsgemäß gestalteten Prozessoranordnung im Ausschnitt. Die Anordnung weist wiederum zehn Funktionseinheiten auf, denen jeweils eine Decodereinrichtung zugeordnet ist, in welcher das der Funktionseinheit zugeordnete Instruktionswortteil decodiert wird. Zur Aufnahme des jeweiligen Instruktionswortteils sind alle 10 Decoder 210, 220,..., 230, 240 über einen Bus 150 mit der Registereinrichtung 100 verbunden. Im Unterschied zum beschriebenen Stand der Technik kann die Registereinrichtung 100 bei der Abarbeitung einer durch Instruktionsworte gebildete Befehlskette Instruktionswortteile unterschiedlicher Breite aufweisen, sodass auch ein einzelnes Instruktionswort nicht in jedem Fall die volle Breite der Registereinrichtung 100 ausfüllt. Damit kann letztlich der nicht dargestellte Programmspeicherbereich in seiner Größe vermindert werden. Das in die Registereinrichtung 100 eingeschriebene Instruktionswort weist zehn Instruktionswortteile auf, die insgesamt 150 Bit umfassen, sodass 50 Bit der Registereinrichtung unbeschrieben sind. Das im Bereich der Bit-Stelle A0 bis A14, d.h. 15 Bit umfassende Instruktionswortteil 110 ist der ersten Decodereinrichtung 210 bzw. der ersten Funktionseinrichtung 310 zugeordnet. Das von der Bit-Stelle A15 bis A24 angeordnete Instruktionswortteil 120 umfasst 10 Bit und ist der zweiten Decodereinrichtung 220 bzw. der zweiten Funktionseinrichtung 320 zugeordnet. Dem entsprechend gibt das von der Bit-Stelle 130 bis zur Bit-Stelle 149 angeordnete, 20 Bit breite Instruktionswortteil 140 den in der Decodereinrichtung 240 zu decodierenden Befehl an, welcher in der Funktionseinrichtung 340 ausgeführt wird.
  • Da ein Instruktionswortteil, das einer bestimmten Decodereinrichtung bzw. einer bestimmten Funktionseinrichtung zugeordnet ist, nicht mehr innerhalb eines festen, unveränderlichen Abschnittes in jedem Instruktionswort der Befehlskette angeordnet ist, sind Mittel vorgesehen, um innerhalb von Abschnitten des Instruktionswortes nach einem gültigen Instruktionswortteil für die jeweilige Decodereinrichtung zu suchen. Dabei wird das Ergebnis dieser Suche zur Festlegung eines weiteren Abschnittes innerhalb des Instruktionswortes verwendet, in welchem nachfolgend für die nächste Decodereinrichtung nach einem gültigen Instruktionswort gesucht wird. Hierzu umfasst jede Decodereinrichtung eine Multiplexer-Einrichtungen 410, 420,..., 430 und 440, mit welchen jeweils wahlfrei auf einstellbare Abschnitte des Registers 100 zugegriffen werden kann. Weiterhin weisen die in 2 dargestellten Decodereinrichtungen 210, 220 und 230 jeweils einen Ausgang 610, 620, 630 auf, über den die Breite des erfassten und gültigen Instruktionswortteils an die Multiplexer-Einrichtung der nachfolgenden Decodereinrichtung weitergegeben werden kann. Ferner sind Addierereinrichtungen 520, 530 und 540 vorgesehen, in denen die Bit-Breite der ermittelten Instruktionswortteile addiert werden.
  • Im Folgenden wird auf die Funktionsweise der in 2 dargestellten Anordnung eingegangen. Das 150 Bit breite und zehn Instruktionswortteile umfassende Instruktionswort wurde im Vorfeld als Teil eines Befehlsstromes in das Register 100 eingelesen und wird nun von den Decodern 210, 220,..., 230 und 240 abschnittsweise aufgenommen. Das Instruktionswort wird sukzessive auf gültige Instruktionswortteile für die 10 umfassten Decodereinrichtungen untersucht. Da die maximale Breite des Instruktionswortteils für die erste Decodereinrichtung 210 20 Bit beträgt, ist die Multiplexer-Einrichtung 410 so eingerichtet, dass diese wahlfrei auf die ersten 20 Bit der Registereinrichtung 100 zugreifen kann. Ferner ist vorgegeben, dass das der Decodereinrichtung 210 zugeordnete Instruktionswortteil mindestens 10 Bit aufweist. Demnach wird die Multiplexer-Einrichtung 410 zuerst zum Erfassen der ersten 10 Bit eingestellt, das erfasste Wort in dem vorgegebenen Abschnitt mit gültigen Instruktionswortteilen für die erste Decodereinrichtung verglichen und beim Nichtauffinden eines gültigen Instruktionswortteils die Bit-Breite des vorgegebenen Abschnittes bis zur maximalen Breite des vorgegebenen Abschnittes erhöht, wobei jedes Mal das sich ergebende Instruktionswortteil mit den gültigen Instruktionswortteilen der ersten Decodereinrichtung 210 verglichen wird.
  • Im vorliegenden Beispiel wird nach der Einstellung einer Breite von 15 Bit im vorgegebenen Abschnitt ein gültiges Instruktionswortteil 110 für die erste Decodereinrichtung 210 erkannt und dieser zugeführt. Gleichzeitig wird die Breite des aufgefundenen Instruktionswortteils am Ausgang 610 der ersten Decodereinrichtung 210 an die Multiplexer-Einrichtung 420 der zweiten Decodereinrichtung 220 weitergegeben. Auf diese Weise wird die zweite Multiplexer-Einrichtung auf den Beginn des weiteren, d.h. des nächsten Abschnittes innerhalb des Instruktionswortes eingestellt, in welchem nachfolgend nach einem gültigen Instruktionswortteil für die zweite Decodereinrichtung 220 gesucht wird. Auch dieser weitere, hier zweite Abschnitt kann eine Breite zwischen 10 und 20 Bit aufweisen. Dem entsprechend wird der Bereich, ausgehend von der Bit-Stelle A15 bis zur Bit-Stelle A25, zuerst nach einem gültigen Instruktionswortteil für die zweite Decodereinrichtung 220 untersucht. Vorliegend ergibt ein Vergleich mit dem in der Decodereinrichtung abgelegten gültigen Instruktionswortteilen, dass das Instruktionswortteil 120 gültig ist, sodass dieses nachfolgend von der Decodereinrichtung decodiert und das decodierte Wort an die Funktionseinheit 320 weitergegeben werden kann. Auch hier gibt die zweite Decodereinrichtung an ihrem Ausgang 620 die Breite des ihr zugeordneten Instruktionswortteiles aus, wobei die Breiten der beiden erfassten gültigen Instruktionswortteile in der Addierereinrichtung 520 summiert werden, um den Beginn des Abschnittes für die nächste Multiplexer-Einrichtung festzulegen. Dieser Vorgang setzt sich für alle nachfolgenden, teilweise nicht dargestellten Einrichtungen fort. Auch an der neunten Decodereinrichtung 230 bzw. der zehnten Decodereinrichtung 240 wird zur Festlegung des Beginns des zu untersuchenden Abschnittes innerhalb des Instruktionswortes die Summe der Breiten der bislang aufgefun denen Instruktionswortteile in den Addierereinrichtungen 530 bzw. 540 zur Breite des in der vorhergehenden Decodereinrichtung erfassten gültigen Instruktionswortteils addiert. Auf die beschriebene Weise wird somit, ausgehend von der ersten Decodereinrichtung 210 bis zur zehnen Decodereinrichtung 240, das Instruktionswort sukzessiv abschnittsweise nach einem der jeweiligen Decodereinrichtungen zugeordneten Instruktionswortteil durchsucht, wobei nach jeder, jeweils einer Decodereinrichtung zugeordneten Suche der Beginn des nachfolgend zu durchsuchenden Abschnittes festgelegt wird. Der jeweilige Abschnittsbeginn wird dadurch festgelegt, dass sukzessiv die Breiten der aufgefundenen gültigen Instruktionswortteile addiert werden.
  • Die in 2 dargestellte Prozessoranordnung kann auch Instruktionsworte verarbeiten, die eine geringere Anzahl von Instruktionswortteilen als umfasste Decodereinrichtungen bzw. Funktionseinheiten aufweist. Wird beispielsweise für die erste Decodereinrichtung 210 innerhalb des Abschnittes von A0 bis A20 kein gültiges Instruktionswort aufgefunden, wird automatisch vom Decoder zur Funktionseinheit 310 ein „NOP"-Befehl weitergegeben und über den Ausgang 610 die Breite „0" an den nächsten Multiplexer 420 weitergegeben, sodass dieser nun für die Erfassung eines gültigen Instruktionswortes für die zweite Decodereinrichtung 220 auf den Bereich zwischen A0 bis A19 zugreift.
  • Mit der dargestellten Ausführungsform sind ferner sogenannte Compound-Befehle verarbeitbar, bei welchen ein einzelnen Instruktionswortteil als gültig für mehrere aufeinanderfolgende Decodereinrichtungen erfasst und verarbeitet wird. Ein beispielhaftes Instruktionswort, das in der Registereinrichtung 100 eingeschrieben ist, zeigt 3. Das Instruktionswort setzt sich nur aus fünf Instruktionswortteilen mit jeweils 15 Bit zusammen, sodass die Registereinrichtung 100 ab der Bit-Stelle A74 bis zur Bit-Stelle A199 keine gültigen Daten aufweist. Bei der Erfassung des ersten gültigen Instruktionswort teils in der Decodereinrichtung 210 wird erkannt, dass das Instruktionswortteil auch gültig für die zweite Decodereinrichtung ist und dem entsprechend am Ausgang 610 der Wert 0 zum Festlegen des Beginns des nächsten Abschnittes an die Multiplexer-Einrichtung 420 weitergegeben. Demnach wird der weitere Abschnitt als identisch mit dem vorhergehenden Abschnitt erkannt, sodass auch für die Decodereinrichtung 220 innerhalb des Bereiches A0 bis A20 nach einem gültigen Instruktionswortteil, wie beschrieben, gesucht wird. Nach dem Erkennen in der zweiten Decodereinrichtung 220, dass das erfasste Instruktionswortteil auch für diese gültig ist, jedoch nicht für die nachfolgende, nicht dargestellte dritte Decodereinrichtung, wird am Ausgang 620 die Breite des in der ersten und zweiten Decodereinrichtung 210, 220 erfassten gültigen Instruktionswortteils an die Addierereinrichtung 520 weitergegeben. In der Addierereinrichtung wird diese Bit-Breite mit der am Ausgang 610 der ersten Decodereinrichtung 210 abgegebenen Bit-Breite summiert wird, sodass letztlich der nicht dargestellte dritte Multiplexer auf einen Bereich innerhalb des Instruktionswortes eingestellt wird, der dem ersten Instruktionswortteil 710 folgt. In den nachfolgenden, auch nicht dargestellten fünf Decodereinrichtungen wird erkannt, dass das folgende Instruktionswortteil 720 für alle diese Decodereinrichtungen gültig ist und dementsprechend wieder die Breite 0 an die nachfolgende Addierereinrichtung weitergegeben wird. Erst die siebte Decodereinrichtung gibt die Länge des Instruktionswortteils 720 an die ihr zugeordnete Addierereinrichtung weiter. Die im Instruktionswort weiterhin enthaltenen Instruktionswortteile 730, 740 und 750 werden dann für die drei letzten Decodereinrichtungen, von denen in der Figur die beiden letzten mit den Bezugszeichen 230 und 240 dargestellt sind, jeweils als gültiges Instruktionswortteil erkannt und verarbeitet.
  • Eine weitere Ausführungsform der Erfindung zeigt 4. Obwohl identisch aufgebaut, sind zum Zwecke der Übersichtlichkeit im Vergleich zur Anordnung gemäß 2 die Registereinrichtung 100 und die Addierereinrichtungen weggelassen sowie die Multiplexer-Einrichtungen 410, 420,..., 430 und 440 unverschaltet dargestellt. Jeder der 10 Funktionseinheiten 310, 320,..., 330 und 340 ist jeweils eine Decodervorrichtung zugeordnet, die mehrere Decodierfunktionalitäten, d.h. Decodereinrichtungen umfassen können. Im vorbezeichneten Beispiel weist die dem ersten Abschnitt des Instruktionswortes zugeordnete Decodervorrichtung 810 alle Decodereinrichtungen 210, 220...230, 240 auf. Die nächste Decodervorrichtung 820 weist alle Decodereinrichtungen außer der ersten Decodereinrichtung 210 auf. Diese Aufbausystematik setzt sich sukzessiv in den Decodervorrichtungen fort, d.h. jede Decodervorrichtung weist relativ zur vorhergehenden Decodervorrichtung eine Decodereinrichtung weniger auf. Demnach umfasst die letzte Decodervorrichtung 840 nur die der letzten Funktionseinheit 340 zugeordnete Decodereinrichtung 240. Die Ausgänge der Decodereinrichtungen mit identische Dekodierfunktionalität sind über Oder-Verknüpfungseinrichtungen 910...960 mit dem Eingang der jeweils zugeordneten Funktionseinheit verbunden. Beispielsweise sind die Ausgänge der Decodereinrichtungen 220 in der zweiten Decodervorrichtung 810 und der ersten Decodervorrichtung 820 über die Verknüpfungseinrichtung 910 zum Eingang der Funktionseinrichtung 320 geführt. In gleicher Weise sind die Ausgänge der Decodereinrichtungen 230, welche Befehle für die Funktionseinheit 330 decodieren, über die Oder-Verknüpfungselement 920 und 930 mit dem Eingang der Funktionseinheit 330 verbunden. Es versteht sich, dass die Ausgänge der Decodereinrichtungen 230 der nicht dargestellten Decodervorrichtungen auch in die Oder-Verknüpfungkaskade für die Funktionseinheit 330 eingebunden sind.
  • Die prinzipielle Arbeitsweise der in 4 dargestellte Prozessoranordnung ist sehr ähnlich der in 2 dargestellten. Auch hier wird in einem vorgegeben einstellbaren Abschnitt des Instruktionswortes ein Instruktionswortteil erfasst und im Ansprechen auf das im vorgegebenen Abschnitt abgelegte Instruktionswortteil dessen Bit-Breite an die nächste Multiplexer- Einrichtung weitergegeben, sodass der Beginn des nächsten Abschnittes, in welchem nach dem nächsten Instruktionswortteil gesucht wird, festgelegt ist. Im Unterschied zu der in 2 dargestellten Ausführungsform ist jedoch innerhalb der ersten Decodervorrichtung sichergestellt, dass das erfasste Instruktionswortteil zumindest für eine der umfassten Decodereinrichtungen 210 bis 240 gültig ist. Demnach wird mit Sicherheit immer ein für die erste Decodervorrichtung 810 gültiges Instruktionswortteil erfasst, das in zumindest einem der Decodereinrichtungen verarbeitet werden kann. Durch den beschriebenen Aufbau ist es ferner auch möglich, dass das erfasste Instruktionswortteil von mehreren Decodereinrichtungen als gültig erkannt und von diesen verarbeitet wird, wobei die das gleiche Instruktionswortteil verarbeitende Decodereinrichtungen nicht unbedingt nebeneinander angeordnet sein müssen, wie es im vorhergehenden Beispiel der Fall war. Ferner kann die in 4 dargestellte Anordnung beliebige Compound-Befehle verarbeiten. Beim Betrieb ist darauf zu achten, dass bei der Abarbeitung eines Instruktionswortes eine bestimmte Decodereinrichtung nur ein einziges Mal mit einem gültigen Instruktionswortteil gespeist wird, damit die logische Verknüpfung der Ausgänge der redundant in den verschiedenen Decodervorrichtungen angeordneten Decodereinrichtung eindeutig bleibt.
  • 100
    Register
    110, 120, 130, 140
    Abschnitte des Registers 100
    bzw. Instruktionswortteil
    200
    Decoder
    210, 220, 230, 240
    Decodereinrichtung
    300
    Berechnungseinrichtung
    310, 320, 330, 340
    Funktionseinheit
    410, 420, 430, 440
    Multiplexer-Einrichtung
    450
    Register
    520, 530, 540
    Addierereinrichtung
    610, 620, 630
    Decoderausgang
    710, 720, 730, 740, 750
    Abschnitte des Registers 100
    bzw. Instruktionswortteil
    810, 820, 830, 840
    Decodervorrichtung
    910, 920, 930, 940, 950, 960
    Oder-Verknüpfungseinrichtung
    Ai (i = 0... 199)
    Bit-Stellen des Registers 100

Claims (24)

  1. Verfahren zur Befehlsdecodierung in einer Prozessoranordnung, insbesondere einem digitalen Signalprozessor, die mehrere, synchron Daten verarbeitende Funktionseinheiten mit jeweils zumindest einer zugeordneten Decodereinrichtung aufweist, wobei ein, einen Teil eines Befehlsstromes darstellendes Instruktionswort (VLIW) durch mehrere, jeweils ein Opcode umfassende Instruktionswortteile (FIW) gebildet wird, und jedes Instruktionswortteil zumindest einer Funktionseinheit zugeordnet und zur Ansteuerung der zumindest einen Funktionseinheit in einer zugeordneten Decodereinrichtung decodiert wird, dadurch gekennzeichnet, dass in einem vorgegebenen Abschnitt des Instruktionsworts ein Instruktionswortteil erfasst wird, und im Ansprechen auf das im vorgegebenen Abschnitt abgelegte Instruktionswortteil Information zur Festlegung eines weiteren Abschnittes des Instruktionswortes ermittelt wird, in welchem nachfolgend ein weiteres Instruktionswortteil für eine weitere Decodereinrichtung erfasst wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Ansprechen auf das Nichterfassen eines gültigen Instruktionswortteils für die vorgegebene Decodereinrichtung in dem vorgegebenen Abschnitt der weitere Abschnitt als der vorgegebene Abschnitt festgelegt wird.
  3. Verfahren nach einem der Ansprüche 1 oder 2 , dadurch gekennzeichnet, dass ausgehend von einer ersten Decodereinrichtung bis zu einer n-ten Decodereinrichtung das Instruktionswort sukzessiv Abschnittesweise nach einem der jeweiligen Decodereinrichtung zugeordneten Instruktionswortteil durchsucht wird, wobei nach jeder, jeweils einer Decodereinrichtung zugeordneten Suche Information zur Festlegung des nachfolgend zu durchsuchenden weiteren Abschnittes des Instruktionswortes nach einem Instruktionswortteil für die nächste Decodereinrichtung ermittelt wird
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Information zur Festlegung des weiteren Abschnittes des Instruktionswortes Angaben über die Bit-Breite eines im vorgegebenen Abschnitt aufgefundenen gültigen Instruktionswortteils und Angaben über die Lage des vorgegebenen Abschnittes im Instruktionswort umfasst, und beide Angaben zur Bestimmung der Lage des weiteren Abschnittes im Instruktionswort datenverarbeitet werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass bei einer Überprüfung eines für die jeweilige Decodereinrichtung erfassten Instruktionswortteils dieses mit den für die jeweilige Decodereinrichtung gültigen Instruktionswortteilen verglichen wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass ein Instruktionswortteil als ein für mehrere Decodereinrichtungen gültiger Instruktionswortteil erkannt wird und jeweils der vorgegebene Abschnitt als der weitere Abschnitt festgelegt wird, sodass das Instruktionswortteil von allen nachfolgenden Decodereinrichtungen decodiert wird.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass von einer Decodereinrichtung operandenspezifische Informationen eines Instruktionswortteils zumindest an eine weitere Decodereinrichtung weitergegeben werden.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass das Ende eines Instruktionswortes im Befehlsstrom durch eine vorgegebenen Kennung festgelegt wird, und nach der Erfassung dieser Kennung der Decodierprozess des Instruktionswortes beendet wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Bit-Breite eines Instruktionswortteils in dessen Kennung (Opcode) codiert wird.
  10. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Bit-Breite von Instruktionswortteilen unterschiedlich ist, wobei die Bit-Breite der jeweiligen Instruktionswortteile auf ein Vielfaches einer vorgegebenen ganzzahligen Konstanten ungleich Null eingestellt wird.
  11. Verfahren nach einem der Ansprüche 1, 4, 5, 7, 8, 9 oder 10, dadurch gekennzeichnet, dass in mehreren, jeweils einem Abschnitt des Instruktionswortes zugeordneten Decodervorrichtungen die Decodierfunktionalitäten mehrerer Decodereinrichtungen bereitgestellt werden, wobei in jeder Decodervorrichtung das im jeweils zugeordneten Abschnitt des Instruktionswortes erfasste Instruktionswortteil in den Decodierfunktionalitäten der Decodervorrichtung decodiert wird, für welche das Instruktions wortteil gültig ist.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass in den Decodervorrichtungen jeweils ein einzelnes Instruktionswortteil des Instruktionswortes verarbeitet wird.
  13. Verfahren nach Anspruch 11 und 12 , dadurch gekennzeichnet, dass ausgehend von einer ersten Decodervorrichtung bis zu einer n-ten Decodervorrichtung sukzessiv Abschnittesweise jeweils ein Instruktionswortteil des Instruktionswortes in zumindest einer der Decodierfunktionalitäten der jeweiligen, einem Abschnitt des Instruktionswortes zugeordneten Decodervorrichtung decodiert wird, wobei jeweils Information zur Festlegung des jeweiligen weiteren Abschnittes ermittelt wird, in welchem das nächste Instruktionswortteil für die nächste Decodervorrichtung erfasst wird.
  14. Verfahren nach Anspruch 10, 11 oder 12, dadurch gekennzeichnet, dass die Decoderausgänge der verschiedenen Decodervorrichtungen für eine vorgegebene Decodierfunktionalität zur Ansteuerung der zugeordneten Funktionseinheit zusammengeführt werden.
  15. Prozessoranordnung, insbesondere ein digitaler Signalprozessor, mit mehreren, synchron Daten verarbeitende Funktionseinheiten, wobei zur Befehlssteuerung der Funktionseinheiten ein Instruktionswort (VLIW) vorgesehen ist, welches den Funktionseinheiten zugeordnete Instruktionswortteile (FIW) umfasst und jeder Funktionseinheit zumindest eine Decodereinrichtung zugeordnet ist, welche ein Instruktionswortteil zur Ansteuerung der Funktionseinheit decodiert und mit einer Registereinrichtung zur Aufnahme des Instruktionswortes, gekennzeichnet durch mehrere, jeweils zumindest einer Decodereinrichtung zugeord nete Mittel, mit welchen jeweils ein Instruktionswortteil in einem im Betrieb festlegbaren, vorgegebenen Abschnitt des Instruktionswortes erfassbar ist sowie Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes im Ansprechen auf das im vorgegebenen Abschnitt des Instruktionswortes erfasste Instruktionswortteil.
  16. Prozessoranordnung nach Anspruch 15, dadurch gekennzeichnet, dass das zumindest jeweils einer Decodereinrichtung zugeordnete Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes ein Addierglied umfasst, in welchem eine Information über die Lage des vorgegebenen Abschnittes des Instruktionswortes und eine Information über die Breite des Instruktionswortteils im vorgegebenen Abschnitt des Instruktionswortes datenverarbeitbar ist.
  17. Prozessoranordnung nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass das jeweils zumindest einer Decodereinrichtung zugeordnete Mittel zum Erfassen eines Instruktionswortteils zum wahlfreien Zugreifen innerhalb eines vorgegebenen Bereichs auf die Registereinrichtung ausgebildet sind.
  18. Prozessoranordnung nach Anspruch 17 , dadurch g e – kennzeichnet, dass das i-te Mittel (i = 2... n) zum Erfassen eines Instruktionswortteils, welches der i-ten Decodereinrichtung zugeordnet ist, so ausgebildet ist, dass dieses auf einen Bereich der Registereinrichtung zugreifen kann, welcher größer als der Bereich des (i-1)-ten und der (i-1)-ten Decodereinrichtung zugeordneten Mittels zum Erfassen eines Instruktionswortteils ist und diesen umfasst.
  19. Prozessoranordnung nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet , dass mehrere De codervorrichtungen umfasst sind, welche jeweils Funktionalitäten mehrerer Decodereinrichtungen aufweisen, und den Decodervorrichtungen jeweils ein Mittel zugeordnet ist, mit welchem ein Instruktionswortteil in einem vorgegebenen Abschnitt des Instruktionswortes erfassbar ist, sowie ein Mittel zur Festlegung eines weiteren Abschnittes des Instruktionswortes im Ansprechen auf das Instruktionswortteil im vorgegebenen Abschnitt des Instruktionswortes.
  20. Prozessoranordnung nach Anspruch 19, dadurch gekennzeichnet, dass die Decodervorrichtungen zumindest teilweise identische Decodierfunktionalitäten aufweisen.
  21. Prozessoranordnung nach Anspruch 20, dadurch gekennzeichnet, dass die dem ersten Abschnitt der Registereinrichtung zugeordnete Decodervorrichtung die Decodierfunktionalitäten für alle Funktionseinheiten aufweist und die dem letzten Abschnitt der Registereinrichtung zugeordnete Decodervorrichtung die Decodierfunktionalität für eine Funktionseinheit aufweist.
  22. Prozessoranordnung nach Anspruch 19, 20 oder 21, dadurch gekennzeichnet, die einem i-ten (i = 2... n) Abschnitt des Instruktionswortes zugeordnete i-te Decodervorrichtung zumindest eine Decodierfunktionalität weniger umfasst als in die (i-1)-ten Decodervorrichtung.
  23. Prozessoranordnung nach einem der Ansprüche 20, 21, oder 22, dadurch gekennzeichnet , dass der jeweilige Ausgang einer in mehreren Decodervorrichtungen angeordneten Decodereinrichtung über ein logisches Netzwerk zur Ansteuerung der zugeordneten Funktionseinheit mit dieser verbunden ist.
  24. Prozessoranordnung nach einem der Ansprüche 16 bis 23, dadurch gekennzeichnet , dass zumindest zwei Decodereinrichtungen bzw. zumindest zwei Decodervorrichtungen zur Übermittlung von decodierten Operanten eines Instruktionswortteils miteinander verbunden sind.
DE2003101323 2003-01-15 2003-01-15 Verfahren und Anordnung zur variablen Befehlsdekodierung Expired - Fee Related DE10301323B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003101323 DE10301323B4 (de) 2003-01-15 2003-01-15 Verfahren und Anordnung zur variablen Befehlsdekodierung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003101323 DE10301323B4 (de) 2003-01-15 2003-01-15 Verfahren und Anordnung zur variablen Befehlsdekodierung

Publications (2)

Publication Number Publication Date
DE10301323A1 true DE10301323A1 (de) 2004-08-05
DE10301323B4 DE10301323B4 (de) 2009-02-26

Family

ID=32667610

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003101323 Expired - Fee Related DE10301323B4 (de) 2003-01-15 2003-01-15 Verfahren und Anordnung zur variablen Befehlsdekodierung

Country Status (1)

Country Link
DE (1) DE10301323B4 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015177427A1 (fr) * 2014-05-22 2015-11-26 Kalray Structure de paquet d'instructions de type vliw et processeur adapte pour traiter un tel paquet d'instructions
CN115525343A (zh) * 2022-10-31 2022-12-27 海光信息技术股份有限公司 一种并行译码的方法、处理器、芯片及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1046983A1 (de) * 1999-04-21 2000-10-25 Mitsubishi Denki Kabushiki Kaisha VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870576A (en) * 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1046983A1 (de) * 1999-04-21 2000-10-25 Mitsubishi Denki Kabushiki Kaisha VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015177427A1 (fr) * 2014-05-22 2015-11-26 Kalray Structure de paquet d'instructions de type vliw et processeur adapte pour traiter un tel paquet d'instructions
FR3021427A1 (fr) * 2014-05-22 2015-11-27 Kalray Structure de paquet d'instructions de type vliw et processeur adapte pour traiter un tel paquet d'instructions
US10175989B2 (en) 2014-05-22 2019-01-08 Kalray VLIW type instruction packet structure and processor suitable for processing such an instruction packet
CN115525343A (zh) * 2022-10-31 2022-12-27 海光信息技术股份有限公司 一种并行译码的方法、处理器、芯片及电子设备
WO2024093062A1 (zh) * 2022-10-31 2024-05-10 海光信息技术股份有限公司 并行译码的方法、处理器、芯片及电子设备

Also Published As

Publication number Publication date
DE10301323B4 (de) 2009-02-26

Similar Documents

Publication Publication Date Title
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
DE69231011T2 (de) Cachespeicher zur Verarbeitung von Befehlsdaten und Datenprozessor mit demselben
DE3126878A1 (de) Adressen-steuerschaltung fuer mikroprozessoren
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE102006059156A1 (de) Speichern von Mehrkern-Chiptestdaten
DE19526008C2 (de) Befehlsvorholeinheit für einen Computer
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
DE2617485C3 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE69028420T2 (de) Entscheidungsvorrichtung für Prioritätsfolge
DE3307194C2 (de)
DE2906685C2 (de)
DE112018006331T5 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE19628039B4 (de) Speicheradressen-Steuerschaltung
DE10301323B4 (de) Verfahren und Anordnung zur variablen Befehlsdekodierung
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE3113189C2 (de) Vorrichtung zur Umsetzung von digitalen Zeichencodes, die von einem Datenverarbeitungssystem empfangen oder geliefert werden
EP0760502A1 (de) Ordnungsverfahren für Zugehörigkeitsfunktionswerte linguistischer Eingangswerte in einem Fuzzy-Logic-Prozessor und Anordnung zu deren Durchführung
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE19524863B4 (de) Mikroprozessor mit eingebautem Abschnitt zur zyklischen Redundanzprüfung und Verfahren zum Ausführen von Operationen zur zyklischen Redundanzprüfung unter Verwendung von diesem
DE19614480C2 (de) Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: NXP SEMICONDUCTORS GERMANY GMBH, 22529 HAMBURG, DE

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

Owner name: NXP B.V., EINDHOVEN, NL

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120801