DE10201439A1 - Mikroprozessor - Google Patents

Mikroprozessor

Info

Publication number
DE10201439A1
DE10201439A1 DE10201439A DE10201439A DE10201439A1 DE 10201439 A1 DE10201439 A1 DE 10201439A1 DE 10201439 A DE10201439 A DE 10201439A DE 10201439 A DE10201439 A DE 10201439A DE 10201439 A1 DE10201439 A1 DE 10201439A1
Authority
DE
Germany
Prior art keywords
instruction
jump
command
address
queue buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10201439A
Other languages
English (en)
Other versions
DE10201439B4 (de
Inventor
Yoshiyuki Haraguchi
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE10201439A1 publication Critical patent/DE10201439A1/de
Application granted granted Critical
Publication of DE10201439B4 publication Critical patent/DE10201439B4/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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

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)

Abstract

Ein neuer Sprungbefehl (BJMP), der ein Sprungende festlegt, wird hinzugefügt. Beim Empfang dieses Sprungbefehls (BJMP) werden alle Befehle, die dem festgelegten Sprungende vorausgehen, als ein Operand des Sprungsbefehls (BJMP) verarbeitet. Darüber hinaus wird die Befehlswortlänge des Sprungsbefehls (BJMP) einschließlich des Befehls, der als Operand verarbeitet wurde, an den Befehlszähler (8) ausgegeben und der Warteschlangenpuffer (2) wird nicht geleert.

Description

GEBIET DER ERFINDUNG
Die vorliegende Erfindung bezieht sich auf einen Mikroprozessor mit einer Befehlsvorauslesefunktion. Im Spezielleren bezieht sich die vorliegende Erfindung auf einen Mikroprozessor, der während der Ausführung eines Sprungbefehls, das Leeren eines Warteschlangenpuffers, der die Vorauslesebefehle speichert, verhindert.
HINTERGRUND DER ERFINDUNG
Bekanntlich erhöht das Verfahren des Vorauslesens der Befehlen die Verarbeitungsgeschwindigkeit eines Mikroprozessors. Eine Gruppe von Befehlen, die in sequentiellen Adressen gespeichert wurden, werden in gewöhnlichen sequentiellen Computern der Reihe nach ausgeführt. Im Gegensatz dazu wird beim Befehlsvorauslesesystem ein Befehl, der sich mehrere Stellen weiter vorn befindet und der in der Zukunft verwendet werden soll, parallel mit den Ausführungs- und Decodierungsprozessen des vorhergehenden Befehls herausgenommen.
Mit anderen Worten wird ein Befehl, der vorab aus einem Hauptspeicher oder einem Cache-Speicher vorausgelesen wurde, in einem Befehlsvorauslesepuffer (Warteschlangenpuffer) mit geringer Kapazität gespeichert, der einen Schnellzugriff zulässt; auf diese Weise wird versucht, eine Verzögerung bei der Ausführung, die durch einen Speicherzugriff zum Zeitpunkt des Befehlsvorauslesens verursacht wird, praktisch zu reduzieren.
Wenn in der herkömmlichen Technik ungeachtet der Adresse des Sprungendes ein Sprungbefehl ausgeführt wird, wird die Ausführung vorausgelesener und nachfolgender Befehle beendet, wodurch der Warteschlangenpuffer geleert (gelöscht) wird; auf diese Weise werden Befehle, die vorher gespeichert wurden, annulliert, und nachdem ein neues Vorauslesen aus der Sprungendenadresse stattgefunden hat und der Sprungendebefehl im Warteschlangenpuffer gespeichert wurde, wird die Ausführung des Befehls fortgesetzt.
Auf diese Weise wird der Warteschlangenpuffer bei der herkömmlichen Technik vor der Ausführung eines Sprungbefehls geleert. Wenn deshalb die Anzahl der Vorauslesebefehle unvorteilhaft zunimmt, entsteht eine Störung in der Fließband-Verarbeitung und es kann keine hohe Geschwindigkeit realisiert werden.
In der japanischen Offenlegungsschrift Nr. 7-73034 wird ein Vergleich angestellt zwischen der Sprungendenadresse zum Zeitpunkt des Ausführens eines Sprungbefehls und dem entsprechenden Adressbereich des im Warteschlangenpuffer befindlichen Befehls, und wenn sich die Sprungendenadresse im entsprechenden Adressbereich befindet, wird der Befehl im Warteschlangenpuffer verwendet ohne den Warteschlangenpuffer freizumachen, wodurch es möglich wird, die Anzahl der Vorauslesebefehle nach dem Sprung zu reduzieren.
Obwohl bei dieser herkömmlichen Technik die Anzahl der Vorauslesebefehle nach dem Sprung sicherlich reduziert ist, wird jedoch, da der Markenbefehl als normaler nichtbedingter Sprungbefehl behandelt wird, nach der Decodierung des Befehls für einen Sprung ein komplexer Adresserzeugungsprozess notwendig, und die entsprechenden Schaltungen werden komplex und sehr umfangreich.
ZUSAMMENFASSUNG DER ERFINDUNG
Es ist eine Aufgabe der vorliegenden Erfindung, einen Mikroprozessor bereitzustellen, der zum Zeitpunkt eines nichtbedingten Sprungprozesses kein unnötiges Leeren eines Warteschlangenpuffer durchführt, ohne dass darin eine komplexe Struktur eingebaut werden müsste.
Der Mikroprozessor nach einem Aspekt dieser Erfindung umfasst einen Hauptspeicher, der Befehle speichert; einen Warteschlangenpuffer, der Befehle aus dem Hauptspeicher vorausliest und speichert; einen Befehlszähler, der eine Adresse im Hauptspeicher erzeugt, in der ein als nächster auszuführender Befehl gespeichert ist; einen Befehlsdecodierer, der vom Warteschlangenpuffer ausgegebene Befehle empfängt und decodiert; und ein Warteschlangen- Controller steuert die Eingabe und Ausgabe von Befehlen an den Warteschlangenpuffer basierend auf der Adresse, die vom Befehlszähler erzeugt und ausgegeben wurde. Der Befehlsdecodierer erkennt den Empfang eines vorbestimmten Sprungbefehls, er verarbeitet alle die Befehle, die einem Sprungende vorausgehen, das durch den Sprungbefehl als einem Operanden des Sprungbefehls festgelegt ist, gibt eine Befehlswortlänge des Sprungbefehls einschließlich des Operanden an den Befehlszähler aus, wodurch die Adresse des Befehlszählers aktualisiert wird, und stellt ein Steuersignal bereit, den Warteschlangenpuffer nicht zu leeren.
Anders als ein normaler Sprungbefehl wird dem Mikroprozessor ein neuer Sprungbefehl (z. B. BJMP) hinzugefügt, der auf dieselbe Weise wie ein normaler Datenübertragungsbefehl, Betriebsbefehl, etc., funktioniert. Die Anwendung dieses Sprungbefehls macht die Befehlsanzahl im Warteschlangenpuffer variabel. Wenn anders ausgedrückt der Befehlsdecodierer erkennt, dass ein vom Warteschlangenpuffer eingegebener Befehl ein vorbestimmter Markenbefehl ist, verarbeitet er vorhergehende Befehle bis zum Sprungende, das durch diesen Sprungbefehl als einem Operanden des entsprechenden Sprungbefehls so festgelegt ist, dass die Befehlsanzahl im Warteschlangenpuffer variabel wird. Dann wird die Befehlswortlänge des entsprechenden Sprungbefehls einschließlich des Operandenabschnitts an den Befehlszähler ausgegeben, wodurch die Adresse des Befehlszählers aktualisiert wird. Darüber hinaus verhindert der Befehlsdecodierer zum Zeitpunkt dieses Sprungbefehls das Leeren des Warteschlangenpuffers.
Der Mikroprozessor nach einem anderen Aspekt dieser Erfindung umfasst einen Hauptspeicher, der Befehle speichert; einen Warteschlangenpuffer, der Befehle aus dem Hauptspeicher vorausliest und speichert; einen Befehlszähler, der eine Adresse im Hauptspeicher erzeugt, in der ein als nächster auszuführender Befehl gespeichert ist; einen Befehlsdecodierer, der vom Warteschlangenpuffer ausgegebene Befehle empfängt und decodiert; und ein Warteschlangen-Controller steuert die Eingabe und Ausgabe von Befehlen an den Warteschlangenpuffer basierend auf der Adresse, die vom Befehlszähler erzeugt und ausgegeben wurde.
Der Befehlsdecodierer erkennt den Empfang eines vorbestimmten Sprungbefehls, er verarbeitet alle die Befehle, die einem Sprungende vorausgehen, das durch den Sprungbefehl als NOP-Befehle spezifiziert ist, gibt eine Befehlswortlänge aus, die dem Sprungbefehl und den NOP- Befehlen entspricht, an den Befehlszähler aus, wodurch die Adresse des Befehlszählers aktualisiert wird, und stellt ein Steuersignal bereit, den Warteschlangenpuffer nicht zu leeren.
Wenn der Befehlsdecodierer erkennt, dass ein vom Warteschlangenpuffer eingegebener Befehl ein vorbestimmter Markenbefehl (BJMP) ist, verarbeitet er vorhergehende Befehle bis zum Sprungende, das durch diesen Sprungbefehl (BJMP) als ein NOP-Befehl spezifiziert ist, und die Befehlswortlänge des entsprechenden Sprungbefehls (BJMP) und die dem NOP-Befehl entsprechende Befehlswortlänge werden an den Befehlszähler ausgegeben, wodurch die Adresse des Befehlszählers aktualisiert wird. Darüber hinaus verhindert der Befehlsdecodierer zum Zeitpunkt dieses Sprungbefehls (BJMP), dass der Warteschlangenpuffer geleert wird.
Weitere Aufgaben und Merkmale dieser Erfindung werden aus der folgenden Beschreibung mit Bezug auf die beigefügten Zeichnungen deutlich.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 ist ein Blockschaltbild, das ein Beispiel eines inneren Aufbaus eines Mikroprozessors nach der vorliegenden Erfindung zeigt;
Fig. 2 ist eine Zeichnung, die eine Befehlssequenz zeigt, die eine erste Ausführungsform der vorliegenden Erfindung erklärt;
Fig. 3 ist eine Zeichnung, die eine Befehlssequenz zeigt, die eine zweite Ausführungsform der vorliegenden Erfindung erklärt;
Fig. 4 ist eine Zeichnung, die eine Befehlssequenz zeigt, die eine dritte Ausführungsform der vorliegenden Erfindung erklärt;
Fig. 5 ist eine Zeichnung, die eine Befehlssequenz zeigt, die eine vierte Ausführungsform der vorliegenden Erfindung erklärt.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
Ausführungsformen des Mikroprozessors nach der vorliegenden Erfindung werden weiter unten mit Bezug auf die beigefügten Zeichnungen ausführlich erläutert.
Fig. 1 ist ein Blockschaltbild, das ein Beispiel des inneren Aufbaus des Mikroprozessors nach der vorliegenden Erfindung zeigt. In dieser Figur stellt die Bezugszahl 1 einen Hauptspeicher dar, 2 einen Warteschlangenpuffer (Befehlswarteschlange), 3 einen Eingabe-Pointer, 4 einen Ausgabe-Pointer, 5 einen Warteschlangen-Controller, 6 einen Decodierer, 7 einen Ausführungsabschnitt und 8 einen Befehlszähler. Der Warteschlangen-Controller 5, der Eingabe- Pointer 3 und der Ausgabe-Pointer 4 bilden einen Warteschlangen-Controller-Abschnitt, der in Ansprüchen offenbart ist.
Der Hauptspeicher 1 speichert Befehlsfolgen zum Ausführen von Programme. Der Warteschlangenpuffer 2 ist ein Pufferspeicher, der beispielsweise 32 Befehle speichern kann, und einen aus den Hauptspeicher 1 vorausgelesenen Befehl speichert. Der Befehlsdecodierer decodiert (interpretiert) Befehlscodes von Befehlen, die aus dem Warteschlangenpuffer 2 ausgelesen werden. Der Betrieb des Befehlsdecodierers 6, welcher einen wesentlichen Gegenstand der vorliegenden Erfindung darstellt, wird später beschrieben.
Die im Befehlsdecodierer 6 anliegenden Decodierergebnisse und der Operandenabschnitt des Befehls werden in den Ausführungsabschnitt 7 eingegeben. Durch die Verwendung der Eingabeergebnisse des Decodierens und Operandenabschnitts, führt der Ausführungsabschnitt 7 Prozesse wie Datenübertragungen, Vierfunktionsoperationen, logische Operationen, Größenvergleiche und Schiebeoperationen durch, um die Befehle auszuführen.
Der Befehlszähler 8 ist ein Register zum Speichern von Ausführungsadressen des im Hauptspeicher 1 anliegenden nächsten Befehls, und führt eine Operation durch, um die Länge des vom Befehlsdecodierer 6 ausgegebenen Befehlsworts zum laufenden Zählerwert (Registerwert) des Befehlszählers hinzuzufügen.
Basierend auf der Ausgabe des Befehlszählers 8 oder des Befehlsdecodierers 6 steuert der Warteschlangen-Controller 5 den Eingabe-Pointer 3 und den Ausgabe-Pointer 4 so an, dass im Warteschlangenpuffer 2 anliegende Eingabe-Ausgabe- Steuerbefehle durchgeführt werden. Der Eingabe-Pointer 3 wird durch ein Schreibsteuersignal aus dem Warteschlangenpuffer 5 inkrementiert (oder dekrementiert), so dass an dem aus dem Hauptspeicher 1 in den Warteschlangenpuffer 2 vorausgelesen Befehl eine Schreibsteueroperation durchgeführt wird. Der Ausgabe- Pointer 4 wird von einem Lesesteuersignal aus dem Warteschlangenpuffer 5 inkrementiert (oder dekrementiert), so dass eine Lesesteueroperation an der im Warteschlangenpuffer 2 gespeicherten Befehl im Hinblick auf den Befehlsdecodierer 6 durchgeführt wird.
Mit Bezug auf Fig. 2 wird zusätzlich zur Fig. 1 eine Erläuterung zu einer ersten Ausführungsform der vorliegenden Erfindung gegeben. In der ersten Ausführungsform wird dem Mikroprozessor von Fig. 1 (Fig. 2) ein neuer Sprungbefehl "BJMP" hinzugefügt. Dieser Sprungbefehl "BJMP" führt Prozesse aus, die sich von einem normalen Sprungbefehl unterscheiden; im Ergebnis wird jedoch derselbe Sprungprozess ausgeführt wie beim normalen Sprungbefehl. Nichtsdestoweniger wird beim Sprungbefehl "BJMP" der Warteschlangenpuffer 2 zum Zeitpunkt der Befehlsausführung nicht geleert. Fig. 2 zeigt im Konzept Befehlsfolgen, die im Warteschlangenpuffer 2 gespeichert sind.
Bei der ersten Ausführungsform ist eine Sprungmarke, die das Sprungende des Sprungbefehls "BJMP" anzeigt, auf dem Operandenabschnitt festgelegt.
Im Befehlsdecodierer 6 von Fig. 1 wird der aus dem Warteschlangenpuffer 2 eingegebene Befehl decodiert, und wenn erkannt wird, dass der eingegebene Befehl ein wie oben beschriebener Sprungbefehl "BJMP" ist, werden vorausgehende Befehle (in diesem Fall Inkrementierungsbefehle INX und INY), die bis zu einer relativen Adresse anliegen, die durch die Sprungmarke des Operandenabschnitt dieses Sprungbefehls "BJMP" festgelegt ist, als ein Operand des Sprungbefehls "BJMP" verarbeitet.
Mit anderen Worten überträgt der Befehlsdecodierer 6 ein Steuersignal zur Aktualisierung des Ausgabe-Pointers 4 an den Warteschlangen-Controller 5. Der Warteschlangen- Controller 5 aktualisiert den Ausgabe-Pointer 4 basierend auf diesem Steuersignal. Als Ergebnis davon wird der nächste Befehl (in diesem Fall INX) aus dem Warteschlangenpuffer 2 in den Befehlsdecodierer 6 eingegeben. Durch das Decodieren dieses eingegebenen Befehls wird beurteilt, ob der Befehl eine Sprungmarke ist oder nicht. Wenn der Befehl (INX) keine Sprungmarke ist, überträgt der Befehlsdecodierer 6 wieder ein Steuersignal an den Warteschlangen-Controller 5 und aktualisiert dadurch den Ausgabe-Pointer 4. Auf diese Weise überträgt der Befehlsdecodierer 6 das Steuersignal an den Warteschlangen-Controller, bis eine Sprungmarke erfasst wird, um die vorhergehenden Befehle zu lesen, die sich bis zu der relativen, durch die Sprungmarke festgelegte Adresse befinden. So erfasst der Befehlsdecodierer 6 die Anzahl an Befehlen des Befehlsabschnitts (in diesem Fall INX und INY), der als Operand verarbeitet werden soll und die Befehlswortlänge des Befehlsabschnitts, der als Operand verarbeitet werden soll.
Dann fügt der Befehlsdecodierer 6 die Befehlswortlänge des Befehlsabschnitts (in diesem Fall INX und INY), der als Operand verarbeitet werden soll, der Befehlswortlänge des Sprungbefehls "BJMP" hinzu und gibt die Ergebnisse dieses Hinzufügens an den Befehlszähler 8 als Befehlswortlänge des entsprechenden Sprungbefehls "BJMP" aus. Darüber hinaus gibt der Befehlsdecodierer 6 an den Warteschlangen-Controller 5 ein vorbestimmtes Steuersignal aus, um eine Leerungsoperation zu verhindern.
Der Befehlszähler 8 fügt die aus dem Befehlsdecodierer 6 eingegebene Befehlswortlänge des Sprungbefehls "BJNP" dem laufenden Adressenwert hinzu und aktualisiert dadurch den Adressenwert. Darüber hinaus führt der Warteschlangen- Controller 5 basierend auf der Eingabe des Steuersignals aus dem Befehlsdecodierer 6 keine Leerungsoperation am Warteschlangenpuffer 2 durch.
Daher wird in diesem Fall der nächste Befehl (in diesem Fall der Ladebefehl LDA) an die durch die Sprungmarke festgelegte relativen Adresse aus dem Warteschlangenpuffer 2 ausgelesen und durch den Befehlsdecodierer 6 decodiert; im Ergebnis wird so derselbe Prozess ausgeführt wie bei einem normalen Sprungbefehl.
Auf diese Weise werden in der ersten Ausführungsform die vorhergehenden Befehlscodes bis zu dem durch die Sprungmarke des Sprungbefehls "BJMP" festgelegten Sprungende als Operand des Sprungbefehls "BJMP" so verarbeitet, dass die Befehlscodes bis zum Sprungende als ein Befehl des Sprungbefehls "BJMP" behandelt werden; so ist es im Ergebnis möglich, eine variable Anzahl an zu verarbeitenden Befehlen bereitzustellen. Mit anderen Worten ermöglicht es die variable Auslegung der Anzahl an Befehlen, dieselbe Sprungoperation zu erzielen wie bei der nichtbedingten Sprungoperation.
Bei der ersten Ausführungsform wird der Sprungbefehl "BJMP" nicht als normaler Sprungbefehl betrieben, sondern auf dieselbe Weise wie andere Datenübertragungsbefehle, Operationsbefehle, etc., und er wird nicht als normaler Sprungbefehl behandelt, so dass kein Leeren im Warteschlangenpuffer 2 stattfindet; von daher ist es möglich, die Adressenoperation zum Sprungzeitpunkt im Vergleich mit dem herkömmlichen Verfahren noch weiter zu vereinfachen und folglich eine unnötige Leerungsoperation des Warteschlangenpuffers zum Sprungzeitpunkt auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. Deshalb wird es möglich, Vorausleseprozesse zum Sprungzeitpunkt durch Verwendung einer einfachen Struktur zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Fig. 2 zeigt einen Fall, bei dem die Anzahl der vorausgehenden Befehle bis zu der relativen, durch eine Sprungmarke festgelegte Adresse, zwei beträgt. Die Befehlsanzahl kann selbstverständlich auf eins, drei oder mehr gesetzt werden. Darüber hinaus ist der Befehl, dem der Operand des Sprungbefehls "BJMP" zugeteilt ist, nicht auf die in Fig. 2 gezeigten Inkrementierungsbefehle INX, INY beschränkt.
Mit Bezug auf Fig. 1 und 3 wird eine Erläuterung zur zweiten Ausführungsform der vorliegenden Erfindung gegeben. Wie in Fig. 3 dargestellt ist, ist das Sprungende des Sprungbefehls "BJMP" durch eine relative Adresse festgelegt. In Fig. 3, ist "3" als eine relative Adresse im Operandenabschnitt des Sprungbefehls "BJMP" festgelegt.
Nachdem der Befehlsdecodierer 6 einen aus dem Warteschlangenpuffer 2 eingegebenen Befehl decodiert und erkannt hat, dass es sich bei dem eingegebenen Befehl um den oben erwähnten Sprungbefehl "BJMP" handelt, verarbeitet er die vorhergehenden Befehle (in diesem Fall die Inkrementierungsbefehle INX und INY), die bis zur relativen Adresse vorliegen, die durch die relative Adresse (in diesem Fall "3") des Operandenabschnitts des Sprungbefehls "BJMP" festgelegt ist, als Operand des Sprungbefehls "BJMP".
Anders ausgedrückt erkennt der Befehlsdecodierer 6 basierend auf der relativen Adresse (in diesem Fall "3") des Operandenabschnitts des Sprungbefehls "BJMP" die Anzahl an Befehlen (in diesem Fall "2") und die Befehlswortlänge des als Operand zu verarbeitenden Befehlsabschnitts (in diesem Fall INX und INY) im Hinblick auf den Warteschlangen- Controller 5.
Dann fügt der Befehlsdecodierer 6 die Befehlswortlänge des als Operand verarbeiteten Befehlsabschnitts (in diesem Fall INX und INY) der Befehlswortlänge des Sprungbefehls "BJMP" hinzu, und gibt das Ergebnis des Hinzufügens als die Befehlswortlänge des jeweiligen Sprungbefehls "BJMP" an den Befehlszähler 8 aus. Darüber hinaus gibt der Befehlsdecodierer 6 ein vorbestimmtes Steuersignal an den Warteschlangen-Controller 5 aus, um eine Leerungsoperation zu verhindern.
Der Befehlszähler 8 fügt die Befehlswortlänge (einschließlich der Befehlswortlängen von INX und INY) des vom Befehlsdecodierer 6 eingegebenen Sprungbefehls zum laufenden Adresswert hinzu und aktualisiert dadurch den Adresswert. Darüber hinaus führt der Warteschlangen- Controller 5 basierend auf der Eingabe des Steuersignals aus dem Befehlsdecodierer 6 keine Leerungsoperation am Warteschlangenpuffer 2 durch.
Deshalb wird hier der Befehl (in diesem Fall der Ladebefehl LDA) der durch den Operandenabschnitt des Sprungbefehls "BJMP" festgelegten relativen Adresse aus dem Warteschlangenpuffer 2 ausgelesen und durch den Befehlsdecodierer 6 decodiert; so wird im Ergebnis derselbe Prozess ausgeführt wie bei einem normalen Sprungbefehl.
Auf diese Weise werden bei der zweiten Ausführungsform die vorausgehenden Befehlscodes bis zu einem als relative Adresse im Operandenabschnitt des Sprungbefehls "BJMP" festgelegten Sprungende als ein Operand des Sprungbefehls "BJMP" so verarbeitet, dass die Befehlscodes bis zum Sprungende als ein Befehl des Sprungbefehls "BJMP" behandelt werden; so ist es im Ergebnis möglich, eine variable Anzahl an zu verarbeitenden Befehlen bereitzustellen. Mit anderen Worten ermöglicht es die variable Auslegung der Anzahl an Befehlen, dieselbe Sprungoperation wie bei einer nichtbedingten Sprungoperation auf dieselbe Weise wie bei der ersten Ausführungsform durchzuführen.
Bei der zweiten Ausführungsform kann die sich ergebende Operandenlänge des Sprungbefehls "BJMP" eine Länge haben, die einer durch den ursprünglichen Operandenabschnitt des Sprungbefehls "BJMP" festgelegten relativen Adresse entspricht, so dass die Operation durchgeführt wird, die einem normalen Sprungbefehl entspricht; von daher ist es möglich, die Adressenoperation zum Sprungzeitpunkt im Vergleich mit dem herkömmlichen Verfahren noch weiter zu vereinfachen und folglich eine unnötige Leerungsoperation des Warteschlangenpuffers zum Sprungzeitpunkt auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. Deshalb wird es möglich, Vorausleseprozesse zum Sprungzeitpunkt durch Verwendung einer einfachen Struktur zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Fig. 3 zeigt einen Fall, bei dem die Anzahl vorausgehender Befehle bis zu der durch eine Sprungmarke festgelegte relativen Adresse zwei beträgt. Die Anzahl an Befehlen kann jedoch selbstverständlich auf eins, drei oder mehr gesetzt werden. Darüber hinaus ist der Befehl, dem der Operand des Sprungbefehls "BJMP" zugeteilt wurde, nicht auf die in Fig. 3 gezeigten Inkrementierungsbefehle INX, INY beschränkt.
Mit Bezug auf Fig. 1 und 4 wird eine Erläuterung zur dritten Ausführungsform der vorliegenden Erfindung gegeben.
Wie in Fig. 4 dargestellt ist, ist bei der dritten Ausführungsform das Sprungende des Sprungbefehls "BJMP" durch eine relative Adresse (in diesem Fall"-3") festgelegt. Im Unterschied zur zweiten Ausführungsform ist es in diesem Fall aber möglich, zur Minusadressenseite zu springen.
Bei der dritten Ausführungsform führt der Warteschlangen-Controller 5 die Eingabe-Ausgabe- Steueroperationen des Warteschlangenpuffers so aus, dass dem momentanen Ausführungsbefehl vorausgehende Befehle, die einer vorbestimmten Anzahl (z. B. "5") an relativen Adressen entsprechen, bestehen bleiben dürfen. Mit anderen Worten dürfen die Ausgaben der jeweiligen Pointer 3, 4 immer mit einem Zwischenraum vorlaufen, der mindestens 5 Adressen zwischen Pointer 3 und 4 entspricht.
Nachdem der Befehlsdecodierer 6 einen aus dem Warteschlangenpuffer 2 eingegebenen Befehl decodiert und erkannt hat, dass es sich bei dem eingegebenen Befehl um den oben erwähnten Sprungbefehl "BJMP" handelt, verarbeitet er die vorhergehenden Befehle (in diesem Fall die Inkrementierungsbefehle INX und INY), die bis zur relativen Adresse vorliegen, die durch die relative Adresse (in diesem Fall "-3") des Operandenabschnitts des Sprungbefehls "BJMP" festgelegt ist, als Operand des Sprungbefehls "BJMP".
Anders ausgedrückt erkennt der Befehlsdecodierer 6 basierend auf der relativen Adresse (in diesem Fall "-3") des Operandenabschnitts des Sprungbefehls "BJMP" die Anzahl an Befehlen und die Befehlswortlänge des als Operand zu verarbeitenden Befehlsabschnitts (in diesem Fall INX und INY) im Hinblick auf den Warteschlangen-Controller 5.
Dann fügt der Befehlsdecodierer 6 die Befehlswortlänge des als Operand verarbeiteten Befehlsabschnitts (in diesem Fall INX und INY) der Befehlswortlänge des Sprungbefehls "BJMP" hinzu, und gibt das Ergebnis des Hinzufügens, dem das Minuszeichen hinzugefügt ist, als die Befehlswortlänge des entsprechenden Sprungbefehls "BJMP" an den Befehlszähler 8 aus. Darüber hinaus gibt der Befehlsdecodierer 6 ein vorbestimmtes Steuersignal an den Warteschlangen-Controller 5 aus, um eine Leerungsoperation zu verhindern.
Der Befehlszähler 8 fügt die Befehlswortlänge des vom Befehlsdecodierer 6 eingegebenen Sprungbefehls "BJMP" zum laufenden Adresswert hinzu und aktualisiert dadurch den Adresswert. Darüber hinaus führt der Warteschlangen- Controller 5 basierend auf der Eingabe des Steuersignals aus dem Befehlsdecodierer 6 keine Leerungsoperation am Warteschlangenpuffer 2 durch.
Deshalb wird hier der Befehl (in diesem Fall der Ladebefehl LDA) der durch den Operandenabschnitt des Sprungbefehls "BJMP" festgelegten relativen Adresse (-3) aus dem Warteschlangenpuffer 2 ausgelesen und durch den Befehlsdecodierer 6 decodiert; so wird im Ergebnis derselbe Prozess ausgeführt wie bei einem normalen Sprungbefehl.
Auf diese Weise werden auch bei der dritten Ausführungsform die vorausgehenden Befehlscodes bis zu einem als relative Adresse im Operandenabschnitt des Sprungbefehls "BJMP" festgelegten Sprungende mit einer Minusadresse als ein Operand des Sprungbefehls "BJMP" so verarbeitet, dass die Befehlscodes bis zum Sprungende als ein Befehl des Sprungbefehls "BJMP" behandelt werden; so ist es im Ergebnis möglich, eine variable Anzahl an zu verarbeitenden Befehlen bereitzustellen.
Bei der dritten Ausführungsform kann die sich ergebende Operandenlänge des Sprungbefehls "BJMP" eine Länge haben, die einer durch den ursprünglichen Operandenabschnitt des Sprungbefehls "BJMP" festgelegten relativen Adresse entspricht, so dass die Operation durchgeführt wird, die einem Sprungbefehl zur Minusadresse entspricht; von daher ist es möglich, die Adressenoperation zum Sprungzeitpunkt im Vergleich mit dem herkömmlichen Verfahren noch weiter zu vereinfachen und folglich eine unnötige Leerungsoperation des Warteschlangenpuffers zum Sprungzeitpunkt auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. Deshalb wird es möglich, Vorausleseprozesse zum Sprungzeitpunkt durch Verwendung einer einfachen Struktur zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Fig. 4 zeigt einen Fall, bei dem die Anzahl vorausgehender Befehle bis zu der durch eine Sprungmarke festgelegte relativen Adresse zwei beträgt. Die Anzahl an Befehlen kann jedoch selbstverständlich auf eins, drei oder mehr gesetzt werden. Die Obergrenze davon ist durch die Anzahl an Befehlen geregelt, die im Warteschlangenpuffer zurückbleiben sollen. Darüber hinaus ist der Befehl, dem der Operand des Sprungbefehls "BJMP" zugeteilt wurde, nicht auf die in Fig. 4 gezeigten Inkrementierungsbefehle INX, INY beschränkt.
Mit Bezug auf Fig. 1 und 5 wird eine Erläuterung der vierten Ausführungsform der vorliegenden Erfindung gegeben. Bei den ersten bis dritten Ausführungsformen werden vorausgehende Befehle, die bis zum Sprungende vorliegen, als ein Operand des Sprungbefehls "BJMP" verarbeitet. Da aber diese operandenverarbeiteten Befehle keinen wirklichen Befehl ausführen, entsteht kein Problem, selbst dann nicht, wenn sie durch keine Operation (NOP) ersetzt werden.
Im Fall eines Prozessors beispielsweise, der einen hochgradigen Befehlssatz auf Assemblerebene wie den CISCs (Complex Instruction Set Computer - konventioneller Computer mit uneingeschränktem Befehlsvorrat) bereitstellt, macht es ein Assemblercode für einen Befehl möglich, einen Prozess auf einer sehr hohen Ebene ablaufen zu lassen. In diesem Fall wird jeder Befehl im Operanden, der nur Beschreibungen enthält aber nicht ausgeführt wird, durch NOP ersetzt und dann werden die Befehle ausgeführt; so wird es möglich, dieselbe Sprungoperation durchzuführen wie bei den vorher erwähnten Ausführungsformen, ohne dass die Befehlsanzahl verändert werden müsste.
Wie in Fig. 5 dargestellt ist, ist bei der vierten Ausführungsform eine Sprungmarke, die das Sprungende des Sprungbefehls "BJMP" anzeigt, auf dem Operandenabschnitt festgelegt.
In diesem Fall wird im Befehlsdecodierer 6 von Fig. 1 der aus dem Warteschlangenpuffer 2 eingegebene Befehl decodiert, und wenn erkannt wird, dass der eingegebene Befehl ein wie oben beschriebener Sprungbefehl "BJMP" ist, werden vorausgehende Befehle (in diesem Fall Inkrementierungsbefehle; INX und INY), die bis zu einer relativen Adresse anliegen, die durch die Sprungmarke des Operandenabschnitts dieses Sprungbefehls "BJMP" festgelegt ist, als NOP verarbeitet.
Mit anderen Worten überträgt der Befehlsdecodierer 6 ein Steuersignal zur Aktualisierung des Ausgabe-Pointers 4 an den Warteschlangen-Controller 5. Der Warteschlangen- Controller 5 aktualisiert den Ausgabe-Pointer 4 basierend auf diesem Steuersignal. Als Ergebnis davon wird der nächste Befehl (in diesem Fall INX) aus dem Warteschlangenpuffer 2 in den Befehlsdecodierer 6 eingegeben. Der eingegebene Befehl INX wird als NOP verarbeitet. Darüber hinaus überträgt der Befehlsdecodierer 6 ein Steuersignal an den Warteschlangen-Controller 5, um den Ausgangs-Pointer 4 zu aktualisieren. Der Warteschlangen-Controller 5 aktualisiert den Ausgangs-Pointer 4 durch Verwendung dieses Steuersignals. Als Ergebnis davon wird der nächste Befehl (in diesem Fall INY) aus dem Warteschlangenpuffer 2 in den Befehlsdecodierer 6 eingegeben. Der eingegebene Befehl INY wird als NOP verarbeitet.
Auf diese Weise überträgt der Befehlsdecodierer 6 bis zur Erfassung einer Sprungmarke das Steuersignal an den Warteschlangen-Controller 5, um die vorausgehenden Befehle, die bis zu der durch eine Sprungmarke festgelegte relativen Adresse vorliegen, zu lesen; so werden alle diese Befehle als NOP verarbeitet. In diesem Fall schickt jedes Mal, wenn der Befehl aus dem Warteschlangenpuffer 2 eingegeben wird, der Befehlsdecodierer 6 die jedem Befehl entsprechende Befehlswortlänge an den Befehlszähler 8. Darüber hinaus gibt der Befehlsdecodierer 6 an den Warteschlangen-Controller 5 ein vorbestimmtes Steuersignal aus, um eine Leerungsoperation zu verhindern.
Jedes Mal, wenn die Befehlswortlänge (in diesem Fall eine normale Wortlänge, die einem Befehl entspricht) vom Befehlsdecodierer 6 dorthin geschickt wird, fügt der Befehlszähler 8 die Befehlswortlänge dem laufenden Adresswert hinzu und aktualisiert dadurch den Adresswert. Darüber hinaus führt der Warteschlangen-Controller 5, basierend auf der Eingabe des Steuersignals aus dem Befehlsdecodierer 6, keine Leerungsoperation am Warteschlangenpuffer 2 durch.
Dadurch wird hier nur der Befehl (in diesem Fall der Ladebefehl LDA) an der durch eine Sprungmarke festgelegten relativen Adresse aus dem Warteschlangenpuffer 2 ausgelesen und durch den Befehlsdecodierer 6 decodiert; so wird im Ergebnis derselbe Prozess wie bei einem normalen Sprungbefehl durchgeführt, ohne dass die Befehlsanzahl verändert ist.
Auf diese Weise werden bei der vierten Ausführungsform die vorausgehenden Befehlscodes bis zu dem durch die Sprungmarke des Sprungbefehls "BJMP" festgelegten Sprungende so als NOP verarbeitet, dass dieselbe Sprungoperation wie bei der nichtbedingten Sprungoperation erzielt wird, ohne dass die Befehlsanzahl verändert ist. Von daher ist es möglich, die Adressenoperation zum Zeitpunkt des Sprunges noch weiter zu vereinfachen und folglich eine unnötige Leerungsoperation des Warteschlangenpuffers zum Sprungzeitpunkt auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. Deshalb wird es möglich, Vorausleseprozesse zum Sprungzeitpunkt durch Verwendung einer einfachen Struktur zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Fig. 5 zeigt einen Fall, bei dem die Anzahl vorausgehender Befehle bis zu der durch eine Sprungmarke festgelegte relativen Adresse zwei beträgt. Die Anzahl an Befehlen kann jedoch selbstverständlich auf eins, drei oder mehr gesetzt werden. Darüber hinaus ist der Befehl, dem der NOP-Prozess zugeteilt wurde, nicht auf die in Fig. 5 gezeigten Inkrementierungsbefehle INX, INY beschränkt. Bei den oben angeführten jeweiligen Ausführungsformen gibt der Befehlsdecodierer 6 bei Erhalt des Sprungbefehls "BJMP" ein vorbestimmtes Steuersignal an den Warteschlangen- Controller 5 ab, um das Leeren zu verhindern; die Leerungsoperation im Warteschlangenpuffer 2 kann aber auch verhindert werden, ohne dass das Steuersignal an den Warteschlangen-Controller 5 speziell ausgegeben wird. In diesem Fall führt der Warteschlangen-Controller 5 die Leerungsoperation nach Erhalt eines Steuersignals durch.
Wie vorstehend beschrieben wurde, wird bei einem Mikroprozessor nach der vorliegenden Erfindung dem Mikroprozessor ein neuer Sprungbefehl (z. B. BJMP) hinzugefügt und vorhergehende Befehle bis zu dem durch diesen Sprungbefehl (BJMP) festgelegten Sprungende werden als ein Operand des entsprechenden Sprungbefehls (BJMP) so verarbeitet, dass die Anzahl an Befehlen im Warteschlangenpuffer variabel wird, und die Befehlswortlänge des entsprechenden Sprungbefehls einschließlich des Operandenabschnitts wird an den Befehlszähler ausgegeben, wodurch die Adresse des Befehlszählers aktualisiert sowie verhindert wird, dass der Warteschlangenpuffer zum Zeitpunkt dieses Sprungbefehls (BJMP) geleert wird. Deshalb ist es möglich, die Adressenoperation zum Zeitpunkt des Sprunges im Vergleich zum herkömmlichen Verfahren weiter zu vereinfachen und folglich ein unnötiges Leeren des Warteschlangenpuffers zum Zeitpunkt des Sprunges auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. So wird es möglich, die Vorausleseprozesse durch Verwendung einer einfachen Struktur zum Sprungzeitpunkt zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen. Da darüber hinaus eine Sprungmarke verwendet wird, um den Sprung festzulegen, ist es möglich, die Sprungoperation durchzuführen, ohne relative Adressen bis zum Sprungende festzulegen. Darüber hinaus wird es möglich, die Vorausleseprozesse durch Verwendung einer einfachen Struktur zum Sprungzeitpunkt zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Ferner ist zur Festlegung des Sprungendes eine relative Adresse zwischen dem Sprungbefehl und dem Sprungende festgelegt. Deshalb ist es möglich, die Vorausleseprozesse durch Verwendung einer einfachen Struktur zum Sprungzeitpunkt zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Ferner führt der Warteschlangen-Controller-Abschnitt die Eingabe-Ausgabe-Steueroperation am Warteschlangenpuffer so durch, dass eine Mehrzahl der vorhergehenden Befehle, die einer vorbestimmten Anzahl an relativen Adressen aus dem Befehl entsprechen, der momentan ausgeführt wird, bestehen bleiben dürfen, und eine relative Minusadresse als relative Adresse festgelegt wird. Deshalb ist es möglich, einen Sprung zur Minusadressenseite zu machen. Darüber hinaus wird es möglich, die Vorausleseprozesse durch Verwendung einer einfachen Struktur zum Sprungzeitpunkt zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen.
Ferner wird dem Mikroprozessor ein neuer Sprungbefehl (z. B. BJMP) hinzugefügt und vorhergehende Befehle bis zu einem durch diesen Sprungbefehl (BJMP) festgelegten Sprungende werden als NOP-Befehl verarbeitet, und die Befehlswortlänge des entsprechenden Sprungbefehls und der NOP-Befehl wird an den Befehlszähler ausgegeben, wodurch die Adresse des Befehlszählers aktualisiert sowie verhindert wird, dass der Warteschlangenpuffer zum Zeitpunkt dieses Sprungbefehls (BJMP) geleert wird. Deshalb ist es möglich, die Adressenoperation zum Zeitpunkt des Sprunges im Vergleich zum herkömmlichen Verfahren weiter zu vereinfachen und folglich ein unnötiges Leeren des Warteschlangenpuffers zum Zeitpunkt des Sprunges auszuschalten, ohne dass darin eine komplexe Struktur eingebaut werden müsste. So wird es möglich, die Vorausleseprozesse durch Verwendung einer einfachen Struktur zum Sprungzeitpunkt zu reduzieren und demzufolge die Verarbeitungsgeschwindigkeit zu erhöhen. Obwohl die Erfindung für eine vollständige und klare Offenbarung im Hinblick auf eine spezifische Ausführungsform beschrieben wurde, sind die beigefügten Ansprüche dahingehend nicht beschränkt, sondern sind so zu verstehen, dass sie alle für den Fachmann offensichtlichen Abänderungen und alternative Konstruktionen beinhalten können, die unter die hier dargelegte Grundlehre fallen.
BEZUGSZEICHENLISTE
1
Hauptspeicher
2
Warteschlangenpuffer
3
Eingabe-Pointer
4
Ausgabe-Pointer
5
Warteschlangen-Controller
6
Decodierer
7
Ausführungsabschnitt
8
Befehlszähler

