-
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.