DE69925410T2 - Erweiterung des Befehlssatzes unter Verwendung von Präfixcode - Google Patents

Erweiterung des Befehlssatzes unter Verwendung von Präfixcode Download PDF

Info

Publication number
DE69925410T2
DE69925410T2 DE69925410T DE69925410T DE69925410T2 DE 69925410 T2 DE69925410 T2 DE 69925410T2 DE 69925410 T DE69925410 T DE 69925410T DE 69925410 T DE69925410 T DE 69925410T DE 69925410 T2 DE69925410 T2 DE 69925410T2
Authority
DE
Germany
Prior art keywords
code
prefix
instruction
field
command
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 - Lifetime
Application number
DE69925410T
Other languages
English (en)
Other versions
DE69925410D1 (de
Inventor
Srinivas Portland Chennupaty
Lance Portland Hacking
Thomas Portland Huff
Patrice L. Portland Roussel
Shreekant S. Portland Thakkar
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69925410D1 publication Critical patent/DE69925410D1/de
Publication of DE69925410T2 publication Critical patent/DE69925410T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Mikroprozessorsysteme. Im Besonderen betrifft die vorliegende Erfindung die Befehlssatzerweiterung unter Verwendung von Präfixen bzw. Vorsätzen.
  • 2. Beschreibung des Stands der Technik
  • Die Mikroprozessortechnologie hat sich über die Jahre hinweg sehr schnell weiterentwickelt. Die Fortschritte auf den Gebieten der Computerarchitektur und der Halbleitertechnologie haben viele neue Möglichkeiten für die Entwicklung neuer Prozessoren geschaffen. Für die Gestaltung neuer Prozessoren gibt es für gewöhnlich zwei Optionen: (1) die Definition einer vollständig neuen Architektur; und (2) die Erweiterung der bestehenden Architektur unter Berücksichtigung der neuen Merkmale. Jede Option weist Vorteile und Nachteile auf. Wenn ein Prozessor jedoch einmal ein großes Marktsegment für sich gewonnen hat, so bietet die Option (2) zahlreiche attraktive Vorteile. Der Hauptvorteil der Erweiterung der bestehenden bzw. vorhandenen Architektur ist die Kompatibilität mit den aktuellen und älteren Modellen. Zu den Nachteilen zählen die Probleme, die damit verbunden sind, sich von den Einschränkungen bzw. Beschränkungen zu lösen, die durch frühere Konstruktionen auferlegt sind.
  • Neue Prozessoren umfassen neue Merkmale in Bezug auf Hardware und auf Software. Ein auf einem bereits bestehenden Design bzw. einer bereits bestehenden Bauweise basierender neuer Prozessor weist für gewöhnlich einen zusätzlichen Befehlssatz auf, der das neue Hardwaredesign nutzen kann. Die Erweiterung eines Befehlssatzes durch das Hinzufügen eines neuen Befehlssatzes ist aufgrund der Beschränkungen in Bezug auf die Codierung der Befehle jedoch eine echte Herausforderung.
  • Wenn ein Befehlssatz zum ersten Mal entwickelt wird, werden in dem kennzeichnenden Ansatz die Befehle mit der kleinstmöglichen Anzahl von Bits codiert, um Platz für zukünftige Erweiterungen zu lassen. Im Zuge der Weiterentwicklung der Architektur und deren zunehmenden Reife, werden immer mehr Befehle definiert. Schließlich gelangt man an einen Punkt, an dem kein Platz zur Codierung der Befehle mehr vorhanden ist.
  • Eine Lösung dieses Problems die Beseitigung einiger der älteren Befehle. Diese Lösung verringert jedoch die Kompatibilität mit den älteren Prozessoren. Es kann sein, dass für die älteren Prozessoren geschriebene Programme in Verbindung mit dem neuen Design nicht mehr einsatz- bzw. funktionsfähig sind. Eine weitere Lösung ist die Reduzierung des neuen Befehlssatzes auf lediglich eine Gruppe von selektiven Befehlen, die nur wenig Platz in der verfügbaren Operationscodetabelle lassen. Die Lösung führt zu einer schlechteren Leistung, da sie auf zahlreiche weiterentwickelte Merkmale verzichtet, die durch das neue Design angeboten werden. Bei einer weiteren Lösung wird eine Gruppe von neuen. Operationscodes definiert, die sich von den bereits bestehenden Operationscodes unterscheiden. Zu den Problemen dieser Lösung zählt die Komplexität der Schaltkreisanordnung für die Decodierung, die eine große Chipfläche belegt, und ferner ist die Skalierung in Verbindung mit der Prozessorfrequenz nicht besonders gut.
  • WO 97/22922 offenbart Erweiterungen der Befehlscodierung für eine Mikrocontroller-Architektur, welche die Rückwärtskompatibilität aufrechterhalten kann, so dass die Befehle des früheren Prozessors ihre Funktionalität behalten. Zahlreiche Operationscodes werden dadurch verfügbar gemacht, dass ein Präfix hinzugefügt wird, das bestehende Operationscodes qualifiziert.
  • Auf dem Gebiet wird somit ein effizientes Verfahren benötigt, das einen Befehlssatz erweitert, ohne dabei die Komplexität der Hardware zu erhöhen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 7.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung eine Vorrichtung gemäß dem gegenständlichen Anspruch 13.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung der Erfindung deutlich.
  • In den Zeichnungen zeigen:
  • 1 eine diagrammatische Darstellung eines Ausführungsbeispiels eines Computersystems 100 gemäß den Lehren der vorliegenden Erfindung;
  • 2 eine diagrammatische Darstellung eines Formats eines Befehls 200 gemäß einem Ausführungsbeispiel der Erfindung;
  • 3 eine diagrammatische Darstellung einer Schaltung 300 zum Decodieren eines Befehls gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 4 eine diagrammatische Darstellung des Präfix- und Umschaltdetektors 320, der Decodierer-Freigabeschaltung 330 und des Operationscode-Decodierers 340 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 5 ein Flussdiagramm eines Prozesses P500 zur Ausführung der Befehlsdecodierung unter Verwendung von Präfixen gemäß einem Ausführungsbeispiel der Erfindung.
  • BESCHREIBUNG DER VORLIEGENDEN ERFINDUNG
  • Offenbart werden ein Verfahren und eine Vorrichtung zur Erweiterung eines Befehlssatzes unter Verwendung von Präfixen. Das Verfahren verwendet eine Gruppe von bestehenden Präfixcodes, um einen neuen Befehlssatz zu definieren. Das Verfahren sieht einen schnellen und effizienten Mechanismus zum Decodieren des neuen Befehlssatzes vor.
  • In der folgenden Beschreibung sind zahlreiche Einzelheiten zu Erläuterungszwecken ausgeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Für den Fachmann auf dem Gebiet ist es jedoch offensichtlich, dass die spezifischen Einzelheiten für die Ausführung der vorliegenden Erfindung nicht unbedingt erforderlich sind. In anderen Fällen sind allgemein bekannte elektrische Strukturen und Schaltungen in Blockdiagrammform dargestellt, um die vorliegende Erfindung nicht unnötig zu verschleiern. In der folgenden Beschreibung zeigt 0x an, dass es sich bei der folgenden Zahl um eine Zahl im sedezimalen bzw. hexadezimalen Format handelt.
  • Die Abbildung aus 1 zeigt ein Ausführungsbeispiel eines Prozessors 110 gemäß den Lehren der vorliegenden Erfindung.
  • Der Prozessor 110 ist eine Zentraleinheit jeder Art von Architektur, wie etwa ein CISC-Prozessor bzw. ein Prozessor für einen Computer mit komplexem Befehlsvorrat (CISC als englische Abkürzung von Complex Instruction Set Computer), ein RISC-Prozessor bzw. ein Prozessor für einen Computer mit reduziertem Befehlsvorrat (RISC als englische Abkürzung von Reduced Instruction Set Computer), ein VLIW-Prozessor bzw. ein Prozessor mit sehr langem Befehlswort (VLIW als englische Abkürzung von Very Long Instruction Word), eine Multi-Thread- oder eine hybride Architektur.
  • Die Abbildung aus 1 veranschaulicht, dass der Prozessor 110 eine Decodierungseinheit 116, eine Gruppe von Registern 114, eine Ausführungseinheit 112 und einen internen Bus 111 zur Ausführung von Befehlen aufweist. Natürlich weist der Prozessor 110 weitere Schaltkreise auf, die für das Verständnis der vorliegenden Erfindung jedoch nicht erforderlich sind. Die Decodierungseinheit 116, die Register 114 und die Ausführungseinheit 112 sind über den internen Bus 111 miteinander gekoppelt. Die Decodierungseinheit 116 wird zum Decodieren der von dem Prozessor 110 empfangenen Befehle in Steuersignale und/oder Mikrocode-Eingangspunkte verwendet. Als Reaktion auf diese Steuersignale und/oder Mikrocode-Eingangspunkte führt die Ausführungseinheit 112 die entsprechenden Operationen aus. Die Decodierungseinheit 116 kann unter Verwendung jedes beliebigen Mechanismus einer Anzahl von verschiedenen Mechanismen implementiert werden. (z.B. einer Verweistabelle, einer Hardware-Implementierung, einer programmierbaren Logik-Anordnung (PLA) etc.).
  • Die Decodierungseinheit 116 ist mit einem Befehlssatz 118 zur Ausführung von Operationen an skalaren und gepackten Daten dargestellt. Bei dem Zahlenformat für diese Operationen kann es sich um jedes geeignete Format handeln, darunter Gleitpunktzahlen mit einfacher Genauigkeit, Gleitpunktzahlen mit doppelter Genauigkeit und erweiterter Gleitpunktzahlen, ganzer Zahlen mit oder ohne Vorzeichen und nichtnumerischer Daten. Der Befehlssatz 118 weist einen bereits bestehenden Befehlssatz 118a und einen neuen Befehlssatz 118b auf. Im Besonderen weist das Befehlsformat des Befehlssatzes ein Präfix 118c auf.
  • BEFEHLSFORMAT
  • Die Abbildung aus 2 zeigt ein Diagramm eines Formats für einen Befehl 200 gemäß einem Ausführungsbeispiel der Erfindung. Der Befehl 200 weist ein Präfixfeld 210, ein Operationscodefeld 220 und Operandenspezifikationsfelder (z.B. ModR/M, Skalierung-Index-Basis, Versatz, unverzüglich etc.) auf. Die Operandenspezifikationsfelder sind optional und weisen ein Feld ModR/M 230, ein Feld SIB 240, ein Versatzfeld 250 und ein unverzügliches Feld 260 auf.
  • Das Präfixfeld 210 weist eine Mehrzahl von Präfixen auf. In einem Ausführungsbeispiel weist das Präfixfeld 210 bis zu vier Präfixe auf, wobei jedes Präfix ein Byte ist. Das Präfixfeld 210 ist optional. Für den erweiterten neuen Befehlssatz ist das Präfixfeld allerdings für die Codierung der neuen Befehle erforderlich.
  • Das Operationscodefeld 220 spezifiziert die Operation. Für den erweiterten neuen Befehlssatz wird das Operationscodefeld 220 mit dem Präfixfeld 210 verknüpft, um eine Operation zu definieren. In einem Ausführungsbeispiel kann das Operationscodefeld 220 ein oder zwei Bytes aufweisen.
  • Die Kombination aus dem Präfixfeld 210 und dem Operationscodefeld 220 erzeugt eine Mehrzahl verschiedenartiger Befehlssätze. Zu Veranschaulichungszwecken zeigt die Abbildung aus 2 nur fünf Befehlstypen: einen normalen Ein-Byte-Befehl 212, einen normalen Befehl mit Präfix als Kennzeichner 214, einen normalen Umschaltbefehl bzw. Escape-Befehl 216, einen ersten neuen Befehlstyp 222 und einen zweiten neuen Befehlstyp 224. Der Fachmann auf dem Gebiet ist in der Lage, auch andere Befehlstypen auf ähnliche Weise zu definieren.
  • Der normale Ein-Byte-Befehl 212 weist normale Befehle mit Ein-Byte-Operationscodes auf. Der normale Befehl mit Präfix als Kennzeichner 214 weist normale Befehle auf, die das Präfix als Kennzeichner für den Operationscode verwenden. Zum Beispiel kann ein Zeichenfolgenbefehl ein Präfix WIEDERHOLEN (englisch Repeat) verwenden, um den Zeichenfolgenbefehl so häufig zu wiederholen, wie dies in dem Zählregister spezifiziert ist oder bis eine bestimmte Bedingung erfüllt ist. Das in dem Befehl 214 verwendete Präfix fügt dem folgenden Operationscode keine vollständig neue Bedeutung hinzu. Vielmehr wird das Präfix nur als Kennzeichner zum Qualifizieren des Operationscodes mit zusätzlichen Bedingungen verwendet. Wie dies zu einem späteren Zeitpunkt im Text erläutert wird, unterscheidet sich die Verwendung des Präfixes in dem Befehl 214 deutlich von der Verwendung in dem Befehl 224. Der normale Umschaltbefehl 216 ist ein normaler Befehl, der auf andere Befehlstypen umschaltet. In einem Ausführungsbeispiel zeigt ein Gleitpunkt-Coprozessor-Umschaltcode 0xD8 bis 0xDF zum Beispiel an, dass der folgende Operationscode als Coprozessorbefehle interpretiert werden sollte.
  • Der erste neue Befehlstyp 222 (oder der neue Befehlstyp 0) ist ein neuer Befehl, der Teil des neuen Befehlssatzes ist, der zu einem bereits bestehenden normalen Befehlssatz hinzugefügt wird. Der neue Befehlstyp 0 verwendet einen speziellen Umschaltcode, der als Zwei-Byte-Umschaltcode bezeichnet wird. In einem Ausführungsbeispiel entspricht der Zwei-Byte-Umschaltcode 0x0F. Für den Befehl 222 sollte der auf den 2-Byte-Umschaltcode folgende Befehl 222 als ein neuer Befehl decodiert werden. Der zweite neue Befehlstyp 224 (oder der neue Befehlstyp 1) verwendet das Präfix als Bestandteil des Operationscodes. Im Gegensatz zu dem Befehl 214, bei dem das Präfix lediglich den folgenden Operationscode qualifiziert, verwendet der Befehl 224 das Präfix für die Definition eines vollständig neuen Befehls. Die Verwendung des Präfixes in Verbindung mit dem Umschaltcode erweitert die Befehlsoperationscodetabelle ohne signifikante Veränderungen der Decodierungsschaltkreisanordnung. Darüber hinaus werden keine neuen Operationscodes verwendet, so dass Platz für zukünftige neue Befehle vorhanden ist. Beispiele für diese Befehle sind im weiteren Verlauf des Textes ausgeführt.
  • BEISPIELE FÜR BEFEHLSPRÄFIXE UND UMSCHALTCODES
  • Die Befehlspräfixe werden ursprünglich zur Verbesserung bzw. zur Erweiterung eines Befehlssatzes verwendet. Zum Beispiel wird das Wiederholungspräfix entwickelt, um einen Zeichenfolgebefehl bzw. einen String-Befehl zu wiederholen. Die Wiederholungspräfixcodes lauten 0xF3 (REP, REPE) und 0xF2 (REPNE). Das Präfix definiert keine neue Bedeutung für den folgenden Operationscode. Es definiert lediglich zusätzliche Betriebsbedingungen für den Operationscode.
  • Der Umschaltcode sieht eine Erweiterung des Befehlssatzes vor. Zum Beispiel werden die Umschaltcodes 0xD8 bis 0xDF verwendet, um anzuzeigen, dass der folgende Operationscode zu der Gleitpunkteinheit gehört. Der Decodierer leitet den Operationscode zu dem Gleitpunktdecodierer. In einem Ausführungsbeispiel zeigt ein Zwei-Byte-Umschaltcode 0x0F an, dass der folgende Operationscode einen neuen Befehlssatz definiert. Obwohl der Umschaltcode eine zusätzliche Erweiterung des Befehlssatzes ermöglicht, ist die zusätzliche Anzahl der Operationscodes weiterhin beschränkt.
  • Die Kombination aus dem Präfix- und dem Umschaltcode sorgt für eine erhebliche Erweiterung der Operationscodetabelle, so dass weitere neue Befehlssätze ermöglicht werden. Diese Kombination verwendet bereits vorhandene Präfixcodes, um einen vollständig neuen Befehlssatz zu definieren, zusätzlich zu dem durch den Umschaltcode erzeugten Befehlssatz. Durch die Verwendung der bereits vorhandenen Präfixcodes bleibt die Decodierungsschaltkreisanordnung für den bereits bestehenden Befehlssatz im Wesentlichen unverändert. Die Decodierungsschaltkreisanordnung muss zur Berücksichtigung dieser Kombination zwar modifiziert werden, allerdings ist diese Modulation lediglich eine modulare Ergänzung mit minimalen Änderungen des bereits bestehenden Designs.
  • Die Operationscodes einiger oder aller neuer Befehle können mit den Operationscodes der bereits bestehenden Befehle identisch sein. Unter Verwendung der gleichen Operationscodes, wobei die Präfix- und Umschaltcodes einen völlig neuen Befehlssatz definieren, ist die Decodierungsschaltkreisanordnung deutlich weniger komplex als für den Fall eines vollständig neuen Satzes von Operationscodes für den neuen Befehlssatz.
  • In einem Ausführungsbeispiel wird das Wiederholungspräfix 0xF3 für die Definition eines neuen Befehlssatzes verwendet. Andere Präfixe können auf ähnliche Art und Weise verwendet werden. Darüber hinaus können Präfixe weiterhin in ihrer traditionellen Rolle der Erweiterung des Operationscodes oder zur Qualifizierung des Operationscodes unter einer bestimmten Operationsbedingung eingesetzt werden. Das Adressgrößenpräfix kann zum Beispiel weiterhin zur Bewirkung des neuen Befehls mit einem Speicheroperanden eingesetzt werden.
  • Nachfolgend sind Beispiele für den neuen Befehlssatz unter Verwendung von Präfixen und Umschaltcodes aufgeführt.
  • Figure 00100001
  • Figure 00110001
  • In den oben genannten Beispielen betrifft der Befehlssatz ohne das Präfix 0xF3 Operationen an gepackten Daten, während sich der Befehlssatz mit dem Präfix 0xF3 auf Operationen an skalaren Daten bezieht.
  • In einem Ausführungsbeispiel ist die folgende Gruppe von Präfixcodes gegeben: ein Adressgrößen-Präfixcode (0x67), ein Operandengrößen-Präfixcode (0x66), ein Segmentübergangs-Präfixcode (0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65), ein Wiederholungs-Präfixcode (0xF3), ein Wiederholungs-Präfixcode bei Übereinstimmung (0xF3), ein Widerholungscode bei fehlender Übereinstimmung (0xF2) und ein Sperr-Präfixcode (0xF0).
  • Wie dies dem Fachmann auf dem Gebiet bekannt ist, sind die genauen Codes für diese Präfixe abhängig von der Implementierung, wobei die vorstehenden Präfixcodes lediglich Zwecken der Veranschaulichung dienen. Ferner stehen nicht alle Präfixcodes für die Codierung des neuen Befehlssatzes zur Verfügung. Bestimmte Präfixe können zu einem illegalen Modus führen oder werden nicht erkannt.
  • BEFEHLSCODIERUNG UNTER VERWENDUNG VON PRÄFIXEN
  • Die Abbildung aus 3 zeigt ein Diagramm einer Schaltung 300 zum Decodieren des Befehls. Die Schaltung 300 weist einen Befehlspuffer 310, einen Präfix- und Umschaltdetektor 320, eine Decodierer-Freigabeschaltung 330 und einen Operationscode-Decodierer 340 auf. Der Präfix- und Umschaltdetektor 320, die Decodierer-Freigabeschaltung 330 und der Operationscode-Decodierer 340 bilden einen Teil der Decodierungseinheit 116 aus 1.
  • Der Befehlspuffer 310 speichert die von dem externen Speicher erfassten Befehle. Für gewöhnlich wird der Befehlspuffer 310 als Befehls-Cache implementiert. Zu Zwecken der Veranschaulichung wird angenommen, dass ein Befehl drei Bytes umfasst: Das erste Byte entspricht IN bis IN+7, das zweite Byte entspricht IK bis IK+7 und das dritte Byte entspricht IM bis IM+7, wobei IN bis IN+7, IK bis IK+7 und IM bis IM+7 die Bitpositionen des Befehlswortes betreffen.
  • Der Präfix- und Umschaltdetektor 320 empfängt die Befehlsbits IN bis IN+7, IK bis IK+7 und detektiert einen Satz vordefinierter Präfixe und/oder Umschaltcodes, die als Bestandteil des neuen Befehlssatzes verwendet werden. Die Werte dieser Präfixe werden so ausgewählt, dass sie den Präfixen entsprechen, die für den normalen Befehlssatz verwendet werden. Die Decodierer-Freigabeschaltung 330 verknüpft die Ergebnisse des Präfix- und Umschaltdetektors 320, so dass Freigabe- oder Auswahlsignale für den einzelnen Operationscode-Decodierer erzeugt werden. Der Operationscode-Decodierer 340 empfängt die Befehlsbits IN bis IN+7, IK bis IK+7 und IM bis IM+7 und führt die Decodierungsfunktion für die einzelnen Befehlsarten aus.
  • Die Abbildung aus 4 veranschaulicht ein Diagramm des Präfix- und Umschaltdetektors 320, der Decodierer-Freigabeschaltung 330 und des Operationscode-Decodierers 340. Zu Zwecken der Veranschaulichung wird angenommen, dass nur ein Präfix 0xF3 und zwei Umschaltcodes 0xD8-0xDF und 0x0F existieren.
  • Der Präfix- und Umschaltdecodierer 320 weist vier UND-Glieder 410, 412, 414 und 416 auf. Die UND-Glieder 410, 412 und 414 gleichen die Befehlsbits IN bis IN+7 an den entsprechenden Präfixcode und Umschaltcode an. Das UND-Glied 410 gleicht die Befehlscodes IN bis IN+7 an den Präfixcode 0xF3 an und erzeugt ein Signal PRFX. Das Signal PRFX wird behauptet, wenn die Befehlsbits IN bis IN+7 das Präfix 0xF3 darstellen.
  • Das UND-Glied 412 gleicht die Befehlsbits IN bis IN+7 an den Umschaltcode 0xD8-0xDF an und erzeugt ein Signal ESC1. Das Signal ESC1 wird behauptet, wenn die Befehlsbits IN bis IN+7 den Umschaltcode 0xD8 bis 0xDF darstellen. Das UND-Glied 414 gleicht die Befehlsbits IN bis IN+7 an den 2-Byte-Umschaltcode 0x0F an und erzeugt ein Signal ESC2A. Das Signal ESC2A wird behauptet, wenn die Befehlsbits IN bis IN+7 den 2-Byte-Umschaltcode 0x0F darstellen. Das UND-Glied 416 gleicht die Befehlsbits IK bis IK+7an den 2-Byte-Umschaltcode 0x0F an und erzeugt ein Signal ESC2B. Das Signal ESC2B wird behauptet, wenn die Befehlsbits IK bis IK+7 den 2-Byte-Umschaltcode 0x0F darstellen. Wie dies für den Fachmann auf dem Gebiet bekannt ist, können auch andere Logikgatter zur Ausführung der Angleichung oder Decodierung der Befehlsbits IN bis IN+7 und IN bis IN+7 verwendet werden.
  • Die Decodierer-Freigabeschaltung 330 empfängt die Signale PRFX, ESC1, ESC2A und ESC2B zur Erzeugung der Freigabesignale an die einzelnen Decodierer. Die Decodierer-Freigabeschaltung 330 weist ein NOR-Glied 420, ein UND-Glied 422 und ein UND-Glied 424 auf.
  • Das NOR-Glied 420 behauptet das Signal EN1, wenn PRFX, ESC1 und ESC2 alle negiert werden. Dieser Zustand entspricht dem Zustand, wenn die Befehlsbits IN bis IN+7 keinem Präfix, Gleitpunkt-Umschaltcode oder 2-Byte-Umschaltcode entsprechen. Somit entsprechen die IN bis IN+7 einem Operationscode eines normalen Ein-Byte-Befehls.
  • Das UND-Glied 422 behauptet das Signal EN2, wenn das Signal PRFX behauptet und ESC2B negiert wird. Dieser Zustand entspricht dem Zustand, wenn die Befehlsbits IN bis IN+7 dem Präfixcode entsprechen, während die Befehlsbits IK bis IK+7 nicht dem 2-Byte-Umschaltcode entsprechen. Dieser Zustand entspricht somit einem Operationscode, der das Präfix als Kennzeichner für einen normalen Befehl verwendet.
  • Das Signal ESC1 wird als das Signal EN3 verwendet. Dieses Signal wird behauptet, wenn die Befehlsbits IN bis IN+7 mit dem Gleitpunkt-Umschaltcode übereinstimmen. Dieser Zustand entspricht somit einem Gleitpunkt-Operationscode eines normalen Befehls.
  • Das Signal ESC2 wird als das Signal EN4 verwendet. Das Signal wird behauptet, wenn die Befehlsbits IN bis IN+7 dem 2-Byte-Umschaltcode entsprechen. Dieser Zustand entspricht somit einem Operationscode eines normalen Befehlstyps 0.
  • Das UND-Glied 424 behauptet das Signal EN5, wenn die Signale PRFX und ESC2B behauptet werden. Dieser Zustand entspricht dem Zustand, wenn die Befehlsbits IN bis IN+7 dem Präfixcode entsprechen, und wenn die Befehlscodes IK bis IK+7 dem 2-Byte-Umschaltcode entsprechen. Dieser Zustand entspricht somit einem Operationscode eines neuen Befehlstyps 1.
  • Der Operationscode-Decodierer 340 umfasst einen normalen Ein-Byte-Decodierer 430, einen normalen Präfix-Decodierer 432, einen normalen Umschaltdecodierer 434, einen Decodierer 436 für den neuen Befehlstyp 0 und einen Decodierer 438 für den neuen Befehlstyp 1. Diese Decodierer führen im Wesentlichen Die Decodierungsfunktionen für die Befehle gemäß der Spezifikation durch die Befehlsoperationscodes in den Befehlsbits IN bis IN+7 und IK bis IK+7 aus. Diese Decodierer sind zwar in separaten Blöcken dargestellt, wobei die Decodierung dieser Befehle in der Praxis jedoch verknüpft wird.
  • Die Abbildung aus 5 zeigt ein Flussdiagramm, das einen Prozess P500 zur Ausführung der Befehlsdecodierung unter Verwendung von Präfixen veranschaulicht.
  • Bei START tritt der Prozess P500 in den Block B510 ein, um das erste Byte oder die Befehlsbits IN bis IN+7 zu decodieren. Danach tritt der Prozess P500 in den Block B515 ein, um zu bestimmen, ob es sich bei dem ersten Byte um einen gültigen Präfixcode (z.B. 0xF3) handelt. Wenn die Antwort NEIN lautet, springt der Prozess P500 zu dem Block B520. Bei JA fährt der Prozess P500 mit dem Block B550 fort.
  • In dem Block B520 bestimmt der Prozess P500, ob es sich bei dem ersten Byte um einen 2-Byte-Umschaltcode handelt. Bei NEIN fährt der Prozess P500 mit dem Block B525 fort. Bei JA fährt der Prozess P500 mit dem Block B540 fort. In dem Block B525 bestimmt der Prozess P500, ob es sich bei dem ersten Byte um einen anderen Umschaltcode (z.B. Gleitpunkt-Umschaltcode) handelt. Bei NEIN fährt der Prozess P500 mit dem Block B530 fort, um das erste Byte als einen normalen Ein-Byte-Befehl zu decodieren. Bei JA fährt der Prozess P500 mit dem Block B532 fort, um das zweite Byte zu erhalten und danach mit dem Block B535, um das zweite Byte als andere normale Befehle (z.B. Gleitpunktbefehle) zu decodieren. Der Prozess P500 endet danach.
  • In dem Block B540 erhält der Prozess P500 das zweite Byte und tritt in den Block B545 ein, um das zweite Byte als eine neue Befehlsart 0 (z.B. gepackte Datenbefehle) zu decodieren. Danach endet der Prozess P500.
  • In dem Block B550 decodiert der Prozess P500 das zweite Byte oder die Befehlsbits IK bis IK+7. Der Prozess P500 tritt danach in den Block B560 ein, um zu bestimmen, ob es sich bei dem zweiten Byte um einen 2-Byte-Umschaltcode handelt. Wenn die Antwort NEIN lautet, tritt der Prozess P500 in den Block B565 ein, um das zweite Byte als einen Operationscode eines normalen Befehls mit dem Präfix als Kennzeichner zu decodieren. Bei JA tritt der Prozess P500 in den Block B570 ein, um das dritte Byte zu erhalten, und danach in den Block B575, um das dritte Byte als einen neuen Befehlstyp 1 (z.B. skalare Befehle) zu decodieren. Danach endet der Prozess P500.
  • Vorgesehen ist gemäß der vorliegenden Erfindung ein effizientes Verfahren zum Codieren eines neuen Befehlssatzes unter Verwendung bereits vorhandener Präfixe. Die vorliegende Erfindung ermöglicht es somit, dass der neue Befehlssatz so groß sein kann, wie dies erforderlich ist, ohne dabei den Befehlsdecodierer komplexer zu gestalten.
  • Die vorstehend in Bezug auf veranschaulichende Ausführungsbeispiele beschriebene vorliegende Erfindung ist nicht auf diese Beschreibungen beschränkt. Gemäß dem Umfang der vorliegenden Erfindung sind verschiedene Modifikationen der veranschaulichenden Ausführungsbeispiele sowie anderer Ausführungsbeispiele der möglich, wie dies für den Fachmann auf dem Gebiet der Erfindung erkennbar ist, wobei diese Modifikationen dem Umfang der Erfindung angehören.

Claims (22)

  1. Verfahren zur Codierung eines ersten Befehls in einem Befehlssatz, wobei der Befehlssatz einen Präfixcode verwendet, um einen vorhandenen Operationscode eines vorhandenen Befehls zu qualifizieren, wobei das Verfahren folgendes umfasst: das Auswählen eines ersten Operationscodes; das Auswählen eines Umschaltcodes, wobei sich der Umschaltcode von dem Präfixcode und dem vorhandenen Operationscode unterscheidet; und das Verknüpfen des ersten Operationscodes, des Umschaltcodes und des Präfixcodes zur Erzeugung eines ersten Befehlscodes, wobei der erste Befehlscode eine erste Operation darstellt, die durch den ersten Befehl ausgeführt wird.
  2. Verfahren nach Anspruch 1, wobei das Verfahren ferner folgendes umfasst: das Verknüpfen des ersten Operationscodes und des Umschaltcodes, so dass ein zweiter Befehlscode erzeugt wird, wobei der zweite Befehlscode eindeutig eine zweite Operation darstellt, die durch einen zweiten Befehl ausgeführt wird.
  3. Verfahren nach Anspruch 1, wobei der Präfixcode einen der folgenden Codes darstellt: einen Adressgrößen-Präfixcode, 0x67, einen Operandengrößen-Präfixcode, 0x66, einen Segmentübergangs-Präfixcode, 0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65, einen Wiederholungs-Präfixcode, 0xF3, einen Wiederholungs-Präfixcode bei Übereinstimmung, 0xF3, einen Widerholungscode bei fehlender Übereinstimmung, 0xF2 und einen Sperr-Präfixcode, 0xF0.
  4. Verfahren nach Anspruch 1, wobei der Umschaltcode 0x0F entspricht.
  5. Verfahren nach Anspruch 1, wobei es sich bei der ersten Operation um eine skalare Operation handelt.
  6. Verfahren nach Anspruch 2, wobei es sich bei der zweiten Operation um eine Operation mit gepackten Daten handelt.
  7. Verfahren zum Decodieren eines Befehlscodes, wobei der Befehlscode eine Mehrzahl von Feldern aufweist, wobei das Verfahren folgendes umfasst: das Bestimmen, ob ein erstes Feld mit einem Präfixcode (B515) übereinstimmt; wenn das erste Feld mit dem Präfixcode übereinstimmt, das Bestimmen, ob ein zweites Feld mit einem Umschaltcode (B560) übereinstimmt; und wenn das zweite Feld mit dem Umschaltcode übereinstimmt, das Umsetzen eines dritten Felds in einen ersten decodierten Befehlscode (B575), wobei der erste decodierte Befehlscode eine erste Operation darstellt, die durch einen ersten Befehl ausgeführt wird.
  8. Verfahren nach Anspruch 7, wobei das Verfahren ferner folgendes umfasst: wenn das erste Feld nicht mit dem Präfixcode übereinstimmt, das Bestimmen, ob das erste Feld mit dem Umschaltcode (B520) übereinstimmt; wenn das erste Feld mit dem Umschaltcode übereinstimmt, das Umsetzen des zweiten Felds in einen zweiten decodierten Befehlscode (B575), wobei der zweite decodierte Befehlscode eindeutig eine zweite Operation darstellt, die durch einen zweiten Befehl ausgeführt wird.
  9. Verfahren nach Anspruch 7, wobei der Präfixcode einen der folgenden Codes darstellt: einen Adressgrößen-Präfixcode, 0x67, einen Operandengrößen-Präfixcode, 0x66, einen Segmentübergangs-Präfixcode, 0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65, einen Wiederholungs-Präfixcode, 0xF3, einen Wiederholungs-Präfixcode bei Übereinstimmung, 0xF3, einen Widerholungscode bei fehlender Übereinstimmung, 0xF2 und einen Sperr-Präfixcode, 0xF0.
  10. Verfahren nach Anspruch 7, wobei der Umschaltcode 0x0F entspricht.
  11. Verfahren nach Anspruch 7, wobei es sich bei der ersten Operation um eine skalare Operation handelt.
  12. Verfahren nach Anspruch 8, wobei es sich bei der zweiten Operation um eine Operation mit gepackten Daten handelt.
  13. Vorrichtung zum Decodieren eines aus einem Befehlspuffer ausgegebenen Befehlscode, wobei der Befehlscode eine Mehrzahl von Feldern aufweist, wobei die Vorrichtung folgendes umfasst: einen Präfix-Detektor (320), der mit dem Befehlspuffer gekoppelt ist, um den Befehlscode zu empfangen und um zu detektieren, ob ein erstes Feld des Befehlscodes mit einem Präfixcode übereinstimmt; einen Operationscode-Decodierer (340), der mit dem Befehlspuffer gekoppelt ist, um den Befehlscode zu empfangen und um ein Feld, das erste Feld, das zweite Feld oder das dritte Feld des Befehlscodes in einen decodierten Befehlscode umzusetzen; und gekennzeichnet durch einen Umschaltdetektor (320), der mit dem Befehlspuffer gekoppelt ist, um den Befehlscode zu empfangen und um zu detektieren, ob ein zweites Feld des Befehlscodes mit einem Umschaltcode übereinstimmt.
  14. Vorrichtung nach Anspruch 13, wobei diese ferner folgendes umfasst: eine Decodiererfreigabeschaltung (330), die mit dem Präfix-Detektor und dem Umschaltdetektor gekoppelt ist, um Freigabesignale zur Freigabe des Operationscode-Decodierers zu erzeugen.
  15. Vorrichtung nach Anspruch 13, wobei der Präfixcode einen der folgenden Codes darstellt: einen Adressgrößen-Präfixcode, 0x67, einen Operandengrößen-Präfixcode, 0x66, einen Segmentübergangs-Präfixcode, 0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65, einen Wiederholungs-Präfixcode, 0, einen Wiederholungs-Präfixcode bei Übereinstimmung, 0xF3, einen Widerholungscode bei fehlender Übereinstimmung, 0xF2 und einen Sperr-Präfixcode, 0xF0.
  16. Vorrichtung nach Anspruch 13, wobei der Umschaltcode 0x0F entspricht.
  17. Vorrichtung nach Anspruch 13, wobei der Operationscode-Decodierer das dritte Feld in einen ersten decodierten Befehlscode umsetzt, wenn das erste Feld mit einem Präfixcode übereinstimmt und das zweite Feld mit dem Umschaltcode übereinstimmt, wobei der erste decodierte Befehlscode eindeutig eine erste Operation darstellt, die durch einen ersten Befehl ausgeführt wird.
  18. Vorrichtung nach Anspruch 13, wobei der Operationscode-Decodierer das zweite Feld in einen zweiten decodierten Befehlscode umsetzt, wenn das erste Feld mit dem Umschaltcode übereinstimmt, wobei der zweite decodierte Befehlscode eine zweite Operation darstellt, die durch einen zweiten Befehl ausgeführt wird.
  19. Vorrichtung nach Anspruch 17, wobei es sich bei der ersten Operation um eine skalare Operation handelt.
  20. Vorrichtung nach Anspruch 18, wobei es sich bei der zweiten Operation um eine Operation mit gepackten Daten handelt.
  21. Vorrichtung nach Anspruch 13, wobei diese ferner einen Speicher umfasst, der mit dem genannten Befehlspuffer gekoppelt ist.
  22. Vorrichtung nach Anspruch 21, wobei diese ferner einen Bus (111) umfasst, um den genannten Speicher mit dem genannten Befehlspuffer zu koppeln.
DE69925410T 1998-03-31 1999-03-26 Erweiterung des Befehlssatzes unter Verwendung von Präfixcode Expired - Lifetime DE69925410T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/053,391 US6014735A (en) 1998-03-31 1998-03-31 Instruction set extension using prefixes
US53391 1998-03-31

Publications (2)

Publication Number Publication Date
DE69925410D1 DE69925410D1 (de) 2005-06-30
DE69925410T2 true DE69925410T2 (de) 2006-05-11

Family

ID=21983905

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925410T Expired - Lifetime DE69925410T2 (de) 1998-03-31 1999-03-26 Erweiterung des Befehlssatzes unter Verwendung von Präfixcode

Country Status (7)

Country Link
US (1) US6014735A (de)
EP (1) EP0947919B1 (de)
BR (1) BR9901215B1 (de)
DE (1) DE69925410T2 (de)
HK (1) HK1024962A1 (de)
SG (1) SG77229A1 (de)
TW (1) TW445431B (de)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189090B1 (en) * 1997-09-17 2001-02-13 Sony Corporation Digital signal processor with variable width instructions
US7395302B2 (en) 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
US6418529B1 (en) 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US6275927B2 (en) 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes
US6253309B1 (en) 1998-09-21 2001-06-26 Advanced Micro Devices, Inc. Forcing regularity into a CISC instruction set by padding instructions
US6240506B1 (en) * 1998-10-02 2001-05-29 Advanced Micro Devices, Inc. Expanding instructions with variable-length operands to a fixed length
US6339822B1 (en) 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8065504B2 (en) * 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US6981132B2 (en) * 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
US7000081B2 (en) * 2002-02-12 2006-02-14 Ip-First, Llc Write back and invalidate mechanism for multiple cache lines
US7089371B2 (en) 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory
US7529912B2 (en) * 2002-02-12 2009-05-05 Via Technologies, Inc. Apparatus and method for instruction-level specification of floating point format
US7089368B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for exclusively prefetching a block of cache lines from memory
US7181596B2 (en) * 2002-02-12 2007-02-20 Ip-First, Llc Apparatus and method for extending a microprocessor instruction set
US7080210B2 (en) 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for exclusive prefetch of a cache line from memory
US7080211B2 (en) 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a cache line from memory
US7315921B2 (en) * 2002-02-19 2008-01-01 Ip-First, Llc Apparatus and method for selective memory attribute control
US7328328B2 (en) 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
US7395412B2 (en) * 2002-03-08 2008-07-01 Ip-First, Llc Apparatus and method for extending data modes in a microprocessor
US7546446B2 (en) * 2002-03-08 2009-06-09 Ip-First, Llc Selective interrupt suppression
US7302551B2 (en) * 2002-04-02 2007-11-27 Ip-First, Llc Suppression of store checking
US7155598B2 (en) * 2002-04-02 2006-12-26 Ip-First, Llc Apparatus and method for conditional instruction execution
US7111125B2 (en) 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US7373483B2 (en) * 2002-04-02 2008-05-13 Ip-First, Llc Mechanism for extending the number of registers in a microprocessor
US7380103B2 (en) * 2002-04-02 2008-05-27 Ip-First, Llc Apparatus and method for selective control of results write back
US7185180B2 (en) * 2002-04-02 2007-02-27 Ip-First, Llc Apparatus and method for selective control of condition code write back
US7380109B2 (en) * 2002-04-15 2008-05-27 Ip-First, Llc Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor
JP3769249B2 (ja) * 2002-06-27 2006-04-19 富士通株式会社 命令処理装置および命令処理方法
EP1387256B1 (de) * 2002-07-31 2018-11-21 Texas Instruments Incorporated Programmzähleranpassung basiert auf der Erkennung eines Befehlspräfixes
EP1387252B1 (de) * 2002-07-31 2019-02-13 Texas Instruments Incorporated Präfixcode zum Anzeigen von Systembefehlen
US7162617B2 (en) * 2003-02-14 2007-01-09 Fine Arc Incorporated Data processor with changeable architecture
TWI230899B (en) * 2003-03-10 2005-04-11 Sunplus Technology Co Ltd Processor and method using parity check to proceed command mode switch
US7103754B2 (en) * 2003-03-28 2006-09-05 International Business Machines Corporation Computer instructions for having extended signed displacement fields for finding instruction operands
US7188215B2 (en) 2003-06-19 2007-03-06 Ip-First, Llc Apparatus and method for renaming a cache line
US7139900B2 (en) 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
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
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US8281109B2 (en) 2007-12-27 2012-10-02 Intel Corporation Compressed instruction format
US9311085B2 (en) * 2007-12-30 2016-04-12 Intel Corporation Compiler assisted low power and high performance load handling based on load types
US8028153B2 (en) * 2008-08-14 2011-09-27 International Business Machines Corporation Data dependent instruction decode
US9201801B2 (en) * 2010-09-15 2015-12-01 International Business Machines Corporation Computing device with asynchronous auxiliary execution unit
GB2484489A (en) * 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
CN103959239B (zh) 2011-11-30 2017-12-29 英特尔公司 对使用前缀的isa指令的条件执行支持
US9348643B2 (en) 2014-06-30 2016-05-24 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9710271B2 (en) 2014-06-30 2017-07-18 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US9600286B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US9448939B2 (en) 2014-06-30 2016-09-20 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US10761852B2 (en) 2015-09-30 2020-09-01 International Business Machines Corporation Extending data range addressing
US10394568B2 (en) 2015-09-30 2019-08-27 International Business Machines Corporation Exception handling for applications with prefix instructions
US9870305B2 (en) 2015-09-30 2018-01-16 International Business Machines Corporation Debugging of prefixed code
US10877759B2 (en) 2015-09-30 2020-12-29 International Business Machines Corporation Managing the capture of information in applications with prefix instructions
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
US11263014B2 (en) * 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3657705A (en) * 1969-11-12 1972-04-18 Honeywell Inc Instruction translation control with extended address prefix decoding
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US5353420A (en) * 1992-08-10 1994-10-04 Intel Corporation Method and apparatus for decoding conditional jump instructions in a single clock in a computer processor
US5572206A (en) * 1994-07-06 1996-11-05 Microsoft Corporation Data compression method and system
US5768553A (en) * 1995-10-30 1998-06-16 Advanced Micro Devices, Inc. Microprocessor using an instruction field to define DSP instructions
WO1997022922A1 (en) * 1995-12-15 1997-06-26 Intel Corporation Instruction encoding techniques for microcontroller architecture
US5822559A (en) * 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5845102A (en) * 1997-03-03 1998-12-01 Advanced Micro Devices, Inc. Determining microcode entry points and prefix bytes using a parallel logic technique

Also Published As

Publication number Publication date
EP0947919A2 (de) 1999-10-06
EP0947919B1 (de) 2005-05-25
BR9901215B1 (pt) 2013-12-24
HK1024962A1 (en) 2000-10-27
US6014735A (en) 2000-01-11
TW445431B (en) 2001-07-11
BR9901215A (pt) 2000-01-11
DE69925410D1 (de) 2005-06-30
SG77229A1 (en) 2000-12-19
EP0947919A3 (de) 2000-09-13

Similar Documents

Publication Publication Date Title
DE69925410T2 (de) Erweiterung des Befehlssatzes unter Verwendung von Präfixcode
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE69333630T2 (de) System und Verfahren zur Übersetzung eines fremden Befehlsstroms zur Ausführung in einem Gastgeberprozessor
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2937354A1 (de) Verfahren und einrichtung zur ueberwachung des gebrauchs eines programmierbaren rechners
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE1274825B (de) Speicherprogrammiertes Datenverarbeitungssystem zur Verarbeitung von Programmen anderer Datenverarbeitungssysteme
DE1815078B2 (de) Elektronisches Datenverarbeitungssystem
DE112012001542T5 (de) System, Vorrichtung und Verfahren zum Ausrichten von Registern
DE112013005343T5 (de) Befehle für Codierungsalgorithemen mit gleitendem Fenster
DE2421130C2 (de)
DE2935906A1 (de) Mikrokomputer
DE112016004359T5 (de) Systeme, Verfahren und Vorrichtungen für eine Dekompression unter Verwendung von Hardware und Software
EP1347599B1 (de) Verfahren und Protokolltester zum Dekodieren gemäss einer Protokollbeschreibung kodierter Daten
EP1952540B1 (de) Verfahren zur kompression für einen rechnerarchitektur-unabhängigen datentransfer und/oder zur dekompression eines datensatzes
DE3307194A1 (de) Datenverarbeitungsanlage
DE3121046A1 (de) Arithmetik-logikeinheit mit bit-manipulation
DE10063643B4 (de) Verfahren und Vorrichtung zum Reduzieren eines Mehraufwands von Mikrocode-Nachschlagoperationen
DE102004001651B4 (de) Verfahren und Prozessor zur automatischen Befehls-Betriebsartumschaltung zwischen N-Bit und 2N-Bit Befehlen unter Verwendung einer Paritätsüberprüfung
DE2042596A1 (de) Schaltungsanordnung zur Umsetzung eines einzigen kodierten Eingangszeichens in eine Mehrzahl kodierter Ausgangszei chen
EP1168129B1 (de) Mikrocontroller mit variabler Befehlsdekodierung
DE102007001042B4 (de) Vorrichtung und Verfahren zum Entfernen nicht benötigter Anweisungen, Computer und Verfahren Zur Kompression von Anweisungscodes
DE10359949A1 (de) Multithread-Prozessorarchitektur zum getriggerten Thread-Umschalten ohne Taktzyklusverlust, ohne Umschalt-Programmbefehl und ohne Erweiterung des Programmbefehlsformates
EP1031081B1 (de) Programmgesteuerte einheit und verfahren
DE102004056006B3 (de) Verfahren zur Emulation eines für einen Ursprungsprozessor in einem Ursprungscode erstellten Programms auf einem Zielprozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806