DE69030905T2 - Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit - Google Patents

Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit

Info

Publication number
DE69030905T2
DE69030905T2 DE69030905T DE69030905T DE69030905T2 DE 69030905 T2 DE69030905 T2 DE 69030905T2 DE 69030905 T DE69030905 T DE 69030905T DE 69030905 T DE69030905 T DE 69030905T DE 69030905 T2 DE69030905 T2 DE 69030905T2
Authority
DE
Germany
Prior art keywords
instruction
data
information
field
bus
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
DE69030905T
Other languages
English (en)
Other versions
DE69030905D1 (de
Inventor
Nariko Suzuki
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE69030905D1 publication Critical patent/DE69030905D1/de
Application granted granted Critical
Publication of DE69030905T2 publication Critical patent/DE69030905T2/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
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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
    • 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
    • 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/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining

Landscapes

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

Description

    Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft einen Mikroprozessor und insbesondere eine Verbesserung bei einer Befehlsdekodereinheit in einem Pipeline-Mikroprozessor.
  • Ein Pipeline-Mikroprozessor ist grundlegend aus sechs Baueinheiten aufgebaut:
  • einer Bussteuereinheit BCU zum Initiieren eines Buszyklus, um einen Befehlsabrufvorgang und einen Operanddatenlese- /Einschreibvorgang durchzuführen, einer Befehlsvorabeinleseeinheit PFU für das Anfordern eines Befehlsabruf-Buszyklus an der BCU, um Befehle vorab abzurufen, einer Befehlsdekodereinheit IDU zum Dekodieren des Befehls von der PFU und Erzeugen der Datenverarbeitungsinformation, die für die Befehlsausführung notwendig ist, und der Operandzugriffsinformation, die fur einen Operanddatenzugriff notwendig ist, einer effektiven Adressgeneratoreinheit EAG zum Berechnen einer effektiven Adresse in Abhängigkeit von der Operandzugriffsinformation, einer Speicherverwaltungseinheit MMU zum Übersetzen der effektiven Adresse in eine reale Adresse und zum Anfordern eines Operanddatenzugriffs an der BCU und eine Befehlsdurchführungseinheit EXU zum Durchführen eines Befehis in Abhängigkeit von der Datenverarbeitungsinformation von der IDU. Diese Einheiten arbeiten parallel in einer vorbestimmten Verarbeitungsweise nach Art einer Pipeline.
  • In letzter Zeit ist ein Mikroprozessor gefordert worden, der die Softwareprogrammierung erleichtert. Zu diesem Zweck ist eine Abundanz der Befehlsformate vorbereitet worden und darüberhinaus ist unterstützt worden, daß ein unabhängiger Adressiermodus für die entsprechenden Operanden bestimmt werden kann. Auch im Adressiermodus sind reichlich Adressiermodi vorbereitet, wie beispielsweise Direkt-/Indirekt- Modi, Distanzmodi, Indexmodi usw.
  • Die Unterstützung der abundanten Befehlsformate und Adressiermodi verursacht jedoch eine verlängerte Dekodierzeit. Besonders dekodiert die IDU einen auszuführenden Befehl und erzeugt die Datenverarbeitungsinformation und die Operandzugriffsinformation in Übereinstimmung mit der Dekodiersequenz, die durch das Format und den Operandadressiermodus des Befehls bestimmt ist. Daher verlängert das Unterstützen vieler Befehlsformate und Operandadressiermodi eine Zeit zum Dekodieren und Detektieren des Formats und des Operandadressiermodus eines auszuführenden Befehls, um die Dekodierseguenz zu bestimmen. Das Erzeugen der Datenverarbeitungsinformation und der Operandzugriffsinformation wird dadurch verzögert, wodurch der Pipelineverarbeitungsvorgang gestört wird. Die Arbeitseffizienz des Mikroprozessors wird dadurch gesenkt.
  • Ein Mikroprozessor, der dadurch gekennzeichnet ist, daß ein Befehlsdekodiervorgang durch eine Vordekodereinheit und eine Hauptdekodereinheit durchgeführt wird, die nach Art einer Pipeline arbeiten, indem zwischen diese beiden Einheiten ein Puffer zum zeitweiligen Speichern der Information von der Vordekodereinheit angeordnet ist, ist in der EP-A-0336091 (Artikel 56 (3)) offenbart.
  • Aufgabe der vorliegenden Erfindung ist es, einen Mikroprozessor zu schaffen, der abundante Befehlsformate und Operandadressiermodi ohne Senkung der Befehlsdekodiergeschwindigkeit unterstützt.
  • Diese Aufgabe wird gelöst durch den Mikroprozessor wie im anhängenen Anspruch definiert.
  • Die Vordekodereinheit des beanspruchten Mikroprozessors hat einen ersten und zweiten Vordekoder, die jeweils ein Operationscode-(im Nachfolgenden OP-Code bezeichnet)-Feld und ein Adressierfeld eines auszuführenden Befehls empfangen. Der erste Vordekoder dekodiert das OP-Codefeld vor und erzeugt eine OP-Codeinformation, die für die Anzahl der Bytes des OP-Codefeldes und die Anzahl der zu verarbeitenden Operanden repräsentativ ist. Der zweite Vordekoder dekodiert das Adressierfeld vor und erzeugt die Adressiermodusinformation, die für die Anzahl der Bytes des Operanden und des Adressiermodus, der dem Operand zugeordnet ist, repräsentativ ist. Die OP-Codeinformation und die Adressiermodusinformation werden zeitweilig im Puffer gespeichert. Der Puffer speichert auch die OP-Code- und Adressierfelder des Befehls und speichert weiter Distanzdaten und unmittelbare Daten des Befehls. Die Hauptdekodereinheit bestimmt die auszuführende Dekodiersequenz in Abhängigkeit von der OP- Codeinformation und der Adressiermodusinformation vom Puffer, und führt den Dekodiervorgang an anderer Information vom Puffer aus, um die Datenverarbeitungsinformation und die Operandzugriffsoperation in Übereinstimmung mit der bestimmten Dekodiersequenz zu erzeugen. Während des Dekodiervorgangs der Hauptdekodereinheit führt die Vordekodereinheit den Dekodiervorgang eines zweiten Operanden oder eines als nächstes auszuführenden Befehls aus.
  • Das heißt, die vorliegende Erfindung basiert auf der Entdeckung, daß der Dekodiervorgang eines Befehls im allgemeinen aus einem ersten Vorgang des Detektierens des Formats und des Operandadressiermodus des Befehls und einem zweiten Vorgang des Erzeugens dekodierter Befehlsinformation in Abhängigkeit von der Dekodiersequenz, die durch das detektierte Ergebnis des ersten Schrittes bestimmt ist, besteht, und somit die ersten und zweiten Schritte der Vordekodereinheit bzw. der Hauptdekodereinheit zuordnet, die nach Art einer Pipeline arbeiten. Demgemäß wird der erste Vorgang parallel zum zweiten Vorgang durchgeführt, so daß die Betriebszeit der Vordekodereinheit durch die Betriebszeit der Hauptdekodereinheit außer Betracht kommt. Der Pipeline-Verarbeitungsvorgang des Mikroprozessors insgesamt ist somit kaum gestört, wodurch seine Programmarbeitseffizienz verbessert wird.
  • Kurze Beschreibung der Figuren
  • Die vorstehenden und andere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung gehen aus der folgenden Beschreibung anhand der begleitenden Figuren hervor, in welchen zeigt:
  • Fig. 1 ein Blockschaltbild, das eine Ausführungsform der vorliegenden Erfindung repräsentiert;
  • Fig. 2 ein Blockschaltbild, das den Aufbau der in der Fig. 1 gezeigten PFU, PDU, BUF und MDU zeigt;
  • Fig. 3 einen Zeitablaufplan zur Erläuterung des Betriebes der in der Fig. 2 gezeigten Schaltung;
  • Fig. 4 ein Blockschaltbild, das die PFU gemäß einer anderen Ausführungsform der vorliegenden Erfindung repräsentiert;
  • Fig. 5 ein Zeitablaufplan zur Erläuterung des Betriebes der in der Fig. 4 gezeigten Schaltung und
  • Fig. 6A und 6B Formatdiagramme, die zwei Beispiele von Befehlen anzeigen.
  • Detaillierte Beschreibung der Ausführungsformen
  • In Fig. 1 hat ein Mikroprozessor 100 gemäß einer Ausführungsform der vorliegenden Erfindung eine Bussteuereinheit (BCU), 110, die einen Buszyklus auf einem Systembus 190 initiiert, der mit einem Speicher und peripheren Eingangs/Ausgangs-Einheiten (nicht dargestellt) verbunden ist, und Befehle aufruft und Operanddaten liest und einschreibt. Eine Befehls-Vorabeinleseeinheit PFU 120 hat einen Vorabeinlese-Adressenverweis (nicht dargestellt) und gibt eine Befehls-Vorabeinleseanfrage, die den Inhalt dieses Adressenverweises enthält, über einen Bus 1201 an die BCU 110. Die vorab eingelesenen Befehle von der BCU 110 werden über einen Befehlsbus 1101 auf die PFU 120 übertragen und zeitweilig in dieser gespeichert. Die PFU 120 richtet den OP- Code und den oder die Operanden des vorab eingelesenen Befehls aus und gibt diese auf einen Bus 1202 aus. Die Information auf dem Bus 1202 wird einer Vordekodereinheit PDU 130, die gemäß der vorliegenden Erfindung vorgesehen ist, zugeführt. Die PDU 130 dekodiert den OP-Code vor und erzeugt die OP-Code-Information, die die Byte-Länge des OP- Codes anzeigt, und die Anzahl der Operanden, die zu verarbeiten sind. Darüberhinaus dekodiert die PDU 130 den oder die Operanden vor und erzeugt die Adressiermodusinformation, die die Bytelänge des Operanden und einen bezeichneten Adressiermodus anzeigt. Die OP-Codeinformation und die Adressiermodusinformation werden auf einen Bus 1302 übertragen und zeitweilig in einem Puffer BFF 140 zusammen mit anderer Information auf dem Bus 1202 gespeichert. Die Inhalte des BFF 140 werden über einen Bus 1401 einer Hauptdekodereinheit MDU 150 zugeführt. Die MDU 150 bestimmt die Dekodierseguenz in Abhängigkeit von der OP-Codeinformation und der Adressiermodusinformation und führt in Übereinstimmung mit der bestimmten Dekodiersequenz eine Dekodieroperation durch, um die Operandzugriffsinformation 1502 für den Zugriff zum Operanden und die Datenverarbeitungsinformation 1501 zur Durchführung des geforderten Befehls zu erzeugen. Die Operandzugriffsoperation 1502 wird einer Generatoreinheit EAG 160 für die effektive Adresse zugeführt, die eine effektive Adresse 1601 der Operanddaten berechnet und erzeugt. Die effektive Adresse 1601 wird einer Speicherverwaltungseinheit MMU 170 zugeführt und dann in eine reale Adresse übersetzt. Die MMU 170 informiert die MDU 150 über die Beendigung der Adressenübersetzung durch ein Signal 1702. Die MMU 170 gibt weiterhin an die BCU 110 eine Operandzugriffsanfrage durch Zuführen der realen Adresse. Die Datenverarbeitungsinformation 1501 von der MDU 150 wird einer Durchführungssteuerungseinheit EXU 180 zugeführt, die somit den geforderten Befehl oder die Datenverarbeitung mit dem Empfangen oder übertragen der Operanddaten von oder auf die BCU 110 über einen Bus 1801 durchführt. Diese Bauemheiten BCU 110, PFU 120, PDU 130, MDU 150, EAG 160, MMU 170 und EXU 180 arbeiten parallel nach Art einer Pipeline.
  • Fig. 2 zeigt den internen Blockaufbau der PFU 120, PDU 130, BFF 140 und MDU 150. Anzumerken ist, daß nur Teile gezeigt sind, die sich auf die vorliegende Erfindung beziehen, um eine komplizierte Zeichnung zu vermeiden. Der Befehlsbus 1101 von der BCU 110 hat eine 32-Bit-Länge (d.h. eine Vier- Byte-Länge), und damit werden Befehlsdaten mit vier Bytes durch einen Vorabeinlesevorgang vorab eingelesen und dann auf dem Bus 1101 übertragen. Der Bus 1101 ist gemeinsam an vier Fächer (pocket) (INSQ 0 bis INSQ 3) 121-1 bis 121-4 einer Befehlsschlange 121 angeschlossen, die jeweils eine Vier-Byte-Speicherkapazität haben. Die Befehlsdaten mit Vier-Bytes vom Bus 1101 sind somit zeitweilig in einer der Befehlsschlangenfächer INSQ 0-3, die durch die Schlangenverweisinformation 1241, welche von einer Schlangensteuerung 124 erzeugt worden ist, bezeichnet ist. Die Schlangenfächer INSQ 0-3 werden in dieser Reihenfolge bezeichnet. Wenn beispielsweise das erste Schlangenfach INSQ 0 unverarbeitete Befehlsdaten speichert, werden die Befehlsdaten auf dem Bus 1101 im zweiten Schlangenfach INSQ 1 gespeichert. Die Inhalte der Schlangenfächer INSQ 0-3 werden zu den Befehlsdaten 122 mit 16-Byte-Länge gebunden und dann einem Befehlsausrichter 123 zugeführt. Dieser Ausrichter 123 hat einen OP-Codefeld-Ausgangsbus 126 mit 2-Byte-Länge, einen Adressierfeld-Ausgangsbus 127 mit 2-Byte-Länge und einen Datenausgangsbus 128 mit 4-Byte-Länge. Die Gesamt-Bytelänge eines Befehls, der ein OP-Codefeld und ein Operandfeld enthält, ist nicht konstant, aber wird innerhalb eines Bereiches von wenigen Bytes bis zu zehn und mehreren Bytes in Abhängigkeit von dem geforderten Datenverarbeitungsvorgang und/oder dem Adressiermodus des oder der Operanden geändert. Daher spricht der Befehlsausrichter 123 auf die Ausrichtverweisinformation 1251 von einer Ausrichtsteuerung 125 an und richtet die Befehlsdaten auf dem Bus 122 so aus, daß das OP-Codefeld, das Adressierfeld und die Distanz- oder unmittelbaren Daten eines durchzuführenden Befehls auf die Busse 126, 127 bzw. 128 übertragen werden. Diese Busse 126 bis 128 entsprechen dem in der Fig. 1 gezeigten Bus 1202.
  • Die OP-Codedaten auf dem Bus 126 und die Adressierfelddaten auf dem Bus 127 werden einem OP-Codefeld-(OPF)-Vordekoder 131 bzw. einem Adressierfeld (AF)-Vordekoder 132 der PDU 130 zugeführt. In Abhängigkeit von den OP-Codefelddaten erzeugt der OPF-Vordekoder 131 die OP-Codeinformatin 133, die für die Bytelänge des OP-Codefeldes und die Anzahl der Operanden, die bearbeitet werden müssen, repräsentativ ist. Der AF-Vordekoder 132 erzeugt die Adressiermodusinformation 134, die für die Bytelänge des Operanden und den Adressiermodus, der diesem in Abhängigkeit von dem Adressierfeld bestimmt ist, repräsentativ ist. Diese Informationssätze 133 und 134 werden der Ausrichtsteuerung 125 und der Schlangensteuerung 124 der PFU 120 zugeführt. In Abhängigkeit von den Informationssätzen 133 und 134 erzeugt die Ausrichtsteuerung 125 die Ausrichtverweisinformation 1251 zum Steuern der Positionen und der Anzahl der Byte-Daten, die von dem Befehlsausrichter 123 ausgegeben werden sollen, und die Schlagensteuerung 124 erzeugt die Schlangenverweisinformation 1241 zum Steuern der Schlangenfächer INSQF in welchen die Befehlsdaten vom Bus 1101 gespeichert werden. Die OP- Codeinformation 133 und die Adressiermodusinformation 134 werden zeitweilig in Pufferregistern (BFFR1 und BFFR3) (141 bzw. 143) gespeichert. Das OP-Codefeld und das Adressierfeld, die von dem Ausrichter 123 ausgegeben werden, werden weiter über Zweigbusse 1261 und 1271 auf die BFF 140 übertragen und dann zeitweilig in dem BFFR2 bzw. BFFR4 gespeichert. Die Distanzdaten oder die unmittelbaren Daten vom Ausrichter 1123 werden über den Bus 128 der BFF 140 zugeführt und dann zeitweilig in deren BFFR5 gespeichert. Die Busse für die Information 133 und 134, die Zweigbusse 1261 und 1271 und der Bus 128 entsprechen dem in der Fig. 1 gezeigten Bus 1302.
  • Die Daten, die in dem BFFR1 und BFFR2 gespeichert sind, d.h. die OP-Codeinformation 133 und die Adressiermodusinformation 134 werden der Dekodiersequenzsteuerung 151 der MDU 150 zugeführt. Die Steuerung 151 bestimmt so sofort die Dekodiersequenz, die durchgeführt werden soll, da die Information 133 und 134 die vorstehend beschriebenen Inhalte hat, und erzeugt dann die bestimmte Sequenzinformation 1511 und 1512. Die Sequenzinformation 1511 wird einem OPF-Hauptdekoder 152 zugeführt, der auch die OP-Codefelddaten vom BFFR2 erhält. Demgemäß erzeugt der Dekoder 152 Datenverarbeitungsinformation 1501, die für die Befehlsdurchführung notwendig ist, und führt diese der EXU 180 zu. Die Adressierfelddaten vom BFFR4 werden einem AF-Hauptdekoder 153 zugeführt, und die Distanz- oder unmittelbaren Daten vom BFFR5 werden einem Operandzugriff-Informationsgenerator 154 zugeführt. Diese Bauemheiten 153 und 154 arbeiten in Übereinstimmung mit der Adressiersequenz-Information 1512 und erzeugen damit die Operandzugriffsoperation 1502, die ihrerseits der BAG 160 zugeführt wird.
  • Wie vorstehend erwähnt, ändert sich die gesamte Byte-Länge eines durchzuführenden Befehls in Abhängigkeit von der geforderten Datenverarbeitungsoperation und dem Adressiermodus, mit dem der oder die zu bearbeitenden Operanden bezeichnet sind. Zwei Beispiele, die für unterschiedliche Befehlsformate repräsentativ sind, sind in den Figuren 6A und 68 gezeigt. Der in der Fig. 6A gezeigte Befehl ist ein Befehl mit zwei Operanden 500, mit einem ersten Operand, dem ein Distanzmodus als ein Adressiermodus zugeordnet ist und einem zweiten Operand, dem ein Distanzindexmodus als ein Adressiermodus zugeordnet ist. Im einzelnen ist dieser Befehl 500 zusammengesetzt aus dem OP-Codefeld 502 mit 2- Byte-Länge, einen ersten Operand-Adressiermodus-OPNDI-AM- Feld 502 mit 1 Bytelänge, den Distanzdaten 503 von 4-Bytelänge, einem zweiten Operand-(OPND 2)-Indexfeld 504 mit 1- Bytelänge, einem AM-Modus-Feld 505 mit 1-Bytelänge und Distanzdaten 506 mit 2-Bytelänge und damit einer Länge von 11-Byte insgesamt. Der in der Fig. 68 gezeigte Befehl ist Befehl mit einem Operand 550, in welchem ein Distanzindexmodus als Adressiermodus für einen Operanden bestimmt ist. Dieser Befehl 550 ist zusammengesetzt aus einem OP-Codefeld 510 mit 1-Bytelänge, einem Indexfeld 511 mit 1-Bytelänge, einem AM-Feld 512 mit 1-Bytelänge und Distanzdaten mit 4- Bytelänge, und hat somit insgesamt eine Länge von 7-Byte.
  • Als nächstes wird ein Vorgang unter Bezugnahme auf die Figuren 1, 2 und 6 und weiterhin auf die Fig. 3 beschrieben die einen Zeitablaufplan zeigt. Es wird angenommen, daß die Befehle 500 und 550, die in der Fig. 6 gezeigt sind, in der Befehlsschlange 121 gespeichert sind. Da jedoch die Befehlsschlange 121 16-Bytelänge insgesamt hat, werden die niedrigerwertigen Doppeltyp-Distanzdaten 513 des Befehls 550 noch nicht in der Schlange gespeichert.
  • Da der vorherige Befehl bereits auf die PDU 130 übertragen worden ist, steuert die Ausrichtsteuerung 125 die Ausrichtverweisinformation 1251 dergestalt, daß der Befehlsausrichter 123 die ersten und zweiten Byte-Daten der 16-Byte-Befehlsdaten 122 auf den Bus 126 und der dritten und vierten Bytedaten desselben auf dem Bus 127 ausgibt. Das heißt, das OP-Codefeld 501 des Befehls 500 wird auf den Bus 126 ausgegeben und das OPND1-AM-Feld 502 des ersten Bytes der Distanzdaten 503 wird während einem ersten Takt (1) eines in der Fig. 3 gezeigten Systemtakts auf dem Bus 127 ausgegeben. In Abhängigkeit davon erzeugt der OPF-Vordekoder 131 die OP-Codeinformation 133 und der AF-Vordekoder 132 erzeugt die Adressiermodusinformation 134. Die OP-Codeinformation 133 reprasentiert, daß der Befehl 500 ein OP-Codefeld mit 2-Bytelänge und zwei Operanden hat. Die Adressiermodusinformation 134 repräsentiert, daß der erste Operand eine Distanzmodusadressierung und die Distanzdaten mit 4-Byte-Länge hat. Anzumerken ist, daß das erste Byte der Distanz 503 (displacement), das dem AF-Vordekoder 132 zugeführt wird, ignoriert wird. In Abhängigkeit von solchen Inhalten der Information 133 und 134 steuert die Ausrichtsteuerung 125 den Inhalt der Verweisinformation 1251 dergestalt, daß der Befehlsausrichter 123 das vierte bis siebte Byte der 16-Byte-Befehlsdaten 122 während des nächsten Taktes (2) auf dem Bus 128 ausgibt, und die Schlangensteuerung 124 steuert die Inhalte der Verweisinformation 1241 dergestalt, daß neue Befehlsdaten in den ersten bis dritten Byte-Positionen der Schlangenfach INSQ0 gespeichert werden dürfen.
  • In Abhängigkeit von dem Beginn des Taktes (2) werden die Information 133 und 134 und die Felddaten 501 und 502 von der PDU 130 in den entsprechenden Pufferregistern BFFR des BFFL40 gespeichert. Andererseits gibt der Befehlsausrichter 123 die Distanzdaten 503 mit 4-Byte-Länge auf den Bus 128 aus. Während diesem Takt (2) führt die MDU 150 den Dekodiervorgang in Übereinstimmung mit der Dekodiersequenzinformation aus, die durch die Sequenzsteuerung 151 bestimmt ist. Somit erzeugt der OPF-Hauptdekoder 152 die Datenverarbeitungsinformation 1501, die für die erforderliche Operation bei zwei Operanddaten, repräsentativ ist, und der AF- Hauptdekoder 153 rückt den Zugriffsinformationserzeugungsvorgang in einen Zustand vor, in welchem nur die Distanz 503 erforderlich ist, um das Erzeugen der Operandzugriffsinformation 1502 zu beenden. Die Ausrichtersteuerung 125 steuert den Inhalt der Verweisinformation 1251 dergestalt, daß der Befehlsausrichter 123 das neunte und zehnte Byte der Befehlsdaten 122 während eines nächsten Taktes (3) auf den Bus 127 ausgibt.
  • Wenn der Takt (3) erscheint, sind die Distanzdaten 503 im BFFR 5 gespeichert, so daß die MDU 150 das Erzeugen der Operandzugriffsoperation 1502 für die ersten Operanddaten beendet, wobei die Information 1502 ihrerseits auf den EAG-160 übertragen wird. Andererseits werden die OPND2-Indexfelddaten 504 und AM-Felddaten 505 vom Ausrichter 123 auf den Bus 127 ausgegeben. Daher erzeugt der AF-Vordekoder 132 die Adressiermodusinformation 134, die repräsentiert, daß der Adressiermodus des zweiten Operanden ein Distanz-Indexierter Modus ist, und daß die Distanzdaten 2-Byte-Länge haben.
  • In einem Takt (4) startet die MDU 150 das Erzeugen der Zugriffsinformation für die zweiten Operanddaten, und der Befehlsausrichter 123 gibt die Distanzdaten 506 auf den Bus 128 aus. Während dem nächsten Takt (5), werden die Distanzdaten 506 über den BFFR5 der MDU 150 zugeführt und damit ist die Operandzugriffsinformation 1502 für die zweiten Operanddaten erzeugt und der EAG 160 zugeführt. Wenn der Befehlsausrichter 123 die Distanzdaten 506 ausgibt, ist der Ausrichtvorgang für den Befehl 500 vollendet. Daher steuert die Ausrichtersteuerung 125 die Verweisinformation 1251, um zu bewirken, daß der Befehlsausrichter 123 während des Taktes (5) die zwölften und dreizehnten Bytedaten der Befehlsdaten 122 auf den Bus 126 bzw. die vierzehnten und fünfzehnten Byte-Daten derselben auf den Bus 127 ausgibt. Somit sind das OP-Codefeld 510 und das Indexfeld 511 des Befehls 510 dem OPF-Vordekoder 131 und das AM-Feld 512 und das erste Byte der Distanz 513 dem AF-Vordekoder 132 zugeführt. Die Information 133 vom OPF-Vordekoder 131 repräsentiert, daß das OP-Codefeld eine Länge 1-Byte hat und die Anzahl der Operanddaten 1 ist. Demgemäß detektiert die Ausrichtersteuerung 125, daß das Indexfeld 511 nicht dem AF-Vordekoder 132 zugeführt worden ist, und steuert somit die Verweisinformation 1251 so, daß bewirkt wird, daß der Befehlsausrichter 123 die Felder 511 und 512 während eines nächsten Taktes (6) auf dem Bus 127 ausgibt. Andererseits führt der OPF-Hauptdekoder 152 während dem Takt (6) den Dekodiervorgang durch, so daß die Datenverarbeitungsinformation 1501 für den Befehl 550 erzeugt ist.
  • Wenn ein nächster Takt (7) erscheint, werden die Adressiermodusinformation 134 vom AF-Vordekoder 132 und die Felddaten 511 und 512 der MDU 150 zugeführt. Die Information 134 repräsentiert, daß die Distanzdaten 513 eine Länge von 4- Byte haben. Zusätzlich wurde während der Takte (3) bis (6) der Befehls-Vorabeinlesevorgang von der PFU-120 durchgeführt, so daß die verbleibenden zwei Bytedaten der Distanz 513 bereits in den Positionen des ersten und zweiten Bytes des Schlangenfachs INSQ0 gespeichert sind. Demgemäß werden alle vier Byte-Daten der Distanz 513 während des Taktes (7) am Ausrichter 123 ausgegeben, so daß die Operandzugriffsoperation für die Operanddaten des Befehls 550 in einem nächsten Takt (8) erzeugt wird.
  • Obwohl die Dekodiersequenz und die Steuerung des Befehlsausrichters 123 in Abhängigkeit von dem Format und dem Operandadressiermodus eines auszuführenden Befehls geändert werden, befreit die PDU 140 die MDU 150 vom Dekodieren des Befehlsformats und des Operandadressiermodus und von der Steuerung des Ausrichters 123. Darüberhinaus arbeiten die PDU 140 und MDU 150 nach Art einer Pipeline, da zwischen ihnen ein BFF 140 vorgesehen ist. Demgemäß fällt der Betrieb der PDU 140 im gesamten Dekodiervorgang nicht ins Gewicht fallen. Dadurch wird ein Dekodiervorgang mit hoher Geschwindigkeit durchgeführt.
  • Bei der vorstehenden Ausführungsform werden die Felddaten 511 und 512 des Befehls 550 zweimal von dem Befehlsausrichter 123 ausgegeben, wie dies in den dem Betrieb zugehörigen Takten (5) und (6) beschrieben worden ist. Wenn eine solche Konstruktion realisiert ist, daß der Dekodiervorgang des Befehls 505 durch nur einmaliges Ausgeben der Felddaten 511 und 512 am Ausrichter 123 vollendet ist, wird die Dekodiergeschwindigkeit weiter verbessert. Die Konstruktion für diesen Zweck ist in Fig. 4 als eine andere Ausführungsform der vorliegenden Erfindung gezeigt, wobei die gleichen Bauteile wie in der Fig. 2 gezeigt, mit den gleichen Bezugsziffern bezeichnet sind, um deren weitere Beschreibung weglassen zu können.
  • Bei dieser Ausführungsform wird ausgenützt, daß die ersten drei Bits des OP-Codes des Befehls mit einem 1-Byte-Längen- OP-Code alle "1" sind. Im einzelnen ist ein Musterdetektor 400 vorgesehen, der an den Befehlsbus 1101 angeschlossen ist. Dieser Detektor 400 detektiert, ob die ersten drei Bits der jeweiligen Byte-Daten alle "1" sind oder nicht. Wenn die ersten drei Bits alle "1" sind, setzt der Detektor 400 das entsprechende Bit eines Flag-Registers 401 auf "1". Andererseits setzt für den Fall, daß wenigstens eines der drei Bits "0" ist, der Detektor 400 das entsprechende Bit des Registers 401 auf "0" zurück. Das Flag-Register 401 hat somit einen 16-Bit-Aufbau. Der Inhalt des Registers 401 wird einem Flag-Ausrichter 402 zugeführt, der ebenfalls die Verweisinformation 1251 empfängt. In Abhängigkeit von dem Inhalt der Verweisinformation 1251 wählt der Ausrichter 402 ein Bit des Registers 401 und gibt das gewählte Bitdatum aus. Anders ausgedrückt, der Flag-Ausrichter 402 gibt die Daten eines Bits des Registers 401 aus, wobei dieses Bit der Position der Byte-Daten der 16-Byte-Daten 122 entspricht, die an den ersten Byte-Bus-126-7 des Busses 126 durch den Befehlsausrichter 123 ausgegeben worden sind. Wenn beispielsweise der Befehlsausrichter 123 die zwölften Byte-Daten der Befehlsdaten 122 auf den Bus 126-1 ausgibt, gibt der Flag-Ausrichter 402 das zwölfte Bitdatum des Flag- Registers 401 aus. Der zweite Byte-Bus 126-2 des Busses 126 und der erste Byte-Bus 127-1 des Busses 127 werden zu einem Multiplexer (MPX) 404 gekoppelt, und die ersten und zweiten Byte-Busse 127-1 und 127-2 des Busses 127 werden zu einem Multiplexer (MPX) 405 gekoppelt. Die Ausgänge der MPXS 404 und 405 werden verbunden, wenn der Adressierfeld-Ausgangsbus 127 an die PDU 130 gekoppelt ist. Die MPXs 404 und 405 werden durch die Daten 403 vom Flag-Ausrichter 402 gesteuert. Wenn dieses Datum 403 "1" einnimmt, wählen die MPXs 404 und 405 den Bus 126-2 bzw. 127-1. Wenn das Datum 403 "0" ist, werden die Busse 127-1 und 127-2 durch den MPX 404 bzw. 405 gewählt.
  • Ein Betriebszeitablaufplan gemäß dieser Ausführungsform ist in der Fig. 5 im Vergleich zu dem in der Fig. 3 gemäß der vorherigen Ausführungsform gezeigten Plan gezeigt. Wenn die OP-Codefelddaten 501 des Befehls 500 im Takt (1) auf dem Bus 126 ausgegeben werden, gibt der Flag-Ausrichter 402 das Datum 403 mit "0" aus, da das OP-Codefeld 501 eine 2-Byte- Länge hat. Demgemäß sind auf dem Bus 127 die AM-Felddaten 502 und das erste Byte der Distanzdaten 503 ausgegeben. Somit sind der Ausrichtvorgang und der Dekodiervorgang mit Bezug auf den Befehl 500 bei beiden Ausführungsformen identisch. Wenn andererseits die OP-Codefelddaten 510 des Befehls 550 während dem Takt (5) auf den Bus 1261 ausgegeben werden, gibt der Flag-Ausrichter 402 das Datum 403 mit "0" aus. Demgemäß werden die Indexfelddaten 511 auf dem Bus 126-2 als ein erstes Bytedatum auf den Bus 127 über MPX-404 übertragen und das AM-Felddatum 512 auf dem Bus 127-1 wird als zweites Bytedatum über den NPX 405 auf den Bus 127 übertragen. Diese Felddaten 511 und 512 werden dadurch dem AF-Vordekoder 132 zugeführt. Als Ergebnis werden die Distanzdaten 513 während dem Takt (6) am Ausrichter 123 ausgegeben, und der Dekodiervorgang für diesen Befehls 550 ist beim Takt (7) vollendet. Somit ist die Dekodiergeschwindigkeit weiter verbessert.

Claims (1)

1. Mikroprozessor (100) mit einer Befehlsdekodereinheit, die einen auszuführenden Befehl dekodiert und eine Datenverarbeitungsinformation zur Durchführung dieses Befehls und eine Operand-Zugriffsinformation für den Zugriff auf die Operanddaten dieses Befehls erzeugt; mit
einer Vordekodereinheit (130), die die Daten eines Operationscodefeldes und eines Adressiermodusfeldes dieses Befehls empfängt, und die Operationscodeinformation relativ zum Befehlsformat und die Adressiermodusinformation relativ zu einem Adressiermodus, der für die zu verarbeitenden Operanddaten bestimmt ist, erzeugt;
Puffermitteln (140), die so gekoppelt sind, daß sie parallel die Operationscodeinformation und die Adressiermodusinformation empfangen, diese temporär speichern und parallel ausgeben;
einer Hauptdekodereinheit (150), die parallel von den Puffermitteln parallel ausgegebene Information empfängt, und abhängig davon die Verarbeitungsinformation und die Operandzugriffsinformation erzeugt, wobei die Vordekodereinheit und die Hauptdekodereinheit nach Art einer Pipeline (Superskala) arbeiten;
einem Befehlsausrichter (123) mit einem Eingangsbus (122), der den Befehl empfängt und weiterhin mit ersten, zweiten und dritten Ausgangsbussen (126, 127, 128), die weiterhin ein Konstantfeld aufweisen, wobei der Befehlsausrichter (123) den Befehl so ausrichtet, daß die Daten des Operationscodefeldes, die Daten des Adressiermodusfeldes und die Daten des Konstantfeldes des Befehls auf die ersten, zweiten bzw. dritten Busse ausgegeben werden;
wobei die Vordekodereinheit erste und zweite Dekoder (131, 132) enthält, wobei der erste Dekoder (131) an den ersten Bus (126) gekoppelt ist, um die Daten des Operationscodefeldes zu dekodieren und die Operationscodeinformation (133) zu erzeugen, die wenigstens die Byte-Länge des Operationscodefeldes und die Anzahl der zu verarbeitenden Operanden repräsentiert, der zweite Dekoder (132) an den zweiten Bus gekoppelt ist, um die Daten des Adressiermodusfeldes zu dekodieren, um die Adressiermodusinformation (156), die wenigstens die Byte-Länge des Operanden und den, den Operand bestimmenden Adressiermodus repräsentiert, zu erzeugen, wobei der Puffer an den dritten Bus gekoppelt ist, um die Daten des Konstantfeldes zu speichern, wobei die Byte-Länge des Operationscodefeldes einer Ausrichtersteuerung (125) zugeführt werden, die den Befehlsausrichter (123) steuert, um die Befehlsdaten auf dem Eingangsbus (122) so auszurichten, daß das Operationscodefeld, das Adressierfeld und die Distanz- oder Direktdaten des Befehls auf die ersten, zweiten bzw. dritten Ausgangsbusse (126, 127, 128) übertragen werden.
DE69030905T 1989-08-28 1990-08-28 Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit Expired - Fee Related DE69030905T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22205789 1989-08-28

Publications (2)

Publication Number Publication Date
DE69030905D1 DE69030905D1 (de) 1997-07-17
DE69030905T2 true DE69030905T2 (de) 1998-01-29

Family

ID=16776428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69030905T Expired - Fee Related DE69030905T2 (de) 1989-08-28 1990-08-28 Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit

Country Status (5)

Country Link
US (1) US5233696A (de)
EP (1) EP0415366B1 (de)
JP (1) JP2725450B2 (de)
KR (1) KR940003383B1 (de)
DE (1) DE69030905T2 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
DE69231011T2 (de) * 1991-02-08 2000-09-28 Fujitsu Ltd., Kawasaki Cachespeicher zur Verarbeitung von Befehlsdaten und Datenprozessor mit demselben
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
WO1993019416A1 (en) * 1992-03-25 1993-09-30 Zilog, Inc. Fast instruction decoding in a pipeline processor
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
US5859994A (en) * 1992-08-10 1999-01-12 Intel Corporation Apparatus and method for modifying instruction length decoding in a computer processor
US5603037A (en) * 1993-04-23 1997-02-11 Intel Corporation Clock disable circuit for translation buffer
EP0651320B1 (de) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superskalarbefehlsdekoder
EP0651332B1 (de) 1993-10-29 2001-07-18 Advanced Micro Devices, Inc. Linearadressierter Mikroprozessorcachespeicher
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
EP0651324B1 (de) * 1993-10-29 2006-03-22 Advanced Micro Devices, Inc. Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
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
EP0652509B1 (de) * 1993-11-05 2000-05-10 Intergraph Corporation Befehlscachespeicher mit Kreuzschienenschalter
DE69422780T2 (de) * 1993-11-05 2000-08-17 Intergraph Corp., Huntsville Superskalare Rechnerarchitektur mit Softwarescheduling
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5974534A (en) * 1994-02-14 1999-10-26 Hewlett-Packard Company Predecoding and steering mechanism for instructions in a superscalar processor
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
JP2982618B2 (ja) * 1994-06-28 1999-11-29 日本電気株式会社 メモリ選択回路
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5822558A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte-length instructions within a superscalar microprocessor
US5859991A (en) * 1995-06-07 1999-01-12 Advanced Micro Devices, Inc. Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5892936A (en) * 1995-10-30 1999-04-06 Advanced Micro Devices, Inc. Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
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
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US5852727A (en) * 1997-03-10 1998-12-22 Advanced Micro Devices, Inc. Instruction scanning unit for locating instructions via parallel scanning of start and end byte information
US5859992A (en) * 1997-03-12 1999-01-12 Advanced Micro Devices, Inc. Instruction alignment using a dispatch list and a latch list
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US6105125A (en) * 1997-11-12 2000-08-15 National Semiconductor Corporation High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
EP0942357A3 (de) * 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Mit einer Mehrzahl von Befehlsformaten vereinbarer Datenprozessor
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6094716A (en) * 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6240503B1 (en) 1998-11-12 2001-05-29 Advanced Micro Devices, Inc. Cumulative lookahead to eliminate chained dependencies
US6425069B1 (en) 1999-03-05 2002-07-23 International Business Machines Corporation Optimization of instruction stream execution that includes a VLIW dispatch group
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6816962B2 (en) * 2002-02-25 2004-11-09 International Business Machines Corporation Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions
US7484075B2 (en) * 2002-12-16 2009-01-27 International Business Machines Corporation Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files
US7043626B1 (en) 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
JP7004905B2 (ja) * 2018-03-26 2022-01-21 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR102184099B1 (ko) * 2019-03-22 2020-11-27 노윤호 프리폼용 냉각 보조장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4685080A (en) * 1982-02-22 1987-08-04 International Business Machines Corp. Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
JPS60129837A (ja) * 1983-12-19 1985-07-11 Matsushita Electric Ind Co Ltd 信号処理演算プロセツサ
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
JPS6391739A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd 可変長命令解読装置
JPH01255036A (ja) * 1988-04-04 1989-10-11 Toshiba Corp マイクロプロセッサ
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式

Also Published As

Publication number Publication date
JP2725450B2 (ja) 1998-03-11
EP0415366B1 (de) 1997-06-11
DE69030905D1 (de) 1997-07-17
KR910005156A (ko) 1991-03-30
EP0415366A3 (en) 1992-03-11
EP0415366A2 (de) 1991-03-06
US5233696A (en) 1993-08-03
JPH03156533A (ja) 1991-07-04
KR940003383B1 (ko) 1994-04-21

Similar Documents

Publication Publication Date Title
DE69030905T2 (de) Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE68929224T2 (de) Pipeline, die einen Cachespeicher für Rechnerprozessoren enthält
DE69311330T2 (de) Befehlsablauffolgeplanung von einem risc-superskalarprozessor
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE4035405C2 (de)
DE68928812T2 (de) Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE3586899T2 (de) Instruktionsvorgriffsystem fuer bedingte sprungbefehle in einer zentralen verarbeitungseinrichtung.
DE69327703T2 (de) Mikroprozessor mit Busbreite-Wechselfunktion
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE69434669T2 (de) Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
DE69131637T2 (de) Registerhaltige Datenbearbeitung in einem Prozessor mit reduziertem Befehlssatz
DE68928519T2 (de) Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen
DE69033131T2 (de) Logikvorrichtung und Verfahren zur Verwaltung einer Befehlseinheit in einer Pipeline-Verarbeitungseinheit
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE69527383T2 (de) Virtuelle Speicheranordnung
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE69908175T2 (de) Verbesserte befehlsdekodierung durch paralleldekodierungsalgorithmus
DE69130342T2 (de) Mikroprozessor mit Funktion von Verzweigungsvorhersage
DE69416485T2 (de) Datenverarbeitungsgerät zum Behandeln von mehreren, geteilten Unterbrechungen
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE3856139T2 (de) Mikroprozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee