DE3852675T2 - Steuerungssystem zum Lesen von Mikrocode. - Google Patents

Steuerungssystem zum Lesen von Mikrocode.

Info

Publication number
DE3852675T2
DE3852675T2 DE3852675T DE3852675T DE3852675T2 DE 3852675 T2 DE3852675 T2 DE 3852675T2 DE 3852675 T DE3852675 T DE 3852675T DE 3852675 T DE3852675 T DE 3852675T DE 3852675 T2 DE3852675 T2 DE 3852675T2
Authority
DE
Germany
Prior art keywords
instruction
microcode
register
stage
address
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
DE3852675T
Other languages
English (en)
Other versions
DE3852675D1 (de
Inventor
Tsuyoshi Mori
Seishi Okada
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE3852675D1 publication Critical patent/DE3852675D1/de
Application granted granted Critical
Publication of DE3852675T2 publication Critical patent/DE3852675T2/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/22Microcontrol or microprogram arrangements
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

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

    TECHNISCHER HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Befehlsausführungs-Steuerungssystem, das von einem Mikroprogramm in einem Informationsverarbeitungsgerät gesteuert wird, insbesondere ein Mikrocodelesesteuerungssystem mit einer verbesserten Steuerung.
  • 2. Beschreibung des Standes der Technik
  • Ein Maschinenbefehl in einem Informationsverarbeitungsgerät wird gewöhnlich durch die folgenden Schritte ausgeführt. Der Maschinenbefehl wird aus einem Hauptspeicher ansprechend auf eine Adresse, die von einem Befehlsregister angegeben wird, gelesen, der Maschinenbefehl wird decodiert, verschiedene Steuervorgänge werden entsprechend dem decodierten Befehl ausgeführt, und das Befehlsregister wird um die Länge des Maschinenbefehls erhöht.
  • Da die Maschinenbefehle in der Hauptspeichereinrichtung in der Verarbeitungssequenz gespeichert sind, wenn die Maschinenbefehle gelesen werden, wird eine Adresse des nächsten zu lesenden Maschinenbefehls vorweggenommen.
  • Daher kann das Gerät, während es decodiert und verarbeitet, zur gleichen Zeit den nächsten Maschinenbefehl lesen. Das heißt, daß eine verbesserte Steuerung möglich ist.
  • Wenn jedoch ein Sprung- oder Verzweigungsbefehl ausgeführt wird, tritt, da der Inhalt des Befehlsregisters aufgefrischt wird, insofern ein Problem auf, als das Abrufen des Befehls bei der verbesserten Steuerung schwierig wird.
  • Der Sprungbefehl ist wichtig und kommt häufig in dem Informationsverarbeitungsgerät vor, und daher würde eine Hochgeschwindigkeitsverarbeitung des Sprungbefehls in hohem Maße zu einer Verbesserung der Leistung des Gerätes beitragen.
  • Ferner kann in einem Informationsverarbeitungsgerät, in dem ein Prozeß eines Maschinenbefehls in Schritte aufgeteilt ist, die jeweils durch einen Mikrocode auszuführen sind, und der Prozeß in jedem Schritt durch einen Pipelineprozeß in mehrstufiger Weise ausgeführt wird, ein verbessertes Lesen des Mikrocodes entsprechend dem verbesserten Lesen des Maschinenbefehls durchgeführt werden.
  • Daher muß ein wirksames Mikrocodelesesteuerungssystem in der verbesserten Lesesteuerung vorgesehen sein, wenn ein Sprungbefehl verarbeitet wird.
  • Gemäß einer Architektur nach dem Stand der Technik, die im IBM Technical Disclosure Bulletin, Band 22, Nr. 12, Mai 1980, S. 5536-5538, New York, US; J.J. Losq: "Asymmetric double decode computer" veröffentlicht ist, hat der Computer eine Pipelinestruktur mit einem Abschnitt, um Befehle vorab abzurufen, der vor den ausführenden Teil vorausschaut und mit den Sprungabschnitten des Befehlscodes verbundene Befehle vorab abruft. Der Vorab-Abrufabschnitt hat zwei Decoder, um entlang jeweiligen bedingten Sprüngen zu gehen, mit einem schnellen Decoder, der dem am wahrscheinlichsten auszuführenden Sprung zugeordnet wird.
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung ist es, ein Mikrocodelesesteuerungssystem zu schaffen, das eine verbesserte Steuerung verwendet, worin ein Prozeß in einer ersten Stufe in einem Mikrocode eines ersten Schrittes eines allgemeinen Befehls, der zuerst gelesen wird, nicht störend auf denjenigen einer ersten Stufe in einem Mikrocode eines Sprungzielbefehls einwirkt, das Mikrocodelesen des ersten Schrittes in dem Sprungzielbefehl beschleunigt wird und die Verarbeitungsgeschwindigkeit des Systems somit verbessert wird.
  • Gemäß vorliegender Erfindung wird vorstehende Aufgabe durch ein Mikrocodelesesteuerungssystem gemäß der Definition in Anspruch 1 gelöst.
  • Durch Verwendung des vorstehenden Konzeptes wird bei der verbesserten Steuerung im Pipelineprozeß eine Prozeßzeit um den Zeitraum gekürzt, der einem Verarbeitungszeitraum für eine Stufe entspricht, wenn der Sprungbefehl ausgeführt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist eine Zeichnung, die ein Beispiel des Prozesses in jeder Stufe in einem Prozeß eines Mikrocodes darstellt;
  • Fig. 2A ist ein schematisches Blockdiagramm, das ein Mikrocodelesesteuerungssystem gemäß einer ersten Ausführungsform zeigt;
  • Fig. 2B ist eine schematisches Blockdiagramm, das eine Modifikation des Systems in Fig. 2A zeigt;
  • Fig. 3 ist ein detailliertes Blockdiagramm des Systems in Fig. 2B;
  • Fig. 4A ist ein Diagramm, das eine Mikrocodelesesteuerung in einem allgemeinen Befehl im System in Fig. 3 erläutert;
  • Fig. 4B ist ein Diagramm, das eine ähnliche Mikrocodelesesteuerung in einem Sprungbefehl erläutert;
  • Fig. 5 ist eine detailliertes Blockdiagramm eines Mikrocodelesesteuerungssystems gemäß einer Ausführungsform der Erfindung;
  • Fig. 6A, 6B und 6C sind Diagramme, die eine Mikrocodelesesteuerung im System in Fig. 5 erklären.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Vor der Erklärung der Ausführungsformen der Erfindung wird der Stand der Technik im Detail unter Bezug auf Fig. 1, Fig. 4A und Fig. 4B erklärt. Fig. 1 zeigt ein Beispiel eines Prozesses in jeder Stufe eines Mikrocodes. Fig. 4A und 4B sind Diagramme, die die Mikrocodelesesteuerung mit einer verbesserten Steuerung erklären. Fig. 4A zeigt die Prozesse bei der Ausführung eines allgemeinen Maschinenbefehls und Fig. 4B zeigt die Prozesse bei der Ausführung eines Sprungbefehls.
  • Es wird angenommen, daß, wie in Fig. 1, 4A und 4B dargestellt, jeder Mikrocode durch eine Vierstufen-Pipeline verarbeitet wird.
  • Fig. 1 zeigt die Operationen in jeder Stufe, d. h. D, A, M und E, des Mikrocodes. Fig. 4A zeigt die Prozesse zur Ausführung des allgemeinen Maschinenbefehls (im folgenden nur als Befehl bezeichnet) unter Verwendung dieses Mikrocodes.
  • In Fig. 4A umfaßt ein Befehl 1 (Bef. 1) einen Mikrocode, d. h. der Befehl 1 wird durch die Ausführung eines Mikrocodes beendet, ein Befehl 2 umfaßt drei Mikrocodes und ein Befehl 3 umfaßt zwei Mikrocodes.
  • In vorstehendem Fall wird der Sprungbefehl wie in Fig. 4B dargestellt verarbeitet. Wie aus der Operation in jeder in Fig. 1 dargestellten Stufe klar ist, liest der Sprungbefehlprozeß einen Mikrocode entsprechend dem Sprungbefehl aus dem Steuerspeicher in Stufe D1, berechnet eine Adresse des Sprungzielbefehls in der nächsten Stufe A1, ruft den Sprungzielbefehl in der Stufe M1 ab und entscheidet eine Sprungbedingung in der Stufe E1.
  • Wenn der Sprungzielbefehl ausgewählt wird durch die Entscheidung der Sprungbedingung in Stufe E1, werden die nächsten Befehle 1, 2 und 3 (NÄCHSTER BEF. 1, 2 und 3), die zur Verarbeitung vorbereitet sind, nach der Ausführung des Sprungbefehls in den Stufen M2, A3 und D4 jeweils gestoppt wird. Anschließend wird der Prozeß, ein Leseprozeß des Mikrocodes in dem Sprungzielbefehl, in einer Stufe Dt begonnen.
  • In Fig. 4B wird angenommen, daß alle Befehle jeweils nur einen Mikrocode umfassen.
  • Zusätzlich wird, da der Sprungzielbefehl in der Stufe M1 des Sprungbefehls vom Hauptspeicher abgerufen wird, ein Lesen des Steuerspeichers am Zeitpunkt T4 zugleich mit dem Prozeß der Stufe E1 vor der Entscheidung durch die Sprungbedingung vorgeschlagen. Dies ist in Stufe Dt' in Fig. 4B dargestellt.
  • Durch diese Steuerung ist der Start des Sprungzielbefehls beschleunigt und daher die Prozeßdauer in dem Sprungbefehl verkürzt.
  • Trotzdem wirkt sich das Lesen aus dem Steuerspeicher in der Stufe D4 in dem nächsten Befehl 3 störend auf die Stufe Dt' aus, was zur Folge hat, daß es schwierig ist, Fehler in dem Prozeß zu vermeiden.
  • Wenn die Stufe D4 nicht zu einem ersten Schritt des Maschinenbefehls gehört, tritt die Störung zwischen den Stufen D4 und Dt' nicht auf, da der Steuerspeicher, aus dem ein Mikrocode des ersten Schrittes des Befehls gelesen wird, getrennt von einem weiteren Steuerspeicher vorgesehen ist, aus dem der zweite Schritt anschließend gelesen wird, wie in der japanischen ungeprüften Patentveröffentlichung (Kokai) Nr. 60-103452 mit dem Titel "Microprogram Control System" von derselben Anmelderin aufgezeigt. Wenn jedoch die Stufe D4 zu dem ersten Schritt in dem Maschinenbefehl gehört, tritt eine Störung auf.
  • Ausführungsformen werden nachfolgend unter Bezug auf die Zeichnungen erläutert. Es sei darauf hingewiesen, daß in den Figuren dieselben Bezugszeichen dieselben Objekte bezeichnen.
  • Eine erste Ausführungsform ist in Fig. 2A, 2B und 3 gezeigt.
  • Die in Fig. 2A gezeigte Vorrichtung umfaßt einen Steuerspeicher 2', einen weiteren Steuerspeicher 11, ein allgemeines Befehlsregister 4 und ein Sprungzielbefehlsregister 3. Der Steuerspeicher 2' entspricht dem herkömmlichen Steuerspeicher. In diesem Steuerspeicher 2' sind Mikrocodes, die an einen ersten Schritt in einem Befehl adressiert sind, in einem Abschnitt 2'-1 gesammelt, und die anderen Microcodes sind in einem Abschnitt 2'-2 gesammelt. Ferner sind bei dieser Ausführungsform dieselben Microcodes, die in dem Steuerspeicher 2'-1 gesammelt sind, in dem Steuerspeicher 11 gespeichert, der nur in einem ersten Schritt eines Sprungzielbefehls gelesen wird.
  • Andererseits ist, wie durch die japanische ungeprüfte Patentveröffentlichung (Kokai) Nr. 60-103452 aufgezeigt, ein weiteres System vorgesehen, bei dem ein Steuerspeicher 12 für einen ersten Schritt getrennt von einem Steuerspeicher 2 für einen zweiten Schritt und anschließende bereitgestellt ist. Wie nämlich in einem schematischen Blockdiagramm in Fig. 2B gezeigt, ist ein Steuerspeicher 11 vorgesehen, der dem Steuerspeicher 12 für den ersten Schritt entspricht und der nur bei dem ersten Schritt eines Sprungzielbefehls gelesen wird.
  • Wie vor stehend erwähnt ist der Steuerspeicher für den ersten Schritt des Befehls zweifach vorhanden und einer der Steuerspeicher wird so gesteuert, daß er nur im ersten Schritt des Sprungzielbefehls gelesen wird.
  • Der Betrieb des vorstehenden Systems wird mittels eines in Fig. 3 gezeigten Beispiels unter Bezug auf Fig. 4A und 4B erläutert.
  • Ein allgemeiner Befehl 1 wird aus einem Hauptspeicher (nicht dargestellt) gelesen, die gelesene Information wird anschließend in einem Befehlsregister 4 eingestellt, eine Stufe D11 wird zu einem Zeitpunkt T1 ausgeführt, ein Mikrocode des ersten Schrittes des Befehls 1 wird aus dem Steuerspeicher 12 gelesen und der Mikrocode wird in einem Register A(60) durch Selektoren 50 und 51 eingestellt.
  • Am nächsten Zeitpunkt T2 wird eine Stufe A11 des Befehls 1, die die Adressberechnung oder ähnliches für den Speicherzugriff einschließt, ausgeführt, eine Stufe D21 des nächsten Befehls 2 wird gemäß den Inhalten des Registers A(60) in derselben Weise ausgeführt, der Mikrocode des vorstehend erwähnten Befehls 1 wird in ein Register M(61) verschoben und ein Mikrocode eines ersten Schrittes des Befehls 2 wird in dem Register A(60) eingestellt.
  • Der Befehl 2 wird durch Verarbeiten der drei Mikrocodes wie vorstehend erwähnt ausgeführt und daher erzeugt zu einem Zeitpunkt T2 ein Mikroadressgenerator 6 eine Adresse des Mikrocodes des zweiten Schrittes des Befehls 2 und die Adresse wird in einem Adressregister 7 eingestellt.
  • An einem Zeitpunkt T3 wird gemäß den Inhalten des Registers M(61) eine Stufe M11 des Befehls 1 ausgeführt, die Speicherzugriff oder ähnliches einschließt, eine Stufe A21 des ersten Schrittes des Befehls 2 wird ausgeführt, ein Mikrocode des Befehls 1 wird in ein Register E(62) verschoben, ein Mikrocode des ersten Schrittes des Befehls 2 wird in ein Register M(61) verschoben, ein Mikrocode des zweiten Schrittes des Befehls 2 wird aus dem Steuerspeicher 2 gelesen, d. h. Ausführung der Stufe D23, und der Mikrocode wird in dem Register A(60) durch den Selektor 51 eingestellt. Eine Adresse eines Mikrocodes eines dritten Schrittes des Befehls 2 wird anschließend im Adressgenerator 6 erzeugt und in dem Adressregister 7 eingestellt.
  • An einem Zeitpunkt T4 werden eine Stufe E11 des Befehls 1, eine Stufe M21 des ersten Schrittes des Befehls 2 und eine Stufe A22 des zweiten Schrittes des Befehls 2 parallel ausgeführt, ein Mikrocode des dritten Schrittes des Befehls 2 wird aus dem Steuerspeicher 2 gelesen, d. h. Ausführung der Stufe D23, und ein Mikrocode wird in dem Mikrocoderegister A(60) eingestellt. Anschließend wird die verbesserte Steuerung des Befehls in derselben Weise durchgeführt.
  • Die Operation beim Einstellen eines Sprungbefehls in dem Befehlsregister 3 von der Hauptspeichereinrichtung wird nachfolgend unter Bezug auf Fig. 4B erläutert.
  • Da der verbesserte Steuerungsvorgang des Sprungbefehls vorliegt, wird der nächste Befehl 1, 2, 3 und ähnliche durch vorstehend beschriebenen Prozeß durchgeführt und auf eine Erläuterung desselben wird verzichtet. Die vorliegende Erläuterung betrifft die Ausführung eines Sprungzielbefehls in dem Sprungbefehl an einem Zeitpunkt T4, wie durch Dt' gezeigt.
  • An einem Zeitpunkt T4 wird nämlich eine Stufe D4 des ersten Schrittes dem nächsten Befehls 3 ausgeführt und der Mikrocode wird aus dem Steuerspeicher 12 gelesen. Bei dem Sprungbefehl wird jedoch an einem Zeitpunkt T3 eine Stufe M1 ausgeführt und der Sprungzielbefehl in dem Befehlsregister 3 wird eingestellt, und an einem Zeitpunkt T4 wird der Mikrocode aus dem Steuerspeicher 11 gelesen, d. h. eine Stufe Dt' wird ausgeführt. Am Zeitpunkt T4 wird jedoch eine Sprungbedingung entschieden und somit wählt der Selektor 50 die Information in dem Steuerspeicher 11, wenn der Sprungprozeß ausgeführt wird, und wählt die Information in dem Steuerspeicher 12, wenn der Sprungprozeß nicht ausgeführt wird. Daher tritt eine störende Wechselwirkung zwischen den ersten Schritten des allgemeinen Befehls und dem Sprungzielbefehl, wie es bei dem System nach dem Stand der Technik der Fall ist, nicht auf.
  • Es sei darauf hingewiesen, daß, wenn die Stufe D4 des Befehls 3 zu einem Mikrocode gehört, der den zweiten Schritt vollendet hat, der Mikrocode des Schrittes aus dem Steuerspeicher 2 gelesen wird. Anschließend wählt der Selektor 51 die Ausgangssignale des Steuerspeichers 2 und das Lesen des Mikrocodes des ersten Schrittes des Sprungzielbefehls, d. h. Stufe Dt', wirkt sich nicht störend auf die Stufe D4 aus.
  • Wie vorstehend beschrieben hat die zuerst genannte Ausführungsform folgende Merkmale. Die Mikrocodes der ersten Schritte des Maschinenbefehls werden in dem doppelten ersten und zweiten Steuerspeicher gespeichert, die Mikrocodes des zweiten Schrittes und folgender werden in einem einfachen Steuerspeicher gespeichert und die Mikrocodes des ersten Schrittes des Sprungzielbefehls werden aus nur dem ersten Steuerspeicher in den doppelten Speicher gelesen. Darüber hinaus werden die Mikrocodes des ersten Schrittes des Maschinenbefehls in dem ersten Steuerspeicher gespeichert, die Mikrocodes des zweiten Schrittes und anschließender werden in dem zweiten Steuerspeicher gespeichert, der erste Steuerspeicher wird in der zweiten Stufe des ersten Schrittes des Maschinenbefehls gelesen und der zweite Steuerspeicher wird so gesteuert, daß er in der ersten Stufe des zweiten Schrittes und anschließender des Maschinenbefehls gelesen wird. Anschließend werden zu dem Zeitpunkt, wenn eine Entscheidung über die Sprungbedingung des Sprungbefehls erfolgt, die Ergebnisse des Lesevorganges der Mikrocodes der ersten Schritte des Sprungzielbefehls und des allgemeinen Befehls ausgewählt oder die Adressen der Mikrocodes der ersten Schritte des Sprungbefehls und des allgemeinen Befehls werden ausgewählt. Ferner kommen die Lesevorgänge des Mikrocodes des ersten Schrittes des Sprungzielbefehls und des Mikrocodes des allgemeinen Befehls aus den Steuerspeichern nicht gleichzeitig vor.
  • Eine Ausführungsform der vorliegenden Erfindung wird nachfolgend unter Bezug auf Fig. 5, Fig. 6A, 6B und 6C hinsichtlich des Leseprozesses der Mikrocodes erläutert.
  • Bei dieser Ausführungsform umfaßt das System ein allgemeines Befehlsregister 4, ein Sprungzielbefehlsregister 3, Selektoren 52, einen Adressgenerator 6, Adressregister 70 und 71, Steuerspeicher 11 und 2, Register A(60), M(61) und E(62). Der Steuerspeicher 11 ist ein erster Steuerspeicher und liest die gespeicherte Information in einem ersten Schritt des Befehls, und der Steuerspeicher 2 ist ein zweiter Steuerspeicher und liest die gespeicherte Information in dem zweiten Schritt und anschließenden (vgl. japanische ungeprüfte Patentveröffentlichung (Kokai) Nr. 60-103452). Der erste Steuerspeicher 11 wird in der zweiten Stufe und anschließenden des ersten Schrittes gelesen, wie durch eine fettgedruckte Linie dargestellt, und der zweite Steuerspeicher 2 wird in der ersten Stufe jedes Schrittes gelesen, wie durch eine Wellenlinie dargestellt.
  • Wenn der allgemeine Befehl 1 in dem Befehlsregister 4 eingestellt wird, wird die Stufe D11 des ersten Schrittes des Befehls 1 ausgeführt (vgl. Zeitpunkt T1 in Fig. 6A).
  • In dieser Stufe wird der Befehl 1 decodiert (in der Praxis wird eine Adresse des ersten Steuerspeichers 11 erzeugt). Es wird nämlich eine Adresse zum Lesen des Mikrocodes des ersten Schrittes des Befehls 1 aus dem Steuerspeicher 11 in einem Adressregister 71 eingestellt und eine Adresse zum Lesen des Mikrocodes des zweiten Schrittes aus dem Steuerspeicher 2 wird durch den Adressgenerator 6 erzeugt und in dem Adressregister 70 eingestellt.
  • Ein Adressgenerator ist nicht an einem Eingang des Adressregisters 71 vorgesehen, da der erste Steuerspeicher 11 nur bei dem ersten Schritt des Befehls gelesen wird und somit die Adresse durch einen Operationscode des Befehls ersetzt wird.
  • Am nächsten Zeitpunkt T2 werden die Stufe A(Stufe A11) des ersten Schrittes und die Stufe D (Stufe D12) des zweiten Schrittes ausgeführt. In der Stufe All wird eine Mikrocode (1-1) aus dem ersten Steuerspeicher 11 gelesen, wie durch eine fettgedruckte Linie dargestellt, und der Mikrocode wird in dem Mikrocoderegister M(61) eingestellt, um die nächste Stufe zu steuern.
  • In vorstehendem Prozeß kann die Adressberechnung, die im wesentlichen zu einer Stufe A gehört, beispielsweise durch Verwendung von Hardware anstelle eines Mikrocodes gesteuert werden.
  • In dem Prozeß von Stufe D12 wird ein Mikrocode (1-2) des zweiten Schrittes des Befehls 1 aus dem zweiten Steuerspeicher 2 gelesen, wie durch eine Wellenlinie dargestellt, und der Mikrocode wird in dem Mikrocoderegister A(60) eingestellt. Dieser Prozeß ist ein Merkmal der Erfindung.
  • Nachfolgend werden Mikrocodes (1-1, 1-2), die jeweils in den Registern A(60) und M(61) eingestellt sind, zu E(62) und M(61) verschoben und der Prozeß in jeder Stufe wird ausgeführt.
  • Am nächsten Zeitpunkt T3 werden nämlich die Prozesse in den Stufen A12 und M11 in Übereinstimmung mit dem Inhalt der Mikrocoderegister A(60) und M(61) ausgeführt und gleichzeitig wird die Stufe D13 des dritten Schrittes des Befehls 1 ausgeführt. Anschließend wird ein Mikrocode (1-3) aus dem zweiten Steuerspeicher 2 gelesen, wie durch eine Wellenlinie dargestellt, und in dem Mikrocoderegister A(60) eingestellt.
  • Am Zeitpunkt T4 wird die Stufe D, d. h. Stufe D21 des nächsten Befehls 2, gestartet und die Stufen A13, M12 und E11 werden in Übereinstimmung mit dem Inhalt der Mikrocoderegister A(60), M(61) und E(62) ausgeführt.
  • Es folgt eine Erläuterung einer Operation des Systems bei der Verarbeitung des Sprungbefehls (Befehl B) unter Bezug auf Fig. 5, 6B und 6C.
  • In diesem Fall entsprechen die Operationen an den Zeitpunkten T1 und T2 denjenigen eines gewöhnlichen Befehls. Im Sprungbefehl wird nämlich nur ein Mikrocode (B-1) des ersten Schrittes ausgeführt.
  • Am Zeitpunkt T1 wird eine Stufe DB des Sprungbefehls, die in dem Befehlsregister 3 eingestellt ist, ausgeführt. Konkret wird ein Operationscode des Sprungbefehls in dem Adressregister 71 eingestellt, um eine Adresse für den ersten Steuerspeicher 11 zu erzeugen.
  • Am nächsten Zeitpunkt T2 werden eine Stufe AB des Sprungbefehls und die Stufe D (Stufe D21) des ersten Schrittes des nächsten Befehls 2, die in dem Befehlsregister 4 eingestellt sind, ausgeführt. Zusätzlich wird in der Stufe AB der Mikrocode (B-1) aus dem ersten Steuerspeicher 11 gelesen, wie durch eine fettgedruckte Linie dargestellt, und der Mikrocode wird anschließend in dem Mikrocoderegister M(61) zur Steuerung der nächsten Stufe eingestellt.
  • Ferner wird die Stufe D (Stufe D21) des ersten Schrittes des Befehls 2 ausgeführt, d. h. ein Operationscode des Befehls 2 wird in dem Adressregister 71 eingestellt und gleichzeitig wird eine Adresse des Steuerspeichers für den zweiten Schritt in dem Adressgenerator 6 erzeugt und in dem Adressregister 70 eingestellt.
  • An dem Zeitpunkt T3 wird in einer Stufe MB des Sprungbefehls der Sprungzielbefehl (im folgenden als ein Befehl t bezeichnet) von der Hauptspeichereinrichtung abgenommen und in dem Befehlsregister 3 eingestellt.
  • In Stufe A(Stufe A21) des Befehls 2 wird der Mikrocode (2-1) des ersten Schrittes des Befehls 2 aus dem ersten Steuerspeicher 11 gelesen, wie durch eine fettgedruckte Linie dargestellt, und in dem Mikrocoderegister M(61) eingestellt, um die nächste Stufe zu steuern.
  • Weiter wird in Stufe D22 des Befehls 2 der Mikrocode (2- 2) des zweiten Schrittes aus dem zweiten Steuerspeicher 2 gelesen, wie durch eine Wellenlinie dargestellt, und in dem Mikrocoderegister A(60) eingestellt, um die nächste Stufe zu steuern.
  • Am nächsten Zeitpunkt T4 wird eine Stufe EB des Sprungbefehls ausgeführt und das Ergebnis der Sprungbedingungsentscheidung wird zu dem Selektor 52 gesendet.
  • An diesem Zeitpunkt wird die Stufe D31 des Befehls 3, die vorher in dem Befehlsregister 4 eingestellt wurde, ausgeführt und der Operationscode des Befehls 3 wird zur Einstellung des Adressregisters 71 vorbereitet. Wenn der Sprung ausgeführt wird, wird die Information (Befehl t) in dem Befehlsregister 3 zu dem Adressregister 71 und dem Adressgenerator 6 gesendet, und wenn der Sprung nicht ausgeführt wird, wird die Information (Befehl 3) in dem Befehlsregister 4 zu diesem gesendet. Somit wirkt sich der Sprungzielbefehl (Befehl t) nicht störend auf den Befehl 3 aus. Die Ausführung des Befehls t wird von der Stufe EB des Sprungbefehls gestartet.
  • Die vorstehende Erläuterung betrifft eine Operation, bei der der Befehl 3 in dem Befehlsregister 4 zu dem Zeitpunkt T3 eingestellt ist, an dem der Befehl t in dem Befehlsregister 3 eingestellt ist. Andererseits wird eine Operation, wenn z. B. die Adresse des Steuerspeichers in dem dritten Schritt des Befehls 2 zu dem selben Zeitpunkt T3 in dem Adressregister 70 durch den Adressgenerator 6 eingestellt wird, in Fig. 6C dargestellt.
  • Wie Fig. 6C zeigt, werden ein Lesen (Stufe D23) des Mikrocodes (2-3) des dritten Schrittes des Befehls 2 aus dem zweiten Steuerspeicher 2 und ein Einstellen einer Adresse für den Steuerspeicher 11 in einem Mikrocode (t-1) des ersten Schrittes des Befehls t zu dem Adressregister 71 an dem selben Zeitpunkt T4 gestartet. Der Mikrocode (2-3) des dritten Schrittes des Befehls 2 wird an dem Zeitpunkt T4 gelesen, wie durch eine Wellenlinie dargestellt, und wird in dem Mikrocoderegister A(60) eingestellt. Andererseits stellt der Mikrocode (t-1) des ersten Schrittes des Befehls t die Adresse des Steuerspeichers in dem Adressregister 71 in der Stufe Dt1 ein und gleichzeitig wird die Adresse des Steuerspeichers des zweiten Schrittes (sofern vorhanden) in dem Adressregister 70 durch den Adressgenerator 6 eingestellt.
  • Wenn eine Adresse eines Mikrocodes (2-4) des vierten Schrittes des Befehls 2 erzeugt wird, tritt in dem Adressgenerator 6 eine Störung auf. Trotzdem wird am Zeitpunkt T4, da die Sprungbedingung entschieden ist, entweder der zweite Schritt des Sprungbefehls (Befehl t) oder der vierte Schritt des Befehls 2 dem Adressgenerator, ansprechend auf die Sprungbedingungsentscheidung, zugeführt und somit wird eine Störung vermieden.
  • Daher wird, wenn der Sprung entschieden ist, am Zeitpunkt T5 der Mikrocode (t-1) des ersten Schrittes des Befehls t aus dem ersten Steuerspeicher 11 gelesen und in dem Mikrocoderegister M(61) eingestellt, und der Mikrocode (t-2) des zweiten Schrittes wird aus dem zweiten Steuerspeicher 2 gelesen und in dem Mikrocoderegister A(60) eingestellt. Nachfolgend werden die jeweiligen Mikrocodes (t-1, t-2) zu den Mikrocoderegistern M(61) und E(62) verschoben und die Stufen M und E werden ausgeführt. Das hat zur Folge, daß der Sprungzielbefehl (Befehl t) sich nicht störend auf den allgemeinen Befehl (Befehl 2) auswirkt und der Befehl t startet die Ausführung des Sprungbefehls von der Stufe EB desselben.

Claims (1)

  1. Mikrocodelesesteuerungssystem, umfassend:
    ein erstes Befehlsregister (4) zum Speichern eines Maschinenbefehls,
    ein zweites Befehlsregister (3) zum Speichern eines Sprungzielbefehls,
    eine Auswähleinrichtung (52) zum Auswählen eines Ausgangssignales von entweder dem ersten oder dem zweiten Befehlsregister,
    eine erste Steuerspeichereinrichtung (11), die ein Ausgangssignal der Auswähleinrichtung (52) als eine Adresse empfängt und gespeicherte Mikrocodes zuführt, die ersten Schritten der Maschinenbefehle entsprechen,
    eine zweite Steuerspeichereinrichtung (2), die das Ausgangssignal der Auswähleinrichtung (52) als eine Adresse empfängt und gespeicherte Mikrocodes zuführt, die anderen Schritten als den ersten Schritten der Maschinenbefehle entsprechen,
    einen Pipelineprozessor mit einem ersten Register (60),
    einem zweiten Register (61) und einem dritten Register (62), die in Kaskade geschaltet sind, wobei das erste Register (60) ein Ausgangssignal der zweiten Steuerspeichereinrichtung (2) empfängt, das zweite Register (61) ein Ausgangssignal der ersten Steuerspeichereinrichtung (11) und des ersten Registers (60) empfängt, jeder Mikrocode eine erste, eine zweite, eine dritte und eine vierte Stufe umfaßt, wobei in der ersten Stufe des ersten Schrittes eines Befehls die Mikrocodeadresse von dem Ausgangssignal der Auswähleinrichtung gegeben wird und der ersten Steuerspeichereinrichtung (11) zugeführt wird, während die Adresse des folgenden Mikrocodes von der zweiten Steuerspeichereinrichtung (2) zugeführt wird, in der zweiten Stufe des ersten Mikrocodes die Adresse durch das Ausgangssignal der ersten Steuerspeichereinrichtung (11) gegeben wird, während die Adresse des folgenden Mikrocodes in dem ersten Register (60) gespeichert ist, in der dritten Stufe der Mikrocode durch ein Ausgangssignal des zweiten Registers gegeben wird und in der vierten Stufe der Mikrocode durch ein Ausgangssignal des dritten Registers gegeben wird,
    wobei, wenn ein Sprungbefehl verarbeitet wird, in der zweiten Stufe eine Adresse des Maschinensprungzielbefehls berechnet wird,
    in der dritten Stufe der Maschinensprungzielbefehl in das zweite Befehlsregister abgerufen wird,
    in der vierten Stufe die Sprungbedingung entschieden wird und diese Entscheidung den Selektor veranlaßt, das Ausgangssignal entweder des ersten Befehlsregisters oder des zweiten Befehlsregisters auszuwählen, so daß, wenn das Ausgangssignal des zweiten Befehlsregisters ausgewählt ist, der erste Mikrocode des Sprungzielmaschinenbefehls ausgeführt wird, anstelle des Mikrocodes, der in der zweiten Steuerspeichereinrichtung (2) gespeichert ist.
DE3852675T 1987-06-19 1988-06-15 Steuerungssystem zum Lesen von Mikrocode. Expired - Fee Related DE3852675T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62154025A JPS63317828A (ja) 1987-06-19 1987-06-19 マイクロコ−ド読み出し制御方式

Publications (2)

Publication Number Publication Date
DE3852675D1 DE3852675D1 (de) 1995-02-16
DE3852675T2 true DE3852675T2 (de) 1995-05-11

Family

ID=15575260

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3852675T Expired - Fee Related DE3852675T2 (de) 1987-06-19 1988-06-15 Steuerungssystem zum Lesen von Mikrocode.

Country Status (7)

Country Link
US (1) US4933841A (de)
EP (1) EP0297943B1 (de)
JP (1) JPS63317828A (de)
KR (1) KR910008410B1 (de)
AU (1) AU583764B2 (de)
DE (1) DE3852675T2 (de)
ES (1) ES2065921T3 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01283635A (ja) * 1988-05-11 1989-11-15 Nec Corp バッファ制御回路
JPH0769806B2 (ja) * 1988-10-14 1995-07-31 三菱電機株式会社 データ処理装置
EP0389175A3 (de) * 1989-03-15 1992-11-19 Fujitsu Limited Datenvorausladesystem
CA2030404A1 (en) * 1989-11-27 1991-05-28 Robert W. Horst Microinstruction sequencer
US5450550A (en) * 1991-08-09 1995-09-12 Sony Corporation Parallel processing system for parallel prefetching of identical packet having two rendering commands and processing second command prior to completion of processing the first command
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
JP3504355B2 (ja) * 1994-12-06 2004-03-08 松下電器産業株式会社 プロセッサ
US5787026A (en) * 1995-12-20 1998-07-28 Intel Corporation Method and apparatus for providing memory access in a processor pipeline
KR100389955B1 (ko) * 1996-05-15 2003-09-19 주식회사 하이닉스반도체 이동 통신 교환기의 상. 하위 프로세서간 버스 통신장치및방법
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US5978871A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Method of layering cache and architectural specific functions for operation splitting
US6058470A (en) * 1998-04-07 2000-05-02 International Business Machines Corporation Specialized millicode instruction for translate and test
US6067617A (en) * 1998-04-07 2000-05-23 International Business Machines Corporation Specialized millicode instructions for packed decimal division
US6055624A (en) * 1998-04-07 2000-04-25 International Business Machines Corporation Millicode flags with specialized update and branch instructions
US6055623A (en) * 1998-04-07 2000-04-25 International Business Machine Corporation Specialized millicode instruction for editing functions

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4594661A (en) * 1982-02-22 1986-06-10 International Business Machines Corp. Microword control system utilizing multiplexed programmable logic arrays
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch

Also Published As

Publication number Publication date
AU583764B2 (en) 1989-05-04
ES2065921T3 (es) 1995-03-01
EP0297943B1 (de) 1995-01-04
AU1740988A (en) 1989-02-02
DE3852675D1 (de) 1995-02-16
KR910008410B1 (ko) 1991-10-15
JPS63317828A (ja) 1988-12-26
KR890000973A (ko) 1989-03-17
EP0297943A2 (de) 1989-01-04
EP0297943A3 (de) 1992-01-02
US4933841A (en) 1990-06-12

Similar Documents

Publication Publication Date Title
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE3852675T2 (de) Steuerungssystem zum Lesen von Mikrocode.
DE3116100C2 (de) Datenverarbeitungseinheit
DE4222776C2 (de) Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen
DE3687724T2 (de) Digitalprozessorsteuerung.
DE3650232T2 (de) Rechnersteuerung mit Verzweigung in einem einzigen Zyklus.
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE60004640T2 (de) Verfahren und vorrichtung für sprungvorhersage unter verwendung einer hybriden branch-history mit gemeinsamer zugriffsstruktur
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE69032174T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE10306051B4 (de) Verfahren zum Optimieren der Verarbeitung von Befehlen durch einen Prozessor und Prozessoren zur Durchführung der Verfahren
DE19526008C2 (de) Befehlsvorholeinheit für einen Computer
DE4211245A1 (de) Prozessorsystem in parallelverarbeitungsbauart mit trap- und stall-steuerfunktionen
DE4134392C2 (de) Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung
DE3853985T2 (de) Datenverarbeitungsanlage, geeignet für Hochgeschwindigkeitsverarbeitung.
DE68927292T2 (de) Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
DE3688973T2 (de) Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System.
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE68924945T2 (de) Pufferspeicheranordnung.

Legal Events

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