-
Hintergrund der Erfindung
-
1. Bereich der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Halbleiterspeichervorrichtung.
Insbesondere bezieht sich die vorliegende Erfindung auf eine Halbleiterspeichervorrichtung,
die einen eingebauten nichtflüchtigen
Speicher aufweist, für
den die erlaubte Anzahl der Male des erneuten Schreibens begrenzt
ist.
-
2. Beschreibung des Standes
der Technik
-
Nichtflüchtige Speiche
wie z. B. EEPROM (elektrisch löschbarer
programmierbarer nurlese-Speicher), Flash-Speicher und FeRAM (ferroelektrischer
Direktzugriffspeicher) sind bekannt. Der nichtflüchtige Speicher, der Daten
ohne einer Stromzufuhr erhalten kann, ist für den Datenspeicher einer IC-Karte
geeignet. Bei solch einem nichtflüchtigen Speicher ist die erlaubte
Anzahl der Male des erneuten Schreibens zur Zeit begrenzt. Die erlaubte
Anzahl der Male des erneuten Schreibens des EEPROM ist auf 105 begrenzt, die erlaubte Anzahl der Male
des erneuten Schreibens des Flash-Speichers ist auf 104 begrenzt
und die erlaubte Anzahl der Male des erneuten Schreibens des FeRAM
ist auf 1010 begrenzt.
-
Ein
Verfahren der Datenverwaltung ist in der japanischen Offenlegungsschrift
(JP-A-Heisei 5-151097)
offenbart, bei dem eine Zirkulation des Speicherbereiches, auf den
zugegriffen werden soll, in Übereinstimmung
mit der erlaubten Anzahl der Male des erneuten Schreibens durchgeführt wird,
um dieses Problem zu lösen. 1 zeigt
eine herkömmliche Speichervorrichtung,
für die
das herkömmliche Verfahren
der Datenverwaltung verwendet wird. Der Speicher ist in der erlaubten
Anzahl der Male des erneuten Schreibens beschränkt und weist eine Verwaltungseinheit 101,
eine Steuerung 102 und eine Anzahl von Speicherbereichen 103 auf.
Die Verwaltungseinheit 101 verwaltet die Anzahl der Male
des erneuten Schreibens für
jeden Speicherbereich 103. Basierend auf der erlaubten
Anzahl der Male des erneuten Schreibens für jeden Speicherbereich 103 wählt die
Steuerung 102 für
die zu schreibenden Daten aus den Speicherbereich 103 einen
aus. Die Steuerung 102 vergleicht die Anzahl der Male des
erneuten Schreibens der Speicherbereiche 103 und wählt den
Speicherbereich mit der minimalen Anzahl der Male des erneuten Schreibens
aus. Der Vorgang des erneuten Schreibens wird an dem Speicherbereich
durchgeführt,
der die minimale Anzahl der Male des erneuten Schreibens aufweist.
-
Die 2A bis 2C zeigen
einen Betrieb der herkömmlichen
Speichervorrichtung, bei der die erlaubte Anzahl der Male des erneuten
Schreibens begrenzt ist. Es wird angenommen, dass ein erster Halbleiterchip
als ein erster Speicherbereich 1031 der Speicherbereich 103 schon
fünfmal
beschrieben wurde und dass ein zweiter Halbleiterchip als ein zweiter
Speicherbereich 1032 der Speicherbereiche 103 noch
nicht verwendet wurde. Die Anzahl der Male des erneuten Schreibens
des ersten Speicherchips 1031 und
die des erneuten Schreibens des zweiten Speicherchips 1032 werden miteinander verglichen und
der zweite Speicherchip 103 mit der kleineren Anzahl der
Male wird als der Speicherchip ausgewählt, auf den die Daten zu schreiben
sind. Die Inhalte des ersten Speicherchips 1031 werden
auf den zweiten Speicherchip 1032 kopiert.
Danach wird der zweite Speicherchip 1032 verwendet.
Der erste Speicherchip 1031 wird
als Gesamtheit in Chip-Einheiten gelöscht. Der erste Speicherchip 1031 wird nicht verwendet, bis die Anzahl
der Male des erneuten Beschreibens des zweiten Speicherchips 1032 die des Überschreibens des ersten Speicherchips 1031 überschreitet.
-
Auf
diese Weise wird der Wechsel des zu verwendenden Speicherchips 103 durchgeführt, um aus
der Anzahl der Speicherchips 103 den Speicherchip zu verwenden,
der die minimale Anzahl der Male des Beschreibens aufweist. Somit
wird auf die Speicherchips 103 die selbe Anzahl von Malen
zugegriffen. Wenn die Anzahl der Speicherchips 103 N beträgt, wird
die Lebensdauer der Speicherchips 103 auf N-Mal verlängert.
-
Bei
dem herkömmlichen
Verfahren der Datenverwaltung ist es notwendig, sich auf die Anzahl der
Male des Beschreibens von allen Speicherbereichen 103 zu
beziehen und weiterhin sie zu vergleichen, um aus der Anzahl der
Speicherbereiche 103 den Speicherbereich 103 zu
bestimmen, der für
das Beschreiben verwendet werden soll. Dies ergibt ein kompliziertes
Verfahren, um den Speicherbereich zu bestimmen, der für das Beschreiben
verwendet werden soll.
-
In
Zusammenhang mit der Beschreibung ist ein Schreibverfahren eines
wieder beschreibbaren ROMs in der japanischen Offenlegungsschrift (JP-A-Heisei
9-265427) offenbart. In diesem Dokument wird der Datenbereich des
ROM in Blöcke
mit einer vorbestimmten Blocklänge
unterteilt. Basierend auf der Blockadresse und den Daten bestimmt
eine CPU einen der Blöcke
und schreibt eine Datei in Einheiten der Blöcke. Zu dieser Zeit schreibt
die CPU die Datei aus einem leeren Block, wenn dort der leere Block
mit einer Markierung des Schreibanfanges vorliegt, und aus einem
optimalen leeren Block, wenn dort kein leerer Block mit der Markierung
vorliegt. Nach der Beendigung des Schreibens der Datei, sucht die
CPU einen leeren Block in der Abwärtsrichtung und schreibt die
Markierung des Schreibanfangs in den gesuchten leeren Block.
-
Weiterhin
ist eine Halbleiterspeichervorrichtung in der japanischen Offenlegungsschrift (JP-A-Heisei
8-96588) offenbart. In diesem Dokument hat die Speichervorrichtung
einen nichtflüchtigen
Speicher. Ein Datenspeicherabschnitt weist in einem Datenspeicherbereich
der nichtflüchtigen
Speicher mindestens einen Block auf, der unabhängig voneinander beschrieben
und gelöscht
werden kann. Ein Blockauswahlabschnitt berechnet eine physikalische
Adresse aus der logischen Adresse, um einen der Blöcke zu bestimmen.
Ein Suchabschnitt sucht einen unbenutzten Block aus dem Datenspeicherabschnitt.
Ein Löschverwaltungsabschnitt
verwaltet das anfängliche
Löschen
der Blöcke.
Die Daten werden in den ausgewählten
Block geschrieben und der Blockauswahlabschnitt bestimmt den gesuchten
Block als ein Ziel.
-
Es
ist erwünscht,
ein weiteres Verfahren bereitzustellen, um fiktiv die Lebensdauer
des nichtflüchtigen
Speichers zu verlängern,
für den
die erlaubte Anzahl der Male des erneuten Schreibens begrenzt ist.
Insbesondere ist es wünschenswert,
ein Verfahren bereitzustellen, um einfach den Speicherbereich zu
bestimmen, der für
das Beschreiben verwendet werden soll, und auch um den Wechsel des verwendeten
Speichers durchzuführen,
und dadurch fiktiv die Lebensdauer des nichtflüchtigen Speichers zu verlängern.
-
Auch
ist es bei solch einem nichtflüchtigen Speicher
wünschenswert,
dass die Daten, die in dem nichtflüchtigen Speicher gespeichert
sind, selbst dann nicht beschädigt
werden, wenn die Stromversorgung an den nichtflüchtigen Speichern während des
Zugriffs auf den nichtflüchtigen
Speichern unterbrochen wird. Wenn der nichtflüchtige Speicher als ein Datenspeicher
für eine
IC-Karte verwendet wird, wird angenommen, dass die plötzliche
Unterbrechung der Stromzufuhr häufig
auftritt. Wenn z. B. der nichtflüchtige
Speicher in einer IC-Karte der Kontakt-Art benutzt wird, kann die
IC-Karte der Kontakt-Art von einem Nutzer plötzlich aus einem Stromzufuhranschluss
herausgezogen werden. Wenn eine IC-Karte der nicht Kontakt-Art,
der Leistung mittels elektrischer Wellen zugeführt wird, von dem Sender der
elektrischen Wellen getrennt wird, kann über dies dort der Fall vorliegen,
dass die notwendige Spannung der Leistungszufuhr nicht aufrecht
erhalten werden kann. Wenn die IC-Karte tatsächlich im täglichen Leben verwendet wird,
wird angenommen, dass die Unterbrechung der Stromzufuhr während des
Zugriffs auf den nichtflüchtigen
Speicher auftritt. Wenn der nichtflüchtige Speicher als der Datenspeicher
für die
IC-Karte verwendet wird, ist es wichtig, dass die Daten, die in
dem nichtflüchtigen
Speicher gespeichert sind, selbst dann nicht beschädigt werden,
wenn die Stromzufuhr unterbrochen wird.
-
Eine
Halbleiterspeichervorrichtung nach dem Oberbegriff von Anspruch
1 ist aus FR-A-2 665 791 und aus US-A-4,780,855 bekannt. FR-A-2
730 833 offenbart eine Nachricht zum Aktualisieren eines Speichers,
wobei das Verfahren zum Rekonstruieren der Daten auf der Tatsache
beruht, dass die Daten, die normalerweise in Bereichen eines Grundsatzspeichers
gehalten werden, in Bereiche eines Sicherheitsspeichers gesichert
werden.
-
Zusammenfassung
der Erfindung
-
Es
ist daher eine Aufgabe der vorliegenden Erfindung, eine Halbleiterspeichervorrichtung
bereitzustellen, die das Risiko verringert, dass die Daten, die
in einem nichtflüchtigen
Speicher gespeichert sind, beschädigt
werden, wenn die Stromzufuhr unterbrochen wird, und bei der die
Unterbrechung der Stromzufuhr erfasst wird, wenn die Stromzufuhr
unterbrochen wird.
-
Diese
Aufgaben werden durch die Merkmale der Ansprüche 1 und 6 gelöst.
-
Vorteilhafte
Ausführungsbeispiele
werden in den Unteransprüchen
erwähnt.
-
Kurze Beschreibung
der Zeichnungen
-
1 zeigt
eine herkömmliche
Speichervorrichtung;
-
2A–2C zeigen
den Betrieb der herkömmlichen
Speichervorrichtung;
-
3 zeigt
eine Halbleiterspeichervorrichtung nach einem ersten Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 zeigt
den Aufbau einer Hinweismarke und die möglichen Zustände der
Hinweismarke;
-
5A–5E zeigen
ein Verfahren zum Aktualisieren der Daten in der Halbleiterspeichervorrichtung
des ersten Ausführungsbeispiels;
-
6 ist
ein Flussdiagramm, das das Verfahren zum Aktualisieren der Daten
im Detail zeigt;
-
7A–7E zeigen
ein Verfahren zum Auslesen der Daten aus einem Datenbereich;
-
8 ist
ein Flussdiagramm, das das Verfahren zum Auslesen der Daten aus
dem Datenbereich im Detail zeigt;
-
9A u. 9B sind
Diagramme, die den Zustand des Datenbereiches, wenn die Stromzufuhr während der
Aktualisierung des Datenbereiches unterbrochen wird, und den Zustand
der Hinweismarke zeigen, wenn die Stromzufuhr während der Aktualisierung der
Hinweismarke unterbrochen wird;
-
10 zeigt
eine Halbleiterspeichervorrichtung nach einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung;
-
11 zeigt
den Aufbau der Hinweismarke der Überprüfung der
Stromunterbrechung;
-
12A–12D zeigen ein Verfahren zum Aktualisieren der
Daten in der Halbleiterspeichervorrichtung des zweiten Ausführungsbeispiels;
-
13A–13D zeigen ein Verfahren zum Aktualisieren der
Daten in der Halbleiterspeichervorrichtung des zweiten Ausführungsbeispiels;
-
14 zeigt
eine Halbleiterspeichervorrichtung nach einem dritten Ausführungsbeispiel
der vorliegenden Erfindung; und
-
15A–15D zeigen ein Verfahren zum Aktualisieren der
Daten in der Halbleiterspeichervorrichtung des dritten Ausführungsbeispiels.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
Nachfolgend
wird eine Halbleiterspeichervorrichtung der vorliegenden Erfindung
unter Bezug auf die beigefügten
Zeichnungen beschrieben.
-
(Erstes Ausführungsbeispiel)
-
3 zeigt
eine Halbleiterspeichervorrichtung nach dem ersten Ausführungsbeispiel
der vorliegenden Erfindung. Die Halbleiterspeichervorrichtung wird
für eine
IC-Karte verwendet. Die Halbleiterspeichervorrichtung weist ein
ROM 1, eine CPU 2, ein RAM 3, einen nichtflüchtigen
Speicher 4 und eine Stromzufuhreinheit 5 auf.
Der ROM 1, die CPU 2, der RAM 3 und der
nichtflüchtige
Speicher 4 sind miteinander über einen Bus 6 verbunden.
-
Von
der Stromzufuhreinheit 5 wird über eine (nicht gezeigte) Stromzufuhrleitung
dem ROM 1, der CPU 2, dem RAM 3 und dem
nichtflüchtigen
Speicher 4 Strom zugeführt.
Wenn die Halbleiterspeichervorrichtung für eine IC-Karte der Nichtkontaktart
verwendet wird, wird eine Kombination einer Rahmenantenne und eines
Regulators als die Stromzufuhreinheit 5 ausgewählt. Wenn
die Halbleiterspeichervorrichtung für eine IC-Karte der Kontaktart
verwendet wird, wird eine Stromzufuhreinheit zum Umwandeln einer
Stromzufuhrspannung, die von einem externen Bereich zugeführt wird,
in eine Stromzufuhrspannung, die in der Halbleiterspeichervorrichtung verwendet
werden soll, als die Stromzufuhreinheit 5 ausgewählt.
-
Der
ROM 1 speichert darin ein Hauptprogramm 11, ein
Adressenumwandlungsprogramm 12 und in-ROM-Daten 13.
-
Das
Hauptprogramm 11 beschreibt den gesamten Betrieb einer
IC-Karte. Die Halbleiterspeichervorrichtung wird in Übereinstimmung
mit dem Hauptprogramm 11 betrieben.
-
Das
Adressenumwandlungsprogramm 12 ist ein Programm, um eine
virtuelle oder eine logische Adresse in eine physikalische Adresse
umzuwandeln. Bei dem Hauptprogramm 11 wird die logische Adresse
verwendet, um eine Adresse zu bestimmen, wenn ein Zugriff auf einen
Speicherplatz durchzuführen
ist. Mit dem Adressumwandlungsprogramm 12 wird die logische
Adresse in die physikalische Adresse umgewandelt. Der Zugriff wird tatsächlich auf
einem Bereich des ROM 1, des RAM 2 und des nichtflüchtigen
Speichers 4 durchgeführt,
die durch die physikalische Adresse bestimmt sind.
-
Von
den Daten, die in dem Hauptprogramm 11 verwendet werden,
enthalten die in-ROM-Daten 13 nur
die Daten, die Auszulesen sind.
-
Die
CPU 2 führt
das Hauptprogramm 11 und das Adressenumwandlungsprogramm 12 durch
und steuert dann den gesamten Betrieb der Halbleiterspeichervorrichtung
der vorliegenden Erfindung.
-
Das
RAM 3 speichert darin die in-RAM-Daten 31. Von
den Daten, die in dem Hauptprogramm 11 verwendet werden,
enthalten die in-RAM-Daten 31 die Daten, für die der
Vorgang des erneuten Beschreibens häufig durchgeführt wird.
-
Die
Daten, die auf die nichtflüchtige
Weise gespeichert werden sollen und die erneut beschrieben werden
sollen, werden in den nichtflüchtigen Speicher 4 geschrieben.
Die Daten werden in dem Hauptprogramm 11 verwendet. Für das Hauptprogramm 11 wird
angenommen, dass die Daten in einer logischen Adresse X gespeichert
sind. Wenn die logische Adresse X einen Bereich des nichtflüchtigen Speichers 4 bestimmt,
wird der Bereich des nichtflüchtigen
Speichers 4 zugewiesen, um die Daten der logischen Adresse
X zu speichern. Bei dem nichtflüchtigen
Speicher 4 wird der Bereich, der zuwiesen wurde, um die
Daten zu speichern, die in dem Hauptprogramm 11 verwendet
werden, nachfolgend als der Datenbereich 7 bezeichnet.
Wenn eine Anzahl von Daten in dem Hauptprogramm 11 verwendet
wird, wird ihnen eine Anzahl von Datenbereichen 7 entsprechend
zugewiesen. Allerdings ist in 3 nur ein einzelner
Datenbereich 7 gezeigt.
-
Der
Datenbereich 7 weist eine Anzahl von Speicherbereichen 711 bis 71n auf.
Hier ist n eine ganze Zahl von 2 oder mehr. Die CPU 2 bestimmt
n, wenn eine Anweisung eingegeben wird, oder Informationen über die
Daten, wie z. B. die Art der Daten, und die Anordnung der Daten
in den Datenstrom. Allerdings kann der Wert von n fest oder vorbestimmt sein.
Basierend auf dem bestimmten Wert von n reserviert die CPU 2 den
Datenbereich 7 in dem nichtflüchtigen Speicher 4.
Wenn die Daten in den Datenbereich 7 geschrieben werden,
wird einer der Datenbereiche 711 bis 71n zirkular ausgewählt. Die Daten, die in den
Datenbereich 7 zu speichern sind, werden in den Speicherbereich
geschrieben, der aus den Speicherbereichen 711 bis 71n ausgewählt wurde. Wenn andererseits
die Daten aus dem Datenbereich 7 ausgelesen werden, werden
die Daten aus dem Speicherbereich von den Speicherbereichen 711 bis 71n ausgelesen,
an dem der letzte Schreibvorgang durchgeführt worden ist.
-
Ein
anderer Bereich des nichtflüchtigen Speichers 4 wird
einem Bereich 8 der Hinweismarke (pointer flag) zugewiesen.
Eine Hinweismarke 81 ist in dem Bereich 8 der
Hinweismarke gespeichert. Wenn eine Anzahl von Datenbereichen 7 in
dem nichtflüchtigen
Speicher 4 vorgesehen sind, ist eine Hinweismarke 81 für jeden
Datenbereich 7 vorgesehen. 3 zeigt
eine Hinweismarke 81. Die Hinweismarke 81 bestimmt
einen der Speicherbereiche 711 bis 71n , auf dem zuzugreifen ist. Wie in 4 gezeigt ist,
weist die Hinweismarke 81 (n – 1) Bits (811 bis 81n-1 ) auf Hier ist n die Anzahl der Speicherbereiche 711 bis 71n .
Die Anzahl der Bits 811 bis 81n-1 der Hinweismarke 81 ist
um eins kleiner als die Anzahl der Speicherbereiche 711 bis 71n .
Nachfolgend wird das Bit 81k der
Hinweismarke 81 als niederwertiges Bit dargestellt, wenn
der Affix k kleiner wird.
-
Die
Hinweismarke 81 der (n – 1) Bits befindet sich in
einen der Zustände
1 bis n. Der Zustand 1 ist der Zustand, für den alle Bits 811 bis 81n-1 "0" sind. Der Zustand 2 ist der Zustand,
für den
das Bit 811 "1" und
die übrigen
Bit 812 bis 81n-1 , "0" sind. Auf ähnliche Weise ist der Zustand
k der Zustand, für
den die Bits 811 bis 81k-1 "1" sind und die übrigen Bits 81k bis 81n-1 "0" sind. Hier ist k eine ganze Zahl zwischen
1 und n. Allerdings ist für
den Fall, dass k = n, der Zustand n der Zustand, für den alle
Bits 811 bis 81n-1 "1" sind.
-
Basierend
auf dem Zustand der Hinweismarke 81 wird von den Speicherbereichen 711 bis 71n der Speicherbereich
ausgewählt,
auf den zuzugreifen ist. Für
den Fall des Zugriffes auf die Daten, die in dem Datenbereich 7 gespeichert
sind, wird auf die Hinweismarke 81 von der CPU 2 mit
dem Adressumwandlungsprogramm 12 verwiesen und wird aus dem
Speicherbereichen 711 bis 71n der Speicherbereich ausgewählt, auf
den zuzugreifen ist. Dar über
hinaus wird die physikalische Adresse des ausgewählten Speicherbereiches durch
das Adressumwandlungsprogramm 12 berechnet. Dann wird in
dem nichtflüchtigen
Speicher 4 auf einem Bereich zugegriffen, der durch die
physikalische Adresse bestimmt ist.
-
Der
Zusammenhang zwischen dem Zustand der Hinweismarke 81 und
dem Speicherbereich auf den zugegriffen wird, ist wie folgt. Wenn
sich die Hinweismarke 81 in dem Zustand 1 befindet, werden
die Daten aus dem Speicherbereich 711 gelesen
und werden die Daten in den Speicherbereich 712 geschrieben.
Wenn sich die Hinweismarke 81 in dem Zustand 2 befindet,
werden die Daten aus dem Speicherbereich 712 gelesen
und werden die Daten in den Speicherbereich 713 geschrieben.
Weiterhin ist es ähnlich,
wenn die Hinweismarke 81 sich in dem Zustand k befindet,
werden die Daten auf dem Speicherbereich 71k gelesen
und werden die Daten in den Speicherbereich 71k+1 geschrieben.
Wenn allerdings die Hinweismarke 81 in dem Zustand n befindet,
werden die Daten in den Speicherbereich 711 geschrieben.
-
Die
Anzahl der Speicherbereiche 711 bis 71n wird so ausgewählt, dass alle die (n – 1) mit 811 bis 81n-1 ,
die in der Hinweismarke 81 enthalten sind, in Antwort auf
eine Anweisung, die von der CPU 2 ausgegeben wird, auf "0" rückgestellt
werden können. Dies
stellt eine wichtige Funktion dar, so dass die Daten, die in dem
nichtflüchtigen
Speicher 4 gespeichert sind, nicht beschädigt werden,
wenn die Stromzufuhr an die entsprechenden Bereiche der Halbleiterspeichervorrichtung
von der Stromzufuhreinheit plötzlich unterbrochen
wird, wie später
beschrieben wird.
-
Der
Betrieb der Halbleitervorrichtung in diesem Ausführungsbeispiel wird nachfolgend
beschrieben.
-
Zuerst
wird ein Betrieb zum Schreiben der Daten in den Datenbereich 7 beschrieben.
Für die
folgende Beschreibung wird angenommen, dass der Datenbereich 7 angewiesen
wurde, die Daten einer logischen Adresse X in einem Speicherplatz
zu speichern. Weiterhin wird angenommen, dass die Daten, die zuerst
als die Daten der logischen Adresse X gespeichert werden sollen,
als die Daten 1 bezeichnet werden.
-
Als
die Daten der logischen Adresse X werden die Daten 1, die zuerst
in den Datenbereich 7 zu schreiben sind, in den Speicherbereich 711 ohne eine Bedingung geschrieben. Nachdem
die Daten 1 in den Speicherbereich 711 geschrieben
wird, wird die Hinweismarke 81 in den Zustand 1 gesetzt.
Das bedeutet, dass alle Bits 811 bis 81n-1 , die in der Hinweismarke 81 enthalten
sind, auf "0" gestellt werden. 5A zeigt
die Zustände
des Datenbereiches 7 und der Hinweismarke 81 nach
der Beendigung des Schrittes zum Schreiben der Daten 1.
-
Wenn
die Daten der logischen Adresse X aktualisiert werden, verweist
die CPU 2 über
das Adressenumwandlungsprogramm 12 auf die Hinweismarke 81 und
bestimmt, auf welche der Zustände
1 bis n die Hinweismarke 81 einzustellen ist. Wenn für die Hinweismarke 81 bestimmt
wurde, dass sie sich in dem Zustand k (k ist eine ganze Zahl zwischen
1 und n) befindet, werden die Daten, die in den Datenbereich 7 als
die Daten der logischen Adressen X zu speichern sind, in den Speicherbereich 71k+1 der Speicherbereiche 711 bis 71n geschrieben.
Danach wird der Zustand der Hinweismarke 81 von dem Zustand
k auf den Zustand k + 1 verschoben oder verändert. Wenn allerdings die
Daten der logischen Adresse X aktualisiert werden, wenn sich die
Hinweismarke 81 in dem Zustand n befindet, werden die Daten,
die in den Datenbereich 7 als die Daten der logischen Adresse
X zu speichern sind, in den Speicherbereich 711 geschrieben
und wird der Zustand der Hinweismarke 81 von dem Zustand
n auf den Zustand 1 verschoben.
-
Diese
Verfahren werden nachfolgend unter Bezug auf die 5A bis 5E beschrieben.
Wie oben dargestellt wurde, werden die Daten 1, die zuerst als die
Daten der logischen Adresse X zu speichern sind, in den Speicherbereich 711 geschrieben, wie in 5A dargestellt
ist. Wenn die Daten 1 in den Speicherbereich 711 geschrieben
wird, wird die Hinweismarke 81 auf den Zustand 1 gesetzt.
-
Wenn
die Daten der logischen Adresse X von den Daten 1 auf die Daten
2 aktualisiert werden, verweist das Adressenumwandlungsprogramm 12 auf
die Hinweismarke 81. Zu dieser Zeit befindet sich die Hinweismarke 81 in
dem Zustand 1. Wie in 5B gezeigt ist, wird somit der
Speicherbereich 712 als das Ziel
ausgewählt,
in das die Daten 2 zu schreiben sind. Die Daten 2 werden in den
ausgewählten
Speicherbereich 712 geschrieben.
Nachfolgend wird das Bit 812 in
der Hinweismarke 81 von "0" auf "1" geschrieben. Das bedeutet, dass die
Hinweismarke 81 von den Zustand 1 auf den Zustand 2 verschoben
wird. 5B zeigt die Zustände des
Datenbereiches 7 und der Hinweismarke 81 nachdem
die Hinweismarke 81 beschrieben wurde.
-
Wenn
die Daten der logischen Adresse X von den Daten 2 auf die Daten
3 aktualisiert werden, werden auf ähnliche Weise die Daten 3 in
den Speicherbereich 713 , wie in
der 5C dargestellt ist. Nachdem sie geschrieben wurden,
wird die Hinweismarke 81 auf den Zustand 3 verschoben.
-
Wenn
danach die Daten der logischen Adresse X sequentiell von den Daten
3, auf die Daten 4, die Daten 5, ..., und die Daten n aktualisiert
werden, werden die Daten 4, die Daten 5, ..., und die Daten n nach
der Aktualisierung jeweils in den Speicherbereich 714 , den Speicherbereich 715 , ..., und den Speicherbereich 71n geschrieben. Auf ähnliche Weise wird die Hinweismarke
sequentiell auf den Zustand 4, den Zustand 5, ..., und den Zustand
n verschoben. Nach der Beendigung des Verfahrens zum Schreiben der
Daten n, befindet sich die Hinweismarke 81 in dem Zustand
n.
-
Wenn
nachfolgend die Daten der logischen Adresse X von den Daten n auf
die Daten (n + 1) aktualisiert werden, befindet sich die Hinweismarke 81 in
dem Zustand n, wie in 5D gezeigt ist. Wie in 5E gezeigt
ist, wird somit der Speicherbereich 711 als
das Ziel ausgewählt,
in dass die Daten (n + 1) zu schreiben sind. Die Daten (n + 1) werden
in den Speicherbereich 711 geschrieben
und die Hinweismarke 81 wird von dem Zustand n auf den
Zustand 1 verschoben.
-
Auf
diese Weise wird jedes Mal, wenn die Daten der logischen Adresse
X aktualisiert werden, einer der Speicherbereichen 711 bis 71n zirkular
ausgewählt
und werden die Daten, die als die Daten der logischen Adresse X
zu speichern sind, in den ausgewählten
Speicherbereich geschrieben. Auf diese Weise erlaubt die zirkulare
Auswahl der zu be schreibenden Speicherbereiche 711 bis 71n , dass die erlaubte Anzahl der Male
des erneuten Schreibens der Daten der logischen Adresse X offensichtlich
größer als
die erlaubte Anzahl der Daten des erneuten Schreibens ist, die physikalisch
für den
nichtflüchtigen
Speicher 4 erlaubt ist.
-
6 ist
ein Flussdiagramm, das den Schreibvorgang im Detail zeigt, der auf
den Datenbereich 7 durchzuführen ist, wenn die Daten der
logischen Adresse X aktualisiert werden. Das Programm zum Durchführen des
Betriebs, das in dem Flussdiagramm von 6 gezeigt
ist, ist in den Adressenumwandlungsprogramm 12 geschrieben.
Die CPU 20 führt
den Betrieb, der in dem Flussdiagramm von 6 gezeigt
ist, in Übereinstimmung
mit dem Adressenumwandlungsprogramm 12 durch.
-
Zuerst
wird bestimmt, ob oder ob nicht jeder der Bits 811 bis 81n-1 sich auf "0" befindet.
Die Bestimmung wird von dem niederwertigen Bit 811 (Schritt S01)
durchgeführt
wird.
-
Als
nächstes
wird bestimmt, ob oder ob nicht jeder der Bits 811 bis 81n-1 das Bit "0" (Schritt
S02) aufweist.
-
Wenn
eins der Bits 811 bis 81n-1 auf "0" eingestellt
ist, wird ein Wert i bestimmt (Schritt S03) der die folgenden Bedingungen
erfüllt.
Der Wert i bestimmt eine Position des am wenigstens signifikanten Bits,
für das "0" eingestellt ist.
-
Bedingung:
Die Bits 811 bis 81n-1 der Bits 811 bis 81i-1 sind "1" und
die übrigen
Bits 81i bis 81n-1 sind "0". Wenn allerdings alle Bits 811 bis 81n-1 "0" sind, wird bestimmt, dass i = 1 ist.
Der Wert i wird somit als eine ganze Zahl zwischen 1 und n – 1 bestimmt.
-
Die
Tatsache, dass die Bits 811 bis 81i-1 "1" und die übrigen Bits 81i bis 81n-1 "0" sind, weist darauf hin, dass sich die
Hinweismarke 81 in dem Zustand i befindet. Wenn für die Hinweismarke 81 bestimmt wurde,
dass sie sich in dem Zustand i befindet, wird der Speicherbereich 71i+1 der Speicherbereiche 711 bis 71n als
das Ziel ausgewählt,
in das die Daten zu schreiben sind. Die physikalische Adresse des
ausgewählten
Speicherbereiches 71i+1 wird berechnet und
nach der Aktualisierung der logischen Adresse X werden die Daten
in den Bereich geschrieben, der durch die physikalische Adresse
des nichtflüchtigen Speichers 4 (Schritt
S03) angezeigt wurde.
-
Danach
wird das Bit 81i+1 unter den Bits 811 bis 81n-1 von "0" auf "1" aktualisiert
(Schritt S04). Somit wird die Hinweismarke 81 von dem Zustand
i auf den Zustand i + 1 verschoben. Das Verfahren zum Aktualisieren
der Daten der logischen Adresse X ist wie oben beschrieben beendet.
-
Wenn
andererseits in dem Schritt S02 alle der Bits 811 bis 81n-1 sich auf "1" befinden
und das Bit mit "0" nicht gefunden wird,
wird der Anfangsspeicherbereich 711 der
Speicherbereiche 711 bis 71n als das Ziel ausgewählt, in
das die Daten zu schreiben sind. Dies weist darauf hin, dass, wenn
die Hinweismarke 81 sich in dem Zustand n befindet, der Speicherbereich 711 als das Ziel ausgewählt wird,
in das die Daten zu schreiben sind. Die physikalische Adresse des
ausgewählten
Speicherbereiches 711 wird berechnet
und nach der Aktualisierung der logischen Adresse X werden die Daten
in den Bereich geschrieben, der durch die physikalische Adresse des
nichtflüchtigen
Speichers 4 (Schritt SOS) angezeigt wurde.
-
Danach
werden alle Bits 811 bis 81n-1 , die sich in der Hinweismarke 81 befinden,
zurück
auf "0" gestellt (Schritt
S06). Die Bits 811 bis 81n-1 werden gemeinsam in Übereinstimmung
mit einer Anweisung gelöscht,
die von der CPU 2 ausgegeben wurde. Wenn das Adressumwandlungsprogramm 12 die CPU 2 anweist,
die Bits 811 bis 81n-1 zu löschen, gibt die CPU 2 die
Anweisung aus, um den nichtflüchtigen Speicher 4 anzuweisen,
die Bits 811 bis 81n-1 zu löschen. In Übereinstimmung mit dieser Anweisung löscht der
nichtflüchtige
Speicher 4 alle Bits 811 bis 81n-1 auf "0".
Auf diese Weise werden die Bits 811 bis 81n-1 gemeinsam in Übereinstimmung mit der einen Anweisung
gelöscht.
-
Der
Betrieb zum Auslesen der Daten aus dem Datenbereich 7,
in dem die Daten der logischen Adresse X wie oben beschrieben geschrieben
wurden, wird nachfolgend beschrieben.
-
7A bis 7E sind
Diagramme, die den Betrieb zum Auslesen der Daten aus dem Datenbereich 7 zeigen.
Wenn die Daten der logischen Adresse X ausgelesen werden, verweist
das Adressenumwandlungsprogramm 12 zuerst auf die Hinweismarke 81 und
bestimmt, auf welchem der Zustände
1 bis n die Hinweismarke 81 eingestellt ist.
-
Wenn
für die
Hinweismarke bestimmt wird, dass sie sich in dem Zustand j (j ist
eine ganze Zahl zwischen 1 und n) der Zustände 1 bis n, werden als die
Daten der logischen Adresse X die Daten ausgelesen, die unter den
Speicherbereichen 711 bis 71n in dem Speicherbereich 71j gespeichert sind. Unmittelbar nachdem
die Daten in den Speicherbereich 71j geschrieben
wurden, wird, wie oben erwähnt,
die Hinweismarke 81 auf den Zustand j aktualisiert. Somit
sind die Daten, die in dem Speicherbereich 71j geschrieben
sind, die neuesten Daten der logischen Adresse X. Da die Daten aus
dem Speicherbereich 71j ausgelesen
werden, wenn die Hinweismarke 81 sich in dem Zustand j
befindet, werden die neuesten Daten der logischen Adresse X richtig
ausgelesen.
-
Wie
in 7A gezeigt ist, befindet sich die Hinweismarke 81 in
dem Zustand 1, wenn alle Bits 811 bis 81n-1 , sich in der Hinweismarke 81 befinden, "0" sind. Wenn zu dieser Zeit Daten der
logischen Adresse X aus dem Datenbereich 7 ausgelesen werden,
wird der Speicherbereich 711 als
die Quelle ausgewählt,
aus der die Daten auszulesen sind. Dann werden die Daten der logischen
Adresse X aus dem ausgewählten
Speicherbereich 711 ausgelesen.
-
Auf ähnliche
Weise befindet sich, wie in 7B gezeigt
ist, die Hinweismarke 81 in dem Zustand 2, wenn nur das
Bit 811 bis 81n-1 ,
die in der Hinweismarke 81 enthalten sind, "1" ist und die Bits 812 bis 81n-1 "0" sind. In diesem
Fall wird der Speicherbereich 712 als
Quelle ausgewählt,
aus der die Daten auszulesen sind, und werden die Daten der logischen Adresse
X aus dem Speicherbereich 712 ausgelesen.
-
Wie
in den 7C bis 7E gezeigt
ist, werden, selbst wenn sich die Hinweismarke 81 in einem
anderen Zustand befindet, die Daten auf ähnliche Weise ausgelesen.
-
8 ist
ein Flussdiagramm, das im Detail den Betrieb des Auslesens der Daten
der logischen Adresse X aus dem Datenbereich 7 zeigt. Das
Programm zum Durchführen
der Abläufe,
die in dem Flussdiagramm von 8 gezeigt
sind, ist in dem Adressenumwandlungsprogramm 12 geschrieben. Die
CPU 2 führt
in Übereinstimmung
mit dem Adressenumwandlungsprogramm 12 die Abläufe durch, die
in dem Flussdiagramm von 8 gezeigt sind.
-
Zuerst
wird bestimmt, ob oder ob nicht jeder der Bits 811 bis 81n-1 "1" ist (Schritt S11).
Die Bestimmung wird in der Reihe nach von dem höchstwertigen Bit 81n-1 durchgeführt.
-
Als
nächstes
wird bestimmt, ob oder ob nicht jedes der Bits 811 bis 81n-1 das Bit "1" aufweist
(Schritt S12).
-
Wenn
eins der Bits 811 bis 81n-1 auf "1" eingestellt
ist, wird j' bestimmt
(Schritt S13), das die folgende Bedingung erfüllt. Der Wert j' zeigt die Position des
höchstwertigen
Bits der Bits an, die auf "1" eingestellt sind.
-
Bedingung:
Die Bits 81j'+1 bis 81n-1 der
Bits 811 bis 81n-1 sind "0" und die übrigen Bits 811 bis 81j' sind "1". Wenn allerdings alle Bits 811 bis 81n-1 "1" sind, wird bestimmt, dass j' = n – 1 ist.
Der Wert j' wird somit
als eine ganze Zahl zwischen 1 und n – 1 bestimmt.
-
Basierend
auf dem bestimmten j' wird
bestimmt, dass sich die Hinweismarke 81 in dem Zustand
j (= j' – 1) befindet.
Wenn bestimmt wurde, dass sich die Hinweismarke 81 in dem
Zustand j befindet, wird der Speicherbereich 71j aus
den Speicherbereichen 711 bis 71n als das Ziel ausgewählt, aus
dem die Daten auszulesen sind. Die physikalische Adresse des ausgewählten Speicherbereiches 71j wird berechnet und die Daten der logischen
Adresse X werden aus dem Bereich ausgelesen (Schritt S13), der durch
die physikalische Adresse des nichtflüchtigen Speichers 4 angezeigt
wird. Das Verfahren zum Auslesen der Daten der logischen Adresse
X ist wie oben beschrieben beendet.
-
Wenn
andererseits bei dem Schritt S12 alle Bits 811 bis 81n-1 "0" sind und das Bit "0" nicht gefunden wird, wird der Hauptspeicherbereich 711 der Speicherbereiche 711 bis 71n als
Quelle ausgewählt, aus
der die Daten auszulesen sind. Dies weist darauf hin, dass wenn
sich die Hinweismarke 81 in dem Zustand 1 befindet, der
Speicherbereich 711 als die Quelle
ausgewählt
wird, aus der die Daten ausgelesen werden. Die physikalische Adresse
des ausgewählten
Speicherbereiches 711 wird berechnet
und die Daten der logischen Adresse X werden aus dem Bereich ausgelesen
(Schritt S14), der durch die physikalische Adresse des nichtflüchtigen
Speichers 4 angezeigt wird. Das Verfahren zum Auslesen
der Daten der logischen Adresse X ist wie oben beschrieben beendet.
-
Wenn
Daten in dem nichtflüchtigen
Speicher 4 gespeichert werden, wird, wie oben erwähnt, ein Datenbereich 7 für die Daten
reserviert. Der reservierte Datenbereich 7 weist n Speicherbereiche 711 bis 71n auf
(n ist eine ganze Zahl von 2 oder mehr). Wenn die Daten aktualisiert
werden und die Daten nach der Aktualisierung in dem Datenbereich 7 gespeichert
werden, wird einer der Speicherbereiche 711 bis 71n zirkular als das Ziel ausgewählt, in
das die Daten zu schreiben sind. Die Daten werden in den ausgewählten Speicherbereich
geschrieben.
-
Zu
dieser Zeit wird in Übereinstimmung
mit der Auswahl der Speicherbereiche 711 bis 71n der Zustand der Hinweismarke 81 zirkular
zwischen dem ersten bis zu dem ersten bis zu dem n-ten Zustand verschoben.
Die entsprechenden Bits 811 bis 81n-1 während zwei Mal während einer
Runde der Auswahl der Speicherbereiche 711 bis 71n beschrieben. Wenn angenommen wird,
dass die Anzahl der Male des erneuten Beschreibens des nichtflüchtigen
Speichers 4 N ist, kann somit der Zustand der Hinweismarke 81 [n/2]
x N mal verändert
werden. Hierbei ist [x] die maximale ganze Zahl, die x nicht überschreitet.
-
Wie
oben beschrieben können
bei der Halbleiterspeichervorrichtung des Ausführungsbeispiels die Daten,
die in dem Datenbereich 7 gespeichert sind, [n/2] x N mal
aktualisiert werden. Die erlaubte Anzahl der Male des erneuten Schreibens
der Daten, die in dem Datenbereich 7 gespeichert sind,
ist größer als
die erlaubte Anzahl der Male des erneuten Schreibens, die physikalisch
für den
nichtflüchtigen Speicher 4 erlaubt
ist.
-
Selbst
wenn die Stromzufuhr an den entsprechenden Bereich der Halbleiterspeichervorrichtung von
der Stromzufuhreinheit 5 plötzlich während des Zugriffs auf den
nichtflüchtigen
Speicher 4 unterbrochen wird, ist darüber hinaus bei der Halbleiterspeichervorrichtung
in diesem Ausführungsbeispiel
das Risiko gering, das die Daten, die in dem nichtflüchtigen
Speicher 4 gespeichert sind, beschädigt werden.
-
Zuerst
wird angenommen, dass Daten in den Datenbereich 7 geschrieben
werden, wenn sich die Hinweismarke 81 auf einen der Zuständen 1 bis
n – 1 befindet.
Weiterhin wird angenommen, dass sich die Hinweismarke 81 in
den Zustand i der Zustände
1 bis n – 1
befindet. Die neuesten Daten zu dieser Zeit sind im Speicherbereich 71i gespeichert. Wenn die Daten, die in
dem Datenbereich 7 zu speichern sind, von diesem Zustand
aktualisiert werden und in den Datenbereich 7 geschrieben
werden, werden die Daten nach der Aktualisierung zuerst in den Speicherbereich 71i+1 geschrieben. Danach wird das Bit 81i der Hinweismarke 81 von "0" auf "1" aktualisiert
und wird die Hinweismarke 81 von dem Zustand i auf den
Zustand i + 1 verschoben.
-
Wie
in 9A gezeigt ist, wird angenommen, dass zu dieser
Zeit die Daten nicht normal in den Speicherbereich 71i+1 geschrieben werden, weil eine Unterbrechung
der Stromzufuhr von der Stromzufuhreinheit 5 auftritt,
während
die Daten in den Speicherbereich 71i+1 geschrieben
werden. Die 9A zeigt den Datenbereich 7 und
die Hinweismarke 81 für
den Fall i = 2. In diesem Fall wird die Hinweismarke 81 auf
den ursprünglichen
Zustand i gehalten. Wenn danach die Daten aus dem Datenbereich 7 ausgelesen
werden, werden somit die Daten aus dem Datenbereich 71i ausgelesen. Es werden die neuesten
Daten, die normal geschrieben wurden, ausgelesen.
-
Wie
in 9B gezeigt ist, wird angenommen, dass darüber hinaus
die Stromzufuhr von der Stromzufuhreinheit 5 unterbrochen
wurde, als das Bit 81i der Hinweismarke 81 von "0" auf "1" aktualisiert wurde.
Ob das Bit 81i der Hinweismarke 81 auf "1" oder auf "0" eingestellt
ist, wird in diesem Fall als eine Wahrscheinlichkeit bestimmt.
-
Wenn
bestimmt wird, dass das Bit 81i der Hinweismarke 81 "1" ist, weist diese Tatsache darauf hin,
dass demzufolge das Schreibprogramm normal durchgeführt worden
ist. Somit liegt dort kein Problem vor.
-
Wenn
andererseits bestimmt wird, dass das Bit 81i der
Hinweismarke 81 "0" ist, weist diese
Tatsache darauf hin, dass der Schreibvorgang nicht normal durchgeführt worden
ist. Allerdings ist die Hinweismarke 81 in dem Zustand
i gehalten. Wenn die Daten danach aus dem Datenbereich 7 ausgelesen
werden, werden somit die Daten aus dem Datenbereich 71i ausgelesen. Dann werden die neuesten
Daten ausgelesen, bei denen der Schreibvorgang normal durchgeführt worden
ist.
-
Selbst
wenn bestimmt wird, dass das Bit 81i der
Hinweismarke 81 "1" oder "0" ist, ist es auf diese Weise möglich, die
neuesten Daten auszulesen, bei denen der Schreibvorgang normal durchgeführt worden
ist.
-
Als
nächstes
wird angenommen, dass die Daten in den Datenbereich 7 geschrieben
werden, wenn die Hinweismarke 81 sich in dem Zustand n
befindet, wird der Speicherbereich 711 als
Ziel ausgewählt,
in das die Daten geschrieben werden, und die Daten werden dort geschrieben.
Wenn die Daten nicht normal in den Speicherbereich 711 , weil eine Unterbrechung der Stromzufuhreinheit 5 austritt, während die
Daten in dem Speicherbereich 711 geschrieben
werden, wird die Hinweismarke 81 auf den ursprünglichen
Zustand n gehalten. Wenn danach Daten aus dem Datenbereich 7 ausgelesen
sind, werden die Daten aus dem Speicherbereich 71n ausgelesen.
Somit ist es selbst in diesem Fall möglich, die neuesten Daten auszulesen,
bei denen das Schreibprogramm normal durchgeführt worden ist.
-
Nachdem
die Daten in den Speicherbereich 711 geschrieben
wurden, werden alle Bits 811 bis 81n der Hinweismarke 81 auf "0" gelöscht.
Somit wird die Hinweismarke 81 von dem Zustand n auf den
Zustand 1 verschoben. In Übereinstimmung
mit der Anweisung von der CPU 2 werden sie zu dieser Zeit
gemeinsam "0" gelöscht. Demzufolge
ist die Gefahr sehr gering, dass der Inhalt der Hinweismarke 81 beschädigt wird,
wenn sie auf "0" gelöscht werden.
-
Selbst
wenn die Daten in den Datenbereich 7 geschrieben werden,
während
die Hinweismarke 81 sich in einem der Zustände 1 bis
n befindet, ist, wie oben beschrieben, für die Halbleitervorrichtung
in diesem Ausführungsbeispiel
die Gefahr gering, dass die Daten beschädigt werden, die in dem nichtflüchtigen
Speicher 4 gespeichert sind.
-
(Zweites Ausführungsbeispiel)
-
10 zeigt
eine Halbleiterspeichervorrichtung nach dem zweiten Ausführungsbeispiel
der vorliegenden Erfindung. Das zweite Ausführungsbeispiel unterscheidet
sich von der Halbleiterspeichervorrichtung des ersten Ausführungsbeispiels
darin, dass zusätzlich
zu der Hinweismarke 81 eine Hinweismarke 82 der
Energieausfallprüfung
in dem Bereich 8 der Hinweismarke vorgesehen ist. Die Halbleiterspeichervorrichtung
im zweiten Ausführungsbeispiel
verwendet die Hinweismarke 82 der Energieausfallprüfung. Somit
ist es möglich,
die Unterbrechung der Energiezufuhr an die entsprechenden Bereiche
der Halbleiterspeichervorrichtung zu erfassen, während die Daten in den Datenbereich 7 geschrieben
werden.
-
Darüber hinaus
werden bei der Halbleiterspeichervorrichtung in dem zweiten Ausführungsbeispiel
der Inhalt des Hauptprogrammes 11 und des Adressumwandlungsprogrammes 12,
die in dem ROM 2 gespeichert sind, modifiziert. Die Modifikation entspricht
der Tatsache, dass die Hinweismarke 82 Energieausfallprüfung zusätzlich in
dem Bereich 8 der Hinweismarke angebracht wurde.
-
Der
Aufbau der anderen Bereiche der Halbleitervorrichtung in dem zweiten
Ausführungsbeispiel ist
gleich dem der Halbleitervorrichtung in dem ersten Ausführungsbeispiel.
-
11 zeigt
den Aufbau der Hinweismarke 82 der Energieausfallprüfung. Die
Hinweismarke 82 der Energieausfallprüfung weist (n – 1) Unterbrechungsprüfbits 821 bis 82n-1 auf.
Hier ist n, wie oben beschrieben, die Anzahl der Speicherbereiche 711 bis 71n des
Datenbereiches 7. Wie vorhergehend erwähnt wird n so ausgewählt, dass
in Übereinstimmung
mit der einen Anweisung, die von der CPU 2 ausgegeben wurde,
alle (n – 1)
Bits 811 bis 81n-1 , die in
der Hinweismarke 81 gezeigt wird, gemeinsam auf "0" gelöscht
werden können.
Auf ähnliche
Weise können
in Übereinstimmung
mit der Anweisung, die von der CPU 2 ausgegeben wurde,
die (n – 1)
Unterbrechungsprüfbits 821 bis 82n-1 ,
die in der Hinweismarke 82 der Energieausfallprüfung enthalten
sind, gemeinsam auf "0" gelöscht werden.
-
Ähnlich der
Hinweismarke 81 befindet sich die Hinweismarke 82 der
Energieausfallprüfung
auf einem Zustand der Zustände
1 bis n. Der Zustand 1 ist der Zustand, bei dem alle Unterbrechungsprüfbits 821 bis 82n-1 "0" sind. Der Zustand 2 ist der Zustand, bei
dem das Unterbrechungsprüfbit 821 "1" ist und bei dem
die übrigen
Unterbrechungsprüfbits 822 bis 82n-1 "0" sind. Nachstehend ist auf ähnliche
Weise der Zustand k der Zustand, bei dem die Unterbrechungsprüfbits 821 bis 82k-1 "1" sind und bei dem die übrigen Unterbrechungsprüfbits 82k bis 82n-1 "0" sind. Hier ist k eine ganze Zahl zwischen
1 und n. Wenn k = n ist, ist allerdings der Zustand n der Zustand,
bei dem alle Unterbrechungsprüfbits 821 bis 82k-1 "1" sind.
-
Die
Hinweismarke 81 und die Hinweismarke 82 der Energieausfallprüfung werden
unter normalen Umständen
auf denselben Zustand gehalten. Allerdings bewirkt die Unterbrechung
der Energiezufuhr während
des Schreibvorgangs auf den Datenbereich 7, dass eine Differenz
zwischen der Hinweismarke 81 und der Hinweismarke 82 der
Energieausfallprüfung hervorgerufen
wird. Wie später
beschrieben wird, ermöglicht
diese Differenz, dass die Unterbrechung der Energiezufuhr erfasst
wird.
-
Der
Betrieb der Halbleitervorrichtung in dem zweiten Ausführungsbeispiel
wird nachfolgend beschrieben.
-
Zuerst
wird der Betrieb zum Schreiben von Daten in den Datenbereich 7 beschrieben.
Bei der folgenden Beschreibung wird angenommen, dass der Datenbereich 7 zugeordnet
wurde, um die Daten der logischen Adresse X in dem Speicherplatz
zu speichern. Darüber
hinaus wird angenommen, dass die Daten, die zuerst als die Daten
der logischen Adresse X gespeichert werden sollen, als Daten 1 bezeichnet
werden.
-
Wenn
die Daten 1, die zuerst als die Daten der logischen Adresse X gespeichert
werden sollen, in den Datenbereich 7 geschrieben werden,
wird die folgende Schreibbearbeitung durchgeführt. Zuerst wird die Hinweismarke 82 der
Energieausfallprüfung auf
den Zustand 1 eingestellt. Das heißt, dass alle Unterbrechungsprüfbits 821 bis 82n-1 auf "0" eingestellt sind. Als nächstes werden
die Daten 1 in den Datenbereich 7 geschrieben. Als die
Daten der logischen Adresse X werden die Daten 1, die zuerst in den
Datenbereich 7 zu schreiben sind, in den Speicherbereich 711 ohne eine Bedingung geschrieben. Nachdem
die Daten 1 in den Speicherbereich 711 geschrieben
wurden, wird die Hinweismarke 81 auf den Zustand 1 eingestellt.
Das heißt,
dass alle Bits 811 bis 81n-1 , die in der Hinweismarke 81 enthalten
sind auf "0" eingestellt werden. 12A zeigt die Zustände des Datenbereichs 7,
der Hinweismarke 81 und der Hinweismarke 82 der
Energieausfallprüfung nach
der Beendigung des Verfahrens zum Schreiben der Daten 1.
-
Wenn
danach die Daten der logischen Adresse X aktualisiert werden, wird
das Folgende Aktualisierungsverfahren durchgeführt. Zuerst verweist das Adressenumwandlungsprogramm 12 auf
die Hinweismarke 81 und die Hinweismarke 82 der
Energieausfallprüfung
und bestimmt, auf welchen der Zustände 1 bis n jeweils die Hinweismarke 81 und
die Hinweismarke 82 der Energieausfallprüfung eingestellt
ist. Die Hinweismarke 81 und die Hinweismarke 82 der
Energieausfallprüfung
befinden sich normalerweise in Zuständen, die miteinander übereinstimmen.
Wenn bestimmt wird, dass die Hinweismarke 81 und die Hinweismarke 82 der
Energieausfallprüfung
sich in dem Zustand k (k ist eine ganze Zahl zwischen 1 und n) befinden,
der Speicherbereich 71k+1 der Speicherbereiche 711 bis 71n als
ein Ziel ausgewählt,
in das die Daten nach der Aktualisierung zu schreiben sind.
-
Nachfolgend
wird die Hinweismarke 82 der Energieausfallprüfung von
dem Zustand k auf den Zustand k + 1 verschoben. Im Detail wird das
Unterbrechungsprüfbit 82k der Hinweismarke 82 der Energieausfallprüfung von "0" auf "1" verschoben.
Wenn allerdings sich die Hinweismarke 81 und die Hinweismarke 82 der
Energieausfallprüfung
auf dem Zustand n befinden, wird die Hinweismarke 82 der
Energieausfallprüfung
von dem Zustand n auf den Zustand 1 verschoben. Das heißt, dass
alle Unterbrechungsprüfbits 821 bis 82n-1 auf "0" gelöscht
werden, wenn sich die Hinweismarke 81 und die Hinweismarke 82 der
Energieausfallprüfung
in dem Zustand n befinden.
-
Als
nächstes
werden die Daten nach der Aktualisierung der logischen Adresse X
in den Speicherbereich 71k+1 der
Speicherbereiche 711 bis 71n geschrieben. Wenn allerdings die Daten
der logischen Adresse X aktualisiert werden, wenn die Hinweismarke 81 sich
in dem Zustand n befindet, werden die Daten, die in dem Datenbereich 7 zu
speichern sind, als die Daten der logischen Adresse X in den Speicherbereich 711 geschrieben.
-
Anschließend wird
die Hinweismarke 81 von dem Zustand k auf den Zustand k
+ 1 verschoben. Im Detail wird das Bit 81k der
Hinweismarke 81 von "0" auf "1" verschoben. Wenn allerdings sich die
Hinweismarke 81 in dem Zustand n befindet, wird die Hinweismarke 81 von
dem Zustand n auf den Zustand 1 verschoben. Das bedeutet, dass die
Unterbrechungsprüfbits 811 bis 81n-1 alle
auf "0" gelöscht werden,
wenn die Hinweismarke 81 sich in dem Zustand n befindet.
-
Das
Verfahren zum Aktualisieren der Daten der logischen Adresse X ist
wie oben beschrieben beendet.
-
Diese
Verfahren werden nachfolgend beschrieben. Wie oben erwähnt ist,
werden die Daten 1, die zuerst als die Daten der logischen Adresse
X gespeichert werden sollen, in den Speicherbereich 711 geschrieben, wie in 12A gezeigt ist. Sowohl die Hinweismarke 81 als
auch die Hinweismarke 82 der Energieausfallprüfung werden
auf den Zustand 1 eingestellt.
-
Wenn
die Daten der logischen Adresse X von den Daten 1 auf die Daten
2 aktualisiert werden, werden die folgenden Verfahren durchgeführt. Zuerst verweist
das Adressumwandlungsprogramm 12 auf die Hinweismarke 81 und
die Hinweismarke 82 der Energieausfallprüfung. Es
wird bestimmt, dass die sowohl die Hinweismarke 81 als
auch die Hinweismarke 82 der Energieausfallprüfung sich
in dem Zustand 1 befinden. Der Speicherbereich 712 der Speicherbereiche 711 bis 71n wird
als das Ziel ausgewählt,
in das die Daten 2 zu schreiben sind. Dann wird, wie in 12B gezeigt ist, das Unterbrechungsprüfbit 821 der Hinweismarke 82 der Energieausfallprüfung von "0" auf "1" aktualisiert.
Das bedeutet, dass die Hinweismarke 82 der Energieausfallprüfung von
dem Zustand 1 auf den Zustand 2 verschoben wird. Als nächstes werden,
wie in 12C gezeigt ist, die Daten 2
in den Speicherbereich 712 geschrieben,
der als das Ziel ausgewählt
wurde, in dass die Daten zu schreiben sind. Wie in 12D gezeigt ist, wird das Bit 811 in
der Hinweismarke 81 von "0" auf "1" aktualisiert. Das bedeutet, dass die
Hinweismarke 81 von dem Zustand 1 auf den Zustand 2 verschoben
wird. das Verfahren zum Schreiben der Daten 2 ist wie oben beschrieben
beendet.
-
Wenn
anschließend
die Daten der logischen Adresse X sequentiell auf die Daten 3, ...,
und die Daten n aktualisiert werden, wird auf dem oben erwähnten Verfahren ähnlicher
Weise die Hinweismarke 82 der Energieausfallprüfung sequentiell
auf den Zustand 3, den Zustand 4 ... und den Zustand n verschoben.
Die Daten 3, die Daten 4, ... und die Daten n werden nach der Aktualisierung
in den Speicherbereich 714 , dem
Speicherbereich 715 , ... und den Speicherbereich 71n geschrieben. Darüber hinaus wird die Hinweismarke 81 sequentiell
auf den Zustand 3, den Zustand 4, ... und den Zustand n geschoben.
Nach der Beendigung des Verfahrens zum Schreiben der Daten n, werden
die Daten n in den Speicherbereich 71n geschrieben,
wie in 13A gezeigt ist, und die Hinweismarke 81 und
die Hinweismarke 82 der Energieausfallprüfung befinden sich
in dem Zustand n.
-
Wenn
nachfolgend die Daten der logischen Adresse X von den Daten n auf
die Daten (n + 1) aktualisiert werden, wird zuerst auf die Hinweismarke 81 und
die Hinweismarke 82 der Energieausfallprüfung verwiesen.
Es wird bestimmt, dass sich die Hinweismarke 81 und die
Hinweismarke 82 der Energieausfallprüfung in dem Zustand n befindet.
Zu dieser Zeit wird der Speicherbereich 711 der
Speicherbereiche 711 bis 71n als das Ziel ausgewählt, in
das die Daten zu schreiben sind. Wie in 13B dargestellt ist,
werden alle Unterbrechungsprüfbits 821 bis 82n-1 der
Hinweismarke 82 der Energieausfallprüfung auf "0" gelöscht und
wird die Hinweismarke 82 der Energieausfallprüfung von
dem Zustand n auf den Zustand 1 verschoben. Als nächstes werden,
wie in 13C gezeigt ist, die Daten (n
+ 1) in den Speicherbereich 711 geschrieben,
der als das Ziel ausgewählt
wurde, in das die Daten zu schreiben sind. Wie in der 13D dargestellt ist, werden alle Bits 811 bis 81n-1 der
Hinweismarke 81 auf "0" gelöscht. Das
bedeutet, dass die Hinweismarke 81 von dem Zustand n auf
den Zustand 1 verschoben wurde. Das Verfahren zum Schreiben der
Daten (n + 1) ist wie oben beschrieben beendet.
-
Der
Betrieb zum Auslesen der Daten aus dem Datenbereich 7,
in den die Daten der logischen Adresse X wie oben beschrieben geschrieben
wurden, wird nachfolgend erklärt.
-
Wenn
die Daten der logischen Adresse X ausgelesen werden, verweist das
Adressumwandlungsprogramm 12 zuerst auf die Hinweismarke 81 und
bestimmt, auf welchen der Zustände
1 bis n die Hinweismarke 81 eingestellt ist. Zu dieser
Zeit wird auf die Hinweismarke 82 der Energieausfallprüfung nicht
verwiesen. Wie oben erwähnt
ist, wird die Hinweismarke 82 der Energieausfallprüfung aktualisiert, bevor
die Daten in die Speicherbereiche 711 bis 71n geschrieben werden. Es gibt dort den
Fall, dass die Hinweismarke 82 der Energieausfallprüfung nicht den
Speicherbereich der Speicherbereiche 711 bis 71n anzeigt, in den die neuesten Daten
der logischen Adresse X normal geschrieben wurden, weil die Stromzufuhr
von der Stromzufuhreinheit 5 unterbrochen wurde, während die
Daten auf einen der Speicherbereiche 711 bis 71n geschrieben wurden. Wenn die Daten
der logischen Adresse X ausgelesen werden, wird somit nicht auf
die Hinweismarke 82 der Energieausfallprüfung verwiesen.
-
Wenn
bestimmt wird, dass sich die Hinweismarke 81 in dem Zustand
j der Zustände
1 bis n (j ist eine ganze Zahl zwischen 1 und n) befindet, werden die
Daten, die in dem Speicherbereich 71j der Speicherbereiche 711 bis 71n gespeichert
sind, als die Daten der logischen Adresse X ausgelesen. Das Verfahren
zum Auslesen der Daten der logischen Adresse X, das auf dem Zustand
der Hinweismarke 81 basiert, ist das gleiche wie das des
ersten Ausführungsbeispiels.
Daher wird eine detaillierte Beschreibung nicht durchgeführt.
-
Die
Programme zum Durchführen
dieser Abläufe
sind in das Hauptprogramm 11 und das Adressenumwandlungsprogramm 12 in
diesem Ausführungsbeispiel
geschrieben. In Über einstimmung
mit dem Hauptprogramm 11 und dem Adressenumwandlungsprogramm 12 führt die
CPU 2 diese Abläufe durch.
-
Wenn
bei der Halbleitervorrichtung in dem zweiten Ausführungsbeispiel
die Daten in dem nichtflüchtigen
Speicher 4 gespeichert werden, wird auf ähnliche
Weise wie bei der Halbleitervorrichtung in dem ersten Ausführungsbeispiel
der Datenbereich 7 für
die Daten reserviert. Der reservierte Datenbereich 7 weist
n Speicherbereiche 711 bis 71n auf (n ist eine natürliche Zahl
von 2 oder mehr). Wenn die Daten aktualisiert werden, wird zirkular
einer der Speicherbereiche 711 bis 71n als das Ziel ausgewählt, in
das die Daten zu schreiben sind. Die Daten werden in den ausgewählten Speicherbereich
geschrieben. Somit ist die erlaubte Anzahl der Male des erneuten
Schreibens der Daten scheinbar größer als die physikalisch erlaubte
Anzahl der Male des erneuten Schreibens in dem nichtflüchtigen
Speicher 4.
-
Ähnlich der
Halbleitervorrichtung in dem ersten Ausführungsbeispiel ist darüber hinaus
bei der Halbleitervorrichtung in diesem Ausführungsbeispiel die Gefahr gering,
dass die Daten, die in dem nichtflüchtigen Speicher fehlgespeichert
sind, beschädigt werden,
selbst wenn die Stromzufuhr an die entsprechenden Bereiche der Halbleitervorrichtung
von der Stromzufuhreinheit 5 plötzlich während des Zugriffs auf den
nichtflüchtigen
Speicher 4 unterbrochen wird.
-
Darüber hinaus
ist es bei der Halbleitervorrichtung in diesem Ausführungsbeispiel
möglich,
das Auftreten der Unterbrechung der Stromzufuhr zu erfassen, wenn
die Stromzufuhr von der Stromzufuhreinheit 5 während der
Bearbeitung zum Schreiben der Daten in den Datenbereich 7 unterbrochen
wird. Wenn die Stromzufuhr von der Stromzufuhreinheit 5 während der
Aktualisierung der Hinweismarke 82 der Energieausfallprüfung, dem
Schreiben der Daten in die Speicherbereiche 711 bis 71n und der Aktualisierung der Hinweismarke 81 unterbrochen
wird, wird eine Differenz zwischen dem Zustand der Hinweismarke 81 und
dem Zustand der Hinweismarke 82 der Energieausfallprüfung erzeugt.
Wenn die Stromzufuhr von der Stromzufuhreinheit 5 wieder
aufgebaut wurde, bestimmt die CPU 2 in Übereinstimmung mit dem Hauptprogramm 11,
ob oder ob nicht der Zustand der Hin weismarke 81 mit dem
Zustand der Hinweismarke 82 der Energieausfallprüfung übereinstimmt.
Da der Zustand der Hinweismarke 81 nicht mit dem Zustand
der Hinweismarke 82 der Energieausfallprüfung übereinstimmt,
erfasst die CPU 2 die Unterbrechung der Stromzufuhr von
der Stromzufuhreinheit 5 während der Bearbeitung zum Schreiben der
Daten in den Datenbereich 7. Bei der Halbleitervorrichtung
in diesem Ausführungsbeispiel
ist es, wie oben beschrieben, möglich,
dass Auftreten einer Unterbrechung der Stromzufuhr zu erfassen.
-
(Drittes Ausführungsbeispiel)
-
14 zeigt
eine Halbleitervorrichtung des dritten Ausführungsbeispiels nach der vorliegenden Erfindung.
Bei der Halbleitervorrichtung des dritten Ausführungsbeispiels ist der Bereich 8 der
Hinweismarke nicht in dem nichtflüchtigen Speicher 4 vorgesehen.
Stattdessen sind bei der Halbleitervorrichtung des dritten Ausführungsbeispiels
Marken 721 , bis 72n jeweils
den Speicherbereichen 711 bis 71n des Datenbereiches 7 zugefügt. Jeder
der Marken 721 bis 72n speichert ein-Bit-Daten. Der Datenbereich,
dem die Marken 721 bis 72n zugefügt sind, wird nachfolgend als
der Datenbereich 7' bezeichnet.
Auch wird die Gesamtheit der Marken 721 bis 72n als der Markensatz 72 bezeichnet.
-
Weiterhin
sind bei der Halbleitervorrichtung des dritten Ausführungsbeispiels
der Inhalt des Hauptprogramms 11 und der des Adressenumwandlungsprogramms 12,
die in dem ROM 2 gespeichert sind, modifiziert. Diese Modifikation
entspricht der Tatsache, dass die Marken 721 bis 72n jeweils den Speicherbereichen 711 bis 71n des
Datenbereichs 7 hinzugefügt wurden.
-
Die
Marken 721 bis 72n zeigen
an, aus welchem der Speicherbereich 711 bis 71n des Datenbereiches 7' zuzugreifen
ist. Nur eine der Marken 721 bis 72n wird auf "1" eingestellt
und die anderen Marken werden auf "0" eingestellt.
Die Anzahl der Kombinationen hinsichtlich der Werte der Marken 721 bis 72n beträgt n. Das
heißt,
dass die Anzahl der möglichen
Zustände
des Markensatzes 72n ist.
-
Die
Korrespondenzbeziehung zwischen den Werten, die in den Marken 721 bis 72n gehalten
werden, und den Speicherbereichen, auf die zuzugreifen ist, ist
wie folgt. Wenn die Marke 721 von
den Marken 721 bis 72n "1" ist, werden die
Daten aus dem Speicherbereich 711 gelesen
und werden die Daten in den Speicherbereich 712 geschrieben.
Wenn die Marke 722 der Marken 721 bis 72n "1" ist, werden die Daten aus dem Speicherbereich 712 gelesen und werden die Daten in den
Speicherbereich 713 geschrieben.
Nachfolgend die Marke 72k der Marken 721 bis 72n "1", werden auf ähnliche Weise die Daten aus
dem Speicherbereich 71k gelesen
und werden die Daten in den Speicherbereich 71k+1 geschrieben. Wenn
allerdings die Marke 72n der Marken 721 bis 72n "1" ist, werden die Daten in den Speicherbereich 711 geschrieben.
-
Der
Betrieb der Halbleitervorrichtung des dritten Ausführungsbeispiels
wird nachfolgend beschrieben.
-
Zuerst
wird der Betrieb zum Schreiben der Daten in den Datenbereich 7' beschrieben.
Bei der folgenden Beschreibung wird angenommen, dass der Datenbereich 7' zugewiesen
wurde, um die Daten der logischen Adresse X in dem Speicherplatz
zu speichern. Weiterhin wird angenommen, dass die Daten, die zuerst
als die Daten der logischen Adresse X zu speichern sind, die Daten
1 sind.
-
Wenn
die Daten 1, die zuerst als die Daten der logischen Adresse X zu
speichern sind, in den Datenbereich 7' geschrieben werden, wird die folgende
Schreibbearbeitung durchgeführt.
Zuerst werden die Daten 1 ohne eine Bedingung in den Speicherbereich 711 geschrieben. Nachdem die Daten 1 in
den Speicherbereich 711 geschrieben
wurden, wird die Marke 721 auf
den Zustand "1" eingestellt und
bleiben die Marken 722 bis 72n auf den Zustand "0" eingestellt. 15A zeigt den Zustand des Datenbereiches 7' nach der Beendigung
der Bearbeitung zum Schreiben der Daten 1.
-
Wenn
daraufhin die Daten der logischen Adresse X aktualisiert werden,
wird die folgende Aktualisierungsbearbeitung durchgeführt. Zuerst
verweist das Adressumwandlungsprogramm 12 auf die Marken 721 bis 72n und
bestimmt, welche der Marken 721 bis 72n "1".
-
Wenn
bestimmt wird, dass die Marke 72k der Marken 721 bis 72n "1" ist (k ist eine ganze Zahl zwischen
1 und n), wird der Speicherbereich 71k+1 aus den
Speicherbereichen 711 bis 71n als das Ziel ausgewählt, in
das die Daten nach der Aktualisierung zu schreiben sind. Wenn allerdings
die Marke 72n "1" ist, wird
der Speicherbereich 711 als das
Ziel ausgewählt, in
das die Daten nach der Aktualisierung zu schreiben sind.
-
Als
nächstes
werden die Daten der logischen Adresse X nach der Aktualisierung
in den ausgewählten
Speicherbereich 71k+1 geschrieben.
Wenn sich allerdings die Marke 72n auf "1" befindet, werden die Daten der logischen
Adresse X nach der Aktualisierung in den ausgewählten Speicherbereich 711 geschrieben.
-
Danach
wird die Marke 71k von "1" auf "0" aktualisiert
und wird die Marke 71k+1 von "0" auf "1" aktualisiert.
Wenn allerdings die Marke 72n "1" ist, wird die Marke 711 von "0" auf "1" aktualisiert.
-
Das
Verfahren zum Aktualisieren der Daten der logischen Adresse X ist
wie oben beschrieben beendet.
-
Diese
Verfahren werden nachfolgend beschrieben. Wie oben beschrieben ist,
werden die Daten 1, die zuerst als die Daten der logischen Adresse X
gespeichert werden sollen, in den Speicherbereich 711 geschrieben, wie in 15A gezeigt ist. Die Marke 721 wird
auf "1" gesetzt und die
Marken 722 bis 72n werden
auf "0" gesetzt.
-
Wenn
die Daten der logischen Adresse X von den Daten 1 auf die Daten
2 aktualisiert werden, werden die folgenden Bearbeitungen durchgeführt. Zuerst
wird auf die Marken 721 bis 72n verwiesen. Wenn die Tatsache erfasst
wird, dass die Marke 721 "1" ist und dass die Marken 722 bis 72n "0" sind, wird der Speicherbereich 712 aus den Speicherbereichen 711 bis 71n als
das Ziel ausgewählt,
in das die Daten zu schreiben sind. Die Daten 2 werden in den Speicherbereich 712 geschrieben, der als das Ziel ausgewählt wurde,
in das die Daten zu schreiben sind. Als nächstes wird die Marke 721 auf "0" aktualisiert
und wird die Marke 722 auf "1" aktualisiert. Das Verfahren zum Aktualisieren
der Daten der logischen Adresse X von den Daten 1 auf die Daten
2 ist wie oben beschrieben beendet. Die 15B zeigt
die Zustände
des Datenbereiches 7' und
der Marken 721 bis 72n , wenn die Aktualisierungsbearbeitung
beendet ist.
-
Wenn
anschließend
die Daten der logischen Adresse X sequentiell von den Daten 2, auf
die Daten 3, ... und die Daten n aktualisiert werden, werden nach
der Aktualisierung die Daten 3, die Daten 4, ... und die Daten n
jeweils in den Speicherbereich 713 , den
Speicherbereich 714 ... den Speicherbereich 71n geschrieben. Weiterhin werden die
Marken der "1" der Marken 721 bis 72n sequentiell
auf die Marke 723 , die Marke 724 , ... und die Marke 72n verändern. Nach der
Beendigung der Bearbeitung zum Aktualisieren der Daten der logischen
Adresse X auf die Daten n, werden die Daten n in den Speicherbereich 71n geschrieben, wie in der 15C gezeigt ist, und wird die Marke 72n der Marken 721 bis 72n auf "1" eingestellt
und werden die anderen Marken 721 bis 72n-1 auf "0" eingestellt.
-
Wenn
die Daten der logischen Adresse X von den Daten n auf die Daten
(n + 1) aktualisiert werden, wird nachfolgend auf die Marken 721 bis 72n verwiesen
und wird der Speicherbereich 711 der Speicherbereiche 711 bis 71n als
das Ziel ausgewählt,
in das die Daten zu schreiben sind. Die Daten (n + 1) werden in
den Speicherbereich 711 geschrieben,
der als das Ziel ausgewählt
wurde, in das die Daten zu schreiben sind. Als nächstes wird die Marke 721 auf "1" aktualisiert
und wird die Marke 72n auf "0" aktualisiert. Das Aktualisierungsverfahren
zum Aktualisieren der Daten der logischen Adresse X von den Daten
n auf die Daten (n + 1) ist wie oben beschrieben beendet. Die 15D zeigt die Zustände des Datenbereiches 7' und der Marken 721 bis 72n ,
wenn das Aktualisierungsverfahren beendet ist.
-
Der
Betrieb zum Auslesen der Daten aus dem Datenbereich 7', in das die
Daten der logischen Adresse X wie oben beschrieben geschrieben wurden,
wird nachfolgend beschrieben.
-
Wenn
die Daten der logischen Adresse X ausgelesen werden, verweist das
Adressenumwandlungsprogramm 12 zuerst auf die Marken 721 bis 72n und
bestimmt, welche der Mar ken 721 bis 72n "1" ist. Wenn bestimmt
wird, dass die Marke 72k von den Marken 721 bis 72n "1" ist, werden zu dieser Zeit die Daten,
die in dem Speicherbereich 71k der
Speicherbereiche 711 bis 71n gespeichert sind, als die Daten der
logischen Adresse X ausgelesen. Der Betrieb zum Auslesen der Daten
aus dem Datenbereich 7' ist wie
oben beschrieben beendet.
-
Die
Programme zum Durchführen
dieser Abläufe
sind in das Hauptprogramm 11 und das Adressenumwandlungsprogramm 12 in
diesem Ausführungsbeispiel
geschrieben. In Übereinstimmung
mit dem Hauptprogramm 11 und dem Adressenumwandlungsprogramm 12 führt die
CPU 2 diese Vorgänge durch.
-
Wenn
bei der Halbleitervorrichtung in dem dritten Ausführungsbeispiel
die Daten in dem nichtflüchtigen
Speicher 4 gespeichert werden, wird ähnlich der Halbleitervorrichtung
in dem ersten oder dem zweiten Ausführungsbeispiel der Datenbereich 7 für die Daten
reserviert. Der reservierte Datenbereich 7 weist n Speicherbereiche 711 bis 71n auf
(n ist eine natürliche
Zahl von 2 oder mehr). Wenn die Daten aktualisiert werden, wird
zirkular einer der Speicherbereiche 711 bis 71n als das Ziel ausgewählt, in
das die Daten zu schreiben sind. Die Daten werden in den ausgewählten Speicherbereich
geschrieben. Somit ist die erlaubte Anzahl der Male des erneuten
Schreibens der Daten scheinbar größer als die physikalisch erlaubte
Anzahl der Male des erneuten Schreibens des nichtflüchtigen
Speichers 4.
-
Die
vorliegende Erfindung stellt das Verfahren bereit, um scheinbar
die Lebensdauer des nichtflüchtigen
Speichers zu erhöhen,
für den
die erlaubte Anzahl der Male des erneuten Schreibens begrenzt ist.
-
Weiterhin
stellt die vorliegende Erfindung ein Verfahren bereit, um einfach
einen Speicherbereich zu bestimmen, der für das erneute Schreiben verwendet
werden soll, und um den turnusmäßigen Wechsel
der Speicherbereiche durchzuführen,
wodurch scheinbar die Lebensdauer des nichtflüchtigen Speichers erhöht wird,
für den
die erlaubte Anzahl der Male des erneuten Schreibens begrenzt ist.
-
Weiterhin
stellt die vorliegende Erfindung ein Verfahren bereit, um die Gefahr
zu verringern, dass die Daten, die in dem nichtflüchtigen
Speicher gespeichert sind, beschädigt
werden, wenn die Energiezufuhr an den nichtflüchtigen Speicher während des
Zugriffs auf den nichtflüchtigen
Speicher unterbrochen wird.
-
Weiterhin
stellt die vorliegende Erfindung ein Verfahren bereit, um das Auftreten
der Unterbrechung der Energiezufuhr an den nichtflüchtigen
Speicher zu erfassen, wenn die Energiezufuhr an den nichtflüchtigen
Speicher unterbrochen wurde.