Claims (5)

1. Mikroprozessor, umfassend:
einen Hauptspeicher (1), der Befehle speichert;
einen Warteschlangenpuffer (2), der Befehle aus dem Hauptspeicher (1) vorausliest und speichert;
einen Befehlszähler (8), der eine Adresse im Hauptspeicher (1) erzeugt, in der ein als nächster auszuführender Befehl gespeichert ist;
einen Befehlsdecodierer (6), der vom Warteschlangenpuffer (2) ausgegebene Befehle empfängt und decodiert; und
einen Warteschlangen-Controller (5), der die Eingabe und Ausgabe von Befehlen an den Warteschlangenpuffer (2) basierend auf der Adresse, die vom Befehlszähler (8) erzeugt und ausgegeben wurde,
bei dem, wenn der Befehlsdecodierer (6) den Empfang eines vorbestimmten Sprungbefehls erkennt, der Befehlsdecodierer (6) alle die Befehle verarbeitet, die einem Sprungende vorausgehen, das durch den Sprungbefehl als einem Operanden des Sprungbefehls festgelegt ist, eine Befehlswortlänge des Sprungbefehls einschließlich des Operanden an den Befehlszähler (8) ausgibt, wodurch die Adresse des Befehlszählers (8) aktualisiert wird, und ein Steuersignal bereitstellt, den Warteschlangenpuffer (2) nicht zu leeren.
2. Mikroprozessor nach Anspruch 1, bei dem eine Sprungmarke verwendet wird, um das Sprungende festzulegen.
3. Mikroprozessor nach Anspruch 1, bei dem eine relative Adresse zwischen dem Sprungbefehl und dem Sprungende festgelegt ist, um das Sprungende festzulegen.
4. Mikroprozessor nach Anspruch 3, bei dem der Warteschlangen-Controller (5) die Eingabe- und Ausgabesteuerung von Befehlen an den Warteschlangenpuffer (2) so durchführt, dass eine Mehrzahl der vorhergehenden Befehle, die einer vorbestimmten Anzahl an relativen Adressen aus dem Befehl entsprechen, der momentan ausgeführt wird, bestehen bleiben dürfen, und
eine relative Minusadresse als relative Adresse festgelegt werden kann.
5. Mikroprozessor, umfassend:
einen Hauptspeicher (1), der Befehle speichert; einen Warteschlangenpuffer (2), der Befehle aus dem Hauptspeicher (1) vorausliest und speichert;
einen Befehlszähler (8), der eine Adresse im Hauptspeicher (1) erzeugt, in der ein als nächster auszuführender Befehl gespeichert ist;
einen Befehlsdecodierer (6), der vom Warteschlangenpuffer (2) ausgegebene Befehle empfängt und decodiert; und
einen Warteschlangen-Controller (5), der die Eingabe und Ausgabe von Befehlen an den Warteschlangenpuffer (2) basierend auf der Adresse, die vom Befehlszähler (8) erzeugt und ausgegeben wurde,
bei dem, wenn der Befehlsdecodierer (6) den Empfang eines vorbestimmten Sprungbefehls erkennt, der Befehlsdecodierer (6) alle die Befehle verarbeitet, die einem Sprungende vorausgehen, das durch den Sprungbefehl als NOP-Befehle festgelegt ist, eine Befehlswortlänge, die dem Sprungbefehl und den NOP-Befehlen entspricht, an den Befehlszähler (8) ausgibt, wodurch die Adresse des Befehlszählers (8) aktualisiert wird, und ein Steuersignal bereitstellt, den Warteschlangenpuffer (2) nicht zu leeren.
DE10201439A 2001-05-11 2002-01-16 Mikroprozessor Expired - Fee Related DE10201439B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPP01-142188 2001-05-11
JP2001142188A JP2002342075A (ja) 2001-05-11 2001-05-11 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
DE10201439A1 true DE10201439A1 (de) 2002-11-21
DE10201439B4 DE10201439B4 (de) 2005-03-03

