DE3688232T2 - Datenverarbeitungssystem. - Google Patents

Datenverarbeitungssystem.

Info

Publication number
DE3688232T2
DE3688232T2 DE8686114722T DE3688232T DE3688232T2 DE 3688232 T2 DE3688232 T2 DE 3688232T2 DE 8686114722 T DE8686114722 T DE 8686114722T DE 3688232 T DE3688232 T DE 3688232T DE 3688232 T2 DE3688232 T2 DE 3688232T2
Authority
DE
Germany
Prior art keywords
register
bank
registers
group
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE8686114722T
Other languages
English (en)
Other versions
DE3688232D1 (de
Inventor
Shiro Baba
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3688232D1 publication Critical patent/DE3688232D1/de
Application granted granted Critical
Publication of DE3688232T2 publication Critical patent/DE3688232T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

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

Description

    HINTERGRUND DER ERFINDUNG:
  • Die vorliegende Erfindung betrifft eine Datenverarbeitungstechnologie und insbesondere eine Technologie, die effektiv auf ein Befehlssystem in einem programmgesteuerten System anwendbar ist, zum Beispiel auf das Befehlssystem eines Mikroprozessors, der wenigstens zwei Registergruppen aufweist.
  • Bei manchen Mikrocomputern des Z80-Typs (Zylog) sind, wie in der Fig. 7 gezeigt, zwei Registergruppen RSA und RSB vorgesehen, so daß unter Verwendung einer dieser Registergruppen eine Aufgabenbearbeitung erfolgen kann. Demgemäß kann zum Beispiel, wenn eine Aufgabe unter Verwendung der Registergruppe RSA vollständig ausgeführt ist, die Steuerung sofort durch Ändern der Registergruppe von RSA nach RSB zu einer anderen Aufgabenbearbeitung übergehen, wobei die Inhalte der Register unverändert bleiben. Um die Rückkehr zu der ursprünglichen Aufgabe zu steuern, wenn die Aufgabenbearbeitung beendet ist, wird die Registergruppe in RSA geändert, was es möglich macht, den verbleibenden Inhalt des Registers zu verwenden, der mit der ursprünglich auszuführenden Aufgabe verknüpft ist. Diese Vorgehensweise hat folglich den Vorteil, daß keine Operationen zur Sicherstellung von Registern erforderlich sind, wenn eine Aufgabe geändert wird, und daß eine hohe Arbeitsgeschwindigkeit erhalten werden kann.
  • Eine ähnliche Art eines Datenverarbeitungssystems, das die Merkmale aufweist, die im ersten Teil des Patentanspruchs 1 genannt sind, ist in "Conference Proceedings", The 6th Annual Symposium on Computer Architecture, 23.-25. April 1979, Seiten 137 bis 146 beschrieben.
  • Es gibt jedoch Fälle, bei denen zur Ausführung einer neuer Bearbeitung ein Parameter zu übertragen ist, wenn die Steuerung von der einen Aufgabenbearbeitung zur anderen Aufgabenbearbeitung übergeht. Wie in der Fig. 7 gezeigt, entsteht dabei der Nachteil, daß der Parameter nicht leicht übertragen werden kann, wenn das System so gesteuert wird, daß die Registergruppe vollständig gewechselt wird.
  • Im Gegensatz dazu ist der Computer mit verringertem Befehlssatz (RISC), der von UC Berkeley hergestellt wird, mit einer Anzahl von Registergruppen RSA, RSB, RSC usw. versehen, wobei sich eine feste Anzahl von Registern gegenseitig überlappen, wie es in der Fig. 8 gezeigt ist. Im Ergebnis können dabei Operationen wie die Übertragung von Parametern leicht durchgeführt werden, wenn die Steuerung auf eine Subroutine springt. Wenn jedoch eine Anzahl von Registergruppen einander überlappt, können die sich überlappenden Register in dem Fall nicht verwendet werden, bei denen keine solche Operationen wie eine Übertragung von Parametern erforderlich sind, wenn eine Aufgabenänderung erfolgt, was daher zu dem Nachteil führt, daß die verfügbare Anzahl von Registern begrenzt ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG:
  • Es ist daher Aufgabe der vorliegenden Erfindung, ein Datenverarbeitungssystem zu schaffen, bei dem die Flexibilität erhöht ist, die bei einem Wechsel einer Anzahl von Registergruppen zur Verfügung steht, um dadurch die Arbeitsgeschwindigkeit des Datenverarbeitungssystems zu verbessern.
  • Diese Aufgabe wird durch das in Anspruch 1 charakterisierte Datenverarbeitungssystem gelöst.
  • Bei dem erfindungsgemäßen Datenverarbeitungssystem, das eine Anzahl von Registergruppen aufweist, wird ein neuer Befehl vorgesehen, der den Inhalt eines spezifizierten Registers bei einem Wechsel der Registergruppe zu einem Register in einer anderen Registergruppe überträgt und der durch die Hardware ausgeführt werden kann. Dies ermöglicht es, daß eine Registergruppe mit oder ohne einer Übertragung eines Parameters oder dergleichen gewechselt werden kann. Im Ergebnis kann eine schnelle Aufgabenänderung und ein schneller Subroutinenaufruf bewirkt werden, und es kann daher die erwähnte Aufgabe gelöst werden, das heißt es ist die Flexibilität bei einem Wechsel der Registergruppe verbessert und die Arbeitsgeschwindigkeit des Systems erhöht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN:
  • Die vorliegende Erfindung geht aus der folgenden Beschreibung in Verbindung mit der beiliegenden Zeichnung genauer hervor. Es zeigen:
  • Die Fig. 1A-1G schematische Abbildungen, die Formatbeispiele von erfindungsgemäßen Registergruppenwechselbefehlen darstellen;
  • die Fig. 2 eine schematische Abbildung, die das Konfigurationsbeispiel einer Registerbank für die Fig. 4-7 darstellt;
  • die Fig. 3A-3D erläuternde Abbildungen, die Operationen mit den erfindungsgemäßen Registergruppenwechselbefehlen darstellen;
  • die Fig. 4-6 schematische Blockschaltbilder für Mikroprozessor-Konfigurationsbeispiele, die eine Ausführung der erfindungsgemäßen Registergruppenwechselbefehle ermöglichen; und
  • die Fig. 7-8 erläuternde Abbildungen, die die Registerwechselprozeduren bei einem herkömmlichen Mikroprozessor darstellen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN:
  • Die Fig. 1A-1G sind schematische Abbildungen, die Formatbeispiele von erfindungsgemäßen Registergruppenwechselbefehlen darstellen.
  • Das in der Fig. 1A gezeigte Format ist ein Format, das für einen Befehl geeignet ist, der für den Wechsel einer Registergruppe (im folgenden als Registerbank bezeichnet) zu einer benachbarten Registerbank unter einer Anzahl von Registerbanken verwendet wird. Ein Operationscode-Spezifikationsfeld OP&sub1; enthält einen Code für das Hinauf- oder Herunterzählen einer Registerbanknummer. Das dem Operationscode-Spezifikationsfeld OP&sub1; folgende Feld R ist dafür vorgesehen, anzuzeigen, ob eine Übertragung des Registerinhalts erfolgt ist oder nicht, und wird durch ein Bit gebildet. Wenn dieses Feld R auf "0" gesetzt ist, wenn von einer Registerbank (zum Beispiel BN&sub1;) auf die unmittelbar vorhergehende oder folgende Registerbank BNi-1 oder BNi+1 gewechselt wird, wird die Bank gewechselt, ohne daß der Inhalt eines der Register in der Registerbank BNi übertragen wird.
  • Andererseits wird, wenn das Feld R auf "1" gesetzt ist, bei den Registern, die durch das Register-Spezifikationsfeld RN-list bezeichnet sind, das dem Feld R folgt, angezeigt, daß der Inhalt davon nach dem Wechsel der Registerbank zu den entsprechenden Registern der Registerbank BNi-1 bzw. BNi+1 übertragen wird.
  • Es wird darüberhinaus bei dieser Ausführungsform, ohne darauf beschränkt zu sein, angenommen, daß jede Registerbank 16 Register umfaßt, daß das Register-Spezifikationsfeld Rn-list aus 16 Bit gebildet wird, und daß das Register, zu dem der Inhalt zu übertragen ist, gemäß der Bit-Entsprechung bestimmt werden kann. Es wird zum Beispiel bei dem Beispiel der Fig. 1A angezeigt, daß nach dem Wechsel der Inhalt des ersten und vierten Registers R&sub1; und R&sub4; der verwendeten Registerbank zum ersten und vierten Register in der Register-Bestimmungsbank zu übertragen ist.
  • Die Fig. 3A ist eine Abbildung, die den Fall zeigt, bei dem unter Verwendung dieses Befehls die Registerbank von BN&sub1; in BN&sub2; geändert (hinaufgezählt) wird. Es wird in diesem Fall jedoch ein Befehl (als IBNR bezeichnet) verwendet, um die Banknummer hinaufzuzählen. Um die Registerbank von BN&sub2; auf BN&sub1; zurückzuführen, braucht nur ein Befehl (als DBNR bezeichnet) zum Hinabzählen der Banknummer verwendet zu werden, wobei das Feld R und das Register-Spezifikationsfeld Rn-list nur wie oben angegeben gesetzt zu werden braucht.
  • Als nächstes wird das in der Fig. 1B gezeigte Befehlsformat erläutert. Dieses Format ist für einen Befehl (als CBNR bezeichnet) geeignet, der die verwendete Registerbank in eine Registerbank an einer davon entfernten Stelle (d. h. nicht daran angrenzend) ändert.
  • Dieser CBNR-Befehl ist so strukturiert, daß er zwischen dem Feld R und dem Register-Spezifikationsfeld Rn-list des Befehlsformates der Fig. 1A ein unmittelbare-Daten-Spezifikationsfeld Imm aufweist, um eine Registerbanknummer des Bestimmungsortes der Änderung anzugeben. Mit diesem CBNR-Befehl wird die Registerbank zum Beispiel von BN&sub0; auf BN&sub2; gewechselt. Des weiteren kann bei diesem Vorgang durch die Angabe beliebiger Register in der Bank, zum Beispiel die in der Fig. 3B gezeigten Register R&sub1; und R&sub4;, die Registerbank mit oder ohne einer Übertragung des Inhaltes der Register gewechselt werden. Das Vorhandensein oder Nichtvorhandensein der Registerübertragung wird durch die Information im Feld R bestimmt, während der Inhalt des Befehls durch die Information im Operations-Spezifikationsfeld OP&sub2; festgelegt wird.
  • Obwohl darauf nicht beschränkt, wird bei dieser Ausführungsform das unmittelbare-Daten-Spezifikationsfeld Imm aufgrund der Beziehungen bezüglich der Operationswortlänge auf eine Länge von 8 Bit gesetzt. Als Ergebnis können bis zu 256 Registerbanken behandelt werden.
  • Zusätzlich wird, wenn mit einem CBNR-Befehl ein Registerbankwechsel erfolgte, der Vorgang der Rückkehr zur ursprünglichen Registerbank erleichtert, wenn die ursprüngliche Registerbanknummer vor dem Wechsel in einem Stackbereich oder dergleichen gesichert wurde. Folglich wird in einem solchen Fall mit einem Befehl (als PBNR bezeichnet) mit einem Format, das identisch mit dem in der Fig. 1A gezeigten Format ist, die ursprüngliche Registerbanknummer aus dem Stack zugeführt, was es möglich macht, die ursprüngliche Registerbank wiederzugewinnen, ohne den oben beschriebenen CBNR-Befehl zu verwenden.
  • Als nächstes wird das in der Fig. 1C gezeigte Befehlsformat erläutert. Dieses Format umfaßt ein Operationscode-Spezifikationsfeld OP&sub3; und ein Register-Spezifikationsfeld Rn-list. Es ist kein Feld R zur Anzeige, ob eine Übertragung des Registerinhaltes erfolgt oder nicht, vorgesehen. Die Information, die das Vorhandensein oder das Nichtvorhandensein einer Übertragung des Registerinhaltes betrifft, ist im Operations-Spezifikationscode OP&sub3; enthalten. Obwohl nicht darauf beschränkt, wird das Operationscode-Spezifikationsfeld OP&sub3; aus acht Bit gebildet. Wenn dieser Befehl ausgeführt wird, wird die Registergruppe wie in der Fig. 3A gezeigt gewechselt.
  • Als nächstes wird das in der Fig. 1D gezeigte Befehlsformat beschrieben. Dieses Format umfaßt ein Operationscode-Spezifikationsfeld OP&sub4;, ein unmittelbare-Daten-Spezifikationsfeld Imm und ein Register-Spezifikationsfeld Rn-list. Es ist kein Feld R zur Anzeige, ob eine Übertragung des Registerinhaltes erfolgt oder nicht, vorgesehen. Die Information, die das Vorhandensein oder das Nichtvorhandensein einer Übertragung des Registerinhaltes betrifft, ist im Operations-Spezifikationscode OP&sub4; enthalten. Wenn dieser Befehl ausgeführt wird, wird die Registergruppe wie in der Fig. 3B gezeigt gewechselt.
  • Als nächstes wird das in der Fig. 1E gezeigte Befehlsformat beschrieben. Dieses Format umfaßt ein Operationscode-Spezifikationsfeld OP&sub5;, ein Übertragungs-Vorhandensein/Nichtvorhandensein-Spezifikationsfeld R, ein unmittelbare-Daten-Spezifikationsfeld Imm, ein Übertragungsquellenregister-Spezifikationsfeld Rn-list (Quelle) und ein Übertragungsbestimmungsregister Spezifikationsfeld Rn-list (Bestimmung). Das Übertragungsbe- Stimmungsregister-Spezifikationsfeld Rn-list (Bestimmung) ist entsprechend der Anzahl der Register in der Registerbank in 16 Felder RL&sub0;-RL&sub1;&sub5; aufgeteilt. Jedem Feld der Felder RL&sub0;-RL&sub1;&sub5; ist ein Bereich von vier Bit zugeordnet, um die Registernummer des Übertragungs-Bestimmungsortes anzuzeigen. Zum Beispiel bezeichnet das Feld RL&sub2; das siebente Register, das heißt das Register R&sub7; in der Übertragungs-Bestimmungs-Registerbank. Des weiteren bezeichnet das Feld RL&sub1;&sub5; das zwölfte Register, das heißt das Register RL&sub1;&sub2; in der Übertragungs-Bestimmungs-Registerbank. Die Fig. 3C ist eine Abbildung, die beispielhaft den Fall zeigt, bei dem die Registerbank gemäß dem in der Fig. 1E gezeigten Befehl gewechselt wird. Von den Registern in der Registerbank BN&sub0; werden die Register R&sub2; und R&sub1;&sub5;, die zu übertragen sind, durch die Information in dem Übertragungsquellenregister Spezifikationsfeld Rn-list (Quelle) bezeichnet. Die Banknummer BN&sub2; der Registerbank nach dem Wechsel wird durch die Information im unmittelbare-Daten-Spezifikationsfeld Imm bezeichnet. Bei Verwendung des in der Fig. 1E gezeigten Befehlsformates wird eine Übertragung zwischen beliebigen Registern von beliebigen Registerbanken möglich.
  • Als nächstes wird das in der Fig. 1F gezeigte Befehlsformat beschrieben. Dieses Format umfaßt ein Operationscode-Spezifikationsfeld OP&sub6;, ein unmittelbare-Daten-Spezifikationsfeld Imm, ein Übertragungsquellenregister-Spezifikationsfeld Rn-list (Quelle) und ein Übertragungsbestimmungsregister-Spezifikationsfeld Rn-list' (Bestimmung). Anders als beim Format der Fig. 1E ist hier das Übertragungsbestimmungsregister-Spezifikationsfeld Rn-list' in zwei Felder RLa und RLb aufgeteilt. Jedem Feld der Felder RLa und RLb sind vier Bit zugeordnet, um eine Registernummer in der Registerbank nach dem Wechsel anzuzeigen. Dieses Befehlsformat ist besonders in dem Fall effektiv, daß die Anzahl der zu übertragenden Register auf zwei oder weniger begrenzt ist. Dies liegt daran, daß die Gesamtbitlänge des Befehlsformates minimal gemacht werden kann. Zum Beispiel wird das Übertragungsbestimmungsregister-Spezifikationsfeld Rn-list (Bestimmung) der Fig. 1E aus 64 Bit gebildet, während das Übertragungsbestimmungsregister-Spezifikationsfeld Rn-list' (Bestimmung) der Fig. 1F aus nur acht Bit gebildet werden kann. Darüberhinaus ist es bei dem Format der Fig. 1F erforderlich, daß eine Information im Operations-Spezifikationsfeld OP&sub6; zur Bildung einer Entsprechung zwischen der Übertragungsquellen- Registernummer und der Übertragungsbestimmungsort-Registernummer enthalten ist. Das heißt, die Entsprechung wird derart gebildet, daß der Übertragungs-Bestimmungsort des Registers R&sub2;, der durch das Übertragungsquellenregister-Spezifikationsfeld Rn-list (Quelle) angegeben wird, im Feld RLa angezeigt wird, und daß der Übertragungs-Bestimmungsort des Register R&sub1;&sub5; durch das Register RLb angegeben wird. Die Fig. 3C zeigt ein Beispiel für den Fall, daß die Registerbank gemäß den in Fig. 1F gezeigten Befehl gewechselt wird.
  • Als nächstes wird das in der Fig. 1G gezeigte Befehlsformat beschrieben. Dieses Format umfaßt ein Operationscode-Spezifikationsfeld OP&sub7;, ein unmittelbare-Daten-Spezifikationsfeld Imm und ein Übertragungsquellenregister-Spezifikationsfeld Rn-list (Quelle). Die Fig. 3D zeigt ein Beispiel für den Fall, daß die Registerbank gemäß dem in der Fig. 1G gezeigten Befehl gewechselt wird. Bei diesem Befehlsformat ist kein Übertragungs-Bestimmungsort-Spezifikationsfeld vorgesehen. Wenn es Register gibt, die bei einem Wechsel der Registerbank zu übertragen sind, werden die Register beginnend mit dem Register R&sub0; angezeigt, das in der neuen Registerbank BN&sub2; die kleinste Registerbanknummer hat. Eine solche Spezifikationsfolge wird durch die Information im Operationscode-Spezifikationsfeld OP&sub7; bestimmt.
  • Anhand der Fig. 4 erfolgt nun die Beschreibung eines Beispieles für die Hardware-Konfiguration eines Mikroprozessors, die die Ausführung eines Registerbank-Wechselbefehls mit dem oben beschriebenen Format erlaubt.
  • Der Mikroprozessor dieser Ausführungsform ist mit einem Steuerabschnitt für das mikroprogrammgesteuerte System versehen. Das heißt, daß der LSI-Chip, der den Mikroprozessor bildet, einen Mikro-Festwertspeicher (ROM) 2 beinhaltet, in dem ein Mikroprogramm gespeichert ist. Auf den Mikro-ROM 2 wird mittels eines Mikro-Adressendekoders 5 zugegriffen, um die das Mikroprogramm bildenden Mikrobefehle aufeinanderfolgend auszulesen.
  • Die von einer Mikro-Adressengeneratorschaltung 4 auf der Basis eines Operationscodes eines Makrobefehls, der in ein Befehlsregister 3 eingegeben wurde, erzeugte Adresse wird dem Mikro-Adressendekoder 5 zugeführt. Durch Dekodieren der Adresse wird der erste Befehl einer Gruppe von Mikrobefehlen zur Ausführung des Makrobefehles ausgelesen, und es werden dann die Steuersignale für die Komponenten wie einer Ausführungseinheit 6 mit verschiedenen Arbeitsregistern REG&sub1;-REGn, einem Datenpuffer DB, einem Rechenwerk ALU und dergleichen erzeugt. Aus der Gruppe der mit dem Makrobefehl verknüpften Mikrobefehle wird auf der Basis der nächsten Adresse des vorhergehenden Mikrobefehles und der Adresse von der Mikro-Adressengeneratorschaltung 4 der zweite und folgende Mikrobefehl ausgelesen, wenn der Code im näch- Ste-Adresse-Feld des Mikrobefehles, der vorher ausgelesen wurde, zum Mikro-Adressendecoder 5 geführt wird. Mit den Steuersignalen, die erzeugt werden, nachdem eine Reihe von Mikrobefehlen ausgelesen wurden, wird die Ausführungseinheit 6 gesteuert und zum Beispiel ein Makrobefehl wie ein Addierbefehl, der mit ADD bezeichnet wird, ausgeführt.
  • Bei dieser Ausführungsform ist eine Speicherzugriffs-Steuerschaltung 7 vorgesehen, die eine Funktion zur Steuerung einer Gruppe von Allzweckregistern 12 mit 16 Registerbanken BN&sub0;-BN&sub1;&sub5; und einer Gruppe von Steuerregistern 11 aufweist. Die 16 Registerbanken BN&sub0;-BN&sub1;&sub5; umfassen zum Beispiel jeweils, obwohl nicht darauf beschränkt, 32-Bit-Register 0-15, wie es in der Fig. 2 gezeigt ist. Das Steuerregister ist mit einem Statusregister SR, einem Stackzeiger SP und einem Banknummernregister BNR versehen, das die gerade in Gebrauch befindliche Banknummer festhält. Bei dieser Ausführungsform wird die Gruppe von Allzweckregistern 12 mit den Registerbanken BN&sub0;-BN&sub1;&sub5; und die Gruppe der Steuerregister 11 aus einem Direktzugriffspeicher (RAM) gebildet, der über einen internen Bus 10 mit einem Datenpuffer DB in der Ausführungseinheit 6 verbunden ist.
  • Darüberhinaus weist das Befehlsregister 3 einen First-in-First-out-(FIFO-)-Speicher auf. Der in einem externen Speicher gespeicherte Makrobefehl wird auf einer Byte-für-Byte-Basis ausgelesen, wenn die Speicherzugriffssteuerschaltung 7 auf einen Adressenbus 8 zugreift, und dann wird der Makrobefehl über den Datenbus 9 zum Befehlsregister 3 mit dem FIFO-Speicher geliefert. Auf diese Weise wird eine Anzahl von Operationscodes und Operanden vorab in das Befehlsregister eingegeben.
  • Wie oben beschrieben kann bei dem Mikroprozessor dieser Ausführungsform jede Aufgabe durch Verwendung einer der 16 Registerbanken BN&sub0;-BN&sub1;&sub5; bearbeitet werden.
  • Wenn in dem Befehlsregister 3 des Mikroprozessors ein Registerbankwechselbefehl IBNR oder DBNR wie in der Fig. 1A gezeigt gespeichert ist, wird aus dem Mikro-ROM 2 ein entsprechender Mikrobefehl ausgelesen. Die Speicherzugriffssteuerschaltung 7 wird durch den Mikrocode gesteuert, wenn zum Beispiel die von der Speicherzugriffssteuerschaltung bis dahin verwendete Registerbank BNi ist, wobei die Änderung ausgeführt wird, um die folgende Bearbeitung anhand von BNi+1 oder BNi-1 zu bewirken. Wenn das Bit des Feldes R für die von Rn-list bezeichneten Register "1" ist, erfolgt eine Bearbeitung, bei der die Inhalte der Register zu den entsprechenden Registern einer anderen Bank oder zu dafür besonders bezeichneten Registern bewegt werden. Darüberhinaus wird die Banknummer im Banknummernregister BNR geändert.
  • Andererseits wird, wenn ein entsprechender Mikrobefehl ausgelesen wird, nachdem ein Registerbankänderungsbefehl CBNR wie in der Fig. 1B gezeigt im Befehlsregister 3 gespeichert wurde, die vom unmittelbare-Daten-Spezifikationsfeld Imm angegebene Registerbanknummer in das Banknummernregister BNR eingeschrieben und damit die Banknummer geändert. Gleichzeitig werden die angegebenen Register übertragen. Darüberhinaus wird die Gebrauchs-Banknummer, die bisher im Banknummernregister BNR enthalten war, zusammen mit dem Inhalt des Programmzählers und dergleichen in einem Stackbereich des externen Speichers gespeichert.
  • Wenn der Registerbankwechselbefehl PBNR geladen wird, wird die gesicherte ursprüngliche Registernummer aus dem Stackbereich ausgelesen, der durch einen Stackzeiger in der Steuerregistergruppe 11 angezeigt wird, und in das Bankregister BNR geladen, und gleichzeitig wird die in Gebrauch befindliche Bank in der Allzweckregistergruppe 12 geändert, und es werden die erforderlichen Inhalte der Register übertragen.
  • Folglich kann durch Anwendung des oben beschriebenen Befehls CBNR, zum Beispiel bei einem Subroutinenaufruf, eine andere Aufgabenbearbeitung dadurch ausgeführt werden, daß ein Sprung von der Hauptroutine zu einer Subroutine mit einer Übertragung von Daten wie von Parametern bewirkt wird; darüberhinaus kann durch Anwendung des PBNR-Befehls die Steuerung schnell zur ursprünglichen Position der Hauptroutine zurückgeführt werden, um die ursprüngliche Bearbeitung weiterzuführen.
  • Die Fig. 5 ist eine schematische Abbildung, die ein anderes Konfigurationsbeispiel für einen Mikroprozessor zeigt, der die Ausführung des erfindungsgemäßen Registerbankwechselbefehles ermöglicht. Der Unterschied zu dem in der Fig. 4 gezeigten Mikroprozessor liegt in der Konfigurationseinrichtung der Steuerregistergruppe. Die Steuerregistergruppe 11 ist bei der Fig. 4 im RAM angeordnet, während die Steuergruppe der Fig. 5 aus einer Anzahl von Registern als zweckbestimmten Speichern gebildet wird. Wie die Arbeitsregister REG&sub1;-REGn bei derselben Art der Konfiguration können diese Register in der Ausführungseinheit 6 vorgesehen sein.
  • Die Fig. 6 ist eine Abbildung, die ein weiteres Konfigurationsbeispiel für einen Mikroprozessor zeigt, der die Ausführung des erfindungsgemäßen Registerbankwechselbefehles ermöglicht. Der Unterschied liegt im Vergleich zu dem Mikroprozessor der Fig. 5 in der Konfigurationseinrichtung der Registerbanken BN&sub0;-BN&sub1;&sub5;. Die Registerbanken BN&sub0;-BN&sub1;&sub5; sind bei der Fig. 5 im RAM angeordnet, während die Registerbanken BN&sub0;-BN&sub1;&sub5; bei der Fig. 6 aus einer Anzahl von Registern als zweckbestimmten Speichern gebildet werden. Wie die Arbeitsregister REG&sub1;-REGn bei derselben Art der Konfiguration können diese Register in der Ausführungseinheit 6 vorgesehen sein. Durch das Anordnen der Registerbanken BN&sub0;-BN&sub1;&sub5; in der Ausführungseinheit 6 braucht kein Datenpuffer DB zum Festhalten der Inhalte der Registerbanken BN&sub0;-BN&sub1;&sub5; in der Ausführungseinheit 6 vorgesehen zu werden. Darüberhinaus ist eine Registerzugriffssteuerung 7' anstelle der Speicherzugriffssteuerung 7 vorgesehen.
  • Zusätzlich ist der erfindungsgemäß vorgeschlagene Registerbankwechselbefehl nicht auf die Formate der Fig. 1A-1G beschränkt, es können zum Beispiel die Feldlängen des Register- Spezifikationsfeldes Rn-list und des unmittelbare-Daten-Spezifikationsfeldes Imm natürlich entsprechend der Kapazität des RAM (12) als der Allzweckregistergruppe und der Anzahl von Registern jeder Registerbank BNi geändert werden.
  • Erfindungsgemäß wird ein Mikroprozessor mit einer Anzahl von Registergruppen mit einem neuen Befehl vorgesehen, der mit einer Registerspezifikation für das Ändern einer Registergruppe zum Übertragen des Inhaltes der Register zu einem Register in einer anderen Registergruppe verwendet wird, wodurch der Wechsel einer Registergruppe mit oder ohne einer Übertragung von Daten wie Parametern erfolgen kann. Dies macht eine schnelle Aufgabenänderung möglich und einen schnellen Subroutinenaufruf, was dazu führt, daß die Flexibilität beim Registergruppenwechsel verbessert und die Ausführungsgeschwindigkeit des Systems erhöht ist.
  • Während die Erfindung des vorliegenden Erfinders konkret mit Bezug auf die bestimmten Ausführungsformen beschrieben wurde, wird sie nicht durch die Ausführungsformen, sondern nur durch die anliegenden Ansprüche eingegrenzt. Zum Beispiel können die Registerbanken BN&sub0;-BN&sub1;&sub5; so ausgebildet sein, daß sie bezüglich des Mikroprozessors 1 extern angeordnet sind. Obwohl die Erfindung des vorliegenden Erfinders für den Fall beschrieben wurde, daß die Erfindung auf einen Mikroprozessor angewendet wird, das heißt einem Anwendungsfeld, das der Hintergrund der Erfindung ist, ist sie darüberhinaus nicht auf dieses Anwendungsfeld beschränkt, da heißt, die vorliegende Erfindung kann generell für ein programmgesteuertes Datenverarbeitungssystem wie einem Computer und einem Minicomputer verwendet werden.

Claims (5)

1. Datenverarbeitungssystem zum Verarbeiten mehrerer Aufgaben, deren jede mit dem Inhalt einer von mehreren Registergruppen (BN&sub0;, BN&sub1;, . . .) arbeitet, wobei gemäß einem Registerwechselbefehl ein Wechsel von einer Registergruppe zu einer anderen erfolgt, dadurch gekennzeichnet, daß der Registerwechselbefehl Informationen (Rn-list (SOURCE)) zum Spezifizieren mindestens eines Registers (R&sub0;, R&sub1;, . . .) in der besagten einen Registergruppe enthält, und daß der Inhalt des spezifizierten mindestens einen Register in der besagten einen Registergruppe entsprechend dem Registerwechselbefehl auf die andere Registergruppe übertragen wird.
2. System nach Anspruch 1, wobei der Registerwechselbefehl ferner Informationen (Rn-list(DESTINATION)) zum Spezifizieren mindestens eines Registers (Rl&sub0;, Rl&sub1; . . .) in der besagten anderen Registergruppe enthält, auf die der Inhalt des besagten mindestens einen Registers (R&sub0;, R&sub1;, . . .) überragen werden soll.
3. System nach Anspruch 1 oder 2, wobei der Registerwechselbefehl ferner eine Angabe (R) enthält, ob der Inhalt eines der Register (R&sub0;, R&sub1;, . . .) der besagten einen Registergruppe auf eine andere Registergruppe übertragen werden soll.
4. System nach einem der Ansprüche 1 bis 3, wobei der Registerwechselbefehl eine Anzahl von Bits enthält, deren jedes einem Register (R&sub0;, R&sub1;, . . .) in einer Registergruppe (BN&sub0;, BN&sub1;, . . .) entspricht und angibt, ob der Inhalt des jeweiligen Registers zu übertragen ist.
5. System nach einem der Ansprüche 1 bis 4, wobei der Registerwechselbefehl ferner eine Information (Imm) zum Spezifizieren einer Banknummer der anderen Registergruppe enthält.
DE8686114722T 1985-10-25 1986-10-23 Datenverarbeitungssystem. Expired - Fee Related DE3688232T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60237358A JPS6298434A (ja) 1985-10-25 1985-10-25 デ−タ処理システム

Publications (2)

Publication Number Publication Date
DE3688232D1 DE3688232D1 (de) 1993-05-13
DE3688232T2 true DE3688232T2 (de) 1993-09-09

Family

ID=17014208

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686114722T Expired - Fee Related DE3688232T2 (de) 1985-10-25 1986-10-23 Datenverarbeitungssystem.

Country Status (7)

Country Link
US (1) US4833640A (de)
EP (1) EP0220682B1 (de)
JP (1) JPS6298434A (de)
KR (1) KR940009095B1 (de)
DE (1) DE3688232T2 (de)
HK (1) HK28296A (de)
SG (1) SG59875G (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JPS6355636A (ja) * 1986-08-27 1988-03-10 Hitachi Ltd デ−タ処理システム
JPH0648461B2 (ja) * 1987-07-09 1994-06-22 日本電気株式会社 マイクロプログラムの転送レジスタ指定方式
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
JP2633263B2 (ja) * 1987-09-14 1997-07-23 株式会社ハドソン データ転送制御装置
ATE75863T1 (de) * 1987-10-27 1992-05-15 Siemens Nixdorf Inf Syst Schaltungsanordnung fuer verarbeitungseinheiten einer zentraleinheit mit einer reihe von mehrzweckregistern.
JP3034873B2 (ja) * 1988-07-01 2000-04-17 株式会社日立製作所 情報処理装置
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
JP2669158B2 (ja) * 1991-01-22 1997-10-27 三菱電機株式会社 データ処理装置
JPH0527970A (ja) * 1991-07-18 1993-02-05 Seikosha Co Ltd 演算装置
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5640582A (en) * 1992-05-21 1997-06-17 Intel Corporation Register stacking in a computer system
US5497493A (en) * 1993-09-30 1996-03-05 Intel Corporation High byte right-shift apparatus with a register alias table
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
JPH1091432A (ja) * 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびプログラム実行装置
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
DE19827914C1 (de) * 1998-06-23 1999-10-28 Siemens Ag Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen
EP1050799A1 (de) * 1999-05-03 2000-11-08 STMicroelectronics S.A. Ausführung eines Rechnerprogramms
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US8793426B2 (en) * 2009-02-11 2014-07-29 Microchip Technology Incorporated Microcontroller with linear memory access in a banked memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US4530047A (en) * 1980-12-15 1985-07-16 Texas Instruments Incorporated Dual registry digital processor system with external memory interface
US4532587A (en) * 1981-08-26 1985-07-30 Texas Instruments Incorporated Single chip processor connected to an external memory chip
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
JPS6140650A (ja) * 1984-08-02 1986-02-26 Nec Corp マイクロコンピユ−タ

Also Published As

Publication number Publication date
DE3688232D1 (de) 1993-05-13
SG59875G (en) 1995-09-01
KR940009095B1 (ko) 1994-09-29
HK28296A (en) 1996-02-23
US4833640A (en) 1989-05-23
EP0220682A3 (en) 1988-04-20
JPS6298434A (ja) 1987-05-07
EP0220682B1 (de) 1993-04-07
EP0220682A2 (de) 1987-05-06
KR870004367A (ko) 1987-05-09

Similar Documents

Publication Publication Date Title
DE3688232T2 (de) Datenverarbeitungssystem.
DE3688824T2 (de) Datenverarbeitungssystem.
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
DE2457312C3 (de) Anordnung zur Durchführung arithmetischer oder logischer Operationen an ausgewählten Gruppen aufeinanderfolgender Bits in einer Datenverarbeitungsanordnung
DE2835095C2 (de) Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren
DE2542751C2 (de) Datenverarbeitungsanlage
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2424931A1 (de) Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten
DE2714805A1 (de) Datenverarbeitungssystem
DE2625113C2 (de) Speicherschutzeinrichtung
DE3709675A1 (de) Arithmetik-logik-einheit
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE3307194C2 (de)
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE2418921C2 (de) Vorrichtung zum Speichern von Mikroprogrammen in einer Datenverarbeitungsanlage
DE2759120C2 (de)
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
DE2938929C2 (de) Datenverarbeitungsgerät
DE2847479A1 (de) Schablonenfamilien-schnittstelleneinrichtung
DE3207057A1 (de) Rechen- und steuerwerk fuer eine ablaufsteuerung
DE3535518A1 (de) Bitoperations-verarbeitungsverfahren
DE3587326T2 (de) Programmierbare Datenpfadbreite in einer programmierbaren Einheit mit mehreren Niveaus von Unterbefehlssätzen.
DE3633898A1 (de) Einrichtung zur folgesteuerung eines aeusseren kreises, beispielsweise eines pipelineprozessors

Legal Events

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