DE3889578T2 - Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. - Google Patents

Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.

Info

Publication number
DE3889578T2
DE3889578T2 DE3889578T DE3889578T DE3889578T2 DE 3889578 T2 DE3889578 T2 DE 3889578T2 DE 3889578 T DE3889578 T DE 3889578T DE 3889578 T DE3889578 T DE 3889578T DE 3889578 T2 DE3889578 T2 DE 3889578T2
Authority
DE
Germany
Prior art keywords
register
indicator
cell
information
cells
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
DE3889578T
Other languages
English (en)
Other versions
DE3889578D1 (de
Inventor
Takeshi C O Patent Divi Aikawa
Ken-Ichi C O Patent Divi Maeda
Tsukasa C O Patent Divi Matoba
Mitsuyoshi C O Patent Okamura
Mitsuo C O Patent Divisi Saito
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of DE3889578D1 publication Critical patent/DE3889578D1/de
Application granted granted Critical
Publication of DE3889578T2 publication Critical patent/DE3889578T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf einen hochintegrierten Mikroprozessor und insbesondere auf eine Vorrichtung zum Speichern bzw. Sichern und Wiederherstellen bzw. Zurückspeichern einer Registerinformation. welche vorübergehend in einem Mehrzweckregister einer Zentraleinheit bzw. Zentralprozessoreinheit gespeichert ist.
  • Vor kurzem sind eine Architektur von Hochleistungs-Mikroprozessoren und ein Hochintegrations-Herstellungsverfahren davon bedeutend erweitert bzw. umgestaltet worden. Insbesondere ist die Verarbeitungskapazität von Mikroprozessoren außerordentlich verbessert worden. um fortgeschrittene bzw. verbesserte Mikroprozessoren zu ermöglichen, die eine Informationsverarbeitungsumgebung liefern können, welche für ein Multi-Task-Betriebssystem geeignet ist. Unter diesen Mikroprozessoren diesen Typs ist ein Mikroprozessor bekannt, der auf seinem Chip Anweisungen für die effiziente interne Ausführung eines spezifischen Multi-Task-Betriebssystems aufweist, die einer einzelnen Maschine ermöglicht, eine Vielzahl von verschiedenen Informationsverarbeitungsvorgängen (d.h. Aufgabeneinheiten bzw. Tasks) in einer parallelen Weise auszuführen. In dem Bereich von Spezialmaschinen ist ein Mikroprozessor für eine Maschine (die als eine "PROLOG-Maschine" bezeichnet wird) weitgehend entwickelt worden der sehr mit einer "PROLOG"-Sprache verknüpft ist, was eine typische von den Computersprachen ist, die für Programme für Künstliche Intelligenz geeignet sind.
  • In jeder der obigen Maschinen werden Registerinhalte (z.B. werden eine Regelungsinformation, Anweisungen, Daten und dergleichen auch als "Registerinformation" in dieser Spezifikation bezeichnet) in einem Mikroprozessor häufig geändert. Zum Beispiel nehme man an, daß eine gegebene Task auf einem Multi-Task-Betriebssystem ausgeführt wird und zu der gleichen Zeit eine andere Task in einer parallelen Weise ausgeführt werden muß. In diesem Fall werden gespeicherte Inhalte eines internen Registers derart geändert, daß Registerinhalte eines aktuellen Registers in einen Hauptspeicher gesichert werden und eine erforderliche Information bei leeren Registeradressen des Registers gespeichert wird. Wenn eine Ausführung der Task beendet ist, wird die ursprüngliche Information, die in den Hauptspeicher gesichert wurde, an das Register zurückgegeben wobei auf diese Weise die Registerinhalte zurückgespeichert werden. Gemäß dem Multi-Task-Betriebssystem muß ein Verfahrens- bzw. Prozeßumschalten in Einheiten von vorher bestimmten Zeitintervallen von mehreren Millisekunden ausgeführt werden. Daher muß ein Sichern/Zurückspeichern von Prozessorinformation, die das Verfahren bzw. den Prozeß, das bzw. der gegenwärtig ausgeführt wird, betrifft, häufig und schnell zwischen dem Register und dem Hauptspeicher in Einheiten der obigen Zeitintervalle wiederholt werden.
  • In der PROLOG-Maschine muß, wenn ein sogenannter "Rückschritt", in welchem eine Systemumgebung in einen Zustand einen Schritt vor dem aktuellen Zustand zurückkehrt, während eine Vereinheitlichungsoperation erzeugt wird, auf einem Rückschluß-Programmsystem ausgeführt wird, die gesamte Information, welche die Umgebung bis zu einem nächstgelegenen Verzweigungspunkt (der als ein "Wahlpunkt" bezeichnet wird) unter einer Vielzahl von Wahlpunkten, die bislang passiert wurden, betrifft, in ein Register zurückgespeichert werden. Zu diesem Zweck wird eine große Menge an Information zwischen dem Hauptspeicher und dem internen Register übertragen.
  • Von einem mikroskopischen Standpunkt aus müssen, wenn Anweisgungen, so wie ein "Subroutine-Aufruf" oder ein "Rücksprung", welche in Softwareprogrammen eingeschlossen sind, ausgeführt werden sollen, während eine gegebene Task ausgeführt wird, aktuelle Registerinhalte wiedereingeschrieben bzw. zurückgeschrieben werden. In diesem Fall wird wieder aktuelle Information, die in dem Register gespeichert ist, in den Hauptspeicher gesichert, und eine Information, welche zum Ausführen der obigen Anweisungen erforderlich ist, wird in das Register geschrieben.
  • Gemäß aktuellen bzw. gegenwärtigen Mikroprozessoren ist eine Frequenz des Sicherns/Zurückspeicherns der Registerinhalte signifikant erhöht. Daher wird, wenn das herkömmliche Register-Sicherungs/Zurückspeicher-Verfahren eingeführt wird, eine Operations- bzw. Betriebsgeschwindigkeit des Mikroprozessors reduziert. Der Grund dafür lautet wie folgt. Das heißt, gemäß dem herkömmlichen Register- Sicherungs/Zurückspeicher-Verfahren müssen zu jeder Zeit, zu der ein Sichern/Zurückspeichern ausgeführt werden soll, Verwaltungsoperationen zum Regeln bzw. Steuern jedes Abschnitts ausgeführt werden, um ein Datenzugreifen in das interne Register und den Hauptspeicher und eine Datenübertragung dazwischen auszuführen. Daher wird. weil eine für Verwaltungsoperationen erforderliche Zeit erhöht wird, eine Zeitspanne für einen Bereitschaftszustand für eine Informationsverarbeitung erhöht.
  • Herkömmlicherweise ist bei einer Betrachtung der obigen Situation ein verbesserter Mikroprozessor entwickelt worden, so daß ein Sicherungs/Zurückspeicher-Schritt von all den Registerinhalten in dem Mikroprozessor durch nur eine einzelne Anweisung ausgeführt werden kann. Jedoch kann gemäß solch einer Software-Verbesserung, obwohl eine Zeitspanne, die zum Abrufen der Anweisung in einer Zentralprozessoreinheit erforderlich ist, reduziert werden kann, eine Zeitspanne, welche für ein Datenübertragen zwischen dem Register und dem Hauptspeicher tatsächlich erforderlich ist, überhaupt nicht reduziert werden.
  • Wir bestätigen die Offenbarung in US-A-4,410,939 von einem System für eine Programm-Unterbrechungsverarbeitung, in welchem zwei Flip-Flops einer Anzahl von Registerteilen zugeordnet sind; einer der Flip-Flops zeigt die aktuelle Auswahl der Registerteile an. Diese Offenbarung wird in dem Teil vor dem kennzeichnenden Teil von Anspruch 1 zusammengefaßt.
  • Aus WO 83/02016 ist auch bekannt, einen modularen Datenprozessor mit Arbeitspufferspeicher, die mit wahlfreiem Zugriff eingebettet sind, zu schaffen, die ein Doppel- Puffern zwischen zwei Ausführungsmodulen vorsehen. Jedes Modul besitzt seinen Arbeitspufferspeicher, der in zwei Seiten geteilt ist; eine die gelesen werden soll, und die andere, in die geschrieben werden soll.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine neue und verbesserte Vorrichtung zum Sichern und Zurückspeichern von Registerinformation zu schaffen, in der eine Informationsübertragungszeit, die zum Sichern/Zurückspeichern von Registerinhalten zwischen einem Register und einem Hauptspeicher in einem Mikroprozessor enforderlich ist, reduziert ist, wodurch eine Sicherungs/Zurückspeicher-Verarbeitung eines Registerinhalts bei einer hohen Geschwindigkeit ausgeführt wird.
  • Die Erfindung shcafft eine Registervorrichtung wie in Anspruch 1 beansprucht. Somit kann die Hardware-Anordnung bzw. -Ausführung einer Registereinheit verbessert werden. Wenn eine der zwei Zellen ausgewählt ist, dient die andere Zelle als eine Ausweich- bzw. Sicherungszelle für die ausgewählte Zelle.
  • Ein Register-Sicherungs/Zurückspeicher-Regler ist mit einer Registereinheit verbunden. Wenn die erste Registerinformation in ein gegebenes Register der Registereinheit geschrieben werden soll, wählt der Regler eine der ersten und zweiten Zellen des Registers aus (zu dieser Zeit bleibt die andere Zelle als eine nicht ausgewählte Zelle übrig), in welche die erste Registerinformation gespeichert wird. Wenn die erste Registerinformation mit der zweiten Registerinformation zurückgeschrieben werden soll, wählt der Regler die andere Zelle aus und speichert die zweite Registerinformation darin, wodurch die erste Registerinformation in einer der Zellen gehalten wird. Daher muß in dieser Stufe die erste Registerinformation nicht in den Hauptspeicher gesichert werden. Zusätzlich kann, wenn die erste Registerinformation benötigt wird, nachdem sie mit der zweiten Registerinformation zurückgeschrieben worden ist, sie schnell in das entsprechende Register zurückgespeichert werden, indem nur die Zelle ausgewählt wird, welche die erste Registerinformation speichert, ohne eine Sicherungs/Zurückspeicher- Verarbeitung zwischen der Registereinheit und dem Hauptspeicher auszuführen.
  • Die vorliegende Erfindung und ihre Aufgaben und Vorteile werden in einer ausführlichen Beschreibung einer bevorzugten Ausführungsform, die unten präsentiert werden soll, offenkundiger werden.
  • In der ausführlichen, unten präsentierten Beschreibung einer bevorzugten Ausführungsform der Erfindung wird Bezug auf die beiliegenden Zeichnungen genommen, von welchen:
  • Figur 1 ein Blockdiagramm ist, welches eine interne Anordnung eines Mikroprozessors zeigt, der eine Vorrichtung zum Sichern und Zurückspeichern von Registerinformation gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung einschließt;
  • Figur 2 eine schematische Darstellung ist, welche Änderungen in einem Ausführungsmodus-Anzeiger, der durch die Vorrichtung zum Sichern und Zurückspeichern von Registerinformation in Figur 1 geregelt wird, zeigt, die erhalten werden, wenn Aufrufmodus- und Rücksprungmodus-Ereignisse während einer Task-Ausführungsprozedur einer Zentralprozessoreinheit auftreten; und
  • die Figuren 3A bis 7 schematische Darstellungen sind, die zeigen, wie sich gespeicherte Inhalte eines gegebenen Registers einer Registereinheit ändern, wenn eine Sicherungs/Zurückspeicher-Verarbeitung in jedem der Aufruf- und Rücksprungmodi in Übereinstimmung mit Änderungen in Auswahl- bzw. Selektor- und Änderungsanzeigern, die in dem Register vorgesehen sind, ausgeführt wird.
  • Nun bezugnehmend auf Figur 1, besitzt ein Mikroprozessor eine Zentralprozessoreinheit (auf die hierin nachher als eine "CPU" Bezug genommen wird) 10, eine interne Registereinheit 12, einen Hauptspeicher 14 und einen Register- Sicherungs/Zurückspeicher-Regler 16 auf seinem (nicht dargestellten) Chip-Substrat. Ein erster Datenbus 1S dient als ein Daten-Schreibbus für die CPU 10 und die Registereinheit 12. Ein zweiter Datenbus 20 arbeitet bzw. wirkt als ein Daten-Lesebus für die CPU 10 und die Registereinheit 12. Die CPU 10, die Registereinheit 12 und der Hauptspeicher 14 sind miteinander durch die Busse 18 und 20 verbunden. Daher wird unter der Regelung von Regler 16 eine Datenübertragung zwischen der Registereinheit 12 und dem Hauptspeicher 14 zum Sichern/Zurückspeichern von Registerinhalten durch die Busse 15 und 20 ausgeführt. Ein dritter Datenbus 21 erlaubt eine Datenübertragung zwischen dem Hauptspeicher 14 und den ersten und zweiten Datenbussen.
  • Die CPU 10 entspricht einer Hardware-Anordnung eines allgemeinen Mikroprozessors ohne Einschluß einer Mehrzweckregistereinheit: Die CPU 10 wird durch eine arithmetische und logische Einheit (die als eine "ALU" abgekürzt wird), eine Zeitgeber- und Regelungseinheit, einen Programmzähler, ein Anweisungsregister, eine Anweisungs- Decodierungs- und Maschinenzyklus-Codierungs-Einheit und dergleichen gebildet.
  • Die Registereinheit 12 besitzt ein Feld (n + 1) Registern R0, R1, R2, ..., Rn. Wie in Figur 1 gezeigt, schließt jedes Register Ri ein Paar von Zellen C1 und C2 ein. Zelle C1 wird als eine "Vorderzelle" bezeichnet und Zelle C2 wird hierin nachher als eine "Rückzelle" bezeichnet. Die Vorder- und Rückzellen C1 und C2 haben die gleiche Adresse in einer Speicherstelle des Registers, und die CPU 10 kann die Zellen nicht unterscheiden.
  • Jedes Register Ri besitzt Anzeiger-Speicherbits 13a und 13b, um einen Selektoranzeiger SB beziehungsweise einen Änderungsanzeiger WB der Zellen C1 und C2 zu speichern. Der Selektoranzeiger SB besteht aus 1-Bit-Binärdaten, welche darstellen, ob die Vorder- oder Rückzelle C1 oder C2 gegenwärtig in Register Ri ausgewählt ist. Der Änderungsanzeiger WB besteht aus 1-Bit-Binärdaten, welche darstellen, ob eine Registerinformation, welche gegenwärtig verwendet wird, in eine andere neue Registerinformation geändert wird. Mit anderen Worten stellt der Änderungsanzeiger WB dar, ob gespeicherte Inhalte einer Zelle, die gegenwärtig ausgewählt ist, zurückgeschrieben werden, nachdem die Registerzelle umgeschaltet ist. Der Änderungsanzeiger WB wird auf einen logischen Wert "0" zurückgestellt bzw. zurückgesetzt, wenn ein Ereignis in einem Aufrufmodus, sowie eine Subroutine und eine Software-Unterbrechung, und einem Rücksprungmodus, sowie ein Subroutine-Rücksprung und ein Unterbrechungs-Rück sprung, auftritt und eine ausgewählte Zelle zwischen Zellen C1 und C2 von Register Ri gewechselt bzw. geändert wird; und wird auf einen logischen Wert "1" eingestellt bzw. gesetzt, wenn die gespeicherten Inhalte der ausgewählten Zelle mit einer anderen Information zurückgeschrieben werden.
  • Mit anderen Worten wird die Registereinheit 12 durch eine parallele Verbindung eines Feldes von Vorderzellen C1 und dem von Rückzellen C2 gebildet. Jedoch ist die Registereinheit 12 keine einfache, parallele Verbindung dieser zwei Zellenfelder. Das heißt, die Bits 13a und 13b zum Speichern der Anzeiger SB und WB, welche aktuelle Zustände der Vorder- und Rückzellen C1 und C2 repräsentieren, sind für jedes Paar von Zellen vorgesehen, und eine ausgewählte Zelle kann unabhängig in Einheiten von Registern Ri umgeschaltet werden. Mit anderen Worten ist eine Sicherungszelle zusätzlich zu jeder Registeradresse vorgesehen. Wenn eine der zwei Zellen von Register Ri gegenwärtig ausgewählt ist, dient die andere Zelle als eine "Sicherungszelle." für die ausgewählte Zelle. Diese "Sicherungszelle" wird unabhängig zu jeder Zeit geändert. zu der eine ausgewählte Zelle in Register Ri umgeschaltet wird. Zum Beispiel dienen, wenn die Vorderzelle C1 in Register R0 ausgewählt ist und die Rückzelle C2 in R1 ausgewählt ist, die Rückzelle C2 und die Vorderzelle C1 als "Sicherungszellen" in den Registern R0 beziehungsweise R1. Es kann in Register R1, wenn eine ausgewählte Zelle von der Rückzelle C2 zu der Vorderzelle C1 umgeschaltet wird, angenommen werden. daß die Rückzelle C2, welche eine nicht ausgewählte Zelle ist, als eine "Sicherungszelle" für die ausgewählte Zelle C1 dient.
  • Der Daten-Schreibbus 15 ist mit einem Eingangs- bzw. Eingabeanschluß der Registereinheit 12 durch einen ersten, einen Datenfluß regelnden Schalter 22 verbunden. Der Daten-Lesebus 20 ist mit einem Ausgangs- bzw. Ausgabeanschluß der Registereinheit 12 durch einen zweiten, einen Datenfiuß regelnden Schalter 24 verbunden. Die Schalter 22 und 24 können willkürlich ein Umschalten zwischen Zellen C1 und C2 eines gewünschten Registers der Registereinheit 12 unabhängig von den verbleibenden Registern ausführen.
  • Die Schalter 22 und 24 sind mit einem Schreib-Registerselektor 26 beziehungsweise einem Lese-Registerselektor 25 verbunden. Wenn Information, welche in die Registereinheit 12 geschrieben werden soll, zugeführt wird, regelt der Schreib-Registerselektor 26 den Schalter 22 geeignet und schickt die Information an irgendeine der Vorder- und Rückzellen C1 und C2 (die durch den Regler 16 bestimmt ist) bei einer Adresse (d.h. einem Register) einer Register-Speicherstelle, auf die zugegriffen werden soll. Wenn Inhalte (im Register gespeicherte Information) der Registereinheit 12 vorübergehend in den Hauptspeicher 14 durch den Bus 20 gesichert werden sollen, regelt der Lese- Registerselektor 28 den Schalter 24 geeignet. Daher wird eine der Zellen C1 und C2 (die durch den Regler 16 bestimmt ist und in welcher die Information gespeichert ist) bei einer Adresse (d.h. einem Register) der Register-Speicherstelle, auf welche zugegriffen werden soll, mit dem Daten-Lesebus 20 verbunden, so daß die Information ausgelesen und an den Hauptspeicher 14 durch den Datenbus 21 und eine Gatter- bzw. Torschaltung 30 übertragen wird.
  • Der Schreib-Registerselektor 26 ist durch einen Datenbus 32 mit dem Lese- Registerselektor 28 verbunden. Gespeicherte Inhalte der Anzeiger-Bits 13a und 13b von Register Ri der Registereinheit 12 werden durch Datenleitungen 34 und 36 zugeführt auch ein Ausführungsmodus-Anzeiger MF wird den Selektoren 26 und 28 zugeführt. Der Ausführungsmodus-Anzeiger MF besteht aus 1-Bit-Binärdaten, welche darstellen, ob ein Aufrufmodus, so wie ein Subroutine-Aufruf oder eine Unterbrechung. oder ein Rücksprungmodus, sowie ein Subroutine-Rücksprung oder Unterbrechungs- Rücksprung, eines Software-Programmalgorithmus gegenwärtig ausgeführt wird.
  • Der Schreib-Registerselektor 26 empfängt eine Datenschreibanforderung CWR und Adressdaten für ein Datenschreiben bzw. Daten-Schreib-Adressdaten (zum Bestimmen einer Adresse eines Registerspeichers, bei welcher Daten geschrieben werden sollen) CWA von-der CPU 10. Der Selektor 26 empfängt auch eine Daten-Schreibanforderung PWR und Daten-Schreib- Adressdaten (zum Bestimmen einer der Vorder- und Rückzellen C1 und C2 der Adresse des Registerspeichers, bei welcher die Daten geschrieben werden sollen) PWA von dem Regler 16. Der Seiektor 26 regelt den Schalter 22. so daß eine der Zellen C1 und C2, die auf der Grundlage von Änderungsanzeigern SB und WB von jeder Zelle, des Ausführungsmodus-Anzeigers MF und von Daten CWR. CWA, PWR und PWA, die von der CPU 10 und dem Regler 16 zugeführt werden. bestimmt ist, passend mit dem Daten-Schreibbus 18 verbunden wird.
  • Der Lese-Registerselektor 28 empfängt eine Datenleseanforderung CRR und Adressdaten für ein Datenlesen bzw. Daten-Lese-Adressdaten (zum Bestimmen einer Adresse eines Registerspeichers, von welcher Daten ausgelesen werden sollen) CRA von der CPU 10. Der Selektor 28 empfängt eine Daten-Leseanforderung PRR und Daten-Lese-Adressdaten (zum Bestimmen einer der Vorder- und Rückzellen C1 und C2 bei der Adresse des Registerspeichers, von welcher die Daten ausgelesen werden sollen) PRA. Der Selektor 28 regelt den Schalter 24, so daß eine der Zellen C1 und C2, die auf der Grundlage der Änderungsanzeiger SB und WB von jeder Zelle, des Ausführungsmodus-Anzeigers MF und von Daten CRR, CRA, PRR und PRA, die von der CPU 10 und dem Regler 16 zugeführt werden, bestimmt ist, passend mit dem Daten-Schreibbus 20 verbunden wird.
  • Wie in Figur 1 gezeigt, ist der Register-Sicherungs/Zurückspeicher-Regler 16 mit der CPU 10, dem Daten-Schreibbus 18, dem Daten-Lesebus 20, dem Schreib- Registerselektor 26 und dem Lese-Registerselektor 28 verbunden. Der Regler 16 schließt erste, zweite und dritte Zähler 40, 42 und 44 ein. Der erste Zähler 40 dient als ein Zähler für eine Sicherungs/Zurückspeicher-Registernummer zum Bestimmen eines gewünschten Registers, das gemäß einer Adresse des Registers gesichert/zurückgespeichert werden soll. Der zweite Zähler 42 dient als ein Zähler für eine maximale Registernummer zum Zählen einer maximalen Registerzellennummer, um einen maximalen Registerspeicherumfang in der Registereinheit 12 zu definieren, der zu der gleichen Zeit gesichert/zurückgespeichert werden kann. Der dritte Zähler 44 dient als ein Zähler für eine Sicherungs/Zurückspeicher-Registernummer zum Bestimmen einer Adresse einer Speicherstelle des Hauptspeichers 14, in welche gespeicherte Inhalte, die gegenwärtig in der Registereinheit 12 gespeichert sind, gesichert werden, oder zum Bestimmen einer Adresse der Speicherstelle des Hauptspeichers 14, bei welcher Daten, die in die Registereinheit 12 zurückgespeichert werden sollen, gespeichert sind. Der Regler 16 schließt auch ein Register (auf welches hierin nachher als ein "Modusanzeiger-Register" Bezug genommen wird) 46 zum Speichern des oben-beschriebenen Anzeigers MF ein, um einen Betriebsmodus (d.h. irgendeinen der Aufruf- und Rücksprungmodi) zu spezifizieren. der gegenwärtig in dem Mikroprozessor ausgeführt wird.
  • Wenn die CPU 10 Anweisungen empfängt, so wie einen Subroutine-Aufruf oder eine Software-Unterbrechung, während S oftware- Programme ausgeführt werden, wird der Regler 16 durch die CPU 10 wie folgt durch einen Sicherungs/Zurückspeicher-Setup- Bus bzw. -Einstellbus 50, der mit dem Daten-Schreibbus 18 und einem Datenbus 42 verbunden ist, eingestellt:
  • (1) Inhalte von Zähler 40 werden auf "0" zurückgesetzt;
  • (2) Inhalte von Zähler 42 werden auf die Nummer von einem oder einer Vielzahl von Registern von der Registereinheit 12 zurückgesetzt, die gesichert werden sollen;
  • (3) Inhalte von Zähler 44 werden auf eine erste Adressennummer eines Speicherbereichs des Hauptspeichers 14 eingestellt bzw. gesetzt, in welchem gespeicherte Inhalte der Registereinheit 12 gesichert werden sollen; und
  • (4) Inhalte des Modusanzeiger-Registers 46 werden auf "0" gesetzt, was den Aufrufmodus repräsentiert (daher wird der Ausführungsmodus-Anzeiger MF mit einem logischen Wert "0" den Schreib- und Lese-Registerselektoren 26 und 28 zugeführt). Folglich sichert der Regler 16 Registerinhalte von Registerbereichen der Registereinheit 12 von der Register-Adressennummer "0" (d.h. Register R0) bis zur maximalen Register-Adressennummer "n" (d.h. Register Rn) in den Hauptspeicher 14, während sequentiell ein Speicheradressen-Zählerwert um "1" aktualisiert bzw. fortgeschrieben wird. In diesem Fall werden kontinuierlich CPU-Statusdaten CS von der CPU 10 durch einen Datenbus 54 dem Regler 16 zugeführt. Die Daten CS repräsentieren einen aktuellen Betriebszustand der CPU 10. Auf der Grundlage der Daten CS regelt der Regler 16 die Schreib- und Lese-Registerselektoren 26 und 28, so daß Daten von der Registereinheit 12 in den Hauptspeicher 14 nur in einem Zyklus gesichert werden, in welchem keine Daten zwischen der CPU 10 und dem Hauptspeicher 14 übertragen werden (d.h. in einem Datenübertragungs-Leerzyklus, der den Fachleuten als ein "Leer- Speicherbuszyklus" bekannt ist). Dieser Leer-Speicherbuszyklus wird in der CPU 10 eingestellt, wenn zum Beispiel:
  • die CPU 10 Operanden bzw. Datenteile zwischen Registern überträgt; und
  • ein Anweisungs-Vorabruf-Puffer unter Eingabe einer Sprunganweisung unterbrochen wird (in diesem Fall wird ein Betrieb bzw. eine Operation der CPU 10 gestoppt, bis die CPU 10 eine Sprungbestimmungs- bzw. -zielanweisung abruft).
  • Wenn Daten, die in den Hauptspeicher 14 gesichert wurden, an die Registereinheit 12 zurückgegeben (zurückgespeichert) werden, führt die CPU 10 Anweisungen aus, so wie einen Subroutine-Rücksprung oder einen Unterbrechungs-Rücksprung, und der Regler 16 wird wie folgt durch die CPU 10 eingestellt:
  • (1) Inhalte von Zähler 40 werden auf "0" zurückgesetzt;
  • (2) Inhalte von Zähler 42 werden auf die Nummer von einem oder einer Vielzahl von Registern von der Registereinheit 12 zurückgesetzt, die zurückgespeichert werden sollen;
  • (3) Inhalte von Zähler 44 werden auf eine erste Adressennummer eines Speicherbereichs des Hauptspeichers 14 eingestellt, in welchen zurückzuspeichernde Daten von der Registereinheit 12 gespeichert sind; und
  • (4) Inhalte des Modusanzeiger-Registers 46 werden auf "1" eingestellt, was den Rücksprungmodus repräsentiert (daher wird ein Ausführungsmodus-Anzeiger MF mit einem logischen Wert "1" den Schreib- und Lese-Registerselektoren 26 und 28 zugeführt). Folglich überträgt der Regler 16 die Daten, welche von Registerbereichen der Registereinheit 12 von einer Register-Adressennummer "0" (d.h. Register R0) bis zu einer maximalen Register-Adressennummer "n" (d.h. Register Rn) zurückgespeichert werden sollen, in den Hauptspeicher 14, während sequentiell ein Speicheradressen- Zählerwert um "1" aktualisiert bzw. fortgeschrieben wird. In diesem Fall werden CPU-Statusdaten CS kontinuierlich von der CPU 10 dem Regler 16 durch den Datenbus 54 zugeführt. Die Daten CS repräsentieren einen aktuellen Betriebszustand der CPU 10. Auf der Grundlage der Daten CS regelt der Regler 16 die Schreib- und Lese-Registerselektoren 26 und 28, so daß Daten von dem Hauptspeicher 14 zu der Registereinheit 12 nur in einem Leer-Speicherbuszyklus zurückgespeichert werden.
  • Daten, die in den Hauptspeicher 14 geschrieben werden sollen, werden durch den Daten-Schreibbus 18 zu dem Hauptspeicher 14 übertragen. Daten, die von dem Hauptspeicher 14 ausgelesen werden, werden der Registereinheit 12 durch den Daten-Lesebus 20 zugeführt. Die Gatter- bzw. Torschaltung 30 ist zwischen dem Hauptspeicher 14 und dem Bus 20 vorgesehen. Die Torschaltung 30 öffnet, um den Hauptspeicher 14 mit dem Bus 20 zu verbinden, wenn gespeicherte Inhalte der Registereinheit 12 in den Hauptspeicher 14 gesichert werden sollen; und schließt, um den Hauptspeicher 14 mit dem Bus 15 zu verbinden, wenn gespeicherte Daten des Hauptspeichers 14 in die Registereinheit 12 zurückgespeichert werden.
  • Die Torschaltung 30 ist mit einem Selektor 60 verbunden. Der Selektor 60 wählt entweder ein Speicher-Lese/Schreib-Signal CRW, das von der CPU 10 erzeugt wird, oder ein Speicher-Lese/Schreib-Signal PRW, das von dem Regler 16 erzeugt wird, aus und überträgt das ausgewählte Signal an die Torschaltung 30 und den Hauptspeicher 14 als Antwort auf ein Sicherungs/Zurückspeicher-Anforderungssignal PR von dem Regler 16. Der Selektor 60 wählt auch entweder Speicher-Adressdaten CMA, die durch die CPU 10 vorbereitet werden, oder Speicher-Adressdaten PMA, die durch den Regler 16 vorbereitet werden, aus und führt die ausgewählten Daten der Torschaltung 30 und dem Hauptspeicher 14 als Antwort auf ein Sicherungs/Zurückspeicher-Anforderungssignal PR zu.
  • In der oben beschriebenen Schaltungsanordnung ist eine der wichtigsten Charakteristiken, daß jedes Register der Registereinheit 12 durch ein Paar von Vorder- und Rückzellen C1 und C2 in der gleichen Adresse gebildet wird. Diese Registerzellenanordnung ist wesentlich, um Daten zwischen der Registereinheit 12 und dem Hauptspeicher 14 unabhängig von den Software-Programmausführungszyklen der CPU 10 zu sichern/zurückzuspeichern, und verwendet leere Zeitintervalle zwischen den Ausführungszyklen. Das heißt, während ein gegebener Prozeß durch die CPU 10 ausgeführt wird, wobei die Vorderzelle C1 verwendet wird, wird zugelassen, daß eine Registerinformation für einen anderen Prozeß in der Rückzelle C2 geschützt wird. Folglich muß eine alte Registerinformation nicht in den Hauptspeicher 14 gesichert werden, wenn diese Prozesse umgeschaltet werden. Wenn drei oder mehr Prozesse ausgeführt werden sollen, werden gespeicherte Inhalte von einer der zwei Zellen C1 und C2, welche gegenwärtig nicht ausgewählt ist, in den Hauptspeicher 14 gesichert oder davon in jedes Register zurückgespeichert. Daher kollidiert eine Sicherungs/Zurückspeicher- Verarbeitung eines gespeicherten Inhalts für die Registereinheit 12 nicht direkt mit dem Prozeß, welcher gegenwärtig von der CPU 10 ausgeführt wird. Zusätzlich dient von zwei Zellen C1 und C2 von jedem Register die verbleibende Zelle (z.B. C2), die von der Zelle (z.B. C1), welche gegenwärtig ausgewählt ist, verschieden ist, als eine Sicherungszelle" für die gegenwärtig ausgewählte Zelle (z.B. C1). Daher kann, wenn ein gegenwärtig ausgeführter Prozeß, der durch die CPU 10 ausgeführt werden soll, zu einem anderen neuen Prozeß umgeschaltet wird, Information für den aktuellen Prozeß in der verbleibenden Zelle (z.B. C2), die von der gegenwärtig ausgewählten Zelle (z.B. C1) verschieden ist, gespeichert (gesichert) gehalten werden. Deshalb kann, wenn die Information danach wieder erforderlich ist (z.B. wenn auf Registerdaten bezüglich einer Subroutine-Verarbeitung Bezug genommen wird oder wenn eine Operation zu einer Informationsumgebung einen Schritt vor dem gegenwärtigen zurückspringen muß, d.h. einem Wahlpunkt einer Ebene vor dem gegenwärtigen, während einer Ausführung einer Identifikationsverarbeitung von Daten- und Listeninformation in einer PROLOG- Maschine etc.), die Sicherungs-Registerinformation für den vorangehenden Prozeß der CPU 10 schnell zugeführt werden.
  • Um effektiv die obige Funktion zu realisieren, sind gemäß der Vorrichtung zum Sichern und Zurückspeichern von Registerinformation der vorliegenden Erfindung ein Selektoranzeiger SB und ein Änderungsanzeiger WB für jedes Register in der Registereinheit 12 vorgesehen. Zusätzlich wird eine Auswahl zwischen einem Paar von Zellen C1 und C2, welche jedes Register der Registereinheit 12 bilden, durch eine Schaltoperation von Schaltern 22 und 24 ausgeführt, die durch Registerselektoren 26 und 28 als Antwort auf einen durch den Regler 16 geregelten Ausführungsanzeiger MF geregelt werden.
  • Ein Ausführungsmodus-Anzeiger MF unterscheidet den Aufrufmodus, so wie einen Subroutine-Aufruf oder eine Unterbrechungserzeugung, von dem Rücksprungmodus, sowie einem Subroutine-Rücksprung oder einem Unterbrechungs-Rücksprung. Figur 2 zeigt ein Diagramm, welches schematisch darstellt, wie ein von der CPU 10 ausgeführter Prozeß durch Wiederholen der Aufruf- und Rücksprungmodi prozessiert bzw. verarbeitet wird, worin eine Vielzahl von dicken, weißen, vertikalen Linien eine Ausführung einer Verarbeitung, so wie eine Anweisungsausführung eines Prozesses, repräsentieren und dünne, schräge Linien, welche die dicken, weißen Linien verbinden, eine Ausführung eines Prozeßaufrufes oder eines Prozeßrücksprunges repräsentieren (d.h. eines Prozeßumschaltens). In Figur 2 ist ein Prozeß, der durch "Prozeß 2" dargestellt ist, ein Unterprozeß, der eine Ausführung von "Prozeß 1" (auf den hierin nachher als ein "Hauptprozeß" verwiesen werden soll) unterbricht, wie durch eine unterbrochene Linie 70 in Figur 2 dargestellt ist.
  • Bei einem Beginn des Hauptprozesses (Prozeß 1) wird der Ausführungsmodus- Anzeiger MF auf einen logischen Wert "0" initialisiert. Dies bedeuet, daß der Hauptprozeß von dem Aufrufmodus aus startet. Wenn eine Anweisung, so wie eine Subroutine, Unterbrechung oder dergleichen, (d.h. wenn der Aufrufmodus eingestellt) in einem gegebenen Prozeß ausgeführt wird, d.h. wenn ein auszuführender Prozeß von dem linken zu dem rechten Prozeß in Figur 2 geändert bzw. umgeschaltet wird, besitzt der Ausführungsmodus-Anzeiger MF einen logischen Wert "0". Daher hält, wenn eine Vielzahl von Aufrufmodi nacheinander eingestellt wird, der Ausführungsmodus-Anzeiger MF den logischen Wert "0". Wenn eine Anweisung, so wie ein Subroutine- Rücksprung, ein Unterbrechungs-Rücksprung oder dergleichen, (d.h. wenn der Rücksprungmodus eingestellt ist) in dem Prozeß ausgeführt wird, d.h. wenn ein auszuführender Prozeß von dem rechten zu dem linken Prozeß in Figur 2 zurückspringt, hat der Ausführungsmodus-Anzeiger MF einen logischen Wert "1". Daher hält, wenn eine Vielzahl von Rücksprungmodi nacheinander eingestellt wird, der Ausführungsmodus-Anzeiger MF den logischen Wert "1". Wenn das obige Ereignis eintritt, wird der Änderungsanzeiger WB auf einen logischen Wert "0" zurückgesetzt. Bedeutungen der drei Hauptanzeiger sind in der folgenden Tabelle zusammengefaßt. Logischer Wert Zelle C2 ist ausgewählt Selektoranzeiger SB Änderungsanzeiger WB Ausführungsmodus-Anzeiger MF Registerinhalte werden nicht zurückgeschrieben (Anzeiger wird zurückgesetzt, wenn ein Ereignis eintritt und ein ausgewählte Zelle geändert wird) CPU 10 ist im Aufrufmodus Registerinhalte werden zurückgeschrieben (Neue Information wird in neue ausgewählte Zelle geschrieben und Registerinhalte werden vor einem Ereignis in einer Sicherungszelle geschützt) Zelle C2 ist ausgewählt Rücksprungmodus
  • Eine Operation (Algorithmus) der Vorrichtung zum Sichern und Zurückspeichern einer Registerinformation mit der obigen Anordnung gemäß der vorliegenden Erfindung wird unten ausführlich beschrieben werden. Die Operation wird bezüglich zweier Zustände mit verschiedenen logischen Werten des Ausführungsmodus-Anzeigers MF, der durch den Sicherungs/Zurückspeicher-Regler 16 geregelt wird, beschrieben werden, d.h. bezüglich des Aufrufmodus und des Rücksprungmodus der CPU 10.
  • Aufrufmodus
  • Wenn die CPU 10 auf ein Ereignis, so wie eine Subroutine oder eine Unterbrechung, trifft, während ein gegebener Prozeß ausgeführt wird. d.h. wenn die CPU 10 eine Anweisung in dem Aufrufmodus ausführt, müssen Registerinhalte (Registerinformation) zum Definieren einer Informationsumgebung des Prozesses, welcher gegenwärtig ausgeführt wird, in eine "Sicherungszelle" eines entsprechenden Registers der Registereinheit 12 oder eine passende Adresse einer Speicherstelle des Hauptspeichers 14 gesichert werden. In diesem Fall wird durch die CPU 10 ein Registerzugriff wie folgt ausgeführt.
  • Figur 3A zeigt ein Register Ri, welches eines der Register der Registereinheit 12 ist, worin zum Beispiel der Selektoranzeiger SB einen logischen Wert "1" hat (daher ist die Rückzelle C2 ausgewählt) und der Änderungsanzeiger WB einen logischen Wert "0" hat. Zu dieser Zeit wird der Schalter 24, wie in Figur 3A gezeigt, unter der Regelung des Lese-Registerselektors 25 geschaltet, und die Rückzelle C2 wird mit dem Daten-Lesebus 20 verbunden. Daher wird eine aktuelle Prozeßinformation, die in Zelle C2 gespeichert ist, wie durch den Pfeil 50 repräsentiert ausgelesen. Das heißt, die Registerdaten werden immer zuerst aus einer ausgewählten Zelle (in diesem Fall Zelle C2) der zwei Zellen des Registers Ri ausgelesen.
  • Information wird in ein Register Ri auf zwei Wegen gemäß eines logischen Wertes des Änderungsanzeigers WB geschrieben. Das heißt, wenn der Selektoranzeiger SB einen logischen Wert "0" hat und der Änderungsanzeiger WB einen logischen Wert "0" hat, wird der Selektoranzeiger SB in einen logischen Wert "1" invertiert, und Schalter 22 wird unter der Regelung des Schreib-Registerselektors 26 geschaltet, um die Information in eine Zelle, welche durch den invertierten Selektoranzeiger SB repräsentiert wird, d.h. in diesem Fall Zelle C1, zu schreiben. Zu dieser Zeit wird der Änderungsanzeiger WB auf einen logischen Wert "1" eingestellt, wie durch Pfeil 54 angezeigt. Daher wird die Information in Zelle C2, wie durch Pfeil 56 angezeigt, geschrieben. Auf der anderen Seite wird, wenn der Änderungsanzeiger WB einen logischen Wert "1" hat, der Selektoranzeiger SB nicht invertiert, und Schalter 22 wird geschaltet, um die Information in eine Zelle zu schreiben, welche durch den Selektoranzeiger SB mit einem logischen Wert "1" bestimmt ist, d.h. Zelle C2, wie in Figur 3C gezeigt. Zu dieser Zeit hält der Änderungsanzeiger WB den logischen Wert "1".
  • Durch Ausführen der obigen Register-Lese/Schreib-Operation kann, nachdem die CPU 10 eine Verarbeitung, sowie eine Subroutine oder Unterbrechung, beendet, auf eine Registerinformation, die gespeichert wird, bevor die Verarbeitung ausgeführt wird, sofort zugegriffen werden.
  • Es sollte bemerkt werden, daß, weil der Änderungsanzeiger WB automatisch auf einen logischen Wert "0" zurückgesetzt wird, wenn ein Ereignis, sowie ein Subroutine- Aufruf, ausgeführt wird, die erste Register-Schreiboperation in der Subroutine (oder Unterbrechung) unter der Bedingung ausgeführt wird. daß Änderungsanzeiger WB = 0 gilt. In diesem Fall wird, wie in Figur 4 gezeigt, der Selektoranzeiger SB invertiert, und eine Information "Y", die geschrieben werden soll, wird in eine Speicherzelle gespeichert, die durch den invertierten Selektoranzeiger SB bestimmt ist, wie durch Pfeil 88 von Figur 4 angezeigt. Zu dieser Zeit wird der Änderungsanzeiger WB auf einen logischen Wert "1" gesetzt. Durch dieses Verfahren kann, während die Registerzelleninformation, die in einer Zelle (in diesem Fall der Vorderzelle C1, wie in Figur 4 gezeigt) des Registers der Registereinheit 12 vor dem Auftreten des Ereignisses gespeichert wird, darin gehalten wird (d.h. in Zelle C1), eine neue Information, die geschrieben werden soll, in die andere Zelle (d.h. in die Rückzelle C2) des Registers gespeichert werden. Mit anderen Worten wird, wenn ein Ereignis, so wie ein Subroutine-Aufruf, zum ersten Mal in dem Aufrufmodus der CPU 10 auftritt, eine Registerinformation, die in einer Zelle unmittelbar vor Auftreten des Ereignisses gespeichert wird, nicht gelöscht, sondern wird darin sukzessiv gehalten, und die andere Zelle (die als eine "Sicherungszelle" dient) des Registers wird ausgewählt, so daß die neue Information darin geschrieben wird. Daher kann, weil die Registerzelleninformation; die unmittelbar vor Auftreten des Ereignisses gespeichert wird, nicht in den Hauptspeicher 14 gesichert werden muß, eine Umgebung der Registerinformation hinsichtlich einer Verarbeitung des Ereignisses schnell geändert werden.
  • Ein Daten-Lesealgorithmus eines Registers gemäß einem Registersichern in dem Aufrufmodus wird unten beschrieben werden. Wenn ein Ereignis, so wie ein Subroutine-Aufruf, auftritt, während die CPU 10 einen gegebenen Prozeß ausführt, führt die CPU 10 eine Set-up- bzw. Einstell-Verarbeitung des Reglers 16 aus, wie oben beschrieben, um Registerinhalte bezüglich des obigen Prozesses, der unmittelbar vor Auftreten des Ereignisses ausgeführt wird, in eine geeignete Adresse der Speicherstelle des Hauptspeichers 14 zu sichern. Die zu sichernde Registerinformation wird aus der Registereinheit 12 auf zwei Wegen gemäß einem logischen Wert des Änderungsanzeigers WB des entsprechenden Registers Ri ausgelesen. Wenn der Änderungsanzeiger WB einen logischen Wert "0" hat (siehe Figur 5A), d.h. wenn gespeicherte Inhalte einer Zelle, die gegenwärtig ausgewählt ist, nicht zurückgeschrieben werden (in diesem Fall Registerinhalte in einer Zelle bei der Subroutinen-Seite nicht zurückgeschrieben werden), wird eine Information, die in einer Zelle gespeichert ist, welche durch den Selektoranzeiger SB bestimmt ist, ausgelesen. In Figur 5A werden, weil der Selektoranzeiger SB einen logischen Wert "0" hat, Inhalte "X" der Vorderzelle C1 ausgelesen, wie durch Pfeil 90 angezeigt. Wenn der Änderungsanzeiger WB einen logischen Wert "1" hat (siehe Figur 5B), d.h. wenn gespeicherte Inhalte einer Zelle, welche gegenwärtig ausgewählt ist, zurückgeschrieben werden, wird eine Information, die in einer Zelle gespeichert ist, die einer Zelle gegenüberliegt, welche durch den Selektoranzeiger SB bestimmt ist, ausgelesen. Dies geschieht, weil in diesem Fall die Registerinhalte in der Zelle bei der Subroutinen-Seite zurückgeschrieben werden, tind daher eine zu sichernde Information in der anderen Zelle (d.h. einer "Sicherungszelle") vorliegt. In Figur 5B werden, weil der Selektoranzeiger SB einen logischen Wert "1" hat, Inhalte "Y" der Vorderzelle C1 ausgelesen, wie durch Pfeil 92 angezeigt.
  • Man nehme an, daß in dem Aufrufmodus ein Ereignis, so wie ein anderer Subroutine-Aufruf, ein Subroutine-Rücksprung und eine Unterbrechung, auftritt, bevor gespeicherte Inhalte einer erforderlichen Nummer bzw. Anzahl von Registern der Registereinheit 12 in den Hauptspeicher 14 gesichert werden. In diesem Fall kann ein Auftreten des obigen Ereignisses festgestellt werden, indem eine Information auf einem Monitor- bzw. Überwachungsbus 52, der in Figur 1 dargestellt ist, überwacht wird. Wenn das Ereignis, so wie ein Subroutine-Aufruf oder eine Unterbrechung, auftritt, wird eine Ausführung dieses Ereignisses vorübergehend verschoben, und eine Sicherungsverarbeitung der obigen Registerinhalte wird vor einer Ausführung des Ereignisses ausgeführt. Dies geschieht um eine Zerstörung einer Registerinformation, die gesichert werden soll, zu verhindern, wenn eine Information des Ereignisses in der Registereinheit 12 gespeichert wird. Im Gegensatz dazu wird, wenn das Ereignis ein Subroutine-Rücksprung ist, die Registerinhalt-Sicherungsverarbeitung sofort gestoppt (unterbrochen), und das Ereignis wird vor der Verarbeitung ausgeführt. Dies geschieht. weil in diesem Fall die vorherige Registerinformation, die zum Ausführen des obigen Subroutine-Rücksprunges erforderlich ist, nicht in einer gegenwärtig ausgewählten Zelle gespeichert ist, sondern in der anderen Zelle, die als eine "Sicherungszelle" für die gegenwärtig ausgewählte Zelle der zwei Zellen in jedem der entsprechenden Register dient.
  • Rücksprungmodus
  • Wenn die CPU 10 auf ein Ereignis, so wie einen Subroutine-Rücksprung, trifft, während ein gegebener Prozeß ausgeführt wird, d.h. wenn die CPU 10 eine Anweisung in einem Rücksprungmodus ausführt, muß eine Registerinformation zum Definieren einer Informationsumgebung des vorhergehenden Prozesses, die in dem Hauptspeicher 14 gesichert ist, in die Registereinheit 12 zurückgespeichert werden. In diesem Zustand führt die CPU 10 einen Registerzugriff wie folgt aus.
  • Ein Register-Lesen in dem Rücksprungmodus wird derart ausgeführt, daß eine Zelle. die durch den Selektoranzeiger SB des Registers Ri bestimmt ist, einer Lese-Operation unterzogen wird, wie in dem Aufrufmodus. Das heißt, in Figur 6A ist zum Beispiel, weil der Selektoranzeiger SB den logischen Wert "1" hat, die Rückzelle C2 gegenwärtig ausgewählt. Daher wird eine Registerinformation von Zelle C2, wie durch Pfeil 94 angezeigt, ausgelesen.
  • Eine Informations-Schreiboperation in das Register Ri wird bezüglich einer Zelle, die durch den Selektoranzeiger SB in der gleichen Weise wie oben beschrieben bestimmt ist, ausgeführt. In Figur 6B ist zum Beispiel, weil der Selektoranzeiger SB den logischen Wert "1" hat, der Schalter 22 geschaltet, so daß eine zu schreibende Information der Zelle C2, wie durch Pfeil 96 angezeigt, zugeführt wird. In diesem Fall wird ein logischer Wert des Änderungsanzeigers WB nicht geändert (eingestellt).
  • In dem Rücksprungmodus muß zur Vorbereitung auf einen anderen Subroutine- Rücksprung, von dem erwartet wird, daß er nach dem Rücksprung-Ereignis, das gegenwärtig ausgeführt wird, auftritt, eine Zurückspeicher-Verarbeitung einer Registerinformation in eine nicht ausgewählte Zelle, die von der gegenwärtig ausgewählten Zelle verschieden ist, ausgeführt werden. Um diese Verarbeitung auszuführen, nachdem die CPU 10 eine Subroutine ausführt, stellt sie den Änderungsanzeiger WB des entsprechenden Registers Ri ein, um auf das nächste Rücksprung-Ereignis vorzubereiten. Zum Beispiel wird gemäß Figur 7 ein logischer Wert des Änderungsanzeigers WB von "0" auf "1" geändert. Daher wird, immer wenn ein leerer Zyklus in dem Daten-Ubertragungsbus 15 oder 20 der CPU 10 erzeugt wird (dieser leere Zyklus wird erzeugt, wenn z.B. (a) die CPU 10 eine Daten-Übertragungsanweisung zwischen Registern ausführt, (b) ein Anweisungs-Vor-Lese-Register unwirksam gemacht wird oder unidirektional unterbrochen wird, während eine Sprunganweisung ausgeführt wird, und (c) ein Anweisungs-Cachespeicher vorgesehen ist und eine gewünschte Anweisung nicht in dem Cachespeicher angetroffen wird), eine zurückzuspeichernde Registerinformation aus dem Hauptspeicher 14 ausgelesen und wird in eine entsprechende nicht ausgewählte Zelle (d.h. eine Zelle, die der Zelle, welche gegenwärtig durch den Selektoranzeiger SB bestimmt ist, gegenüberliegt und als eine "Sicherungszelle" dient) der Registereinheit 12 geschrieben. In Figur 7 wird, weil der Selektoranzeiger SB den logischen Wert "1" hat, die zurückzuspeichernde Registerinformation in die Zelle C1, welche der Zelle C2, die durch den Selektoranzeiger SB bestimmt ist, gegenüberliegt, geschrieben, wie durch Pfeil 95 angezeigt. Wenn diese Informations-Schreiboperation beendet ist, wird der logische Wert des Änderungsanzeigers WB von "0" auf "1" geändert, wie durch Pfeil 100 angezeigt.
  • Wenn die CPU 10 eine Anweisung des nächsten Subroutine-Rücksprunges ausführt. nachdem eine Zurückspeicher- Verarbeitung der Registerinformation beendet ist, werden die Selektoranzeiger SB der Register, deren Änderungsanzeiger WB logische Werte "1" haben, der Registereinheit 12 automatisch invertiert. Zu dieser Zeit werden die Änderungsanzeiger WB mit logischen Werten "1" alle auf einen logischen Wert "0" zurückgesetzt. Folglich haben alle Änderungsanzeiger WB logische Werte "0". Daher repräsentiert in diesem Zustand der Selektoranzeiger SB in Register Ri eine Zelle, in welche die Registerinformation zurückgespeichert wird.
  • Man nehme an, daß in dem Rücksprungmodus ein Ereignis, so wie ein anderer Subroutine-Aufruf, ein Subroutine-Rücksprung oder eine Unterbrechung, auftritt, bevor eine Registerinformation vollständig in eine erforderliche Nummer bzw. Anzahl von Registern der Registereinheit 12 zurückgespeichert ist. In diesem Fall wird, wenn ein Aufrufmodus-Ereignis, so wie ein Subroutine-Aufruf oder eine Unterbrechung, auftritt. die Register- Zurückspeicher-Verarbeitung sofort gestoppt (unterbrochen), und das Ereignis wird vor der Verarbeitung ausgeführt. Im Gegensatz dazu wird, wenn das Ereignis ein Subroutine-Rücksprung ist, eine Ausführung des Ereignisses vorübergehend verschoben, und eine Registerinhalts-Sicherungsverarbeitung wird vor dem Ereignis ausgeführt.
  • Gemäß der Vorrichtung zum Sichern und Zurückspeichern von Registerinformation ist ein Paar von Registerzellen C1 und C2 mit der gleichen Registeradresse für jedes Register der Registereinheit 12 vorgesehen. Daher kann, wenn Registerinhalte von Register Ri geändert werden sollen, ein Umfang einer Informationsübertragung zum Sichern/Zurückspeichern zwischen der Registereinheit 12 und dem Hauptspeicher 14 reduziert werden. Folglich kann eine Sicherungs/Zurückspeicher-Verarbeitung der Registereinheit 12 effizient ausgeführt werden.
  • Genauer müssen Registerinhalte von Register Ri der Registereinheit 12 mit einer anderen neuen Information bei verschiedenen Arten von Ereignissen zurückgeschrieben werden, so wie bei einem Prozeßumschalten eines Mikroprozessors, der einem spezifischen Betriebssystem angepaßt ist, bei einer Identifikationsverarbeitung eines Mikroprozessors, der für eine PROLOG-Maschine spezifiziert ist, oder verschiedenen Ereignissen, so wie einem Subroutine-Aufruf, einer Unterbrechung, einem Subroutine- Rücksprung und Unterbrechungs-Rücksprung, welche während einer Ausführung eines Software-Programms auftreten. In solch einem Fall wird die obige neue Information in eine Registerzelle (z.B. Zelle C2), die von einer Registerzelle (z.B. Zelle C1), welche gegenwärtig ausgewählt ist, verschieden ist, geschrieben, wobei der Selektoranzeiger SB und der Änderungsanzeiger WB, die für ein Register Ri vorgesehen sind, und ein Ausführungsmodus-Anzeiger MF, der durch den Sicherungs/Zurückspeicher-Regler 16 geregelt wird, verwendet werden. Zu dieser Zeit speichert Zelle C2 die neue Information als eine jüngst ausgewählte Zelle, und die alte Registerinformation wird in Zelle C1, die als eine "Sicherungszelle" dient, geschützt gehalten. Weil die alte Registerinformation in der Registereinheit 12 bei einer Registerinhaltsänderung von einer Ebene noch vorhanden ist, muß eine Sicherungsverarbeitung in den Hauptspeicher 14 für Register Ri nicht ausgeführt werden. Wenn die alte Registerinformation wieder erforderlich ist, kann diese Information in Register Ri zurückgespeichert werden, indem nur die "Sicherungszelle" C2 wieder ausgewählt wird. Dieser Sicherungsschutz einer Information wird unabhängig von anderen Registern in Einheiten von Registern in der Registereinheit 12 ausgeführt. Daher kann, wenn Registerinhalte der Registereinheit 12 häufig teilweise geändert werden sollen, auf die Registereinheit 12 mit einer hohen Geschwindigkeit zugegriffen werden.
  • Eine Registerinformation von Register Ri muß in den Hauptspeicher 14 nur gesichert werden, wenn noch nachfolgend eine andere Information in Register Ri geschrieben werden muß (d.h. eine Registerinhaltsänderung von zwei Ebenen oder mehr). Weil diese Sicherungsverarbeitung (obwohl eine Zurückspeicher-Verarbeitung der Sicherungsverarbeitung ähnlich ist) ausgeführt wird, wobei leere Zyklen der CPU 10 verwendet werden (dieser Zyklus ist für die CPU 10 im wesentlichen eine nutzlose Zeit), wird eine Verarbeitungsgeschwindigkeit der CPU 10 im Grunde nicht reduziert. Tatsächlich wird gemäß Experimenten, die von den aktuellen bzw. anmeldenden Erfindern durchgeführt wurden, bestätigt, daß die leeren Zyklen so häufig erzeugt werden, daß eine Zeit, die für ein Register-Sichern/Zurückspeichern erforderlich ist, ausgeglichen wird. Daher ist in diesem Fall eine Zeit, die zum Register-Sichern/Zurückspeichern verbraucht wird, tatsächlich Null.
  • Die obigen Charakteristiken tragen außerordentlich dazu bei, Registerinhalte der Registereinheit 12 beim Prozeßumschalten, einer Identifikationsverarbeitung einer PROLOG-Maschine, verschiedenen Ereignissen, welche während einer Ausführung eines Software-Programms auftreten, innerhalb einer minimalen reduzierten Zeitspanne bei einer hohen Geschwindigkeit zu sichern/zurückzuspeichern. Daher sind die obigen Charakteristiken sehr wichtig, weil eine tatsächliche Betriebs- bzw. Operationsgeschwindigkeit eines Mikroprozessors ohne Andern irgendwelcher grundlegenden Spezifikationen verbessert werden kann. Zusätzlich wird eine alte Registerinformation eine Ebene vor einer Registerinformation, die gegenwärtig verwendet wird, in der Registereinheit 12 gespeichert gehalten. Daher kann eine Informationsumgebung eine Ebene vor der gegenwärtigen unmittelbar aktiviert bzw. freigegeben werden, wenn sie in z.B. der PROLOG-Maschine benötigt wird, wodurch eine Verarbeitungsgeschwindigkeit einer Task im Bereich der Künstlichen Intelligenz erhöht wird.
  • Ferner können gemäß der vorliegenden Erfindung, weil ein Selektoranzeiger SB und ein Änderungsanzeiger WB für jedes Register vorgesehen sind, die Zustände der zwei Zellen C1 und C2 eines bestimmten Registers klar erkannt werden. Daher kann, wenn Registerinhalte geändert werden sollen oder ein Register-Sichern/Zurückspeichern atisgeführt werden soll, eine Verarbeitung zum Bestimmen, auf welche Zelle der Zellen C1 und C2 von Register Ri zugegriffen werden soll, geeignet und genau auf der Grundlage des Selektoranzeigers SB, des Änderungsanzeigers WB und des Ausführungsmodus- Anzeigers MF, welcher durch den Sicherungs/Zurückspeicher-Regler 16 geregelt wird ausgeführt werden. Diese Charakteristik trägt dazu bei, eine Widerspruchsfreiheit bzw. Folgerichtigkeit eines Registerzellen-Zugreifens der Registereinheit 12 zu erhalten.

Claims (5)

1. Eine Registervorrichtung, die mit einem Computersystem mit einer Zentralprozessoreinheit (10) und einem Speichermittel (14) zum Speichern einer ihm zuzuführenden Information verbunden werden kann, wobei die Vorrichtung enthält eine Registereinheit (12), welche mit dem Speichermittel verbunden wird und eine Vielzahl von Registern (R0, R1, ..., Rn), ein Paar von ersten und zweiten Zellen (C1, C2), welche selektiv aktiv zurückgegeben werden, ein einen Anzeiger haltendes Mittel (13a, 13b) zum Halten erster und zweiter Binär-Anzeiger (SB, WB) besitzt, wobei der erste Anzeiger (SB) anzeigt, welche Zelle der ersten und zweiten Zellen (C1, C2) gegenwärtig ausgewählt ist, und Reglermittel (16, 22, 24, 26, 25), welches mit der Registereinheit (12) und dem Anzeiger haltenden Mittel (13a, 13b) verbunden ist, zum Regeln der Zustände der ersten und zweiten Anzeiger (SB, WB) derart, daß der erste Anzeiger (SB) als Antwort auf die Auswahl geändert wird, welche zwischen den ersten und zweiten Zellen (C1, C2) getroffen wird, und eine Information in einer der Zellen geschützt wird; dadurch gekennzeichnet, daß für jedes der Register (R) ein entsprechendes Paar von ersten und zweiten Zellen (C1, C2) bei der gleichen Registeradresse existiert, um darin jeweilige erste und zweite Binär-Anzeiger zu halten, wobei der erste Anzeiger (SB) anzeigt, welche der zwei Zellen gegenwärtig zum Lesen und Schreiben ausgewählt ist, und der zweite Anzeiger (WB) anzeigt, wenn eingestellt bzw. gesetzt, daß der erste Anzeiger (SB) schon geändert worden ist, um die Zellenauswahl zu ändern, und in die jüngst ausgewählte Zelle geschrieben worden ist; und dadurch, daß das Reglermittel (16, 22, 24, 26, 25) die Zustände der Anzeiger (SB, WB) von jedem Register unabhängig von denjenigen der anderen Register derart regelt, daß, wenn in das Register geschrieben werden soll und wenn der zweite Anzeiger (WB) nicht wie oben erwähnt eingestellt ist, der erste Anzeiger (SB) geändert wird, um die Auswahl der Zellen (C1, C2) zu ändern, und der zweite Anzeiger (WB) eingestellt wird, andernfalls die Anzeiger (SB, WB) ungeändert gelassen werden, und in jedem Fall in die ausgewählte Zelle geschrieben wird; und derart, daß der zweite Anzeiger (WB) nachfolgend zurückgesetzt wird, wenn ein Ereignis, so wie ein Subroutine-Aufruf, ausgeführt wird.
2. Eine Vorrichtung nach Anspruch 1, in welcher jeder erste Anzeiger (SB) ein 1- Bit-Zellenauswahl-Anzeiger (SB) ist, welcher zwischen zwei logischen Zuständen geändert werden kann; und jeder zweite Anzeiger (WB) ein 1-Bit-Schreibänderungsanzeiger (WB) ist, welcher unabhängig zwischen dessen Zurücksetzungs- und Einstellzuständen geändert werden kann.
3. Eine Vorrichtung nach Anspruch 1 oder 2, in welcher das Reglermittel (16, 22, 24, 26, 25) mit dem Speichermittel (14) verbunden ist, um zu bewirken, daß die Information, welche von der nicht ausgewählten Zelle (C1) getragen wird, nachdem die nicht ausgewählte Zelle (C1) noch einmal als die aktive Zelle anstelle der gegenwärtig ausgewählten Zelle (C2) in dem Register ausgewählt ist, in das Speichermittel übertragen und darin gesichert wird, wenn es erforderlich ist, die Information, welche von der nicht ausgewählten Zelle (C1) getragen wird, zu ändern.
4. Eine Vorrichtung nach Anspruch 3, in welcher das Reglermittel (16, 22, 24, 26, 25) die Sicherungsoperation in leeren Zyklen während des Betriebs der Zentralprozessoreinheit (10) ausführt.
5. Eine Vorrichtung nach irgendeinem der Ansprüche 1 bis 4 mit:
Mittel (46), das mit der Zentralprozessoreinheit (10) verbunden ist, zum Halten eines dritten Binär-Anzeigers (MF), welcher anzeigt, in welchem Modus eines Aufrufmodus und eines Rückspriingmodus die Zentralprozessoreinheit gegenwärtig arbeitet.
DE3889578T 1987-03-31 1988-03-22 Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. Expired - Fee Related DE3889578T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62078506A JPS63245529A (ja) 1987-03-31 1987-03-31 レジスタ退避復元装置

Publications (2)

Publication Number Publication Date
DE3889578D1 DE3889578D1 (de) 1994-06-23
DE3889578T2 true DE3889578T2 (de) 1994-09-01

Family

ID=13663832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3889578T Expired - Fee Related DE3889578T2 (de) 1987-03-31 1988-03-22 Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.

Country Status (5)

Country Link
US (1) US5021993A (de)
EP (1) EP0285310B1 (de)
JP (1) JPS63245529A (de)
KR (1) KR920001101B1 (de)
DE (1) DE3889578T2 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US5222241A (en) * 1987-06-05 1993-06-22 Mitsubishi Denki Kabushiki Kaisha Digital signal processor having duplex working registers for switching to standby state during interrupt processing
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
JP2655615B2 (ja) * 1988-12-08 1997-09-24 日本電気株式会社 情報処理装置
US6986142B1 (en) * 1989-05-04 2006-01-10 Texas Instruments Incorporated Microphone/speaker system with context switching in processor
JPH077356B2 (ja) * 1989-05-19 1995-01-30 株式会社東芝 パイプライン方式のマイクロプロセッサ
US5596761A (en) * 1989-07-06 1997-01-21 Ricoh Company, Ltd. Central processing unit with internal register initializing means
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
US5115506A (en) * 1990-01-05 1992-05-19 Motorola, Inc. Method and apparatus for preventing recursion jeopardy
JPH0410041A (ja) * 1990-04-27 1992-01-14 Toshiba Corp データ退避方式
DE69130554T2 (de) * 1990-09-07 1999-08-12 Nec Corp., Tokio/Tokyo Registerschaltung zum Kopieren des Inhalts eines Registers in ein anderes Register
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5325494A (en) * 1991-06-21 1994-06-28 Kabushiki Kaisha Toshiba Computer
EP0569969B1 (de) * 1992-05-12 1998-03-04 Nec Corporation Mikrocomputer mit Befehlsspeicher für Befehle zum Auslesen interner Bedingungen
SE508828C2 (sv) * 1992-12-08 1998-11-09 Ericsson Telefon Ab L M System för relationsåterhämtning av databas i händelse av fel
US5504914A (en) * 1993-06-23 1996-04-02 National Science Council Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
US6792523B1 (en) * 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6195691B1 (en) * 1996-09-17 2001-02-27 National Systems Corporation Method and apparatus for creating and using dynamic universal resource locators
JPH11161524A (ja) * 1997-11-28 1999-06-18 Nec Corp バス制御方式
US6006293A (en) * 1998-04-21 1999-12-21 Comsat Corporation Method and apparatus for zero overhead sharing for registered digital hardware
US6378065B1 (en) * 1998-04-27 2002-04-23 Infineon Technologies North America Corp. Apparatus with context switching capability
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
JP4573189B2 (ja) 1998-10-10 2010-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムコード変換方法
US7353163B2 (en) 1999-04-27 2008-04-01 Transitive Limited Exception handling method and apparatus for use in program code conversion
EP1183601A2 (de) * 1999-04-27 2002-03-06 Transitive Technologies Limited Ausnahmebehandlungsverfahren und gerät zur verwendung bei programmkodeumwandlung
US6453463B1 (en) * 1999-06-07 2002-09-17 Sun Microsystems, Inc. Method and apparatus for providing finer marking granularity for fields within objects
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
US6633974B1 (en) * 1999-11-04 2003-10-14 International Business Machines Corporation Apparatus and method for controlling link stack corruption during speculative instruction branching using multiple stacks
US6526503B1 (en) * 1999-11-04 2003-02-25 International Business Machines Corporation Apparatus and method for accessing a memory device during speculative instruction branching
US6732253B1 (en) * 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
DE10056546C1 (de) * 2000-11-15 2002-06-20 Infineon Technologies Ag Anordnung und Verfahren zur Erhöhung der Speicherdauer und der Speichersicherheit in einem ferroelektrischen oder ferromagnetischen Halbleiterspeicher
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
WO2002046885A2 (en) * 2000-11-28 2002-06-13 Chipwrights Design, Inc. Handling conditional processing in a single instruction multiple datapath processor architecture
JP2002189603A (ja) * 2000-12-19 2002-07-05 Fujitsu Ltd 計算機とその制御方法
US6807627B2 (en) * 2001-01-19 2004-10-19 Hewlett-Packard Development Company, L.P. Preserving the content of a first register without affecting the content of a second register
US7149764B2 (en) 2002-11-21 2006-12-12 Ip-First, Llc Random number generator bit string filter
US7219112B2 (en) 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US7136991B2 (en) 2001-11-20 2006-11-14 Henry G Glenn Microprocessor including random number generator supporting operating system-independent multitasking operation
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
US7493607B2 (en) * 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US7139785B2 (en) 2003-02-11 2006-11-21 Ip-First, Llc Apparatus and method for reducing sequential bit correlation in a random number generator
JP4750350B2 (ja) 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
WO2005020065A2 (en) * 2003-08-25 2005-03-03 Koninklijke Philips Electronics, N.V. Dynamic retention of hardware register content in a computer system
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
JP4311287B2 (ja) * 2004-06-25 2009-08-12 ソニー株式会社 ブートシステム及びブート方法及びこのブート方法を用いたデータ処理装置
US20070113055A1 (en) * 2005-11-15 2007-05-17 Dale Jason N Apparatus and method for improving single thread performance through speculative processing
US20070113056A1 (en) * 2005-11-15 2007-05-17 Dale Jason N Apparatus and method for using multiple thread contexts to improve single thread performance
US7823007B2 (en) * 2006-02-17 2010-10-26 International Business Machines Corporation Apparatus, system, and method for switching a volume address association in a point-in-time copy relationship
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
JP5186802B2 (ja) * 2007-05-08 2013-04-24 富士通セミコンダクター株式会社 マイクロプロセッサ
US20130070513A1 (en) * 2011-09-16 2013-03-21 Advanced Micro Devices, Inc. Method and apparatus for direct backup of memory circuits
US9159409B2 (en) 2011-09-16 2015-10-13 Advanced Micro Devices, Inc. Method and apparatus for providing complimentary state retention
GB2549774B (en) * 2016-04-28 2019-04-10 Imagination Tech Ltd Method for handling exceptions in exception-driven system
US11599359B2 (en) * 2020-05-18 2023-03-07 Advanced Micro Devices, Inc. Methods and systems for utilizing a master-shadow physical register file based on verified activation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
US4181938A (en) * 1975-10-15 1980-01-01 Tokyo Shibaura Electric Co., Ltd. Processor device
US4404647A (en) * 1978-03-16 1983-09-13 International Business Machines Corp. Dynamic array error recovery
US4287560A (en) * 1979-06-27 1981-09-01 Burroughs Corporation Dual mode microprocessor system
JPS5616248A (en) * 1979-07-17 1981-02-17 Matsushita Electric Ind Co Ltd Processing system for interruption
JPS6051749B2 (ja) * 1979-08-31 1985-11-15 富士通株式会社 エラ−訂正方式
US4434461A (en) * 1980-09-15 1984-02-28 Motorola, Inc. Microprocessor with duplicate registers for processing interrupts
JPS6145272B2 (de) * 1981-12-04 1986-10-07 Burroughs Corp

Also Published As

Publication number Publication date
EP0285310A2 (de) 1988-10-05
KR880011655A (ko) 1988-10-29
EP0285310A3 (en) 1990-08-16
KR920001101B1 (ko) 1992-02-01
DE3889578D1 (de) 1994-06-23
JPS63245529A (ja) 1988-10-12
US5021993A (en) 1991-06-04
EP0285310B1 (de) 1994-05-18

Similar Documents

Publication Publication Date Title
DE3889578T2 (de) Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.
DE3853529T2 (de) Dynamische Mehrbefehle-Mehrdaten-Mehrpipeline-Gleitpunkteinheit.
DE69227664T2 (de) Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE69231500T2 (de) Ein-Chip-Mikrorechner
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE2722099C2 (de)
DE69803304T2 (de) Hardwareunterstütztes verfahren zum kontextwechsel
DE2714805C2 (de)
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE69429226T2 (de) Absendung von Befehlen an mehrere Verarbeitungseinheiten
DE2629459C2 (de)
DE69622776T2 (de) Von Multitasking gebrauch machendes Sortieren
DE3638572C2 (de)
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2839726A1 (de) Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system
DE2411963B2 (de) Datenverarbeitungsanlage
DE69419992T2 (de) Geschichtspuffersystem
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
EP0764906A2 (de) Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
DE68926266T2 (de) Datenprozessor mit der Fähigkeit, Unterbrechungen mit hoher Geschwindigkeit zu verarbeiten
DE102004012516A1 (de) Computersystem zur elektronischen Datenverarbeitung
DE69111778T2 (de) Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits.
DE3650160T2 (de) Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem.
DE10063915B4 (de) Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt

Legal Events

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