Family

ID=18988537

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10201439A Expired - Fee Related DE10201439B4 (de) 2001-05-11 2002-01-16 Mikroprozessor

Country Status (6)

Country Link
US (1) US6862680B2 (de)
JP (1) JP2002342075A (de)
KR (1) KR100465250B1 (de)
CN (1) CN1385782A (de)
DE (1) DE10201439B4 (de)
TW (1) TW530263B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162617B2 (en) * 2003-02-14 2007-01-09 Fine Arc Incorporated Data processor with changeable architecture
JP2005149297A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp プロセッサおよびそのアセンブラ
CN100492279C (zh) * 2006-07-27 2009-05-27 中国科学院计算技术研究所 对复杂指令译码生成微码的译码装置和方法
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US20170075572A1 (en) * 2015-09-11 2017-03-16 Sandisk Technologies Inc. Extending hardware queues with software queues

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61211744A (ja) * 1985-03-18 1986-09-19 Nec Corp 命令先取り制御装置
JPS63178335A (ja) * 1987-01-20 1988-07-22 Mitsubishi Electric Corp マイクロプロセツサ
JPH0540624A (ja) * 1991-02-05 1993-02-19 V M Technol Kk 集積回路マイクロプロセツサの命令フエツチ装置
JP3182438B2 (ja) * 1991-10-28 2001-07-03 株式会社日立製作所 データプロセッサ
JP2694799B2 (ja) 1993-09-07 1997-12-24 日本電気株式会社 情報処理装置
JPH07239781A (ja) 1994-02-25 1995-09-12 Hitachi Ltd 情報処理装置
US5764946A (en) * 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5889986A (en) * 1997-01-28 1999-03-30 Samsung Electronics Co., Ltd. Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer
JP3498831B2 (ja) 1998-06-30 2004-02-23 松下電器産業株式会社 プログラム制御方法およびその装置

