DE69916962T2 - Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen - Google Patents

Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen Download PDF

Info

Publication number
DE69916962T2
DE69916962T2 DE69916962T DE69916962T DE69916962T2 DE 69916962 T2 DE69916962 T2 DE 69916962T2 DE 69916962 T DE69916962 T DE 69916962T DE 69916962 T DE69916962 T DE 69916962T DE 69916962 T2 DE69916962 T2 DE 69916962T2
Authority
DE
Germany
Prior art keywords
command
prefix
type
data processor
instruction
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
DE69916962T
Other languages
English (en)
Other versions
DE69916962D1 (de
Inventor
Zvika Cfar-Saba Rozenshein
Jacob Ashdod Tokar
Uri Herzelia Dayan
Joe Paul Austin Gergen
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 USA Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of DE69916962D1 publication Critical patent/DE69916962D1/de
Publication of DE69916962T2 publication Critical patent/DE69916962T2/de
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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/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)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Datenprozessoren im Allgemeinen und Verfahren und eine Vorrichtung zur Gruppierung von Datenprozessorbefehlen und ein mit dieser zu verwendendes Befehlssystem im Besonderen.
  • Hintergrund der Erfindung
  • Es sind viele verschiedene Typen von Datenprozessoren verfügbar. Einige Datenprozessoren verfügen über mehrere Ausführungseinheiten, die gleichzeitig verwendet werden können. Die Steuerung von Befehlen für derartige Datenprozessoren kann entweder dynamisch oder statisch erfolgen. Beide Typen von Systemen funktionieren auf einem sequentiellen Befehlsstrom, der unter Verwendung herkömmlicher Programmerstellungs-Softwarewerkzeug, einschließlich Optimierungsassembler und Compiler, zur Ausführung erstellt worden ist. Im Allgemeinen erfordern dynamische Systeme beträchtlich mehr Hardware in dem Datenprozessor, während statische Systeme komplexere Programmerstellungs-Softwaretechniken benötigen. Das gemeinsame Ziel ist jedoch, die dem Befehlsstrom innewohnende Befehlspegelparallelität bei Aufrechterhaltung des Erscheinungsbilds der Ausführungsregelmäßigkeit zu identifizieren und zu verwerten.
  • In einem dynamischen Befehlsplanungssystem erhält eine spezielle Hardware in dem Datenprozessor ein Schiebefenster der Sichtbarkeit in den sequentiellen Befehlsstrom aufrecht. Bei jedem Befehlssende- bzw.-dispatchzyklus wählt die Steuerungshardware vorbehaltlich serieller Befehlsbeschränkungen so viele der sichtbaren Befehle aus, wie durch die Ausführungseinheiten und andere Systemmittel untergebracht werden können. Zusätzliche Hardware pflegt einen Datensatz von jedem Befehl, während dieser unterwegs ist, und bricht, abhängig von Systembedingungen, den Befehl entweder vorzeitig ab oder zieht ihn entsprechend zurück. Ein Beispiel eines dynamisch gesteuerten Datenprozessors ist der Motorola MPC604 Mikroprozessor.
  • In einem statischen Befehlsplanungssystem prüft das Programmerstellungs-Softwarewerkzeug, nachdem es den seriellen Befehlsstrom erzeugt und möglicherweise optimiert hat, diesen Strom erneut und ordnet auf der Grundlage von Information, die die Hardwarekonfiguration und die Betriebseigenschaften des Zieldatenprozessors beschreibt, jene Befehle in Gruppen an, die gefahrlos parallel ausgeführt werden können. Aufgrund der Schwierigkeit bei der Vorhersage der Aktionen bestimmter Programmkonstrukte, wie indirekte oder berechnete Speicherreferenzen, ist es nicht möglich, im Voraus eine optimale Planung zu garantieren. Zur Unterbringung solcher nicht vorhersagbarer Konstrukte werden üblicherweise einige Hardwareverriegelungen vorgesehen. Ein Beispiel eines statisch geplanten Datenprozessors war der Multiflow Trace 7/14/28. Der Compiler für die Trace-Maschine wurde gemeinhin als Bulldog Compiler bezeichnet, der Name, der ihr von seinen ursprünglichen Autoren während deren Aufenthalts an der Yale Universität gegeben wurde.
  • Beim Gruppieren von Befehlen für den Trace, der eine sehr lange Befehlswort ("Very Long Instruction Word (VLIW)")-Maschine war, war der Bulldog Compiler, abhängig von dem Maschinenmodell, auf eine VLIW mit entweder 7, 14 oder 28 feststehenden Funktionsbefehlsschlitzen beschränkt. Jeder beliebige Befehlsschlitz, für den der Compiler keine nützliche Arbeit finden konnte, wurde einfach mit einem Nicht-Operations ("no-operation (NOP)")-Befehl (d. h. alles Nullen) ausgefüllt. Anstatt diese nutzlosen NOPs in dem Speicher zu speichern, drückte ("squash out") der Compiler die NOPs heraus und stellte den Satz brauchbarer Befehlswörter voran, wobei jedes VLIW mit einem Bitverzeichnis ausgestattet wurde, das den Standort der zerdrückten NOPs (oder umgekehrt gesehen, der brauchbaren Befehlswörter) anzeigte. Zum Zeitpunkt vor dem Abruf verwendete der Trace-Cache/Speicher-Controller die Information in dem Bitverzeichniswort zum Regenerieren der NOPs, so dass der Cache mit vollständig bestückten VLIWs gefüllt war. Das Bitverzeichnis wurde ausgesondert, sobald die entsprechenden VLIWs während dem Vor-Abruf regeneriert waren, und keinem Teil der Befehlssendung- oder Ausführungs-Hardware war deren Existenz überhaupt bewusst. Selbst wenn dieser Mechanismus die logische Länge jedes VLIW in dem Speicher um ein Wort verlängerte, tendierte er aufgrund der Unfähigkeit des Compilers, sämtliche Befehlsschlitze in jedem VLIW mit brauchbaren Befehlswörtern zu füllen, im Allgemeinen dazu, die physische Länge der gespeicherten VLIWs zu verringern. Andererseits konnte dieser Mechanismus für einen gut konstruierten Code die tatsächliche Codegröße in dem Speicher beträchtlich vergrößern.
  • Ein jüngeres Beispiel eines statisch gesteuerten Datenprozessors ist die Texas Instruments TMS320C62xx Mikroprozessorfamilie ('C62). In der 'C62 enthält jedes Befehlswort ein speziell zugeordnetes "P" Bit, das bei Einstellung durch das Programmerstellungs-Softwarewerkzeug der Sendehardware anzeigt, dass das Befehlswort parallel mit dem nachfolgenden Befehlswort gesendet bzw. zugewiesen werden kann. Folglich enthält ein gleichzeitig gesendetes "Ausführungspaket" ein Befehlswort mit einem freien P-Bit und bis zu einer maximalen Anzahl von vorangestellten Befehlswörtern, wobei jedes ein eingestelltes P-Bit aufweist. Das US Patent Nr. 5,560,028 offenbart eine Veränderung an diesem Mechanismus, in der das Erfassen des Parallelsende-Steuerungsbits zwischen jedem Satz parallel sendbare Befehlswörter hin- und hergeschaltet wird. Durch Zuordnen eines Bits von jedem Befehl zu der Gruppierungsfunktion ist in den obigen statisch geplanten bzw. gesteuerten Systemen ein signifikanter Bereich des Befehls für andere Funktionen, wie dem Codieren von Datenverarbeitungsoperationen, nicht verwendbar.
  • Die US Patente 4,907,192 und 5,475,853 offenbaren ferner die Verwendung von festen, in einen Befehl eingegliederten Tagbits zum Liefern zusätzlicher Verarbeitungsinformation an einen Prozessor, was jedoch das US Patent 5,560,028 betrifft, kann dies zur Folge haben, dass signi fikante Bereiche des Befehls für andere Funktionen unbrauchbar sind.
  • Großer Wert wird auf die Ausführungsgeschwindigkeit für das Verarbeiten von Daten und Befehlen unter Verwendung eines derartigen Mehrfachausführungsdatenprozessors gelegt. Da jedoch die Komplexität der Datenprozessorarchitektur bei Verwendung mehrerer Ausführungseinheiten erhöht wird, tendiert die Größe des Computerbefehlscodes dazu, sich zu vergrößern. In vielen Anwendungen ist eine vergrößerte Codegröße aufgrund erhöhter Kosten und erhöhten Platzbedarfs für zusätzlichen Speicher unerwünscht. Eine solche Anwendung ist eine Klasse von Datenprozessoren, die als digitale Signalprozessoren ("digital signal processors (DSPs)") bekannt sind. DSPs werden in vielen Anwendungen, wie zellularen Telefonen, benutzt, bei denen großer Wert auf geringe Größe und geringe Energie gelegt wird. Für einen Datenprozessor mit mehreren Ausführungseinheiten wäre es wünschenswert, eine schnellere Befehlsverarbeitung bereitzustellen, ohne die Befehlscodegröße beträchtlich zu erweitern.
  • Dementsprechend besteht ein Bedarf für verbesserte Verfahren und eine verbesserte Vorrichtung zum Gruppieren von Rechenbefehlen und für ein verbessertes Befehlssystem.
  • Kurze Beschreibung der Zeichnungen
  • Während die Erfindung in den beigefügten Ansprüchen ausführlich dargelegt wird, werden andere Merkmale der Erfindung durch die folgende, in Verbindung mit den beigefügten Zeichnungen vorgenommene Beschreibung offenbart. Es zeigen:
  • 1 ein Blockdiagramm einer Ausführungsform eines Datenverarbeitungssystems.
  • 2 ein Diagramm, das Register in dem Kern des Systems von 1 veranschaulicht.
  • 3 ein Diagramm, das eine bestimmte Ausführungsform eines Bereichs des Kerns des Systems von 1 mit einer einzelnen Multiplizier- und Akkumulier-Einheit veranschaulicht.
  • 4 ein Diagramm, das eine andere Ausführungsform eines Bereichs des Kerns des Systems von 1 mit zwei Multiplizier- und Akkumulier-Einheiten veranschaulicht.
  • 5 ein Diagramm, das eine weitere Ausführungsform eines Bereichs des Kerns des Systems von 1 mit vier Multiplizier- und Akkumulier-Einheiten veranschaulicht.
  • 6 ein Diagramm, das eine bestimmte Ausführungsform der Multiplizier- und Akkumulier-Einheit der 35 veranschaulicht.
  • 7. ein Diagramm, das eine bestimmte Ausführungsform der Bitfeld- und Logik-Einheit des Systems von 1 veranschaulicht.
  • 8 ein Diagramm, das eine bestimmte Ausführungsform der Adressenerzeugungseinheit in dem Kern des Systems von 1 veranschaulicht.
  • 9 ein Diagramm, das eine bestimmte Ausführungsform eines Verfahrens zur Parallelverarbeitung von durch das System von 1 auszuführenden Befehlen.
  • 10 ein Diagramm, das einen Satz abgerufener Rechenbefehle und einen durch das System von 1 durchzuführenden Ausführungssatz gruppierter Rechenbefehle veranschaulicht.
  • 11 ein Diagramm, das eine Präfixsende- und Befehlssende-Operation für den Kern des Systems von 1 veranschaulicht.
  • 1217 verschiedene Ausführungsformen eines Befehlssystems, das mit dem System von 1 verwendet werden kann.
  • 18 ein Diagramm, das ein Befehlssystem veranschaulicht, das statische Gruppierung verwendet.
  • 19 ein Diagramm, das verschiedene Werte für ein Typenunterfeld in dem Befehlssystem von 18 veranschaulicht.
  • Beschreibung einer bevorzugten Ausführungsform
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Datenverarbeitungssystem mit einem Datenverarbeitungskern und einem Befehlssystem bereitgestellt, wobei das Befehlssystem eine Befehlswurzel mit einem Operationsauswahlfeld zum Auswählen einer durch den Datenprozessorkern durchzuführenden Operation aufweist, und das ein Befehlspräfix mit einer auswählbaren Länge aufweist, um dem Befehlspräfix zu ermöglichen, wenigsten ein aus einer Mehrzahl von Feldern auswählbares Feld unterzubringen.
  • Vorzugsweise ist eines der auswählbaren Felder ein bedingtes Ausführungsfeld, wobei die Befehlswurzel und das Befehlspräfix einen Befehl umfassen, dessen Durchführung durch den Datenprozessorkern von dem bedingten Ausführungsfeld des Befehlspräfix abhängt.
  • Vorzugsweise umfasst der Befehl mehr als eine Befehlswurzel.
  • Des Weiteren umfasst das Datenverarbeitungssystem vorzugsweise 2n Bänke von 2m Registern, wobei das Befehlspräfix zum Auswählen einer der 2n Bänke von Register ein Registerbank-Auswahlfeld mit einer Breite n aufweist; und die Befehlswurzel zum Auswählen einer der 2m Register in der aus den Bänken ausgewählten einen, ein Registerauswahlfeld mit einer Breite m aufweist.
  • Vorzugsweise ist das Operationsauswahlfeld zum Auswählen einer auf einem Operanden mit einer ersten Länge durchzuführenden Operation ausgelegt; und weist das Befehlspräfix ein Operandenbreiten-Modifikationsfeld zum Modifizieren der ausgewählten Operation auf derart, dass sie auf einem Operanden mit einer zweiten Breite durchzuführen ist.
  • Vorzugsweise weist das Befehlspräfix ein Befehlsgruppenfeld zum Auswählen einer Mehrzahl von Befehlsstämmen auf, um eine Gruppe zu umfassen, wobei der Datenprozessorkern gleichzeitig die Durchführung aller durch die Gruppe ausgewählter Operationen initiiert.
  • Vorzugsweise ist der Datenprozessorkern angeordnet, um Operationen eines ersten und eines zweiten Typs sequentiell und eine Mehrzahl von Operationen des ersten Typs parallel auszuführen, wobei das Operationsauswahlfeld angeordnet ist, um einen des ersten Typs und des zweiten Typs von durch den Datenprozessorkern auszuführenden Operationen auszuwählen, wobei das Operationsauswahlfeld ein Typenunterfeld mit einer Breite n aufweist, dessen Werte wie folgt zugeteilt sind: ein erster Wert, wenn der erste Operationstyp sequentiell auszuführen ist, ein zweiter Wert, wenn der erste Operationstyp parallel auszuführen ist, und ein dritter Wert aus den restlichen (2n – 2) Werten, wenn der zweite Operationstyp auszuführen ist.
  • Vorzugsweise ist der Datenprozessorkern geeignet, um Operationen des ersten und des zweiten Typs sequentiell und eine Mehrzahl von Operationen des ersten Typs parallel auszuführen, wobei das Operationsauswahlfeld angeordnet ist, um einen des ersten Typs und des zweiten Typs von durch den Datenprozessorkern auszuführenden Operationen auszuwählen, wobei das Operationsauswahlfeld ein Typenunterfeld aufweist, wobei das Typenunterfeld einen ersten Wert für Operationen des sequentiell auszuführenden ersten Typs aufweist; sowie einen zweiten Wert für Operationen des parallel auszuführenden ersten Typs und für wenigstens eine ausgewählte Operation des sequentiell auszuführenden zweiten Typs aufweist.
  • Zu beachten ist, dass die verwendeten bestimmten Begriffe und Ausdrücke und die in der ausführlichen Beschreibung und den beigefügten Zeichnungen dargelegten bestimmten strukturellen und funktionalen Einzelheiten lediglich veranschaulichenden Zwecken dienen und hiermit nicht beabsichtigt wird, den Rahmen der Erfindung, wie in den beigefügten Ansprüchen beschrieben, auf irgendeine Weise zu begrenzen.
  • Bezugnehmend auf 1 wird eine Ausführungsform eines Verarbeitungssystems 10 veranschaulicht. Das Verarbeitungssystem 10 umfasst einen Prozessorkern 12, eine Systemschnittstelleneinheit ("system interface unit (SIU)") 14, eine direkte Speicherzugriffseinheit 16, eine Peripherieeinheit 18, wie einen seriellen Kommunikationsport oder Timer, interne Speichermodule 20 und 22 und ein externes Speicherschnittstellenmodul 19. Das Verarbeitungssystem 10 kann ebenfalls als Datenprozessor bezeichnet werden.
  • Der Prozessorkern 12 umfasst eine Adressenregisterdatei 26, einen Programmsequenzer 24, Datenregisterdateien 28 und 29, Adressenarithmetik-Logikeinheiten 30 (auch als Adressenerzeugungseinheiten ("address generation units (A-GUs)") bezeichnet), Multiplizier- und Akkumulier ("multiply and accumulate (MAC)")-Einheiten 32 (allgemein auch als Datenarithmetik-Logikeinheiten ("data arithmetic logic units (DALUs)") bezeichnet), eine Bitfeld- und Logik-Einheit 34 und einen optionalen Befehlserweiterungsbeschleuniger 36. Die Adressen-ALUs 30 sind über einen internen Bus 60 an die Adressenregisterdatei 26 gekoppelt. Die Multiplizier- und Akkumulier-Einheiten 32 sind über einen internen Bus 62 an die Datenregisterdateien 28 und 29 gekoppelt und die Bitfeldeinheit 34 ist über einen internen Bus 64 an die Datenregisterdateien 28 und 29 gekoppelt. Der Programmzuordner 24 ist über einen Befehlsbus 44 an die Adressen-ALUs 30, die DALUs 32, die Bitfeldeinheit 34 und den Befehlserweiterungsbeschleuniger 36 gekoppelt.
  • Das System 10 umfasst ferner einen Programmbus 38, einen ersten Datenbus 40 einen zweiten Datenbus 42, einen Peripheriebus 88, einen direkten Speicherzugriffs (direct memory access (DMA)")-Bus 84 und einen externen Speicherschnittstellenbus 102. Der Programmbus 38 ist über einen Bus 46 an den Programmsequenzer 24, über einen Bus 66 an die SIU 14 und über die Busse 72 bzw. 82 an die internen Speicher 20 und 22 gekoppelt. Die Datenbusse 40 und 42 sind über die Busse 48 und 50 an die Adressenregisterdatei 26, über die Busse 52 und 54 an die Datenregisterdateien 28 und 29 und über die Busse 56 und 58 an den Befehlserweiterungsbeschleuniger 36 gekoppelt. Die Datenbusse 40 und 42 sind über die Busse 7480 an die Speicher 20 und 22 gekoppelt.
  • Der DMA-Bus 84 ist über einen Bus 90 an die SIU 14, über einen Bus 92 an die DMA 16, über einen Bus 94 an die Peripherieeinheit 18 und über die Busse 95 bzw. 97 an die Speichereinheiten 20 und 22 gekoppelt. Der Peripheriebus 88 ist über einen Bus 96 an die SIU 14, über einen Bus 98 an die DMA 16 und über einen Bus 100 an die Peripherieeinheit 18 gekoppelt. Der externe Speicherbus 102 ist an das externe Speicherschnittstellenmodul 19 gekoppelt und ist in Verbindung mit dem System 10 an einen externen Speicher (nicht gezeigt) gekoppelt. In der veranschaulichten Ausführungsform ist der Programmbus 38 128 Bits breit, und die anderen Busse 40, 42, 84 und 88 sind 32 Bits breit.
  • Bezug nehmend auf 2 wird eine bestimmte Ausführungsform von Registern in dem Kern 12 des Systems 10 offenbart. Wie veranschaulicht umfasst die Adressenregisterdatei 26 die Register R0–R7, die Stapelzeiger ("stack pointer (SP)"), N0–N3, M0–M2, MCTL, SA0–SA3, LC0–LC3. Der Programmsequenzer 24 umfasst den Programmzähler, ein Zustandsregister und Betriebsmodus- und Zustandsregister. Die Datenregisterdatei 28 umfasst die Register D0–D7, und die Datenregisterdatei 29 umfasst die Register D8–D15. In einer alternativen Ausführungsform kann zur Kosteneinsparung, wie bei den Ein- oder Zwei-MAC-Konfigurationen, nur ein einzelnes Register verwendet werden. In anderen Hochleistungsanwendungen können auch mehr als zwei Registerdateien verwendet werden.
  • Bezug nehmend auf 3 wird eine bestimmte Ausführungsform mit einem Multiplizierakkumulator 32 in dem Kern 12 veranschaulicht. In dieser Ausführungsform ist die einzelne MAC 32 über den Bus 62 an die Registerdateien 28 und 29 gekoppelt. Die Bitfeldeinheit 34 ist über den Bus 64 an die Datenregisterdateien 28 und 29 gekoppelt. Die Datenregisterdateien 28 und 29 sind über ein Zwischenschifter /Begrenzer-Modul 104 und über die Busse 52, 54, 106 an die Datenbusse 40 und 42 gekoppelt. Das Schifter-/Begrenzer-Modul 104 wird zum Umwandeln von Daten in ein 40-Bit-Format über die Busse 106 in ein 16-Bit-Format über die Busse 52 und 54 verwendet.
  • Bezug nehmend auf 4 wird eine bestimmte Ausführungsform mit zwei Multiplizierakkumulatoren 32 in dem Kern 12 veranschaulicht. Diese Ausführungsform ist ähnlich der Ausführungsform von 3, mit der Ausnahme, dass zwei MAC-Einheiten 32 anstelle einer MAC 32 bestehen. Ein zusätzlicher Bus 62 wird benötigt, um die Datenregisterdateien 28 und 29 an die zweite MAC-Einheit 32 zu koppeln. Ferner weisen die Busse 52 und 54 32 Bits anstelle 16 Bits auf, um die zusätzlichen Daten von den zwei MACs zu übertragen. Auf ähnliche Weise veranschaulicht 5 eine Ausführungsform mit vier MAC-Einheiten 32. Es sollte klar sein, dass die vorliegende Erfindung nicht durch die vorstehenden beispielhaften Konfigurationen beschränkt werden soll und nicht auf die bestimmte Anzahl von MAC-Einheiten 32 oder die besondere Anordnungen begrenzt ist.
  • Bezug nehmend auf 6 wird eine bestimmte Ausführungsform einer MAC-Einheit 32 veranschaulicht. Die MAC-Einheit 32 umfasst einen Multiplizierer 110 und einen Addierer 112. Der Multiplizierer 110 empfängt von den Datenregisterdateien 28 und 29 Dateneingaben und multipliziert die Datenelemente 111 und 114, um eine multiplizierte Ausgabe 116 zu erzeugen, die in den Addierer 112 eingegeben wird. Der Addierer summiert eine zweite Dateneingabe 120 mit dem Multipliziererergebnis 116, um ein akkumuliertes Ergebnis 122 zu erzeugen, das zurück an die Datenregisterdateien 28 und 29 ausgegeben wird.
  • Bezug nehmend auf 7 wird eine bestimmte Ausführungsform der Bitfeld-Logikeinheit 34 offenbart. Die Bitfeld-Logikeinheit 34 umfasst einen Schifter 124, einen Maskenbitgenerator 126, eine Logikeinheit 128 und einen Multiplexer 129. Die Bitfeld- und Logik-Einheit empfängt über den Bus 64 Eingaben und erzeugt eine Ausgabe, die das Ergebnis von entweder einer Verschiebung, einer Maskierungsoperation, z. B. Entfernen bestimmter Bits von den Eingangsdaten und/oder einer logischen Operation, wie eine logische und, oder, ausschließlich oder oder Umkehroperation ist. Das Ergebnis der ausgewählten Operation wird als ein Vierzig-Bit-Ergebnis über den Zweiwegebus 64 zurück an ein ausgewähltes Register in den Registerdateien 28 und 29 ausgegeben.
  • Bezug nehmend auf 8 wird eine bestimmte Ausführungsform der Adressenerzeugungseinheit (AGU) veranschaulicht. Die AGU umfasst die Register M0–M2, N0–N3, R0–R7, SP von der Adressenregisterdatei 26 und das modifizierte Steuerungsregister ("modified control register (MCTL)"). Die AGU umfasst ferner die Adressenarithmetik-Logikeinheiten 30. Die AGU ist über die Register 26 an den ersten und den zweiten Adressenbus 140, 142 und an den Programmadressenbus 138 gekoppelt. Wie in 8 veranschaulicht, empfangen die ALUs 30 Daten von verschiedenen Registern, führen auf den Eingangsdaten ausgewählte arithmetische Operationen durch und liefern ein arithmetisches Ergebnis an ausgewählte Ausgaberegister. Zum Beispiel kann eine in dem Register R0 gespeicherte Adresse über den Bus 140 ausgegeben werden. Danach kann das Register R0 zu einem Offset von einem ausgewählten Register N0 addiert und die resultierende Additionsausgabe in dem Register R0 gespeichert werden.
  • 9 veranschaulicht ein Pipeline-Ausführungsverfahren, das mit dem System 10 von 1 verwendet wird. Das Pipeline-Verfahren umfasst die Ausführungsschritte des Programmvorabrufens 200, des Programmabrufens 202, des Zuweisens und Decodierens 204, des Adressenerzeugens 206 und des Ausführens 208.
  • 10 veranschaulicht einen Befehlsabrufsatz und gruppierte Befehlsausführungssätze. Der Befehlsabrufsatz 210 umfasst eine Folge von auszuführenden Befehlen. In der veranschaulichten Ausführungsform umfasst die Befehlsfolge acht von N bis N + 7 nummerierte Befehle. In einer Hardwareimplementierung kann diese Befehlsfolge als ein oder mehrere Befehlpuffer implementiert werden. Die den Abrufsatz 210 umfassenden Befehle sind zum Programmerstellungszeitpunkt zum Beispiel in die Ausführungssätze 216, 218 und 220 statisch gruppiert worden. In dem veranschaulichten Beispiel trennt eine erste Abgrenzung 212 die letzten zwei Befehle #N und #N + 1 des ersten Ausführungssatzes 216 von den vier den zweiten Ausführungssatz 218 umfassenden Befehlen #N + 2–#N + 5, und eine zweite Abgrenzung 214 trennt den zweiten Ausführungssatz 218 von den ersten zwei Befehlen #N + 6 und #N + 7 des dritten Ausführungssatzes 220. Jeder der Befehle in demselben Ausführungssatz wird durch das System gleichzeitig gesendet bzw. dispatched. Sämtliche der Befehle in einem bestimmten Ausführungssatz können im Wesentlichen zum selben Zeitpunkt gesendet oder ausgegeben werden und in bestimmten Fällen, in denen jeder der Befehle in einem Ausführungssatz die gleiche Zykluszählung aufweist, kann jeder der Befehle am Ende des letzten Ausführungszyklus ausgeschieden werden.
  • Bezug nehmend auf 11 wird eine bestimmte Ausführungsform eines Bereichs des Systems 10 veranschaulicht. Die Ausführungsform veranschaulicht eine Präfixsendeeinheit 222, die Befehle 210, ein Befehlssendemodul 224, verschiedene Datenarithmetik-Logikeinheiten (DALUs) 32 und Adressenerzeugungseinheiten (AGUs) 30. Die Präfixsendeeinheit 222, die Befehle 210 und das Befehlssendemodul 224 sind in der Lage, den Programmsequenzer 24 zu bilden. Da in der veranschaulichten Ausführungsform sechs Ausführungseinheiten bestehen, würde die maximale Anzahl von Befehlen, die in einem Ausführungssatz gruppiert werden können, sechs sein. In dem veranschaulichten Beispiel sind die ersten zwei Befehle N und N + 1 Präfixbefehle. Der Präfixbefehl wird an die Präfixsendeeinheit 222 weitergeleitet. Der Präfixbefehl kann ein, oder wie veranschaulicht, mehr als ein Präfixwort enthalten. Die Präfixsendeeinheit 222 wandelt die Präfixbefehle in Steuerungssignale, wie die Gruppierungserweiterung, bedingte Ausführung und Schleifenverzweigungs-Steuerungssignale um, die der Befehlssendeeinheit 224 zugeführt werden. Die Befehlssendeeinheit 224 gruppiert dann die Befehle in Ausführungssätze und führt, wie durch die Steuerungssignale von der Präfixsendeeinheit 222 angewiesen, bestimmte Operationen durch. Dann werden die gruppierten Befehle über einen Routingmechanismus gleichzeitig den entsprechenden Ausführungseinheiten 30, 32, 34 zur parallelen Decodierung und Ausführung gesendet. Gleichzeitiges Senden bedeutet, dass die Ausführung von jedem der gruppierten Befehle während einem gemeinsamen Taktzyklus initiiert wird. In der veranschaulichten Ausführungsform des Systems 10 wird die Ausführung von jedem der gruppierten Befehle während einem gemeinsamen Taktzyklus initiiert, a ber einer oder mehrere der gruppierten Befehle können während einem anderen Taktzyklus die Ausführung vollenden.
  • Bezug nehmend auf 12 wird eine bestimmte Ausführungsform eines Befehlssystems 300 veranschaulicht, der mit dem System 10 verwendet werden kann. Das Befehlssystem 300 umfasst ein Befehlspräfixwort 302 und ein Befehlswurzelwort 316. Das Befehlspräfix 302 umfasst ein bedingtes Ausführungsfeld 304 und andere Felder 312. Die Befehlswurzel 316 umfasst ein Operationsauswahlfeld 306, ein optionales Operandenfeld 308 und ein optionales Feld 310 für andere Operationen, wie Gruppieren mehrerer Befehle ohne Präfix. Das bedingte Ausführungsfeld 302 enthält Information darüber, ob die Befehlswurzel 316 bedingt auszuführen ist. Wenn zum Beispiel das bedingte Ausführungsfeld ein erster Wert ist, dann wird die Befehlswurzel unbedingt ausgeführt werden; wenn es ein zweiter Wert ist, dann wird die Befehlswurzel abhängig von dem Wert eines vorbestimmten Bits in einem Zustands- oder Datenregister bedingt ausgeführt werden. Wo mehr als eine Befehlswurzel besteht, der in einem Ausführungssatz gruppiert ist, wird das bedingte Ausführungsfeld 304 verwendet, um zu bestimmen, ob oder ob nicht die gesamte Gruppe von Befehlsstämmen 316 ausgeführt wird. Jedoch kann in einer alternativen, nicht gezeigten Ausführungsform das bedingte Ausführungsfeld 304 die wahlweise Ausführung oder Nichtausführung von einem oder mehreren Befehlsstämmen oder Teilsätzen von diesen, die dem Präfix folgen, steuern. In einer anderen Ausführungsform entspricht jedes aus der Mehrzahl bedingter Ausführungsfelder jedem aus der Mehrzahl von Befehlsstämmen, um individuell die Ausführung jeder Befehlswurzel in einer Befehlsgruppe zu steuern. In einer bevorzugten Ausführungsform bilden das Präfix 302 und die Be fehlswurzel (-Wurzeln) 316 einen einzelnen integralen Befehl 314. Wenn der Befehl 314 unbedingt auszuführen ist und das Präfix 302 nicht für irgendeine andere seiner hiernach zu beschreibenden Verwendungen benötigt wird, kann dieser in einem solchen System aus dem Befehl 314 gelöscht werden.
  • Bezug nehmend auf 13 wird eine Ausführungsform eines Befehlssystems 320 offenbart. Das Befehlssystem 320 umfasst ein Präfix 322, eine erste Befehlswurzel 326 und bis zu 2N Befehlsstämme 330. Das Präfix 322 umfasst ein Gruppenfeld 324, das N Bits breit ist. Jeder der Befehlsstämme 326330 umfasst ein Operationsauswahlfeld 331, 332 und andere Operationsfelder. Das Gruppenfeld 324 zeigt an, wie viele unmittelbar dem Präfix 322 folgende Befehlsstämme 326330 parallel auszuführen sind. Folglich gruppiert das Gruppenfeld 324 in dem Präfix 322 die Befehlsstämme ausdrücklich in Ausführungssätze. In der bevorzugten Ausführungsform können Befehlsstämme mit einer Vielfalt an Operationsauswahlfeldwerten mit anderen Befehlsstämmen gruppiert werden, während es sein kann, dass die Werte anderer aufgrund von Hardware- oder Timing-Einschränkungen nicht gruppiert werden können. Wie in 14 veranschaulicht, werden die Befehlswörter 346 und 348 mit dem Präfix 342 zur Bildung einer Befehlsgruppe 358 kombiniert, wohingegen die Befehlswurzel 350 nicht gruppiert wird und eine einzelne Befehlsgruppe 360 bildet.
  • Bezug nehmend auf 15 wird eine weitere Ausführungsform eines Befehlssystems veranschaulicht. Das Befehlssystem umfasst ein Präfix 380 und eine Befehlswurzel 384. Das Befehlssystem operiert auf einem Datenoperanden mit variabler Breite 388, wie einem auf einen oder von einem Speicher übertragenen 32-Bit- oder 64-Bit-Datenelement. Das Präfix 380 umfasst ein Operandenlängen-Modifikationsfeld 382, und die Befehlswurzel 384 umfasst ein Operationsauswahlfeld 386. Das Präfix 380, die Befehlswurzel 384 und der Operand 388 bilden zusammen einen Befehl 390. Das Operandenlängenmodifikationsfeld 382 zeigt an, ob der Operand 388 eine erste vorbestimmte Länge oder eine modifizierte zweite Länge aufweist. Wo beispielsweise das Operationsauswahlfeld 386 anzeigt, dass die Befehlswurzel 384 eine Schiebeoperation für ein 16-Bit-Wort ist und wo das Operandenlängen-Modifikationsfeld 382 frei ist, weist der Operand eine Länge von 16 Bits auf. Wenn jedoch das Operandenlängen-Modifikationsfeld 382 eingestellt wird, dann wird die Operation eine Schiebeoperation für ein 32-Bit-Wort, und der Operand weist eine Länge von 32 Bits auf. Durch Codieren des Längenmodifikationsfeldes in das Präfixwort 380 wird die Anzahl der Operationen, die für die Ausführung ausgewählt werden können, erhöht, ohne jedoch dem Operationsauswahlfeld 386 in der Befehlswurzel 384 irgendeine zusätzliche Länge hinzufügen zu müssen, wodurch unter bestimmten Umständen die Codegröße reduziert wird.
  • Bezug nehmend auf 16 wird eine Ausführungsform eines Befehlssystems 400 offenbart. Das Befehlssystem 400 umfasst ein Präfix 402 und eine Befehlswurzel 408. Das Präfix 402 umfasst ein oder mehrere Registerbank-Auswahlfelder, wie ein erstes Registerbank-Auswahlfeld 404 und ein zweites Registerbank-Auswahlfeld 406. Das erste Registerbank-Auswahlfeld 404 und das zweite Registerbank-Auswahlfeld 406 sind N-Bits lang. Das Befehlswort 408 umfasst die M-Bit-Registerauswahlfelder 410 und 412. Das erste Registerbank-Auswahlfeld 404 kann verwendet werden, um eine bestimmte Bank an Registern anzuzeigen, die für eine erste Ausführungseinheit, wie eine erste DALU-Einheit 32, zu verwenden ist. Das zweite Registerbank-Auswahlfeld 406 kann verwendet werden, um eine bestimmte Bank an Registern anzuzeigen, die für eine zweite Ausführungseinheit, wie eine zweite DALU-Einheit 32, zu verwenden ist. In einer bestimmten Ausführungsform ist N = 1 und M = 3. In dieser Ausführungsform existieren zwei verschiedene Registerbänke, wie die Registerdateien 28 und 29 des Systems 10, und jede der Registerbänke weist acht Register auf. Anstatt zusätzlichen Platz in dem Befehlswort 408 zu verbrauchen, kann auf diese Weise unter Verwendung der Registerbank-Auswahlfelder 404406 des Präfixwortes 402 auf die oberen Bankregister, wie die Register R8–R15 der Registerdatei 29 wahlweise zugegriffen werden, wodurch unter bestimmten Bedingungen Befehlswort-Speicherplatz aufgespart wird.
  • Bezug nehmend auf 17 wird eine Ausführungsform eines Befehlssystems 420 mit Präfixwörtern mit variablen Längen gezeigt. Das Befehlssystem 420 umfasst ein erstes Präfixwort 422, ein zweites Präfixwort 424 und ein N-tes Präfixwort 426. Jedes Präfixwort 422426 umfasst ein entsprechendes Präfixlängenfeld 428432. Die Präfixlängenfelder 428432 bilden eine Kette, wobei jedes anzeigt, ob das Präfixwort abgeschlossen ist oder ob ein zusätzliches Präfixwort besteht. Auf diese Weise können viele Präfixwörter in einer Kette mit variabler Länge untereinander verbunden werden. Jedoch enthält in der bevorzugten Ausführungsform das erste Präfixwort 422 das Längenfeld nicht, da das erste und das zweite Präfixwort andere Felder aufweisen, die indirekt anzeigen, ob das Präfix ein oder zwei Wörter lang ist.
  • Eine bestimmte Ausführungsform eines Befehlssystems, das einen codierten Präfixbefehl verwendet, der viele der früher veranschaulichten Präfixfelder kombiniert, wird nachstehend offenbart. In dieser Ausführungsform bestehen ein Einwortpräfix-Codierungsformat und ein Zweiwortpräfix-Codierungsformat.
  • In dem Einwortpräfix-Codierungsformat weist das Einwortpräfix folgende binäre Anordnung auf:
  • Figure 00200001
  • Figure 00210001
  • In der Zweiwortform weist das Präfix folgendes Format auf:
  • Figure 00210002
  • Im Fall von Zwei-Operanden-DALU-Einheits-Befehlen wird nur -EE verwendet.
  • Im Fall von Ein-Operanden-DALU-Einheits-Befehlen wird nur --E verwendet.
  • Figure 00220001
  • Figure 00230001
  • Gemäß einer anderen Ausführungsform wird nun ein Verfahren des Gruppierens von Befehlen ohne Verwendung eines Präfixbefehls offenbart. Bezug nehmend auf 18 wird ein Befehl ohne Präfixwort veranschaulicht, der zum Durchführen einer statischen Gruppierung verwendet werden kann. Der Befehl 450 umfasst ein oder mehrere Befehlswörter, wie ein erstes Befehlswort 452 und ein zweites Befehlswort 454. Das erste Befehlswort 452 umfasst ein auch als Opcode bezeichnetes Operationsauswahlfeld 456, das zum Auswählen einer Mehrzahl verschiedener Operationen, die auf einem System, wie dem System 10, durchgeführt werden können, verwendet werden kann. Das Operationsauswahlfeld 456 umfasst ein Typenunterfeld 458, das eine Breite von n Bits aufweist. In einer bestimmten Ausführungsform ist n gleich zwei. Während als Beispiel ein Zwei-Befehlswort-Befehl veranschaulicht worden ist, sind das Typenunterfeld in dem Operationsauswahlfeld und die Verwendung des Typenunterfeldes, wie hierin beschrieben, auf Einzelwort- und auf Mehrwort-Befehle vieler Typen anwendbar.
  • Bezug nehmend auf 19 wird ein Diagramm vorgestellt, das veranschaulicht, wie verschiedene Typen von Befehlen, die durch das Operationsauswahlfeld in einem Befehl codiert werden, auf dem Wert in dem Typenunterfeld abgebildet werden können. Das Typenunterfeld wird im Allgemeinen dazu verwendet, Gruppierungs- und Mehrwort-Befehlsinformation für einen Ausführungssatz mit mehreren Befehlen und/oder mehreren Befehlswörtern bereitzustellen. Die Befehle, die ausgeführt werden können, werden auf einer hohen Stufe in Typ I-Befehle und Typ II-Befehle geteilt. Typ I-Befehle können entweder auf eine sequentielle oder eine parallele Weise ausgeführt werden, d. h. die Typ I-Befehle können für die Ausführung mit anderen Befehlen in einem Ausführungssatz gruppiert werden. Typ II-Befehle können sequentiell ausgeführt werden, sind aber begrenzt für eine parallele Ausführung fähig oder sind möglicherweise gar nicht gruppierbar. Einige Typ II-Befehle 510 können nicht mit irgendeinem anderen Befehl gruppiert werden. Ein Beispiel eines solchen, nicht gruppierbaren Befehls ist der Schlummer- bzw. Doze-Befehl, der den Datenprozessor 10 in einen Niedrigleistungs-Standbymodus versetzt.
  • Wie in 19 gezeigt, wird für Typ I-Befehle, die sequentiell auszuführen sind, das Typenunterfeld auf einen ersten Wert, wie 01 für das Segment 502 in der veranschaulichten Ausführungsform, eingestellt. Für Typ I-Befehle, die mit anderen Einwortbefehlen parallel auszuführen sind, wird das Typenunterfeld auf einen zweiten Wert, wie 00 für das Segment 504 in dem Diagramm, eingestellt. Wenigstens einem Typ II-Befehl wird ein dritter Wert, wie 10 für das Segment 510, oder optional ein vierter Wert, wie 11 für das Segment 512, zugeteilt. Die Verwendung des Typenunterfeldes mit zwei Bits, wie für das Befehlsgruppieren gezeigt, führt zu einer Reduzierung in dem für die Auswahl von Befehlen verwendbaren Opcode-Platz. Wenn zum Beispiel in einem früheren System ein einziges Bit speziell für Gruppierungsinformation zugeordnet war, würde der Opcode-Platz nachteiligerweise um fünfzig Prozent (50%) reduziert werden. Mit einem System von zwei Bits würde der Opcode-Platz um fünfundzwanzig Prozent (25%) reduziert werden.
  • Um jedoch in der veranschaulichten Ausführungsform nützlichen Opcode-Platz aufzusparen, verwenden bestimmte Mehrwortbefehle einen Bereich des Opcode-Platzes für den zweiten Wert, d. h. 00, des Typenunterfeldes wieder. Das Segment 506 für Mehrwortbefehle, die parallel mit wenigstens einem anderen Befehl auszuführen sind und das Segment 508 für Mehrwortbefehle, die sequentiell auszuführen sind, verwenden einen Bereich des Opcode-Quadranten, der die pa rallelen Typ I-Einwortbefehle anteilig nutzt. Ein Verfahren der Implementierung dieser Wiederverwendungstechnik ist, Kombinationen von Befehlen zu verwenden, die sonst nicht gestattet wären, wie das Kombinieren eines gruppierbaren Typ I-Befehls mit einem nicht gruppierbaren Typ II-Befehl. Durch Verwendung von ansonsten widersprüchlichen Befehlskombinationen können Mehrwortfolgen codiert werden. Auf diese Weise wird wertvoller Opcode-Platz aufgespart, was zu einem verbesserten Befehlssystem führt.
  • Ein Beispiel der vorstehend im Allgemeinen beschriebenen verschiedenen Typen von Befehlen wird nachstehend dargestellt. Die tatsächlichen Verbundbefehle sind in Klammern.
  • Sequentieller Typ I 502: Erhöhe Register D0 (erhöhe d0) Paralleler Typ I 504: Erhöhe Register d0 und bewege Wort an der Adresse des Registers r0 zu Register d1 (erhöhe d0, bewege.w (r0), d1) (zwei gepaarte Einwortbefehle).
  • Mehrwort 506: Bewege Adresse in dem Register nach Addieren des Offsets zu dem Register d3 (erhöhe d0, bewege.b (R3 + 1000), d3) (ein Einwort- und ein Mehrwort-Befehl).
  • Sequentieller Mehrwort 508: Addiere 1000 zu d0 und speichere in d1 (addiere #1000, d0, d1).
  • Typ II 510 oder 512: Pausiere in der Ausführung (Schlummern).
  • Während es möglich ist, dass die Typ II-Befehle in den Segmenten 510 und 512 der gleiche Typ sind, könnten in einer bestimmten Ausführungsform die Befehle derart geteilt werden, dass die Befehle ohne zugelassene Gruppierung in das Segment 510 gestellt werden und die Befehle mit be grenzt zugelassener Gruppierung in das Segment 512 gestellt werden.
  • Mit Befehlen, die das vorstehend beschriebene Typenunterfeld aufweisen, können allgemeine Regeln zum Gruppieren von Befehlen verwendet werden. Beispiele solcher Regeln sind:
    • 1. Befehlswörter mit einem Typenunterfeld von 00 werden von zusätzlichen zu gruppierenden Befehlswörtern gefolgt.
    • 2. Befehlswörter mit einem anderen Typenunterfeld als 00 sind das letzte Wort in dem Befehl.
    • 3. Eine 10 in dem letzten Befehlswort, wobei sich wenigstens zwei Befehlswörter in dem Ausführungssatz befinden, zeigt an, dass wenigstens ein Mehrwortbefehl auszuführen ist.
    • 4. Ein Bit nach dem Typenunterfeld in dem zweiten Wort in einer Befehlsgruppe kann dazu verwendet werden, Zweiwortbefehle mit Paarung von Dreiwortbefehlen zu unterscheiden. In einer Ausführungsform ist das unterscheidende Bit das dem Typenunterfeld in dem zweiten Befehlswort einer Gruppe von Befehlswörtern unmittelbar folgende Bit. Die Verwendung zusätzlicher Bits in denselben oder anderen Befehlswörtern kann andere Befehle, wie Vierwortbefehle von Dreiwortbefehlen sowie gepaarte Ein- oder Zweiwortbefehle, unterscheiden.
  • In einer bestimmten veranschaulichenden Ausführungsform bestehen 3 Möglichkeiten, Gruppierungsinformation für Gruppierungsbefehle in Ausführungssätze zu befördern:
    • – Verwendung der 2–3 am meisten signifikanten Bits in dem Befehl -- kein Präfix wird verwendet
    • – Verwendung eines 1-Wort-Präfix für einen Ausführungssatz
    • – Verwendung eines 2-Wort-Präfix für einen Ausführungssatz
  • Der folgende Gruppierungsalgorithmus wählt aus, welche Option zu verwenden ist (wenn die zu gruppierenden Befehle vorgegeben sind), um die Befehlscodegröße zu reduzieren. Der Algorithmus ist:
    • – werden die Register d8–d15 in dem Ausführungssatz verwendet?
    • – Ja – > verwende 2-Wort-Präfix
    • – Nein – > fahre fort
    • – wird der Satz bedingt ausgeführt (Ifc), oder sollte er Schleifeninformation befördern?
    • – Ja – > verwende 1-Wort-Präfix
    • – Nein – > fahre fort
    • – weist der Ausführungssatz lediglich einen Befehl auf?
    • – Ja – > kein Präfix erforderlich
    • – Nein – > fahre fort
    • – sind die Befehle in dem Satz nach ihrem Typ gruppierbar?
    • – Ja – > kein Präfix erforderlich – codiere Gruppierung unter Verwendung nur der 2 am meisten signifikanten Bits
    • – Nein – > verwende 1-Wort-Präfix
  • Nachstehend wird in tabellarischer Form eine weitere Beschreibung einer statischen Gruppierungsausführungform erörtert.
  • Codieren eines Einwortbefehlstyps 2 am meisten signifikante Bits von dem
    Figure 00290001
  • Zweiwort- oder Dreiwort-Identifizierung (L – letzter Befehl in dem Ausführungssatz)
    Figure 00290002
  • Figure 00300001
  • Bestimmte zusätzliche Aspekte der vorliegenden Offenbarung werden nachstehend zusammengefasst.
  • In einem zum Durchführen ausgewählter Operationen geeigneten Datenprozessor umfasst ein Befehlssystem ein Präfixwort mit einem bedingten Ausführungsfeld zum Auswählen einer Bedingung, unter der der Datenprozessor eine auszuwählende Operation durchführen wird und ein Befehlswort mit einem Operationsauswahlfeld zum Auswählen der durch den Datenprozessor durchzuführenden Operation. Es kann sein, dass das bedingte Ausführungsfeld eine Bedingung auswählt, unter der der Datenprozessor die ausgewählte Operation nicht durchführen wird. In einer Ausführungsform umfassen das Präfixwort und das Befehlswort einen Befehl oder einen Ausführungsschritt, dessen Durchführung durch den Datenprozessor von dem bedingten Ausführungsfeld des Präfixwortes abhängt. Der Befehl kann mehr als ein Befehlswort enthalten. In einer anderen Ausführungsform befindet sich das Präfix optional in dem Befehl.
  • Ein System zur Befehlserteilung an einen zur Durchführung von ausgewählten Operationen geeigneten Datenprozes sor, wobei das System ein Präfixwort mit einem bedingten Ausführungsfeld zum Auswählen einer Bedingung umfasst, unter der der Datenprozessor eine auszuwählende Operation durchführen wird, und ein Befehlswort mit einem Operationsauswahlfeld zum Auswählen der durch den Datenprozessor durchzuführenden Operation umfasst. Es ist möglich, dass das bedingte Ausführungsfeld eine Bedingung auswählt, unter der der Datenprozessor die ausgewählte Operation nicht durchführen wird. In einer Ausführungsform umfassen das Präfixwort und das Befehlswort einen Befehl, dessen Durchführung durch den Datenprozessor von dem bedingten Ausführungsfeld des Präfixwortes abhängt. Der Befehl kann mehr als ein Befehlswort enthalten. Ferner kann sich das Präfix optional in dem Befehl befinden.
  • In einer anderen Ausführungsform betrifft die vorliegende Offenbarung ein System zur Befehlserteilung an einen zur Durchführung von ausgewählten Operationen geeigneten Datenprozessor, wobei das System ein Präfixwort mit einem bedingten Ausführungsfeld zum Auswählen einer Bedingung, unter der der Datenprozessor eine auszuwählende Operation durchführen wird, und ein Befehlswort mit einem Operationsauswahlfeld zum Auswählen der durch den Datenprozessor durchzuführenden Operation umfasst. Es ist möglich, dass das bedingte Ausführungsfeld eine Bedingung auswählt, unter der der Datenprozessor die ausgewählte Operation nicht durchführen wird.
  • Das Präfixwort und das Befehlswort können einen Befehl umfassen, dessen Durchführung durch den Datenprozessor von dem bedingten Ausführungsfeld des Präfixwortes abhängt. Der Befehl kann mehr als ein Befehlswort enthalten.
  • Eine andere Ausführungsform betrifft ein Befehlssystem in einem zum Durchführen von Operationen auf Operanden mit einer ersten und einer zweiten Länge geeigneten Datenprozessor. Das Befehlssystem umfasst ein Präfixwort mit einem Operandenlängen-Modifikationsfeld zum Modifizieren einer auszuwählenden Operation derart, dass sie auf einem Operanden mit der zweiten Länge durchgeführt wird, und ein Befehlswort mit einem Operationsauswahlfeld zum Auswählen der auf einem Operanden mit der ersten Länge durchzuführenden Operation. In einer Ausführungsform weisen die Operanden eine Mehrzahl von Längen auf, wählt das Operationsauswahlfeld eine auf einem Operanden mit einer vorbestimmten aus der Mehrzahl von Längen durchzuführende Operation aus, und modifiziert das Operandenlängen-Modifikationsfeld die Operation derart, dass sie auf einem Operanden mit einer anderen aus der Mehrzahl von Längen durchgeführt wird.
  • In einem Datenprozessor umfasst ein Befehlssystem ein Präfixwort mit einem Befehlsgruppenfeld zum Auswählen einer Länge einer Befehlsgruppe und eine Mehrzahl von Befehlswörtern, wobei jedes Befehlswort ein Operationsauswahlfeld zum Auswählen einer durch den Datenprozessor durchzuführenden Operation aufweist. Der Datenprozessor initiiert gleichzeitig die Durchführung aller durch Befehlswörter ausgewählten, die Gruppe umfassenden Operationen. Das Präfixwort und das Befehlswort können einen Befehl bilden. In einer Ausführungsform geht das Präfixwort jedem Befehlswort in dem Befehl voran. In einer anderen Ausführungsform hat das Befehlsgruppenfeld die Länge n und kann 2n aus der Mehrzahl von Befehlswörtern gruppieren. Es bestehen ferner bestimmte Befehlswörter, die nicht mit irgendwelchen aus der Mehrzahl von Befehlswörtern gruppiert werden können.
  • Ein System zur Befehlserteilung an einen Datenprozessor wird bereitgestellt. Das System umfasst eine Befehlswurzel und ein Befehlspräfix. Die Befehlswurzel weist ein Operationsauswahlfeld zum Auswählen einer durch den Datenprozessor durchzuführenden Operation auf. Das Befehlspräfix weist ein Feld auf, das aus wenigstens einem der Folgenden ausgewählt wurde: ein bedingtes Ausführungsfeld zum Auswählen einer Bedingung, unter der der Datenprozessor die ausgewählte Operation durchführen wird, ein Operandenlängen-Modifikationsfeld zum Modifizieren der ausgewählten Operation derart, dass sie auf einem Operanden mit einer unterschiedlichen Länge durchgeführt wird, ein Befehlsgruppenfeld zum Auswählen einer Wortlänge einer Befehlsgruppe, die die Befehlswurzel umfasst und ein Präfixlängen-Auswahlfeld zum Auswählen einer Wortlänge des Befehlspräfix. Der Befehl kann mehr als eine Befehlswurzel enthalten. Typischerweise geht das Präfix wenigstens einem der Befehlsstämme voran.
  • Ein System zur Befehlserteilung an einen Datenprozessor mit einer Mehrzahl von Registern. Das System umfasst eine Befehlswurzel mit einem Registerauswahlfeld mit einer Breite m zum Auswählen von einem der 2m Register in dem Datenprozessor; und ein Befehlspräfix mit einem Registerauswahl-Erweiterungsfeld mit einer Breite n zum Erweitern der Breite des Registerauswahlfeldes, um eines der 2m+n Register in dem Datenprozessor auszuwählen.
  • Somit sind hierin eine Ausführungsform einschließlich wenigstens einer bevorzugten Ausführungsform eines bzw. einer verbesserten Verfahrens und Vorrichtung zum Gruppieren von Datenprozessorbefehlen und Ausführungsformen von Befehlssystemen beschrieben worden. Fachleuten in der Technik wird klar sein, dass der offenbarte Gegenstand auf zahlrei che Weise modifiziert werden kann und viele andere Ausführungsformen als die vorstehend speziell dargelegte bevorzugte Form annehmen kann. Zum Beispiel werden die spezifischen Elemente und die Konfiguration des Datenprozessors 10 lediglich als Beispiel beschrieben. Viele andere alternative Systeme können verwendet werden. Zum Beispiel sind die DMA 16, die Speicher 20 und 22 und bestimmten Ausführungseinheiten in dem Kern 12 optional.

Claims (8)

  1. Datenverarbeitungssystem (10) mit einem Datenverarbeitungskern (30, 32, 34, 36) und einem Befehlssystem (24), wobei das Befehlssystem (24) umfasst: eine Befehlswurzel mit einem Operationsauswahlfeld zum Auswählen einer durch den Datenprozessorkern (30, 32, 34, 36) durchzuführenden Operation; gekennzeichnet durch ein Befehlspräfix mit einer auswählbaren Länge, um dem Befehlspräfix die Unterbringung von wenigstens einem aus einer Mehrzahl von Feldern auswählbaren Feld zu gestatten.
  2. Datenverarbeitungssystem (10) nach Anspruch 1, wobei eines der auswählbaren Felder ein bedingtes Ausführungsfeld ist, und wobei die Befehlswurzel und das Befehlspräfix einen Befehl aufweisen, dessen Durchführung durch den Datenprozessorkern (30, 32, 34, 36) von dem bedingten Ausführungsfeld des Befehlspräfixes abhängt.
  3. Datenverarbeitungssystem (10) nach Anspruch 2, wobei der Befehl mehr als eine Befehlswurzel umfasst.
  4. Datenverarbeitungssystem (10) nach einem vorangehenden Anspruch, das weiterhin 2n Bänke von 2m Registern umfasst, wobei: das Befehlspräfix ein Registerbank-Auswahlfeld mit einer Breite n zum Auswählen von einer der 2n Bänke der Register aufweist; und die Befehlswurzel ein Registerauswahlfeld mit einer Breite m zum Auswählen von einem der 2m Register in der ausgewählten der Bänken aufweist.
  5. Datenprozessorsystem (10) nach einem vorangehenden Anspruch, wobei: das Operationsauswahlfeld zum Auswählen einer auf einem Operanden mit einer ersten Länge durchzuführenden Operation ausgelegt ist; und das Befehlspräfix ein Operandenbreiten-Modifikationsfeld zum Modifizieren der ausgewählten Operation aufweist, derart, dass sie auf einem Operanden mit einer zweiten Breite durchgeführt wird.
  6. Datenprozessorsystem (10) nach einem vorangehenden Anspruch, wobei: das Befehlspräfix ein Befehlsgruppenfeld zum Auswählen einer Mehrzahl der Befehlswurzeln zum Vorsehen einer Gruppe aufweist, wobei der Datenprozessorkern gleichzeitig die Durchführung aller durch die Gruppe ausgewählter Operationen initiiert.
  7. Datenprozessorsystem (10) nach einem vorangehenden Anspruch, wobei der Datenprozessorkern (30, 32, 34, 36) dazu ausgelegt ist, um Operationen eines ersten und eines zwei ten Typs sequentiell und eine Mehrzahl von Operationen des ersten Typs parallel auszuführen, wobei das Operationsauswahlfeld dazu ausgelegt ist, einen des ersten Typs und des zweiten Typs von durch den Datenprozessorkern (30, 32, 34, 36) auszuführenden Operationen auszuwählen, wobei das Operationsauswahlfeld ein Typ-Unterfeld mit einer Breite n aufweist, dessen Werte wie folgt zugewiesen werden: ein erster Wert, wenn der erste Operationstyp sequentiell auszuführen ist; ein zweiter Wert, wenn der erste Operationstyp parallel auszuführen ist; und ein aus den restlichen (2n – 2) Werten ausgewählter dritter Wert, wenn der zweite Operationstyp auszuführen ist.
  8. Datenprozessorsystem (10) nach einem der Ansprüche 1 bis 6, wobei der Datenprozessorkern (30, 32, 34, 36) geeignet ist, Operationen eines ersten und eines zweiten Typs sequentiell und eine Mehrzahl von Operationen des ersten Typs parallel auszuführen, wobei das Operationsauswahlfeld dazu ausgelegt ist, einen des ersten Typs und des zweiten Typs von durch den Datenprozessorkern auszuführenden Operationen auszuwählen, wobei das Operationsauswahlfeld ein Typ-Unterfeld aufweist, wobei das Typ-Unterfeld aufweist: einen ersten Wert für Operationen des ersten Typs, die sequentiell auszuführen sind; einen zweiten Wert für Operationen des ersten Typs, die parallel auszuführen sind und für wenigstens eine ausgewählte Operation des zweiten Typs, die sequentiell auszuführen ist.
DE69916962T 1998-10-13 1999-09-27 Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen Expired - Fee Related DE69916962T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US170690 1998-10-13
US09/170,690 US6418527B1 (en) 1998-10-13 1998-10-13 Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods

Publications (2)

Publication Number Publication Date
DE69916962D1 DE69916962D1 (de) 2004-06-09
DE69916962T2 true DE69916962T2 (de) 2005-04-07

Family

ID=22620876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69916962T Expired - Fee Related DE69916962T2 (de) 1998-10-13 1999-09-27 Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen

Country Status (10)

Country Link
US (1) US6418527B1 (de)
EP (1) EP0994413B1 (de)
JP (1) JP2000122864A (de)
KR (1) KR100690225B1 (de)
CN (1) CN1129843C (de)
AT (1) ATE266226T1 (de)
DE (1) DE69916962T2 (de)
ES (1) ES2221282T3 (de)
SG (1) SG95605A1 (de)
TW (1) TW497073B (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1039375A1 (de) * 1999-03-19 2000-09-27 Motorola, Inc. Verfahren und Vorrichtung zur Durchführung von Schleifen mit kleinem Verwaltungsaufwand
US6606700B1 (en) * 2000-02-26 2003-08-12 Qualcomm, Incorporated DSP with dual-mac processor and dual-mac coprocessor
WO2001067234A2 (en) * 2000-03-08 2001-09-13 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
US6725360B1 (en) * 2000-03-31 2004-04-20 Intel Corporation Selectively processing different size data in multiplier and ALU paths in parallel
US7010788B1 (en) * 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
GB2366643B (en) 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
US6877084B1 (en) * 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
CN100541421C (zh) * 2001-11-26 2009-09-16 Nxp股份有限公司 由专用指令配置的处理器和用于这种处理器的分配方法
US7697946B2 (en) * 2002-06-04 2010-04-13 Forster Ian J Reflective communication using radio-frequency devices
JP3627725B2 (ja) * 2002-06-24 2005-03-09 セイコーエプソン株式会社 情報処理装置及び電子機器
US6944749B2 (en) * 2002-07-29 2005-09-13 Faraday Technology Corp. Method for quickly determining length of an execution package
US6865662B2 (en) * 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
WO2004114128A2 (en) * 2003-06-25 2004-12-29 Koninklijke Philips Electronics N.V. Instruction controlled data processing device
US7340588B2 (en) * 2003-11-24 2008-03-04 International Business Machines Corporation Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US7873815B2 (en) * 2004-03-04 2011-01-18 Qualcomm Incorporated Digital signal processors with configurable dual-MAC and dual-ALU
US20060149926A1 (en) * 2004-12-23 2006-07-06 Yuval Sapir Control words for instruction packets of processors and methods thereof
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US20060150171A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Control words for instruction packets of processors and methods thereof
US7350040B2 (en) * 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
JP5217431B2 (ja) * 2007-12-28 2013-06-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8407680B2 (en) * 2008-12-16 2013-03-26 International Business Machines Corporation Operand data structure for block computation
US8458439B2 (en) * 2008-12-16 2013-06-04 International Business Machines Corporation Block driven computation using a caching policy specified in an operand data structure
US8281106B2 (en) * 2008-12-16 2012-10-02 International Business Machines Corporation Specifying an addressing relationship in an operand data structure
US8327345B2 (en) * 2008-12-16 2012-12-04 International Business Machines Corporation Computation table for block computation
US8285971B2 (en) * 2008-12-16 2012-10-09 International Business Machines Corporation Block driven computation with an address generation accelerator
GB2486737B (en) * 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
GB2565242B (en) 2010-12-24 2019-04-03 Qualcomm Technologies Int Ltd Encapsulated instruction set
US20140019990A1 (en) * 2011-03-30 2014-01-16 Freescale Semiconductor, Inc. Integrated circuit device and method for enabling cross-context access
US8898433B2 (en) * 2012-04-26 2014-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Efficient extraction of execution sets from fetch sets
KR102210997B1 (ko) * 2014-03-12 2021-02-02 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US9733940B2 (en) 2014-11-17 2017-08-15 International Business Machines Corporation Techniques for instruction group formation for decode-time instruction optimization based on feedback
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US10402199B2 (en) * 2015-10-22 2019-09-03 Texas Instruments Incorporated Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
US20170192788A1 (en) * 2016-01-05 2017-07-06 Intel Corporation Binary translation support using processor instruction prefixes
CN107688854B (zh) * 2016-08-05 2021-10-19 中科寒武纪科技股份有限公司 一种能支持不同位宽运算数据的运算单元、方法及装置
US10761849B2 (en) * 2016-09-22 2020-09-01 Intel Corporation Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction
CN111813446A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种数据加载和存储指令的处理方法和处理装置
WO2023146519A1 (en) * 2022-01-26 2023-08-03 Google Llc Parallel decode instruction set computer architecture with variable-length instructions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
EP0500151B1 (de) * 1985-11-08 2000-03-01 Nec Corporation Mikroprogrammsteuereinheit
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
DE69427265T2 (de) * 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
EP1102166B1 (de) 1993-11-05 2003-05-21 Intergraph Corporation Superskalare Rechnerarchitektur mit Softwarescheduling
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp Befehlscachespeicher mit assoziativem Kreuzschienenschalter
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5822778A (en) * 1995-06-07 1998-10-13 Advanced Micro Devices, Inc. Microprocessor and method of using a segment override prefix instruction field to expand the register file
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US6275927B2 (en) * 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes

Also Published As

Publication number Publication date
KR100690225B1 (ko) 2007-03-12
ES2221282T3 (es) 2004-12-16
TW497073B (en) 2002-08-01
EP0994413A3 (de) 2002-01-23
JP2000122864A (ja) 2000-04-28
ATE266226T1 (de) 2004-05-15
KR20000029005A (ko) 2000-05-25
CN1250906A (zh) 2000-04-19
SG95605A1 (en) 2003-04-23
EP0994413A2 (de) 2000-04-19
CN1129843C (zh) 2003-12-03
US6418527B1 (en) 2002-07-09
EP0994413B1 (de) 2004-05-06
DE69916962D1 (de) 2004-06-09
US20020056035A1 (en) 2002-05-09

Similar Documents

Publication Publication Date Title
DE69916962T2 (de) Datenverarbeitungssystem mit bedingter Ausführung von erweiterten Verbundbefehlen
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE112013005188B4 (de) Prozessor und vefrahren zur vektorisierung von zusammengeführten, mehrfach geschachtelten schleifen
DE69933088T2 (de) Vliw-verarbeiter verarbeitet befehle von verschiedenen breiten
DE60036016T2 (de) Schnell multithreading für eng gekoppelte multiprozessoren
DE69431998T2 (de) Superskalare Rechnerarchitektur mit Softwarescheduling
DE69233412T2 (de) Vorrichtung und Rechnerprogrammprodukt zur Ausführung von Verzweigungsbefehlen
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE69434971T2 (de) Programmumsetzungseinheit
DE4301417A1 (de)
DE102018005105A1 (de) Befehle für entfernte atomare operationen
DE60032794T2 (de) Bit-dekompression-verarbeitung mit einem vielseitigen ausrichtungswerkzeug
DE60131214T2 (de) Verfahren und Anordnung zur Freilassung von Funktionseinheiten in einem multithreaded VLIW-Prozessor
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE19735348A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern
DE3119741A1 (de) Datenverarbeitungseinheit
DE19735350A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung bei einem Multimedia-Signalprozessor
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE19914210A1 (de) Verfahren und Vorrichtung für eine gestaffelte Ausführung einer Anweisung
DE69835425T2 (de) Verbesserter befehlszuteilungsmechanismus für eine geschützte vliw-architektur
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE19545179A1 (de) Vektorspeicheroperationen
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: FREESCALE SEMICONDUCTOR, INC., AUSTIN, TEX., US

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee