-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein Zurücksetz- bzw. Rollback-
bzw. Wiederholverfahren und eine Technologie eines Fortsetzens eines
Betriebs eines Systems bei einem Fehlverhalten in einem Mikrocomputer
durch erneutes Schreiben von gespeicherten Daten in einen Speicher.
-
Hintergrund der Erfindung
-
In
einem herkömmlichen Zurücksetzvorgang oder -verfahren
werden Daten eines Schreibzugriffsziels in einem Speicher normalerweise
bei jedem Schreiben oder Schreibzugriff in den Speicher gespeichert.
Bei dem Zurücksetzvorgang werden die gespeicherten Daten
erneut auf eine LIFO- bzw. Last-In-First-Out-Weise in den Speicher
geschrieben. Mehrere Male von Schreibzugriffen können bezüglich
einer bestimmten Speicheradresse durchgeführt oder überlappt
werden. In einem derartigen Fall werden Daten mehrere Male gespeichert
in die bestimmte Adresse und werden die gespeicherten Daten die
mehreren Male erneut geschrieben. Demgemäß verursacht
ein derartiger Zurücksetzvorgang ein Problem, dass sich
ein Übertragen von Daten, die nicht wesentlich ein erneutes
Schreiben erfordern, eine Zeit erhöht, die zum Erneuern
der Daten erforderlich ist.
-
Um
ein derartiges Problem zu lösen, sind einige Verfahren
zum Verringern der überlappten Daten in dem Sicherungsspeicher
vorgeschlagen worden. Zum Beispiel wird es in der
JP-H2-257228 A bestimmt,
ob eine Datenbank bereits zu einer Protokolldatei in einer Blockeinheit
oder einer Teileinheit der Blockeinheit ausgegeben worden ist. Lediglich
dann, wenn es bestimmt wird, dass die Datenbankdatei nicht ausgegeben
worden ist, wird die Datenbankdatei zu der Protokolldatei ausgegeben. Diese
Ausgestaltung verringert überlappte gespeicherte Daten, die
in dem Sicherungsspeicher erzeugt werden.
-
Zum
Beispiel wird in der
JP-H11-53239
A , wenn ein Aktualisierungsvorgang an einem bestimmten
Datenelement in einer Datenbank ausgeführt wird, überprüft,
ob es irgendeine Protokollinformation gibt, die einen weiteren Aktualisierungsvorgang
aufzeichnet, der vorhergehend an Daten des bestimmten Datenelements
ausgeführt worden ist. Wenn die Protokollinformation bereits
vorhanden ist, wird ein Aufzeichnen einer Protokollinformation gestoppt.
Daher kann ein Erzeugen der überlappten oder redundanten
gespeicherten Daten verringert werden.
-
Die
Technologien der
JP-H2-257228
A und der
JP-H11-53239
A , die zuvor erwähnt worden sind, können
sicher überlappte Daten in dem Sicherungsspeicher oder
ein Speichern von Daten verringern. Es gibt jedoch keine Offenbarung
bezüglich eines detaillierten Bestimmungsverfahrens oder
ob Daten bereits gespeichert worden sind. Das heißt, das
Folgende ist nicht besonders offenbart: Wie Daten zu speichern und
aufzuzeichnen sind; wie ein Bestimmen bezüglich dessen
durchzuführen ist, ob Daten mit den bereits gespeicherten
Daten bei einem nachfolgenden Speichern von Daten übereinstimmen.
Wenn das Verfahren des Bestimmens kompliziert ist, kann das Bestimmen
eine Zeit erfordern und eine Verzögerung des ursprünglichen
Verfahrens verursachen. Weiterhin kann das Bestimmen eine bedeutsame Zeit
erfordern, wenn ein Speichern bezüglich einer Speicheradresseneinheit
ausgeführt wird. Die effektive Geschwindigkeit eines Anwendungsprogramms, das
bezüglich eines derartigen Speicherns ausgeführt
wird, ist verglichen mit der eines Systems ohne Berücksichtigung
oder Einschließens eines Zurücksetzvorgangs bedeutsam
verringert.
-
Kurzfassung der Erfindung
-
Die
vorliegende Erfindung ist im Hinblick auf ein derartiges Problem
geschaffen worden und es ist eine Aufgabe der vorliegenden Erfindung,
ein wirksames Bestimmen eines Vorhandenseins oder Nichtvorhandenseins
eines Ausführens eines Speicherns von vorhergehenden Daten
zu der Zeit eines Ausführens eines Schreibzugriffs zu schaffen,
um dadurch ein Erzeugen von überlappten Daten in einem
Sicherungsspeicher zu verringern.
-
Diese
Aufgabe wird mit den in Anspruch 1 und 15 angegebenen Maßnahmen
gelöst.
-
Weitere
vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind Gegenstand
der abhängigen Ansprüche.
-
Gemäß einem
Beispiel der vorliegenden Erfindung wird ein Verfahren zum Ausführen
eines Zurücksetzvorgangs geschaffen, um einen Laufzustand eines
Mikrocomputers an einem vorhergehenden Zustand wiederherzustellen.
Das Verfahren weist auf: Vorbereiten einer Zugriffsmerkertabelle
und einer Adressenliste, wobei die Zugriffsmerkertabelle eine Information
aufzeichnet, die anzeigt, ob bezüglich einer Zugriffszieladresse
eines Hauptspeichers ein Schreibzugriff vorhergehend aufgetreten
ist, die Adressenliste eine Adresse des Hauptspeichers auflistet
und die Daten der Adresse in einen Sicherungsspeicher gespeichert
worden sind; Bezug nehmen auf eine (i) der Zugriffsmerkertabelle
und (ii) der Adressenliste vor einem Schreibzugriff auf eine Zugriffszieladresse
des Hauptspeichers; Durchführen eines Bestimmens eines
Auftretens bezüglich dessen, ob ein Schreibzugriff vorhergehend
aufgetreten ist, bezüglich der Zugriffszieladresse; Speichern
von Daten vor einem Aktualisieren, welche Daten vor einem Aktualisieren
sind, der Zugriffszieladresse in dem Speicher, während
die eine der Zugriffsmerkertabelle und der Adressenliste aktualisiert
wird, auf die Bezug genommen wird, wenn das Bestimmen eines Auftretens
verneint wird; und Verwenden der Daten vor einem Aktualisieren,
die in den Sicherungsspeicher gespeichert sind, wenn ein Zurücksetzvorgang ausgeführt
wird.
-
Gemäß einem
derartigen Zurücksetzverfahren werden die Zugriffsmerkertabelle
oder die Adressenliste zweckmäßig verwendet. Die
Charakteristiken von jedem Bestimmungsverfahren könnend
daher wirksam verwendet werden. Eine Notwendigkeit eines Datenspeicherverfahrens
kann wirksam bestimmt werden.
-
Gemäß einem
weiteren Beispiel der vorliegenden Erfindung wird eine Informations-Verarbeitungsvorrichtung
geschaffen, die das zuvor erwähnte Verfahren ausführt.
-
Gemäß noch
einem weiteren Beispiel der vorliegenden Erfindung wird eine Informations-Verarbeitungsvorrichtung
zum Ausführen eines Zurücksetzvorgangs geschaffen,
um einen Laufzustand eines Mikrocomputers an einem vorhergehenden
Zustand wiederherzustellen. Die Vorrichtung weist auf: ein Speichermodul
das dazu ausgelegt ist, eine Zugriffsmerkertabelle zu speichern,
die eine Information aufzeichnet, die anzeigt, ob ein Schreibzugriff
bezüglich einer Zugriffszieladresse eines Hauptspeichers zuvor
aufgetreten ist; ein Speichermodul, das dazu ausgelegt ist, eine
Adressenliste zu speichern, die eine Adresse des Hauptspeichers
auflistet, wobei Daten der Adresse in einen Sicherungsspeicher gespeichert
worden sind; eine Referenz-Steuereinheit, die dazu ausgelegt ist,
auf (i) die Zugriffsmerkertabelle und (ii) die Adressenliste vor
einem Schreibzugriff in eine Zugriffszieladresse des Hauptspeichers
Bezug zu nehmen; eine Auftretensbestimmens-Steuereinheit, die dazu
ausgelegt ist, bezüglich der Zugriffszieladresse ein Bestimmen
eines Auftretens bezüglich dessen durchzuführen,
ob ein Schreibzugriff zuvor aufgetreten ist; eine Datenspeicher-Steuereinheit,
die dazu ausgelegt ist, Daten vor einem Aktualisieren, welche Daten
vor einem Aktualisieren sind, der Zugriffszieladresse in den Speicher
zu speichern, während die eine der Zugriffsmerkertabelle
und der Adressenliste aktualisiert wird, auf die Bezug genommen
wird, wenn das Bestimmen eines Auftretens verneint wird; und eine
Zurücksetz-Steuereinheit, die dazu ausgelegt ist, die Daten
vor einem Aktualisieren zu verwenden, die in den Sicherungsspeicher
gespeichert sind, wenn ein Zurücksetzvorgang ausgeführt
wird.
-
Kurze Beschreibung der Zeichnung
-
Die
vorliegende Erfindung wird nachstehend anhand von Ausführungsbeispielen
unter Bezugnahme auf die beiliegende Zeichnung näher erläutert.
-
Es
zeigt:
-
1 ein
Blockschaltbild eines Aufbaus einer Informations-Verarbeitungsvorrichtung
gemäß einem Ausführungsbeispiel der vorliegenden
Erfindung;
-
2 ein
Flussdiagramm zum Erläutern eines Schreibzugriffsvorgangs;
-
3 ein
Flussdiagramm zum Erläutern eines ersten Speichervorgangs;
-
4 ein
Datenflussdiagramm zum Erläutern eines Beispiels des ersten
Speichervorgangs;
-
5 ein
Flussdiagramm zum Erläutern eines zweiten Speichervorgangs;
-
6 ein
Datenflussdiagramm zum Erläutern eines Beispiels des zweiten
Speichervorgangs;
-
7 ein
Flussdiagramm zum Erläutern eines Zurücksetzvorgangs;
-
8 ein
Flussdiagramm zum Erläutern eines dritten Speichervorgangs;
-
9 ein
Flussdiagramm zum Erläutern eines vierten Speichervorgangs;
-
10A, 10B Diagramme
zum Erläutern von Beispielen einer Zugriffsmerkertabelle;
-
11 ein
Flussdiagramm zum Erläutern eines zweiten Listenreferenzierungsvorgangs;
-
12 ein
Flussdiagramm zum Erläutern eines fünften Speichervorgangs;
und
-
13 ein
Flussdiagramm zum Erläutern eines sechsten Speichervorgangs.
-
Detaillierte Beschreibung der bevorzugten
Ausführungsbeispiele
-
Ein
Ausführungsbeispiel der vorliegenden Erfindung wird unter
Bezugnahme auf die Zeichnung erläutert. Weiterhin kann
das Ausführungsbeispiel der vorliegenden Erfindung auf
verschiedene Weisen innerhalb eines technischen Umfangs der vorliegenden
Erfindung ausgestaltet werden, ohne auf das folgende Ausführungsbeispiel
beschränkt zu sein.
-
Erläuterung eines
Aufbaus
-
1 zeigt
ein Blockschaltbild eines Gesamtaufbaus einer Informations-Verarbeitungsvorrichtung 11,
welche einen Zurücksetzvorgang des vorliegenden Ausführungsbeispiels
realisieren kann. Die Informations-Verarbeitungsvorrichtung 11 beinhaltet
eine CPU 12, einen Hauptspeicher 13, einen I/O-
bzw. Eingabe/Ausgabeschnittstelle 14, einen Sicherungsspeicher 15,
eine Zugriffsmerkertabelle 16, eine Adressenliste 17 und
einen Bus 18, der die vorhergehenden Komponenten verbindet.
-
Die
CPU 12 wirkt als eine Steuereinheit und ist ein bekannter
Mikrocomputer und kann verschiedene Arten von Verfahren auf der
Grundlage von vorab festgelegten Programmen ausführen.
Die CPU 12 kann über den Bus 18 auf jede
Komponente zugreifen.
-
Der
Hauptspeicher 13 ist ein Speichermodul, das aus einem DRAM
usw. besteht und Programmcodes, Daten usw. entwickeln kann. Die
I/O 14 verwaltet eine Kommunikation mit Vorrichtungen außerhalb
der Informations-Verarbeitungsvorrichtung 11. Die äußeren
Vorrichtungen beinhalten zum Beispiel eine Anzeigevorrichtung, eine
Audio-Ausgabevorrichtung und eine Bedienvorrichtung.
-
Der
Sicherungsspeicher 15 ist ein Speichermodul, welcher aus
einem DRAM usw. besteht und in dem vorliegenden Ausführungsbeispiel
als ein Körper unabhängig ist, der zu dem Hauptspeicher 13 unterschiedlich
ist. Der Sicherungsspeicher 15 wird zum Speichern von Daten
verwendet, die in einem Zurücksetzvorgang erforderlich
sind. Weiterhin kann der Sicherungsspeicher 15 in einem
Teilbereich des Hauptspeichers 13 beinhaltet sein, anstatt
als der unabhängige Körper vorgesehen zu sein,
der zu dem Speichermodul des Hauptspeichers 13 unterschiedlich
ist.
-
Die
Zugriffsmerkertabelle 16 ist in einem Speichermodul beinhaltet,
das aus einem DRAM oder dergleichen besteht. Sie ist eine Tabelle
zum Speichern oder Aufzeichnen einer Information, die in einem Zurücksetzvorgang
erforderlich ist. Alternativ kann die Zugriffsmerkertabelle in einem
Teilbereich des Hauptspeichers 13 beinhaltet sein. Die
Details der Zugriffsmerkertabelle 16 werden später
erwähnt.
-
Die
Adressenliste 17 ist in einem Speichermodul beinhaltet,
das aus einem DRAM oder dergleichen besteht. Sie ist eine Liste
zum Speichern oder Aufzeichnen einer Information, die in einem Zurücksetzvorgang
erforderlich ist. Alternativ kann die Adressenliste 17 in
einem Teilbereich des Hauptspeichers 13 beinhaltet sein.
Die Details der Adressenliste 17 werden später
erwähnt.
-
Erläuterung einer Funktionsweise
-
Grundlegendes Ausführungsbeispiel
-
Die
folgenden Ausführungen erläutern ein Verfahren,
das in einem grundlegenden Ausführungsbeispiel von einer
CPU 12 ausgeführt wird. Hierbei wird lediglich
ein Verfahren, das bezüglich des vorliegenden Ausführungsbeispiels
relevant ist, aus den Verfahren erläutert, die von der
CPU 12 ausgeführt werden. Die Erläuterung über
Verfahren von Anwendungsprogrammen usw., die von der CPU 12 ausgeführt
werden, wird weggelassen.
-
(1) Schreibzugriffsverfahren
-
Als
Erstes wird ein Schreibzugriffsverfahren, das von der CPU 12 ausgeführt
wird, unter Verwendung eines Flussdiagramms von 2 erläutert.
Das Schreibzugriffsverfahren wird gestartet, wenn ein Schreibzugriff
(eine Einschreibanweisung) in den Hauptspeicher 13 durch
ein Anwendungsprogramm durchgeführt wird.
-
Mit
dem Start des Verfahrens bestimmt die CPU 12 in S105, ob
ein Zugriffsziel in einem Stapelbereich des Hauptspeichers 13 beinhaltet
ist. Der Stapelbereich ist als ein Bereich zum Zuweisen einer lokalen
Variablen in einem Programm definiert, das von der CPU 12 ausgeführt
wird.
-
Wenn
das Bestimmen in S105 bejahend ist oder wenn es bestimmt wird, dass
das Zugriffsziel in einem Stapelbereich des Hauptspeichers 13 beinhaltet
ist, schreitet die Verarbeitung zu S110 fort. Wenn es bestimmt wird,
dass das Zugriffsziel nicht in einem Stapelbereich beinhaltet ist,
was NEIN in S105 entspricht, schreitet die Verarbeitung zu S115
fort. Hierbei bedeutet, dass das Zugriffsziel nicht in einem Stapelbereich
beinhaltet ist, dass das Zugriffsziel zum Beispiel in einem globalen
Bereich beinhaltet ist. Der globale Bereich wird zum Zuweisen einer
globalen Variablen in einem Programm verwendet, das zum Beispiel
von der CPU 12 ausgeführt wird.
-
Ein
erster Speichervorgang wird in S110 ausgeführt. Die Details
des ersten Speichervorgangs werden später erwähnt.
Nach einem Beenden des ersten Speichervorgangs schreitet die Verarbeitung zu
S120 fort. Ein zweiter Speichervorgang wird in S115 ausgeführt.
Die Details des zweiten Speichervorgangs werden später
erwähnt. Nach einem Beenden des zweiten Speichervorgangs
schreitet die Verarbeitung zu S120 fort.
-
Der
Hauptspeicher 13 wird in S120 aktualisiert. Zum Beispiel
wird ein bestimmtes Datenelement in eine Adresse geschrieben, die
durch das Anwendungsprogramm bezeichnet wird. Der Hauptspeicher 13 wird
aktualisiert und der vorliegende Schreibzugriffsvorgang endet dann.
-
(2) Erster Speichervorgang
-
Als
Nächstes wird ein erster Speichervorgang, der von der CPU 12 ausgeführt
wird, unter Verwendung eines Flussdiagramms in 3 erläutert. Der
erste Speichervorgang startet durch Aufrufen des Schreibzugriffsvorgangs,
der zuvor erwähnt worden ist, in S110.
-
Mit
dem Start des Vorgangs lädt die CPU 12 in S205
einen Zugriffsmerker, der einer Zugriffszieladresse entspricht,
aus der Zugriffsmerkertabelle 16. Das Beispiel wird später
erwähnt.
-
Dann
wird es in S210 bestimmt, ob der geladene Zugriffsmerker positiv
oder negativ ist. Der positive Zugriffsmerker wird durch einen Merkerwert
angezeigt, der in einem "1"-Zustand ist, um zu kennzeichnen, dass
die entsprechende Zugriffszieladresse ein Ziel eines Schreibzugriffs
in der Vergangenheit gewesen ist. Der negative Zugriffsmerker wird
durch einen Merkerwert angezeigt, der in einem "0"-Zustand ist,
um zu kennzeichnen, dass die entsprechende Zugriffszieladresse bisher
kein Ziel eines Schreibzugriffs gewesen ist.
-
Wenn
der geladene Zugriffsmerker als positiv bestimmt wird, was JA in
S210 entspricht, endet der vorliegende erste Speichervorgang. Die
CPU 12 führt die Verarbeitung aus, die S110 des
Schreibzugriffsvorgangs der Quelle folgt, die den ersten Speichervorgang
aufgerufen hat.
-
Wenn
der geladene Zugriffsmerker in S210 als nicht positiv bestimmt wird
oder wenn der geladene Zugriffsmerker negativ ist, was NEIN in S210
entspricht, schreitet die Verarbeitung zu S215 fort.
-
In
S215 werden Daten vor einem Aktualisieren, welche Daten vor einem
Aktualisieren sind und derzeit in der Zugriffszieladresse des Hauptspeichers 13 gespeichert
sind, in den Sicherungsspeicher 15 gespeichert. Gleichzeitig
wird ein Sicherungsspeicher-Stapelzeiger des Sicherungsspeichers 15 dekrementiert,
das heißt der Zeiger wird derart bewegt, dass ein Punkt,
der durch den Zeiger angezeigt wird, um eine einzelne Adresse dekrementiert
wird. Im nachfolgenden S220 wird der Zugriffsmerker der Zugriffszieladresse
als positiv bestimmt und in der Zugriffsmerkertabelle 16 gespeichert
oder aufgezeichnet. Der vorliegende erste Speichervorgang endet. Die
CPU 12 führt dann die Verarbeitung aus, die S110
des Speicherzugriffsvorgangs der Quelle folgt, die den ersten Speichervorgang
aufgerufen hat.
-
Hierbei
wird eine Funktionsweise des ersten Speichervorgangs unter Verwendung
eines Diagramms von 4 erläutert. Wenn Daten
"0310" in eine Adresse "8001" des Hauptspeichers 13 geschrieben
werden, liest die CPU 12 einen Zugriffsmerker "0" der Adresse
"8001" aus der Zugriffsmerkertabelle 16 aus.
-
Die
CPU 12 nimmt auf den Zugriffsmerker "0" Bezug, um dadurch
zu bestimmen, dass Daten, die in der Adresse "8001" des Hauptspeichers 13 vorhanden
sind, gespeichert oder evakuiert werden müssen, und führt
den Speichervorgang aus. Zum Beispiel liest die CPU 12 die
Daten "0010" aus der Adresse "8001" des Hauptspeichers 13.
Die Adresse "8001" und die Daten "0010" werden an einem Punkt in
den Sicherungsspeicher 15 geschrieben oder gespeichert,
der durch den Sicherungsspeicher-Stapelzeiger angezeigt wird. Der
Sicherungsspeicher-Stapelzeiger wird dekrementiert, das heißt,
ein Punkt, der durch den Zeiger angezeigt wird, wird bewegt, um
um eine einzelne Adresse dekrementiert zu werden.
-
Dann
schreibt die CPU 12 als ein Aktualisieren Daten "0310"
als Aktualisierungsdaten in die Adresse "8001" des Hauptspeichers 13.
Hierbei werden, wenn die CPU 12 auf den Zugriffsmerker
"1" Bezug nimmt, die Aktualisierungsdaten ohne Speichern der vorliegenden
Daten oder der Daten vor einem Aktualisieren in die entsprechende
Adresse des Hauptspeichers 13 geschrieben.
-
(3) Zweiter Speichervorgang
-
Als
Nächstes wird ein zweiter Speichervorgang, der von der
CPU 12 ausgeführt wird, unter Verwendung eines
Flussdiagramms von 5 erläutert. Der zweite
Speichervorgang startet durch ein Aufrufen in S120 des Schreibzugriffsvorgangs,
der zuvor erwähnt worden ist.
-
Mit
dem Start des Verfahrens initialisiert die CPU 12 einen
Referenzziellistenindex in S305. Dieser Referenzziellistenindex
ist ein Zeiger, welcher ein Referenzziel in der Adressenliste 17 anzeigt.
Das Listenelement, auf welches dieser Referenzziellistenindex zeigt,
wird ein Ziel für die Referenz.
-
In
S310 wird es bestimmt, ob alle der Adressen der Adressenliste 17 mit
der Schreibzugriffszieladresse verglichen worden sind. Hierbei bedeutet "Vergleichen"
einen Vergleich, der in dem später erwähnten S330
ausgeführt wird. Wenn es bestimmt wird, dass alle der Adressen
in der Adressenliste 17 mit der Schreibzugriffszieladresse
verglichen worden sind, was JA in S310 entspricht, schreitet die
Verarbeitung zu S315 fort. Wenn es bestimmt wird, dass alle der
Adressen in der Adressenliste 17 nicht mit der Schreibzugriffszieladresse
verglichen worden sind, was NEIN in S310 entspricht, schreitet die
Verarbeitung zu S330 fort.
-
In
S315 werden nach JA in S310 Daten vor einem Aktualisieren, welche
Daten vor einem Aktualisieren sind und derzeit in der Zugriffszieladresse des
Hauptspeichers 13 gespeichert sind, in den Sicherungsspeicher 15 gespeichert.
Der Stapelzeiger des Sicherungsspeichers 15 wird bewegt,
um in S320 dekrementiert zu werden. Das hintere Ende der Adressenliste 17 wird
zu der Adresse geändert, die den gespeicherten Daten entspricht,
und die Adresse "FFFF", die das hintere Ende bedeutet, wird als
ein neues Listenelement in S325 hinzugefügt. Der derzeitige
zweite Speichervorgang endet. Die CPU 12 führt
dann die folgende Verarbeitung aus, die S120 des Schreibzugriffsvorgangs
der Quelle folgt, die den zweiten Speichervorgang aufgerufen hat.
-
In
S330 wird nach NEIN in S310 die Zugriffszieladresse mit einem Listenelement
(einer Adresse) in der Adressenliste 17 verglichen, die
durch den Referenzziellistenindex angezeigt wird. Die Verarbeitung
wird durch ein Ergebnis des Vergleichs in S335 verzweigt. Wenn die
Adressen miteinander übereinstimmen, was JA in S335 entspricht,
endet der derzeitige zweite Speichervorgang. Die CPU 12 führt dann
die Verarbeitung aus, die S120 des Schreibzugriffsvorgangs der Quelle
folgt, die den zweiten Speichervorgang aufgerufen hat. Im Gegensatz
dazu schreitet, wenn die Adressen nicht miteinander übereinstimmen,
was NEIN in S335 entspricht, die Verarbeitung zu S340 fort.
-
In
S340 wird nach NEIN in S335 der Referenzziellistenindex inkrementiert
und kehrt die Verarbeitung zu S310 zurück, wie es zuvor
erwähnt worden ist. Hierbei wird eine Funktionsweise des
zweiten Speichervorgangs unter Verwendung eines Diagramms von 6 erläutert.
Die CPU 12 beabsichtigt, Daten "0310" in die Adresse "7001"
des Hauptspeichers 13 zu schreiben. Zuerst wird die Adresse aus
der Adressenliste 17 gelesen, während sie von "0"
in dem Listenindex inkrementiert wird. Es wird bestimmt, ob die
Adresse "7001" des Schriebziels in der Adressenliste 17 vorhanden
ist. Es kann bestimmt werden, dass die beabsichtigte Adresse auch
nach einem Zirkulieren oder Gehen um die Adressenliste 17 nicht
in der Adressenliste 17 vorhanden ist. In einem derartigen
Fall bestimmt die CPU 12, dass die derzeitigen Daten (Daten
vor einem Aktualisieren) in der Adresse "7001" des Hauptspeichers 13 gespeichert
werden müssen, um dadurch die derzeitigen Daten in dem
Sicherungsspeicher 15 zu speichern. Zum Beispiel liest
die CPU 12 die Daten "0010" aus der Adresse "7001" des
Hauptspeichers 13. Die Adresse "7001" und die Daten "0010"
werden an einem Punkt in den Sicherungsspeicher 15 geschrieben
oder gespeichert, auf den durch den Speicherstapelzeiger gezeigt
wird. Dann schreibt die CPU 12 Daten "0310" als Aktualisierungsdaten
in die Adresse "7001" des Hauptspeichers 13. Die CPU 12 ändert die
Adresse in der Adressenliste 17 entsprechend dem Listenindex
"4" von "FFFF" zu "7001" und fügt neu eine Adresse "FFFF"
als einen Listenindex "5" hinzu.
-
Es
kann bestimmt werden, dass die beabsichtigte Adresse der Adressenliste 17 vorhanden
ist, bevor der Referenzziellistenindex um die Adressenliste 17 gegangen
ist oder zirkuliert ist. In einem derartigen Fall schreibt die CPU 12 Daten
"0310" ohne Speichern der derzeitigen Daten vor einem Aktualisieren
als Aktualisierungsdaten in die Adresse "7001" des Hauptspeichers 13.
-
(4) Zurücksetzvorgang
-
Als
Nächstes wird ein Zurücksetzvorgang, der von der
CPU 12 ausgeführt wird, unter Verwendung eines
Flussdiagramms von 7 erläutert. Ein Ausführen
eines Zurücksetzvorgangs wird gestartet, wenn ein bestimmtes
Fehlverhalten in der Informations-Verarbeitungsvorrichtung 11 auftritt
oder wenn eine Anweisung des Ausführens des Zurücksetzvorgangs über
die I/O 14 von einer anderen Vorrichtung empfangen wird,
die mit der Informations-Verarbeitungsvorrichtung 11 verbunden
ist.
-
Mit
dem Start eines Ausführens eines Zurücksetzvorgangs
bestimmt die CPU 12, ob der Stapelzeiger des Sicherungsspeichers 15 inkrementiert werden
kann, das heißt, ein Punkt, der durch den Stapelzeiger
des Sicherungsspeichers 15 angezeigt wird, inkrementiert
werden kann. Wenn es bestimmt wird, dass der Zeiger inkrementiert
werden kann, was JA in S405 entspricht, schreitet die Verarbeitung
zu S410 fort. Wenn es bestimmt wird, dass der Zeiger nicht inkrementiert
werden kann, was NEIN in S405 entspricht, endet der derzeitige Zurücksetzvorgang.
-
In
S410 wird nach JA in S405 der Stapelzeiger des Sicherungsspeichers 15 inkrementiert
oder derart bewegt, dass der entsprechende Punkt, der durch den
Zeiger angezeigt wird, inkrementiert wird. Die Daten in dem Sicherungsspeicher 15,
auf welche der Stapelzeiger zeigt, werden in S415 zu der entsprechenden
Adresse des Hauptspeichers 13 zurückgeführt
und neu geschrieben. Die entsprechende Adresse ist äquivalent
zu der Adresse in dem Sicherungsspeicher 15, auf welche
der Stapelzeiger zeigt. Nach einem Beenden eines Zurückführens
und neu Schreibens der Daten kehrt die Verarbeitung zu S405 zurück,
der zuvor erwähnt worden ist.
-
Daher
können die Dateninhalte des Hauptspeichers 13 durch
Ausführen des Zurücksetzvorgangs zu dem vorhergehenden
statischen Punkt oder Zustand zurückgeführt werden.
-
Wirkung des grundlegenden
Ausführungsbeispiels
-
In
der Informations-Verarbeitungsvorrichtung 11 des derzeitigen
Ausführungsbeispiels wird es, wenn ein Schreibzugriff zu
einem Stapelbereich des Hauptspeichers 13 ausgeführt
wird, was JA in S105 entspricht, durch Bezug nehmen auf die Zugriffsmerkertabelle 16 in
S110 bestimmt, ob ein weiterer Schreibzugriff in der Zugriffszieladresse
in der Vergangenheit aufgetreten ist. Wenn ein Schreibzugriff an
einem globalen Bereich ausgeführt wird, was NEIN in S105
entspricht, wird es in S115 durch Bezug nehmen auf die Adressenliste 17 bestimmt,
ob ein Schreibzugriff in der Zugriffszieladresse in der Vergangenheit
aufgetreten ist.
-
Eine
derartige Ausgestaltung kann wirksam einzelne Vorteile der Bestimmungsverfahren
unter Verwendung sowohl der Zugriffsmerkertabelle 16 als auch
der Adressenliste 17 vorsehen. Das Vorhandensein oder Nichtvorhandensein
des vergangenen Ausführens eines Speicherns kann zu der
Zeit eines Schreibzugriffs wirksam bestimmt werden.
-
Hierbei
speichert die Zugriffsmerkertabelle 16 einen Zugriffsmerker,
der anzeigt, ob ein Schreibzugriff in der Vergangenheit für
jede Adresse des Zugriffsziels aufgetreten ist. Die CPU 12 lädt
den Zugriffsmerker, der der Zugriffszieladresse entspricht, aus
der Zugriffsmerkertabelle 16 und führt ein Bestimmen
eines Auftretens bezüglich dessen durch, ob ein weiterer
Speicherzugriff in der Vergangenheit von dem Zugriffsmerker aufgetreten
ist. Lediglich dann, wenn es keinen Schreibzugriff in der Vergangenheit
gegeben hat, werden die derzeitigen Daten vor einem Aktualisieren
der Zugriffszieladresse in den Sicherungsspeicher 15 gespeichert
oder evakuiert. Gleichzeitig wird der Zugriffsmerker der Zugriffsmerkertabelle 16,
der der Zugriffszieladresse entspricht, aktualisiert. Deshalb ist
das Bestimmen eines Auftretens unter Verwendung der Zugriffsmerkertabelle 16 für
Zugriffe auf den Stapelspeicher geeignet. Der Stapelspeicher belegt
einen kleinen Teil des Speicherbereichs und die Lokalität
von Zugriffen ist hoch.
-
Demgemäß kann
die Abmessung der Tabelle, die zum Bestimmen erforderlich ist, ob
ein Datenspeichervorgang erforderlich ist, unter Verwendung der
Zugriffsmerkertabelle verringert werden. Weiterhin lässt
ein einmaliges Bezug nehmen auf die Zugriffsmerkertabelle durch
Bezeichnen einer Adresse das Bestimmen bezüglich dessen
zu, ob ein Datenspeichervorgang bezüglich einer entsprechenden Zugriffszieladresse
erforderlich ist.
-
Weiterhin
listet die Adressenliste 17, um Zeitpunkte zu sparen, Adressen
des Hauptspeichers 13 auf, die den Daten entsprechen, die
in der Vergangenheit in dem Sicherungsspeicher 15 gespeichert worden
sind. Die CPU 12 bestimmt aufeinanderfolgend in einer Reihenfolge
von dem vorderen Ende oder der Spitze der Adressenliste 17,
ob ein Listenelement der Liste mit der Zugriffszieladresse übereinstimmt.
Das Bestimmen (hier im weiteren Verlauf ebenso als ein Bestimmen einer Übereinstimmung bezeichnet)
wird einmal beendet, wenn ein Listenelement der Liste mit der Zugriffszieladresse übereinstimmt.
Wenn alle der Listenelemente nicht mit der Zugriffszieladresse übereinstimmen,
speichert die CPU 12 Daten vor einem Aktualisieren, welche
Daten vor einem Aktualisieren sind, der Zugriffszieladresse des
Sicherungsspeichers 15 und fügt die Zugriffszieladresse
zu der Adressenliste 17 hinzu. Daher ist das Bestimmen
einer Übereinstimmung unter Verwendung der Adressenliste 17 zum
Zugreifen auf den globalen Bereich geeignet. Der globale Bereich
oder Verwendungsbereich des globalen Bereichs belegt einen großen
Teil des Speicherbereichs. Weiterhin ist die Lokalität
von Zugriffen niedrig und sind eine Sequenzialität und
Periodizität hoch.
-
Demgemäß stimmt
ein Anwenden einer Listenform mit einer Charakteristik von Zugriffen überein und
lässt das Bestimmen bezüglich dessen zu, ob ein Datenspeichervorgang
lediglich für eine relativ kleine Anzahl von Malen von
Referenzen erforderlich ist.
-
Ausgestaltungen
-
Als
Nächstes werden Ausgestaltungen beschrieben. Hierbei erläutern
die folgenden Ausführungen hauptsächlich Unterschiede
zu dem grundlegenden Ausführungsbeispiel, das zuvor erwähnt
worden ist.
-
(1) Dritter Speichervorgang
-
Ein
dritter Speichervorgang kann den zuvor erwähnten ersten
Speichervorgang ersetzen. Als Nächstes wird der dritte
Speichervorgang, der von der CPU 12 ausgeführt
wird, unter Verwendung eines Flussdiagramms von 8 erläutert.
Weiterhin wird in dem dritten Speichervorgang eine Zugriffsmerkertabelle 16a,
die in 10A gezeigt ist, anstelle der Zugriffsmerkertabelle 16 verwendet,
die von dem ersten Speichervorgang verwendet wird. Details werden später
erwähnt.
-
Mit
dem Start des dritten Speichervorgangs bezeichnet die CPU 12 einen
Tabellenindex von einer Zugriffszieladresse in S505. Der Tabellenindex
wird zum bezeichnen eines Datensatzes der Zugriffsmerkertabelle 16a verwendet.
Der Tabellenindex ist durch die oberen 12 Bits der Zugriffszieladresse
dargestellt, die in dem vorliegenden Ausführungsbeispiel
16 Bits aufweist. Deshalb entsprechen 16 Zugriffszieladressen einem
Tabellenindex. Weiterhin kann eine Tabelle, die die Beziehung zwischen
Zugriffszieladressen und Tabellenindizes darstellt, getrennt vorbereitet
werden und auf diese verwiesen werden.
-
Dann
wird ein Zugriffsmerker, der dem Tabellenindex entspricht, von der
Zugriffsmerkertabelle 16a in S510 geladen. Hierbei wird
der Zugriffsmerkertabelle 16a unter Verwendung von 10A erläutert.
-
Jeder
von Datensätzen, der in der Zugriffsmerkertabelle 16a beinhaltet
ist, beinhaltet (i) einen Tabellenindex zum Bezeichnen jedes Datensatzes und
(ii) einen Zugriffsmerker zum Anzeigen, ob ein Schreibzugriff in
der Vergangenheit an einer Zugriffszieladressengruppe aufgetreten
ist. Zum Beispiel entspricht ein Tabellenindex "800" einem Zugriffsmerker
"0", wie es in 10A gezeigt ist. Der Tabellenindex
"800" entspricht einer Zugriffszieladressengruppe "8000" bis "800F".
Deshalb lädt die CPU 12 nach einem Bezeichnen
eines Tabellenindex aus der Zugriffszieladresse einen Zugriffsmerker,
der dem bezeichneten Tabellenindex entspricht, aus der Zugriffsmerkertabelle 16a.
Daher versteht es sich, ob ein Schreibzugriff, der in der Vergangenheit
an irgendeiner der Adressen aufgetreten ist, in der entsprechenden
Zugriffszieladressengruppe beinhaltet ist.
-
In
S515 in 8 wird es dann bestimmt, ob der
geladene Zugriffsmerker positiv oder negativ ist. Der positive Zugriffsmerker
wird durch einen Merkerwert angezeigt, der in einem "1"-Zustand
ist, um zu kennzeichnen, dass die entsprechende Zugriffszieladressengruppe
in der Vergangenheit ein Ziel eines Schreibzugriffs gewesen ist.
Der negative Zugriffsmerker wird durch einen Merkerwert angezeigt,
der in einem "0"-Zustand ist, um zu kennzeichnen, dass die entsprechende
Zugriffszieladressengruppe bisher kein Ziel eines Schreibzugriffs
gewesen ist.
-
Wenn
der geladene Zugriffsmerker als positiv bestimmt wird, was JA in
S515 entspricht, endet der derzeitige dritte Speichervorgang. Die
CPU 12 führt dann die Verarbeitung aus, die S110
des Schreibzugriffsvorgangs der Quelle folgt, die den derzeitigen
dritten Speichervorgang aufgerufen hat.
-
Im
Gegensatz dazu schreitet, wenn der geladene Zugriffsmerker in S515
nicht als positiv bestimmt wird oder wenn der geladene Zugriffsmerker negativ
ist, was NEIN in S515 entspricht, die Verarbeitung zu S520 fort.
-
In
S520 werden Daten vor einem Aktualisieren, welche Daten vor einem
Aktualisieren sind und derzeit in der Adressengruppe gespeichert
sind, die der Zugriffszieladresse des Hauptspeichers 13 entspricht,
in den Sicherungsspeicher 15 gespeichert. "Die Adressengruppe,
die der Zugriffszieladressengruppe entspricht" zeigt alle der Adressen
an, die dem gleichen Tabellenindex wie der Tabellenindex zugeordnet
sind, der in S505 bezeichnet wird.
-
In
S525 danach wird ein Sicherungsspeicher-Stapelzeiger des Sicherungsspeichers 15 dekrementiert,
das heißt, er wird derart bewegt, dass der Punkt, der durch
den Zeiger angezeigt wird, um die Anzahl von Adressen dekrementiert
wird, deren Daten gespeichert worden sind. Im nachfolgenden S530
wird der Zugriffsmerker der Zugriffszieladressengruppe positiv festgelegt
und in der Zugriffsmerkertabelle 18a gespeichert. Der derzeitige
dritte Speichervorgang endet. Die CPU 12 führt
dann die Verarbeitung aus, die S110 des Schreibzugriffsvorgangs der
Quelle folgt, die den derzeitigen dritten Speichervorgang aufgerufen
hat.
-
Wenn
der dritte Speichervorgang anstelle des ersten Speichervorgangs
ausgeführt wird, kann die Tabellenabmessung der Zugriffsmerkertabelle 16 kleiner
ausgelegt werden.
-
(2) Vierter Speichervorgang
-
Ein
vierter Speichervorgang kann den ersten Speichervorgang ersetzen,
der zuvor erwähnt worden ist. Als Nächstes wird
der vierte Speichervorgang, der von der CPU 12 ausgeführt
wird, unter Verwendung eines Flussdiagramms von 9 erläutert. Weiterhin
wird in dem vierten Speichervorgang eine Zugriffsmerkertabelle 16b,
die in 10B gezeigt ist, anstelle der
Zugriffsmerkertabelle 16 verwendet, die von dem ersten
Speichervorgang verwendet wird. Details werden später erwähnt.
-
Mit
dem Start des vierten Speichervorgangs bezeichnet die CPU 12 einen
Tabellenindex aus einer Zugriffszieladresse in S605. Der Tabellenindex
wird zum Bezeichnen eines Datensatzes einer Zugriffsmerkertabelle 16b verwendet.
Der Tabellenindex ist durch die oberen 12 Bits der Zugriffszieladresse
dargestellt, die in dem vorliegenden Ausführungsbeispiel
16 Bits aufweist. Deshalb entsprechen 16 Zugriffszieladressen einem
Tabellenindex. Weiterhin kann eine Tabelle, die die Beziehung zwischen
Zugriffszieladressen und Tabellenindizes darstellt, getrennt vorbereitet
werden und auf diese verwiesen werden.
-
Dann
wird es bestimmt, ob eine Zugriffsmerkerreihe, die dem Tabellenindex
entspricht, der in S605 bezeichnet wird, in S610 bereits in die
CPU 12 geladen worden ist. Die Zugriffsmerkerreihe ist
ein Satz von 16 Zugriffsmerkern und jeder Merker ist einem Bit zugewiesen.
-
Das
heißt, eine Zugriffsmerkerreihe besteht aus einem Wort
von 16 Bits.
-
Wenn
es bestimmt wird, dass die Zugriffsmerkerreihe bereits geladen worden
ist, was JA in S610 entspricht, schreitet die Verarbeitung zu S630 fort.
Wenn es bestimmt wird, dass die Zugriffsmerkerreihe, die dem Tabellenindex
entspricht, der in S605 bezeichnet wird, noch nicht geladen worden
ist, was NEIN in S610 entspricht, schreitet die Verarbeitung zu
S615 fort.
-
In
S615 wird bzw. werden nach einem NEIN in S610 eine andere Zugriffsmerkerreihe
bzw. andere Zugriffsmerkerreihen, die bereits geladen worden sind,
in der Zugriffsmerkertabelle 16b gespeichert. Dann wird
die Zugriffsmerkerreihe, die dem Tabellenindex entspricht, der in
S605 bezeichnet wird, von der Zugriffsmerkertabelle 16b in
S620 geladen. Hierbei wird die Zugriffsmerkertabelle 16b unter
Verwendung von 10B erläutert.
-
Jeder
von Datensätzen, der in der Zugriffsmerkertabelle 16b beinhaltet
ist, beinhaltet (i) einen Tabellenindex zum Bezeichnen von jedem
Datensatz und (ii) eine Zugriffsmerkerreihe zum Anzeigen, ob ein
Schreibzugriff in der Vergangenheit in der Zugriffszieladressengruppe
aufgetreten ist. Die Zugriffsmerkerreihe beinhaltet Merker, die
einzeln eine 1-zu-1-Entsprechung zu den Adressen aufweisen, die
in der Zugriffszieladressengruppe beinhaltet sind. Die Reihenfolge
der Adressen entspricht der der Merker. Zum Beispiel entspricht
die Zugriffszieladressengruppe "8000" bis "800F" dem Tabellenindex
"800". In der Zugriffsmerkerreihe, die "0011001000010000" aufweist,
entspricht der oberste Merker der Adresse "800F", während
der unterste Merker der Adresse "8000" entspricht. Deshalb lädt
die CPU 12 nach einem Bezeichnen des Tabellenindex aus
der Zugriffszieladresse eine Zugriffsmerkerreihe, die dem bezeichneten
Tabellenindex entspricht, aus der Zugriffsmerkertabelle 16b.
Weiterhin versteht es sich, wenn ein Zugriffsmerker, der der Zugriffszieladresse entspricht,
aus der Zugriffsmerkerreihe ausgewählt wird, ob ein Schreibzugriff
in der Vergangenheit in der entsprechenden Zugriffszieladresse aufgetreten
ist.
-
In
S625 in 9 wird die Zugriffsmerkerreihe geladen
und wird ein Zugriffsmerker, der der Zugriffszieladresse entspricht,
aus der geladenen Zugriffsmerkerreihe ausgewählt. Das Verfahren
schreitet zu S630 fort.
-
In
S630 wird es bestimmt, ob der Zugriffsmerker positiv ist. Wenn der
Zugriffsmerker als positiv bestimmt wird, was JA in S630 entspricht,
endet der derzeitige vierte Speichervorgang. Wenn es bestimmt wird,
dass der Zugriffsmerker nicht positiv ist, was NEIN in S630 entspricht,
schreitet die Verarbeitung zu S635 fort.
-
In
S635 werden nach einem NEIN in S630 Daten vor einem Aktualisieren,
welche Daten vor einem Aktualisieren sind und derzeit in der Zugriffszieladresse
gespeichert sind, in den Sicherungsspeicher 15 evakuiert
oder gespeichert. In S640 wird der Sicherungsspeicher-Stapelzeiger
des Sicherungsspeichers 15 dekrementiert, das heißt.,
derart bewegt, dass ein Punkt, der durch den Zeiger angezeigt wird, um
eine einzelne Adresse dekrementiert ist.
-
In
einem nachfolgenden S645 wird der Zugriffsmerker der Zugriffszieladresse
als positiv festgelegt und in der Zugriffsmerkertabelle 16b aufgezeichnet
oder gespeichert. Der derzeitige vierte Speichervorgang endet.
-
Wenn
der vierte Speichervorgang anstelle des ersten Speichervorgangs
ausgeführt wird, können Zugriffe auf die Zugriffsmerkertabelle 16b zu
der Zeit verringert werden, zu der Schreibzugriffe auftreten. Weiterhin
können, wenn die CPU 12 ein Programm ausführt,
das eine hohe Lokalität und eine hohe Kontinuität
von Schreibzugriffen in dem Hauptspeicher 13 aufweist,
die Zugriffe oder Zeiten der Zugriffe auf die Zugriffsmerkertabelle 16b verringert werden.
-
(3) Zweiter Listenreferenzvorgang
-
Ein
zweiter Listenreferenzvorgang kann einen ersten Listenreferenzvorgang
ersetzen. Es wird auf 5 verwiesen. Der erste Listenreferenzvorgang
meint S305, S310, S330, S335 und S340 des zweiten Speichervorgangs.
Als Nächstes wird der zweite Listenreferenzvorgang, der
von der CPU 12 ausgeführt wird, unter Verwendung
auf ein Flussdiagramm von 11 erläutert.
-
Mit
dem Start des zweiten Listenreferenzvorgangs bestimmt die CPU 12 in
S705, ob alle der Adressen in der Adressenliste 17 mit
der Zugriffszieladresse verglichen worden sind. Hierbei meint "Vergleichen"
einen Vergleich, der in S715 ausgeführt wird, der später
erwähnt wird. Wenn es bestimmt wird, dass alle der Adressen
der Adressenliste 17 verglichen worden sind, was JA in
S705 entspricht, schreitet die Verarbeitung zu S7190 fort. Wenn
es bestimmt wird, dass alle der Adressen in der Adressenliste 17 nicht
verglichen worden sind, was NEIN in S705 entspricht, schreitet die
Verarbeitung zu S715 fort.
-
In
S710 wird nach einem JA in S705 der Listenindex der Adresse in der
Adressenliste 17, welcher als letztes verglichen worden
ist, als ein Listenindex aufgezeichnet oder gespeichert, auf den
als Erstes Bezug genommen wird, wenn der nächste zweite
Listenreferenzvorgang ausgeführt wird. Der zweite Listenreferenzvorgang
endet und die Verarbeitung schreitet zu S315 des zweiten Speichervorgangs
fort.
-
In
S715 wird nach einem NEIN in S705 eine Adresse der Adressenliste
mit der Zugriffszieladresse verglichen. Es wird in S720 bestimmt,
ob die Adressen miteinander übereinstimmen. Wenn es bestimmt
wird, dass die Adressen miteinander übereinstimmen, was
JA in S720 entspricht, schreitet die Verarbeitung zu S725 fort.
Wenn es bestimmt wird, dass die Adressen nicht miteinander übereinstimmen,
was NEIN in S720 entspricht, schreitet die Verarbeitung zu S730
fort.
-
In
S725 wird nach JA in S725 der Listenindex der entsprechenden Adresse
in der Adressenliste 17, welcher dem entspricht, wenn die
Adressen übereinstimmen, als ein Listenindex aufgezeichnet
oder gespeichert, auf den als Erstes Bezug genommen wird, wenn der
nächste zweite Listenreferenzvorgang ausgeführt
wird. Der derzeitige zweite Listenreferenzvorgang endet und der
zweite Speichervorgang ist beendet (siehe 5).
-
In
S730 wird es nach NEIN in S720 bestimmt, ob der Listenindex an dem
hinteren Ende der Liste ist. Wenn es bestimmt wird, dass der Listenindex
an dem hinteren Ende der Liste ist, was JA in S730 entspricht, schreitet
die Verarbeitung zu S735 fort. Wenn es bestimmt wird, dass der Listenindex nicht
an dem hinteren Ende der Liste ist, was NEIN in S730 entspricht,
schreitet die Verarbeitung zu S740 fort.
-
In
S735 wird nach JA in S730 der Referenzziellistenindex initialisiert.
Das heißt, es wird auf den Listenindex des vorderen Endes
oder des oberen in der Adressenliste 17 Bezug genommen.
Die Verarbeitung schreitet zu S705 fort.
-
In
S740 wird nach NEIN in S730 der Referenzziellistenindex dekrementiert.
Die Verarbeitung kehrt zu S705 zurück. Wenn der zweite
Listenreferenzvorgang anstelle des ersten Listenreferenzvorgangs
ausgeführt wird, kann die mittlere Anzahl von Malen von
Referenzen bezüglich der Adressenliste 17 verringert
werden.
-
Weiterhin
wird das Bestimmen einer Übereinstimmung von Adressen von
dem nächsten des gespeicherten Listenindex gestartet. Wenn
der gespeicherte Listenindex an dem hinteren Ende der Adressenliste
ist, kann das Bestimmen von dem vorderen Ende der Adressenliste
gestartet werden. Die mittlere Anzahl von Malen von Referenzen bezüglich der
Adressenliste 17 kann mehr verringert werden.
-
(4) Fünfter Speichervorgang
-
Ein
fünfter Speichervorgang kann den zweiten Speichervorgang
ersetzen, der zuvor erwähnt worden ist. Als Nächstes
wird der fünfte Speichervorgang, der von der CPU 12 ausgeführt
wird, unter Verwendung eines Flussdiagramms von 12 erläutert.
-
Die
CPU 12 bestimmt, ob (i) ein Ausführungstriggersignal
des fünften Speichervorgangs ein Schleifenvorgang in einem
Anwendungsprogramm ist und weiterhin (ii) der derzeitige fünfte
Speichervorgang in dem ersten oder Anfangsschleifenvorgang in S805
ausgeführt wird. Wenn es in S805 bejahend bestimmt wird,
wird der gleiche Vorgang wie S315 in 5 des zweiten
Speichervorgangs ausgeführt und führt die CPU 12 danach
die gleiche Verarbeitung wie den zweiten Speichervorgang aus (siehe 5).
-
Im
Gegensatz dazu wird, wenn es in S805 negativ bestimmt wird, der
erste Listenreferenzvorgang oder der zweite Listenreferenzvorgang
des zweiten Speichervorgangs, der zuvor erwähnt worden
ist, ausgeführt (siehe 5 und 11).
-
Das
heißt, der fünfte Speichervorgang führt S805
aus, um dem zweiten Speichervorgang vorherzugehen. Gemäß einem
Bestimmungsergebnis in S805 startet der zweite Speichervorgang von
einem bestimmten Schritt. Weiterhin muss, wenn ein Schleifenvorgang,
welcher die gleiche Verarbeitung wiederholt, ausgeführt
wird, die CPU 12 oder ein Mikrocomputer einen Speichervorgang
für Daten des Hauptspeichers 13 in der ersten
Schleife des Schleifenvorgangs mit einer hohen Möglichkeit
ausführen. In dem fünften Speichervorgang des
vorliegenden Ausführungsbeispiels werden Daten ohne Bezug
nehmen auf die Adressenliste 17 bezüglich der
ersten Schleife des Schleifenvorgangs gespeichert. Daher kann die
Last eines Bezugnehmens auf die Adressenliste 17 verringert
werden. Eine Geschwindigkeit eines Ausführungsvorgangs
des Anwendungsprogramms durch die CPU 12 kann daher verbessert
werden.
-
(5) Sechster Speichervorgang
-
Ein
sechster Speichervorgang kann den zweiten Speichervorgang ersetzen,
der zuvor unter Verwendung eines Flussdiagramms von 13 erwähnt
worden ist.
-
Die
CPU 12 bestimmt, ob die Anzahl von Malen von Datensicherungen
weniger als die Anzahl von Malen von unbedingten Datensicherungen
bei einem Ausführen eines Anwendungsprogramms ist, das
das Ausführen des sechsten Speichervorgangs in S905 triggert.
"Die Anzahl von Malen von Datensicherungen" meint die Anzahl von
Malen von Ausführungen in S3015 in 5. Weiterhin
meint "die Anzahl von Malen von unbedingten Datensicherungen" einen
vorbestimmten Wert, welcher vorzugsweise mehrere Male ist.
-
Wenn
es bestimmt wird, dass die Anzahl von Malen von Datensicherungen
weniger als die Anzahl von Malen von unbedingten Datensicherungen
in S905 ist, wird der gleiche Vorgang wie S315 des zweiten Speichervorgangs
ausgeführt und führt die CPU 12 danach
die gleiche Verarbeitung wie den zweiten Speichervorgang aus (siehe 5).
-
Im
Gegensatz dazu wird, wenn es negativ in S905 bestimmt wird, der
erste Listenreferenzvorgang oder der zweite Listenreferenzvorgang
des zweiten Speichervorgangs, der zuvor erwähnt worden
ist, ausgeführt (siehe 5 und 11).
-
Das
heißt, der sechste Speichervorgang führt S905
aus, um dem zweiten Speichervorgang vorherzugehen. Gemäß einem
Bestimmungsergebnis in S905 startet der zweite Speichervorgang von einem
bestimmten Schritt. Weiterhin muss die CPU 12 oder ein
Mikrocomputer nach einem Starten eines Ausführens eines
Anwendungsprogramms einen Speichervorgang für Daten des
Hauptspeichers mit einer hohen Möglichkeit durchführen,
bis die Anzahl von Malen von Datensicherungen einen vorbestimmten
Wert erreicht. Dies ist so, da eine Möglichkeit eines Verwendens
eines neuen Speicherbereichs hoch ist. In dem sechsten Speichervorgang
des vorliegenden Ausführungsbeispiels werden Daten ohne
Bezug nehmen auf die Adressenliste 17 gespeichert, bis
die Anzahl von Malen von Datensicherungen den vorbestimmten Wert
erreicht. Daher kann die Last eines Bezugnehmens auf die Adressenliste 17 verringert werden.
Eine Geschwindigkeit eines Ausführungsvorgangs eines Anwendungsprogramms
durch die CPU 12 kann daher verbessert werden.
-
Jede
oder irgendeine Kombination von Verfahren, Schritten oder Einrichtungen,
die zuvor erläutert worden sind, kann als eine Softwareeinheit
(zum Beispiel eine Unterroutine) und/oder eine Hardwareeinheit (zum
Beispiel eine Schaltung oder integrierte Schaltung) erzielt werden,
die eine Funktion einer betreffenden Vorrichtung beinhaltet oder
nicht beinhaltet. Weiterhin kann die Hardwareeinheit innerhalb eines
Mikrocomputers ausgestaltet sein.
-
Weiterhin
können die Softwareeinheit oder irgendwelche Kombinationen
von mehreren Softwareeinheiten in einem Softwareprogramm beinhaltet sein,
welches in einem computerlesbaren Speichermedium enthalten sein
kann oder über ein Kommunikationsnetz heruntergeladen und
in einem Computer installiert sein kann.
-
Es
versteht sich für Fachleute, dass verschiedene Änderungen
in den zuvor beschriebenen Ausführungsbeispielen der vorliegenden
Erfindung durchgeführt werden können. Jedoch sollte
der Umfang der vorliegenden Erfindung durch die folgenden Ansprüche
bestimmt werden.
-
Gemäß der
vorliegenden Erfindung, wie sie zuvor beschrieben worden ist, wird
es bestimmt, dass ein Schreibzugriff an einem Stapelbereich eines Hauptspeichers
ausgeführt wird. Es wird dann unter Bezugnahme auf eine
Zugriffsmerkertabelle bestimmt, ob ein anderer Schreibzugriff an
einer entsprechenden Zugriffszieladresse in dem Stapelbereich in
der Vergangenheit aufgetreten ist. Im Gegensatz dazu wird es bestimmt,
dass ein Schreibzugriff an einem globalen Bereich des Hauptspeichers
ausgeführt worden ist. Es wird dann unter Bezugnahme auf
eine Adressenliste bestimmt, ob ein anderer Schreibzugriff an einer
entsprechenden Zugriffszieladresse in dem globalen Bereich in der
Vergangenheit aufgetreten ist. Eine derartige Ausgestaltung kann
wirksam einzelne Vorteile der Bestimmungsverfahren vorsehen, die
sowohl die Zugriffsmerkertabelle als auch die Adressenliste verwenden.
Das Vorhandensein oder Nichtvorhandensein des vergangenen Ausführens
eines Speicherns kann zu der Zeit eines Schreibzugriffs wirksam
bestimmt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - JP 2-257228
A [0003, 0005]
- - JP 11-53239 A [0004, 0005]