Also Published As

Publication number Publication date
TW530263B (en) 2003-05-01
CN1385782A (zh) 2002-12-18
US6862680B2 (en) 2005-03-01
KR20020086214A (ko) 2002-11-18
US20020169945A1 (en) 2002-11-14
JP2002342075A (ja) 2002-11-29
DE10201439B4 (de) 2005-03-03
KR100465250B1 (ko) 2005-01-13

Similar Documents

Publication Publication Date Title
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE69325086T2 (de) Verfahren und System für spekulative Befehlsausführung
DE69904189T2 (de) Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern
DE69031991T2 (de) Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE2424931A1 (de) Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten
DE69805275T2 (de) Verfahren und Anordnung zur Reduzierung von Störungen in einer Verzweigungsgeschichtstabelle eines Mikroprozessors
DE69534148T2 (de) Rechnersystem zur Ausführung von Verzweigungsbefehlen
DE69308548T2 (de) Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE69719239T2 (de) Hardware-Anordnung zur optimierten Vorausholung von Befehlen und Daten
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE69129519T2 (de) Vorrichtung zur wirksamen Übertragung von Programmabläufen zwischen Unterprogrammen
DE69702350T2 (de) Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE69523690T2 (de) Mikroprozessor mit Registerspeicher
DE102004013676A1 (de) Schleifenbetrieb mit null Overhead in einem Mikroprozessor mit Anweisungspuffer
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE4222776A1 (de) Verfahren und anordnung fuer eine verzweigungsbefehlsverarbeitung in einer parallelverarbeitungseinheit
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE2424810A1 (de) Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen
DE69621405T2 (de) Verarbeitungssystem, prozessor, befehlsstromspeicher und kompilierer
DE69230238T2 (de) Informationsverarbeitungsvorrichtung mit Verzweigungsziel-Befehlspufferspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee