DE60211987T2 - Halbleiterspeichervorrichtung mit nichtflüchtigem Speicher, in den Daten zirkulär geschrieben werden - Google Patents

Halbleiterspeichervorrichtung mit nichtflüchtigem Speicher, in den Daten zirkulär geschrieben werden Download PDF

Info

Publication number
DE60211987T2
DE60211987T2 DE2002611987 DE60211987T DE60211987T2 DE 60211987 T2 DE60211987 T2 DE 60211987T2 DE 2002611987 DE2002611987 DE 2002611987 DE 60211987 T DE60211987 T DE 60211987T DE 60211987 T2 DE60211987 T2 DE 60211987T2
Authority
DE
Germany
Prior art keywords
data
memory
region
written
latest data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2002611987
Other languages
English (en)
Other versions
DE60211987D1 (de
Inventor
Hideo Isogai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Application granted granted Critical
Publication of DE60211987D1 publication Critical patent/DE60211987D1/de
Publication of DE60211987T2 publication Critical patent/DE60211987T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

  • 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;
  • 2A2C 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;
  • 5A5E 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;
  • 7A7E 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;
  • 12A12D zeigen ein Verfahren zum Aktualisieren der Daten in der Halbleiterspeichervorrichtung des zweiten Ausführungsbeispiels;
  • 13A13D 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
  • 15A15D 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.

Claims (9)

  1. Halbleitervorrichtung mit: einem nicht flüchtigen Speicher (4); und einer Steuereinheit (1, 2, 3), die, wenn die Daten in den nicht flüchtigen Speicher eingeschrieben werden, n Speicherregionen – n ist eine ganze Zahl größer als 2 – (711 bis 71n ) für n Daten als erste bis n-te Speicherregionen in dem nicht flüchtigen Speicher reserviert und die Daten in die erste Speicherregion schreibt, und die jedes Mal dann, wenn die Daten aktualisiert werden, die aktualisierten Daten als die spätesten Daten in die n Speicherregionen sequenziell und zirkular einschreibt; wobei die Steuereinheit eine Hinweismarkenregion (81) in den nicht flüchtigen Speicher reserviert, um eine i-te – i ist eine ganze Zahl zwischen 1 und n – der ersten bis n-ten Speicherregionen, in welcher die spätesten Daten eingeschrieben sind, anzuzeigen; wobei die Steuereinheit auf diese Hinweismarkenregion Bezug nimmt, um die spätesten Daten aus der i-ten Speicherregion auszulesen; wobei, wenn die spätesten Daten weiter aktualisiert werden sollten, die Steuereinheit auf die Hinweismarkenregion Bezug nimmt, um die spätesten Daten aus der i-ten Speicherregion auszulesen, die aktualisierten Daten als die spätesten Daten in eine (i + 1)-te Speicherregion einschreibt, wenn 1 ≤ i ≤ n – 1 ist, und in die erste Speicherregion einschreibt, wenn i = n gilt, und die Hinweismarkenregion aktualisiert, um die (i + 1)-te Speicherregion oder die erste Speicherregion anzuzeigen; dadurch gekennzeichnet, dass die Hinweismarkenregion (n – 1) Bitregionen (811 bis 81n-1 ) für die n Speicherregionen aufweist, und dass eine j-te Bitregion – j ist eine ganze Zahl zwischen 1 und (n – 1) – die (j + 1)-te Speicherregion anzeigt, in welche die spätesten Daten eingeschrieben sind; wobei die Steuereinheit einen Wert der j-ten Bitregion von einem ersten Wert auf einen zweiten Wert ändert, wenn die spätesten Daten in die (j + 1)-te Speicherregion eingeschrieben sind; wobei die Steuereinheit alle Werte der (n – 1) Bitregionen auf den ersten Wert rücksetzt, wenn die spätesten Daten in die erste Speicherregion eingeschrieben sind.
  2. Halbleitervorrichtung nach Anspruch 1, wobei die Steuereinheit eine Energieausfallüberprüfungsregion (82) in dem nicht flüchtigen Speicher reserviert, und die Energieausfallüberprüfungsregion anzeigt, ob ein Energieausfall aufgetreten ist, bevor die spätesten Daten in die i-te Speicherregion eingeschrieben worden sind.
  3. Halbleitervorrichtung nach Anspruch 2, wobei, wenn die spätesten Daten die in die i-te Speicherregion eingeschrieben sind, weiter aktualisiert werden sollten, die Steuereinheit auf die Hinweismarkenregion und die Energieausfallüberprüfungsregion Bezug nimmt, um eine (i – 1)-te Speicherregion zu bestimmen, wenn die Energieausfallüberprüfungsregion anzeigt, dass der Energieausfall aufgetreten ist, wenn die spätesten Daten in die i-te Speicherregion eingeschrieben sind, und die i-te Speicherregion zu bestimmen, wenn die Energieausfallüberprüfungsregion keinen Energieausfall anzeigt, wenn die spätesten Daten in die i-te Speicherregion eingeschrieben sind, die spätesten Daten aus der bestimmten Speicherregion ausliest und die aktualisierten Daten als die spätesten Daten in die zu der bestimmten Speicherregion nächste Speicherregion einschreibt.
  4. Halbleitervorrichtung nach einem der Ansprüche 1 bis 3, wobei die Steuereinheit n basierend auf der Steuereinheit zugeführter Information bestimmt.
  5. IC-Karte, die die Halbleitervorrichtung gemäß einem der Ansprüche 1 bis 4 verwendet.
  6. Verfahren zum Einschreiben und Aktualisieren von Daten in einem nicht flüchtigen Speicher, mit den Schritten: (a) Reservieren von n Speicherregionen (n ist eine ganze Zahl größer als 2) für n Daten als erste bis n-te Speicherregionen in einem nicht flüchtigen Speicher, wenn die Daten in den nicht flüchtigen Speicher eingeschrieben sind; (b) Reservieren einer Hinweismarkenregion in dem nicht flüchtigen Speicher, wobei die Hinweismarkenregion anzeigt, dass die spätesten Daten in eine i-te (i ist eine ganze Zahl zwischen 1 und n) der ersten bis n-ten Speicherregionen eingeschrieben sind; (c) Einschreiben der Daten in die erste Speicherregion als die spätesten Daten; (d) sequenzielles und zirkulares Einschreiben der spätesten Daten in die n Speicherregionen, während i jedes Mal um eins erhöht wird, wenn die spätesten Daten aktualisiert werden und die aktualisierten Daten als späteste Daten eingeschrieben sind; und (e) Aktualisieren der Hinweismarkenregion, um anzuzeigen, dass die spätesten Daten in die i-te Speicherregion eingeschrieben sind, wenn die spätesten Daten in die i-te Speicherregion eingeschrieben sind, wobei der Schritt (d) sequenzielles und zirkulares Einschreiben den Schritt aufweist: (f) Bezug nehmen auf die Hinweismarkenregion, um die i-te Speicherregion zu bestimmen, wenn die spätesten Daten aktualisiert sind; (g) Auslesen der spätesten Daten aus der i-ten Speicherregion; und (h) Einschreiben der aktualisierten Daten als die spätesten Daten in eine (i + 1)-te Speicherregion, dadurch gekennzeichnet, dass der Schritt (h) Einschreiben die Schritte aufweist: Einschreiben der spätesten Daten in die (i + 1)-te Speicherregion, wenn 1 ≤ i ≤ n – 1 gilt; und Einschreiben der spätesten Daten in die erste Speicherregion, wenn i = n gilt; dass die Hinweismarkenregion (n – 1) Bitregionen für die n Speicherregionen aufweist, der Schritt (e) Aktualisieren den Schritt aufweist: Ändern eines Wertes der j-ten Bitregion von einem ersten Wert auf einen zweiten Wert, wenn die spätesten Daten in die (j + 1)-te Speicherregion eingeschrieben sind, wobei j eine ganze Zahl zwischen 1 und (n – 1) ist, und dass der Schritt (e) Aktualisieren fernerhin den Schritt aufweist; Rücksetzen der Werte der (n – 1) Bitregionen auf den ersten Wert, wenn die spätesten Daten in die erste Speicherregion eingeschrieben sind.
  7. Verfahren nach Anspruch 6, weiterhin mit dem Schritt: (i) Reservieren einer Energieausfallüberprüfungsregion in dem nicht flüchtigen Speicher und wobei der Schritt (d) sequenzielles und zirkulares Einschreiben fernerhin die Schritte aufweist: wenn die spätesten Daten, die in i-te Speicherregion eingeschrieben sind, weiter aktualisiert werden sollten, Bezug nehmen auf die Hinweismarkenregion und die Energieausfallüberprüfungsregion, um eine (i – 1)-te Speicherregion zu bestimmen, wenn die Energieausfallüberprüfungsregion anzeigt, dass der Energieausfall aufgetreten ist, wenn die spätesten Daten in die i-te Speicherregion eingeschrieben sind, und die i-te Speicherregion zu bestimmen, wenn die Energieausfallüberprüfungsregion keinen Energieausfall beim Einschreiben der spätesten Daten in die i-te Speicherregion anzeigt; Auslesen der spätesten Daten aus der bestimmten Speicherregion; und Schreiben der aktualisierten Daten als die spätesten Daten in die zur bestimmten Speicherregion nächste Region.
  8. Verfahren nach einem der Ansprüche 6 bis 7, wobei der Schritt (a) Reservieren den Schritt aufweist: Bestimmen von n basierend auf gegebener Information.
  9. Programm zur Durchführung des Verfahrens nach einem der Ansprüche 6 bis 8.
DE2002611987 2001-03-14 2002-03-13 Halbleiterspeichervorrichtung mit nichtflüchtigem Speicher, in den Daten zirkulär geschrieben werden Expired - Fee Related DE60211987T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001073170A JP2002278850A (ja) 2001-03-14 2001-03-14 半導体装置
JP2001073170 2001-03-14

Publications (2)

Publication Number Publication Date
DE60211987D1 DE60211987D1 (de) 2006-07-20
DE60211987T2 true DE60211987T2 (de) 2007-02-01

Family

ID=18930635

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002611987 Expired - Fee Related DE60211987T2 (de) 2001-03-14 2002-03-13 Halbleiterspeichervorrichtung mit nichtflüchtigem Speicher, in den Daten zirkulär geschrieben werden

Country Status (3)

Country Link
EP (1) EP1241677B1 (de)
JP (1) JP2002278850A (de)
DE (1) DE60211987T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2393273A (en) * 2002-09-20 2004-03-24 Sharp Kk Method and apparatus for detecting an error in writing to persistent memory
KR100490603B1 (ko) * 2002-12-06 2005-05-27 (주) 라모스테크놀러지 플래시 메모리 동작 제어 방법 및 장치
NO324607B1 (no) * 2003-11-24 2007-11-26 Thin Film Electronics Asa Fremgangsmate for a betjene et datalagringsapparat som benytter passiv matriseadressering
JP4586469B2 (ja) * 2004-09-15 2010-11-24 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム
JP2006085596A (ja) * 2004-09-17 2006-03-30 Mitsubishi Electric Corp 情報記録読出装置
JP2006107363A (ja) * 2004-10-08 2006-04-20 Toshiba Corp 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
JP4529765B2 (ja) * 2005-03-31 2010-08-25 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
JP2008191855A (ja) * 2007-02-02 2008-08-21 Sony Corp 半導体記憶装置及びメモリ制御方法
KR20100013485A (ko) * 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
JP2011198409A (ja) * 2010-03-19 2011-10-06 Toshiba Information Systems (Japan) Corp 不揮発性メモリ
FR2959586B1 (fr) 2010-04-30 2012-06-22 Proton World Int Nv Procede d'ecriture et de lecture dans une memoire d'atomicite

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS618798A (ja) * 1984-06-21 1986-01-16 Nec Corp 不揮発性記憶装置
JPH0421999A (ja) * 1990-05-15 1992-01-24 Mitsubishi Electric Corp 分割型メモリ書き込み方式
FR2665791B1 (fr) * 1990-08-13 1994-11-10 Didier Mazingue Procede de mise a jour d'une memoire eeprom.
FR2712412B1 (fr) * 1993-11-12 1996-02-09 Peugeot Dispositif de sauvegarde de données dans un ensemble à microprocesseur notamment de véhicule automobile.
FR2730833B1 (fr) * 1995-02-16 1997-03-28 Gemplus Card Int Procede de mise a jour securisee de memoire eeprom

Also Published As

Publication number Publication date
EP1241677B1 (de) 2006-06-07
JP2002278850A (ja) 2002-09-27
EP1241677A1 (de) 2002-09-18
DE60211987D1 (de) 2006-07-20

Similar Documents

Publication Publication Date Title
DE69809527T2 (de) Externe Speichervorrichtung und Datenverarbeitungsverfahren
DE69123775T2 (de) Programmsteuersystem für eine tragbare Datenspeichervorrichtung
DE69129480T2 (de) Anordnung zur Modifikation der Firmware, wobei ältere Versionen erneut geladen werden können.
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE69423273T2 (de) IC Karte mit hoher Sicherheit
DE3640238A1 (de) Tragbare elektronische vorrichtung
DE602005004045T2 (de) Vorrichtung, Verfahren und Computerprogramm zur Vermeidung von Datenverfälschung bei Schreibvorgängen
DE60211987T2 (de) Halbleiterspeichervorrichtung mit nichtflüchtigem Speicher, in den Daten zirkulär geschrieben werden
DE3743639A1 (de) Ic-karte und system zur ueberpruefung ihrer funktionstuechtigkeit
DE68915186T2 (de) Tragbarer elektronischer Apparat.
DE69427070T2 (de) Dateiverwaltungssystem für eine Speicherkarte
DE3720394A1 (de) Tragbare elektronische vorrichtung
DE3804925A1 (de) Tragbare elektronische vorrichtung
DE69701965T2 (de) Verfahren zur modifizierung des befehlsatzes in einer smartkarte
DE2339741A1 (de) Anordnung zur bildung einer relativen adresse fuer einen speicher
DE3720427A1 (de) Tragbare elektronische vorrichtung
DE1499182B2 (de) Datenspeichersystem
DE69431379T2 (de) Dateiverwaltungssystem mit flexibler Dateigrösse
DE69710798T2 (de) Eine Schlüsseldatenänderung erforderndes Dateienverwaltungsverfahren und dieses Verfahren anwendende Chipkarte
DE2856715B2 (de) Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem
DE102004014227A1 (de) Steuervorrichtung für einen nicht flüchtigen Speicher
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE69631230T2 (de) Kodediskriminierungssystem zur schnellen Ermittlung der Kodeübereinstimmung
DE10317904B4 (de) Fahrzeugkommunikationsvorrichtung und Kommunikationsverfahren zum Empfangen von und Senden zu einer externen Vorrichtung
DE10192507B4 (de) Verfahren und Vorrichtung für die Vorhersage von Lösch- und Schreibzeiten von Flash-Speichern

Legal Events

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