DE102005052293A1 - Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich - Google Patents

Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich Download PDF

Info

Publication number
DE102005052293A1
DE102005052293A1 DE102005052293A DE102005052293A DE102005052293A1 DE 102005052293 A1 DE102005052293 A1 DE 102005052293A1 DE 102005052293 A DE102005052293 A DE 102005052293A DE 102005052293 A DE102005052293 A DE 102005052293A DE 102005052293 A1 DE102005052293 A1 DE 102005052293A1
Authority
DE
Germany
Prior art keywords
memory
control value
memory area
value
predetermined
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.)
Granted
Application number
DE102005052293A
Other languages
English (en)
Other versions
DE102005052293B4 (de
Inventor
Holger Sedlak
Jan Otterstedt
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102005052293A priority Critical patent/DE102005052293B4/de
Priority to US11/555,799 priority patent/US7552273B2/en
Publication of DE102005052293A1 publication Critical patent/DE102005052293A1/de
Application granted granted Critical
Publication of DE102005052293B4 publication Critical patent/DE102005052293B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es wird eine Speicherschaltung (100) mit einer Mehrzahl von Speicherbereichen (120), deren Reihenfolge von jeweils zugeordneten logischen Adressen abhängt und denen jeweils ein Kontrollwert zugeordnet ist, und einer Steuereinrichtung (130) beschrieben, die so ausgelegt ist, dass sie beim Schreiben in einen Zielspeicherbereich den diesem zugeordneten Kontrollwert einen Wert gibt, der dem eines niedrigsten benutzten Speicherbereichs (120) entspricht, wenn ein solcher existiert, und einen beliebigen oder vorgegebenen Wert gibt, wenn ein solcher nicht existiert, und wenn eine vorbestimmte Bedingung erfüllt ist und wenn zumindest zwei benutzte Speicherbereiche (120) existieren, den Inhalt eines nächsten Speicherbereichs (120) neuschreibt, dessen Kontrollwert zu dem Kontrollwert des niedrigsten Speicherbereichs (120) eine vorbestimmte Beziehung aufweist, und den Kontrollwert dieses Speicherbereichs (120) ändert, wenn ein solcher existiert, oder den Inhalt des niedrigsten Speicherbereichs (120) neuschreibt und den zugeordneten Kontrollwert ändert, wenn ein nächster Speicherbereich (120), dessen Kontrollwert zu dem Kontrollwert des niedrigsten Speicherbereichs (120) eine vorbestimmte Beziehung aufweist, nicht existiert.

Description

  • Die vorliegende Erfindung bezieht sich auf eine Speicherschaltung und ein Verfahren zum Schreiben in einen Zielspeicherbereich, insbesondere auf Speicherschaltungen mit nichtflüchtigen Speicherelementen, beispielsweise auf integrierte Schaltungen (IC = integrated circuit) für Chipkarten.
  • In vielen Produkten werden heute nichtflüchtige Speicher (NVM = non-volatile memory), wie Flash-Speicher, eingesetzt, beispielsweise im Bereich eingebetteter bzw. integrierter Systeme, und hier insbesondere im Bereich von Chipkarten-ICs. Bei der Programmierung bzw. bei dem Schreiben von Daten treten in vielen Typen von nichtflüchtigen Speichern, besonders bei flächenoptimierten Typen von nichtflüchtigen Speichern und hier insbesondere bei Flash-Speichern, das Problem einer Verschiebung von Schwellenspannungen der in diesen Speichern verwendeten Feldeffekttransistoren (Flash-FET eines Flash-Memory) auf. Das sich hieraus ergebende Problem besteht darin, dass häufig nicht nur die Schwellenspannungen der ausgewählten, zu programmierenden Speicherzellen verändert werden, sondern auch die Schwellenspannungen von im gleichen Sektor liegenden Speicherstellen leicht verändert werden, die eigentlich unverändert bleiben sollten. Dieser Effekt bzw. Mechanismus wird auch als „Drain Disturb" bezeichnet und kann durch eine Akkumulation der Schwellenspannungsänderungen nach vielen Programmierungen innerhalb des betreffenden Sektors zu einem Datenverlust der gestörten Speicherzellen führen. Verhindert wird die zu starke Akkumulation von Störungen durch ein rechtzeitiges Umkopieren und „Auffrischen" (Refresh) der betroffenen Daten. Dieser Mechanismus wird als Störungsbehandlung oder auch als „Disturb-Handling" bezeichnet und kann auf verschiedene Arten durchgeführt werden.
  • Eine Störungsbehandlung besteht darin, einen Zählwert bei jedem Programmiervorgang explizit mit abzuspeichern. Wird hierbei die Differenz verschiedener Zählwerte in einem Sektor zu groß, überschreitet also einen vorbestimmten Wert, werden die Bereiche mit den kleinsten Zählwerten umkopiert, also einem Refresh unterzogen. Nachteilig bei diesem Verfahren ist insbesondere die notwendige Implementierung des Zählwertes in jedem getrennt programmierbaren Bereich (Page), die typischerweise bei 16 Bit oder 32 Bit je getrennt programmierbarem Bereich liegt und somit typischerweise einen Bedarf von mehreren Prozent eines Speicherfeldes, typischerweise von etwa 3% eines Speicherfeldes, aufweist. Nachteilig ist darüber hinaus auch das notwendige Durchsuchen aller Zählwerte innerhalb eines Sektors, wenn in diesem Sektor Daten verändert werden sollen. Diese Ausführungsform der Störungsbehandlung benötigt somit einerseits eine große Speichermenge zum Abspeichern der Zählwerte und andererseits eine große Laufzeit zum Durchsuchen und Auswerten der Zählwerte.
  • Eine zweite Methode der Störungsbehandlung besteht in einer zufälligen Auswahl eines programmierbaren Bereichs für ein Auffrischen. Bei diesem Verfahren wird bei jeder Programmierung eines Speicherbereichs eines Sektors mit einer bestimmten Wahrscheinlichkeit zufällig entschieden, ob ein ebenfalls zufällig ausgewählter Bereich innerhalb des gleichen Sektors umkopiert, also einem Refresh unterworfen wird. Über die Festlegung bzw. die Auswahl der Wahrscheinlichkeit für eine Umprogrammierung wird nun sichergestellt, dass statistisch alle Bereiche rechtzeitig umprogrammiert werden, bevor ein Datenverlust eintritt. Nachteilig bei diesem Verfahren ist insbesondere die Tatsache, dass aufgrund der statistischen Natur des Verfahrens entweder die Umprogrammierwahrscheinlichkeit, und damit auch die Umprogrammierrate, so hoch gewählt werden muss, um in jedem Fall ein rechtzeitiges Auffrischen der Daten zu gewährleisten, oder andererseits eine gewisse Wahrscheinlichkeit für einen Datenverlust aufgrund eines nicht rechtzeitig durchgeführten Umkopierens eines Bereichs in Kauf nehmen zu müssen. Aufgrund der für einen Flash-Speicher typischen Dauer eines Einschreibevorgangs im Vergleich zu einem Lesevorgang wird so bei einer Umprogrammierungswahrscheinlichkeit, die zu einer hohen Umprogrammierungsrate führt, die effektive Einschreibegeschwindigkeit, die ein späterer Nutzer bemerkt, stark reduziert. Darüber hinaus wird bei einer zu hoch gewählten Umkopierrate die Lebensdauer einer Speicherschaltung deutlich verkürzt, da die mittlere Lebensdauer eines entsprechenden Speichersystems typischerweise durch die Zahl der Schreibprozesse maßgeblich bestimmt wird, so dass mit jedem Schreibvorgang, aber auch jedem Umkopiervorgang die verbleibende Restlebensdauer verkürzt wird. Wird hingegen die Umprogrammierwahrscheinlichkeit so gewählt, dass eine niedrige Umprogrammierrate resultiert, besteht eine erhöhte Wahrscheinlichkeit eines Datenverlustes, die nicht zu tolerieren ist.
  • Das zweite geschilderte Verfahren wird auch in der US-Patentschrift US 5,625,791 beschrieben. In dieser Patentschrift wird eine Chip-Karte mit einem nichtflüchtigen elektrisch löschbaren und programmierbaren Speicher beschrieben, in den ein Verfahren zur automatischen Auffrischung des Inhalts bestimmter Zonen des Speichers implementiert ist, um das Risiko durch eine Alterung eines EEPROM-Speichers (EEPROM = Electrically Erasable Programmable Read-Only-Memory = elektrisch löschbarer programmierbarer Nur-Lese-Speicher) zu umgehen. Die dort beschriebene Auffrischung kann nach vorbestimmten Zeitintervallen oder am Ende einer vorbestimmten Zahl von Nutzungen oder auch routinemäßig durchgeführt werden, wenn immer die Karte mit Strom versorgt wird. Wird bei dem Schritt des Auffrischens nur ein Teil einer Zone angesprochen, so wird die Adresse dieses Teils der Zone durch einen Zufallsgenerator festgelegt. Mit anderen Worten beschreibt das vorgenannte US-Patent den Einsatz eines Zufallszahlengenerators zur Bestimmung einer beliebigen Refresh-Adresse, wenn die Chip-Karte eingeschaltet wird (Power-up der Karte).
  • In der US-Patentschrift US 6,160,738 wird ein nichtflüchtiges Halbleiterspeichersystem mit einem Gitter nichtflüchtiger Speicherzellen beschrieben, das in Löschungsblöcke und Auffrischungsblöcke aufgeteilt ist. Darüber hinaus weist das Speichersystem eine Anordnung von Zwischenmarkierungszellen auf, wobei jede Zwischenmarkierungszelle einem Auffrischungsblock zugeordnet ist und Informationen über den Auffrischungsstatus des zugehörigen Auffrischungsblocks zwischenspeichert. Mit anderen Worten beschreibt die genannte US-Patentschrift den Einsatz einer separaten Anordnung von Zwischenmarkierungsspeichern (Flag-Array), in dem separat der Auffrischungs-Status (Refresh Status) eines zugeordneten Blocks gespeichert und wieder gelöscht wird.
  • Die US-Patentanmeldung US 2004 10 170 060 A1 beschreibt ein Halbleiter-Speicher-Bauelement mit einer Detektions-Einrichtung, die den Halbleiterspeicher in Auffrischungszonen unterteilt und eine Auffrischungszone bestimmt, die ein Schreibziel bei einem Schreibvorgang umfasst. Die Detektions-Einrichtung frischt dann die zu der zugehörigen Auffrischungszone gehörenden Sektoren der Reihe nach auf, die von der Detektions-Einrichtung bestimmt wurden.
  • Ausgehend von diesem Stand der Technik besteht die Aufgabe der vorliegenden Erfindung darin, eine Speicherschaltung und ein Verfahren zum Schreiben in einen Zielspeicherbereich zu schaffen, das eine weniger zeitaufwändige und speicherbelastende Möglichkeit zur Auffrischung eines Speicherbereichs ermöglicht.
  • Diese Aufgabe wird durch eine Speicherschaltung gemäß Anspruch 1, ein Verfahren gemäß Anspruch 9 und durch ein Software-Programm-Produkt gemäß Anspruch 17 gelöst.
  • Die erfindungsgemäße Speicherschaltung weist eine Mehrzahl von Speicherbereichen, deren Reihenfolge von jeweils zugeord neten logischen Adressen abhängt, und denen jeweils ein Kontrollwert zugeordnet ist, eine Einrichtung, die Informationen enthält, welche Speicherbereiche benutzt sind, und eine Steuereinrichtung, die so ausgelegt ist, dass sie beim Schreiben in einen Zielspeicherbereich der Mehrzahl von Speicherbereichen
    • – dem dem Zielspeicherbereich zugeordneten Kontrollwert einen Wert gibt, der dem einem niedrigsten benutzten Speicherbereich zugeordneten Kontrollwert entspricht, wenn ein benutzter Speicherbereich existiert, und einen beliebigen oder einen vorgegebenen Wert gibt, wenn kein benutzter Speicherbereich existiert, und
    • – wenn eine vorbestimmte Bedingung erfüllt ist, und wenn zumindest zwei benutzte Speicherbereiche existieren,
    • – Neuschreiben des Inhalts eines nächsten Speicherbereichs, dessen Kontrollwert zu dem Kontrollwert des niedrigsten Speicherbereichs eine vorbestimmte Beziehung aufweist, und Ändern des Kontrollwerts des nächsten Speicherbereichs, wenn ein solcher nächster Speicherbereich existiert, und
    • – Neuschreiben des Inhalts des niedrigsten Speicherbereichs und Ändern des demselben zugeordneten Kontrollwerts, wenn ein nächster Speicherbereich, dessen Kontrollwert zu dem Kontrollwert des niedrigsten Bereichs die vorbestimmte Beziehung aufweist, nicht existiert.
  • Bei dem erfindungsgemäßen Verfahren zum Schreiben in einen Zielspeicherbereich einer Speicherschaltung mit einer Mehrzahl von Speicherbereichen, deren Reihenfolge von jeweils zugeordneten logischen Adressen abhängt, und mit einer Einrichtung, die Informationen enthält, welche Speicherbereiche benutzt sind,
    • – wird dem dem Zielspeicherbereich zugeordneten Kontrollwert ein Wert zugewiesen, der dem eines niedrigsten benutzten Speicherbereichs zugeordneten Kontrollwert entspricht, wenn ein benutzter Speicherbereich existiert, und einen beliebigen oder einen vorgegebenen Wert dem dem Zielspeicherbereich zugeordneten Kontrollwert zugewiesen wird, wenn kein benutzter Speicherbereich existiert, und
    • – wenn eine vorbestimmte Bedingung erfüllt ist, und wenn zumindest zwei benutzte Speicherbereiche existieren,
    • – wird der Inhalt eines nächsten Speicherbereichs neugeschrieben, dessen Kontrollwert zu dem Kontrollwert des niedrigsten Speicherbereichs eine vorbestimmte Beziehung aufweist, und der Kontrollwert des nächsten Speicherbereichs geändert, wenn ein solcher nächster Speicherbereich existiert, und es
    • – wird der Inhalt des niedrigsten Speicherbereichs neugeschrieben wird und der demselben zugeordnete Kontrollwert geändert wird, wenn ein nächster Speicherbereich, dessen Kontrollwert zu dem Kontrollwert des niedrigsten Bereichs eine vorbestimmte Beziehung aufweist, nicht existiert.
  • In der vorliegenden Anmeldung bezeichnen die Begriffe „Refresh", „Umkopieren" und „Neuschreiben" ein Neuschreiben von Daten in eine gleiche oder andere physikalischen Adresse, wobei die logische Adresse unverändert bleibt. Die Begriffe „Schreiben" und „Programmieren" bezeichnen synonym ein Schreiben von Daten in eine vorbestimmte logische Adresse, der eine physikalische Adresse zugeordnet ist oder bei dem eigentlichen Schreibvorgang zugeordnet wird.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass ein bezüglich des Zeitaufwands und des Speicheraufwands effizienteres Verfahren zum Schreiben in einen Zielspeicherbereich erreicht werden kann, indem bei jedem Schreiben in einen Zielspeicherbereich anhand einer vorbestimmten Bedingung überprüft wird, ob ein Neuschreiben eines Speicherbereichs durchgeführt werden soll.
  • Mit anderen Worten wird im Rahmen des erfindungsgemäßen Verfahrens zunächst bei jedem Schreiben beispielsweise auf Basis einer vorbestimmten Wahrscheinlichkeit zufällig entschieden, ob ein Speicherbereich innerhalb eines Sektors, der den Speicherbereich umfasst, neu geschrieben werden soll. Auf Basis eines Kontrollwerts, der jedem Speicherbereich zugeordnet ist, wird dann entschieden, welcher Speicherbereich für ein Neuschreiben ausgewählt wird.
  • Besonders vorteilhaft an diesem Verfahren ist, dass Speicherbereiche, die zu einem Neuschreiben vorgesehen sind, gezielt auf Basis eines Kontrollwerts ausgewählt werden, so dass Speicherbereiche, die unmittelbar vorher neu geschrieben wurden, nicht sofort wieder zu einem Neuschreiben herangezogen werden können, ohne dass dabei ein nennenswerter Speicheranteil beispielsweise zur Speicherung eines Zählers verwendet werden muss. Darüber hinaus bietet dieses Verfahren den Vorteil, dass nicht bei jedem Schreiben auch ein Neuschreiben eines Speicherbereichs durchgeführt werden muss, so dass die effektive Schreibgeschwindigkeit, die ein Nutzer einer erfindungsgemäßen Speicherschaltung bemerkt, nicht signifikant reduziert wird. Neben einer deutlichen Erhöhung der effektiven Schreibgeschwindigkeit wird so auch die Lebensdauer einer erfindungsgemäßen Speicherschaltung erheblich erhöht, da, wie bereits in den einführenden Abschnitten der vorliegenden Anmeldung erläutert wurde, eine mittlere Lebensdauer einer erfindungsgemäßen Speicherschaltung maßgeblich durch die Zahl der Schreibvorgänge, also auch der Neuschreibvorgänge, bestimmt wird.
  • Mit anderen Worten wird im Rahmen des erfindungsgemäßen Verfahrens zunächst bei jedem Schreiben bzw. bei jeder Programmierung eines Zielspeicherbereichs beispielsweise auf Basis einer vorbestimmten Wahrscheinlichkeit zufällig entschieden, ob ein Speicherbereich innerhalb eines Sektors, der den Speicherbereich umfasst, umkopiert bzw. neu geschrieben wird. Dann wird beispielsweise anhand nur eines einzelnen, mit den Speicherbereichen abgespeicherten Bits entschieden, welcher Speicherbereich genau zum Neuschreiben ausgewählt wird. Vorteilhaft ist hierbei insbesondere, dass immer „sinnvolle" Bereiche zum Neuschreiben ausgewählt werden, ohne dass ein nennenswerter Speicheranteil zur Speicherung eines Zählers verwendet werden muss.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein schematisches Blockschaltbild eines Ausführungsbeispiels einer erfindungsgemäßen Speicherschaltung; und
  • 2 eine schematische Darstellung des Inhalts einer erfindungsgemäßen Speicherschaltung mit acht Speicherbereichen.
  • Bezug nehmend auf die 1 und 2 wird nun ein Ausführungsbeispiel einer Speicherschaltung und eines Verfahrens zum Schreiben in einen Zielspeicherbereich beschrieben.
  • 1 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels einer erfindungsgemäßen Speicherschaltung 100 mit einem Speicher 110 mit einer Mehrzahl von Speicherbereichen 120-0 bis 120-N, denen jeweils ein Kontrollwertspeicherplatz 125-0 bis 125-N zugeordnet ist, und einer Steuereinheit 130 mit einer Zuordnungseinrichtung bzw. Mapping-Einheit 140 und einem Statusspeicher 150. Die Steuereinheit 130 ist mit dem Speicher 110 über einen bidirektionalen Bus 160 gekoppelt. Die Steuereinheit 130 kann über einen weiteren bidirektionalen Bus 170 beispielsweise mit einer Speichersteuerung gekoppelt sein. Alternativ kann die Steuereinheit 130 Teil einer Speichersteuerung sein.
  • Eine wesentliche Aufgabe der Steuereinheit 130 besteht darin, eine Zuordnung zwischen einer logischen Adresse LA und einem physikalischen Speicherbereich 120 vorzunehmen. Diese durch die Mapping-Einheit 140 durchgeführte Umsetzung ermöglicht es einerseits, defekte physikalische Speicherbereiche 120 von einer möglichen Datenspeicherung auszunehmen, und andererseits eine flexible Zuweisung von logischen Adressen LA an physikalische Speicherbereiche 120 durchzuführen. Hierdurch ist es beispielsweise möglich, auf Basis der logischen Adressen LA eine Reihenfolge zu definieren, ohne dass die physikalischen Speicherbereiche 120 eine entsprechende Anordnung, also eine Anordnung der Reihenfolge entsprechend aufweisen müssen. Dies ermöglicht es insbesondere, auch während des Betriebs der Speicherschaltung 100 die Zuordnung zwischen logischen Adressen LA und den physikalischen Speicherbereichen 120 zu ändern und den jeweiligen Betriebsbedingungen anzupassen. Die Umsetzung, die durch die Mapping-Einheit 140 der Steuereinheit 130 durchgeführt wird, ermöglicht es so, logische Speicherbereiche zu definieren, die durch ihre logischen Adressen LA eindeutig bestimmt sind. Darüber hinaus weist die Steuereinheit 130 noch den Statusspeicher 150 auf, der im vorliegenden Ausführungsbeispiel Informationen über eine Benutzung oder eine Nichtbenutzung eines logischen Speicherbereichs enthält. Der Statusspeicher 150 ermöglicht so zusammen mit der Mapping-Einheit 140 beispielsweise einen gezielten Zugriff auf alle benutzten logischen Speicherbereiche.
  • Jeder getrennt programmierbare logische Speicherbereich weist ein Bit auf, das auch als DH-Bit bezeichnet wird und dem im Zusammenhang mit den zughörigen physikalischen Speicherbereichen 120-0 bis 120-N jeweils der Kontrollwertspeicherplatz 125-0 bis 125-N zugeordnet ist, in dem im gleichen Programmiervorgang, aber unabhängig von den anderen in dem betreffenden Speicherbereich gespeicherten Daten der Wert 0 oder 1 abgespeichert werden kann. Jeder Speicherbereich 120-0 bis 120-N kann im Sinne einer herkömmlichen Terminologie eine Speicherseite oder Page sein, während die Speicherbereiche 120-0 bis 120-N zusammen einen Speichersektor, der somit eine Mehrzahl von Pages aufweist, bilden. Der genannte Speicher ist dabei so in mehrere Sektoren aufgeteilt, dass nur die Speicherseiten innerhalb eines Sektors sich über den in den einführenden Abschnitten der vorliegenden Anmeldung beschriebenen „Drain Disturb"-Mechanismus beeinflussen. Die Speicherseiten werden über Adressen bzw. logische Adressen innerhalb eines Sektors angesprochen und weisen dadurch eine definierte Reihenfolge mit einer „höchsten Seite" und einer „niedrigsten Seite" auf. Diese Reihenfolge muss nicht notwendigerweise durch eine Erhöhung der logischen Adresse um jeweils 1 gegeben sein. Der Einfachheit halber wird jedoch bei dem beschriebenen Ausführungsbeispiel eine solche Reihenfolge als Ordnungskriterium bzw. als Such-Reihenfolge verwendet. Die niedrigste Page stellt daher die Page mit der niedrigsten logischen Adresse dar und die nächste Page stellt daher die Page mit der nächsthöheren logischen Adresse dar.
  • Auf Basis der eben beschriebenen Randbedingungen wird eine konkrete Implementierung des erfindungsgemäßen Verfahrens zum Schreiben in einen Zielspeicherbereich, wie es in der Speicherschaltung 100 durchgeführt werden kann, im Folgenden beschrieben. Hierbei werden die Begriff „Schreiben" und „Programmieren" ebenso synonym verwendet, wie die Begriffe „Neuschreiben" und „Umkopieren" für einen Refresh-Vorgang synonym verwendet werden.
  • Wenn eine unbenutzte Page in einem betroffenen Sektor programmiert oder der Inhalt einer bereits benutzten Page in dem betroffenen Sektor verändert (umprogrammiert) werden soll, werden die folgenden Schritte durchgeführt:
    • a. Suchen der „niedrigsten" benutzten Page in dem betroffenen Sektor und Lesen des DH-Bits der niedrigsten benutzten Page.
    • b1. Existiert eine benutzte Page in dem bestimmten Sektor, Einstellen des DH-Bits der zu programmierenden oder der umzuprogrammierenden Page (Ziel-Page) auf einen zu dem Wert des DH-Bits der niedrigsten benutzten Page identischen Wert. Dies ist auch anzuwenden, wenn eine Umprogrammierung der niedrigsten benutzten Page durchgeführt wird. In diesem Fall bleibt das DH-Bit also erhalten.
    • b2. Existiert in dem betroffenen Sektor noch keine benutzte Page, existiert also keine „niedrigste benutzte Page, so wird das DH-Bit der zu programmierenden Page auf einen beliebigen oder vorbestimmten Wert 0 oder 1 gesetzt.
    • c. Programmieren oder Umprogrammieren der zu programmierenden Page des betreffenden Sektors.
    • d. Entscheiden anhand einer (Pseudo-) Zufallszahl und einer vorbestimmten Wahrscheinlichkeit, ob ein Neuschreiben einer Page innerhalb des betreffenden Sektors durchgeführt werden soll. Ist dies nicht der Fall, endet das Programmieren bzw. Umprogrammieren hier.
  • Wenn ein Neuschreiben erfolgen soll, werden folgende Schritte durchgeführt:
    • e. Suchen der niedrigsten benutzten Page im betroffenen Sektor und Lesen des DH-Bits derselben.
    • f. Suchen der „nächsten" benutzten Page im gewählten Sektor mit einem DH-Bit, das invers zu dem DH-Bit der „niedrigsten" benutzten Page gesetzt ist. Das Ergebnis dieser Suche bestimmt das weitere Vorgehen:
    • g1. Existiert keine nächste benutzte Page, endet der Schreibvorgang bzw. das Verfahren hier.
    • g2. Existiert eine nächste benutzte Page, existiert jedoch keine nächste benutzte Page mit einem bezogen auf die niedrigste benutzte Page inversen DH-Bit, so wird die niedrigste benutzte Page neugeschrieben und dabei ihr DH-Bit invertiert.
    • g3. Existiert eine nächste benutzte Page mit einem bezogen auf die niedrigste benutzte Page inversen DH-Bit, so wird die nächste benutzte Page mit dem inversen DH-Bit neugeschrieben und dabei ihr DH-Bit invertiert.
  • Hierbei kann bei jedem schreibenden Speicherzugriff durch die Steuereinheit 130 und die Mapping-Einheit 140 die Zuordnung zwischen einem logischen Speicherbereich und einem physikalischen Speicherbereich geändert werden. Das heißt insbesondere, dass beispielsweise bei einem Ändern des Inhalts eines logischen Speicherbereichs ein neuer, vorher unbenutzter physikalischer Speicherbereich die zu schreibenden Daten aufnimmt und die entsprechende Zuordnung zwischen der logischen Adresse LA und dem physikalischen Speicherbereich in der Mapping-Einheit 140 entsprechend verändert wird.
  • Um das Verfahren näher zu erläutern, ist in 2 eine schematische Darstellung eines Speichersektors mit acht Pages, die logische Adressen LA von 0–7 aufweisen, gezeigt. Neben der logischen Adresse LA ist in 2 für jede Page auch eine Information bzw. ein Statuswert über die Benutzung B der Page gezeigt, wobei ein Zustand B = 0 für eine unbenutzte und B = 1 für eine benutzte Page steht. Darüber hinaus ist in 2 der Inhalt D der betreffenden Page sowie der Wert DH des DH-Bits dargestellt. 2a zeigt einen Ausgangszustand eines Speichers, in dem die Pages mit den logischen Adressen 0–3 benutzt sind und hierbei die Speicherinhalte a, b, c und d aufweisen. Die DH-Bits DH der vier benutzten Pages LA = 0 bis LA = 3 weisen jeweils den Wert 0 auf.
  • Ausgehend von diesem Ausgangszustand soll nun beispielsweise in einem ersten Schreibvorgang in eine Page mit der logischen Adresse LA = 5 ein Wert e programmiert werden.
  • Gemäß dem oben beschriebenen Verfahren wird zur Bestimmung des DH-Bits für die Page mit der logischen Adresse LA = 5 die niedrigste benutzte Page im betreffenden Sektor gesucht und das DH-Bit der niedrigsten benutzten Page ausgelesen. In dem in 2a gezeigten Beispiel handelt es sich hierbei um die Page mit der logischen Adresse LA = 0 mit einem DH-Bit-Wert DH = 0. Das DH-Bit der Page mit der logischen Adresse LA = 5 wird entsprechend ebenfalls auf den Wert 0 gesetzt. Da nach dem Schreibvorgang die Page mit der logischen Adresse LA = 5 benutzt ist, wird hierbei auch der Statuswert B der sechsten Page (LA = 5) gesetzt, so dass sich nach dem Abschließen des Programmierschritts (Schritt c) der in 2b gezeigte Zustand ergibt.
  • Bei dem in 2 gezeigten Beispiel wird nun angenommen, dass auf Basis einer entsprechenden (Pseudo-) Zufallszahl und einer vorbestimmten Wahrscheinlichkeit entschieden wird, dass ein Refresh-Schritt durchgeführt wird. Es wird also entsprechend dem obigen Schritt e das DH-Bit der niedrigsten benutzten Page im entsprechenden Sektor gesucht und das entsprechende DH-Bit gelesen. Im vorliegenden Beispiel handelt es sich hierbei wiederum um die erste Page mit der logischen Adresse LA = 0 mit einem DH-Bit mit einem Wert DH = 0.
  • Da zwar eine nächste benutzte Page existiert, jedoch keine nächste benutzte Page mit einem zu dem DH-Bit der niedrigsten benutzten Page LA = 0 inversen DH-Bit, wird entsprechend Schritt g2 die niedrigste benutzte Page neu geschrieben und dabei ihr DH-Bit invertiert. Das heißt, dass im vorliegenden Beispiel die Page mit der logischen Adresse LA = 0 neugeschrieben wird und dass hierbei ihr DH-Bit invertiert wird, so dass sich der in 2c dargestellte Zustand ergibt. Ein erster Schreibvorgang ist somit abgeschlossen.
  • Wie bereits oben erläutert wurde, wird bei dem Schritt des Neuschreibens die logische Adresse LA der Page beibehalten, so dass sich die Reihenfolge der Pages nicht ändert. Unabhängig hiervon kann bei dem Schritt des Neuschreibens durch die Steuereinheit 130 durchaus ein neuer physikalischer Speicherbereich 120 der Page mit der logischen Adresse LA = 0 zugeordnet werden. Eine entsprechende Änderung der Zuordnung zwischen logischen Adressen der Pages und den physikalischen Speicherbereichen 120 wird durch die Mapping-Einheit 140 durchgeführt.
  • Wird nun ausgehend von dem Zustand, der in 2c gezeigt ist, in einem weiteren Schreibvorgang der Inhalt der Page mit der logischen Adresse LA = 2 durch einen Wert c' ersetzt, wird also die Page mit der logischen Adresse LA = 2 überschrieben, so wird das DH-Bit der entsprechenden Page aufgrund der Schritte a–c des oben beschriebenen Ausführungsbeispiels auf den Wert DH = 1 gesetzt. Dies liegt daran, dass die niedrigste benutzte Page die Page LA = 0 ist, die einen DH-Bit-Wert DH = 1 aufweist. Folglich ergibt sich der in 2d dargestellte Zustand nach Abschluss des Schrittes c.
  • Wird nun in Schritt d entschieden, dass ein Neuschreiben durchgeführt werden soll, wird in Schritt e die niedrigste benutzte Page gesucht und ihr DH-Bit gelesen. Im vorliegenden Fall handelt es sich hierbei wiederum um die erste Page LA = 0 mit dem DH-Bit DH = 1. Im Schritt f wird dann die nächste benutzte Page mit dem zu dem DH-Bit inversen DH-Bit der Page LA = 0 gesucht. Dies ist die Page mit der logischen Adresse LA = 1, da sie ein DH-Bit DH = 0 aufweist. Folglich wird entsprechend Schritt g3 die Page mit der logischen Adresse LA = 1 neugeschrieben und hierbei ihr DH-Bit invertiert, so dass sich der in 2e gezeigte Zustand ergibt.
  • Auch hier können sich die physikalischen Speicherbereiche sowohl bei dem Schritt des Änderns des Inhalts der Page LA = 2, wie auch bei dem Schritt des Neuschreibens der Page LA = 1 betroffenen physikalischen Speicherbereiche geändert haben, ohne dass die zugrundeliegenden logischen Adressen LA eine Änderung erfahren haben, so dass die Reihenfolge der Pages unverändert geblieben ist. Eine eventuelle hierbei einhergehende Änderung der physikalischen Speicherbereiche wird wiederum durch die Steuereinheit 130 und die Mapping-Einheit 140 berücksichtigt.
  • Das oben beschriebene Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum Schreiben in einen Zielspeicherbereich, das eine Störungsbehandlung mit einem Speicherbit für jeden Speicherbereich, das als Markierung (Flag) innerhalb jedes Speicherbereichs bzw. innerhalb jedes Blocks abgespeichert wird, zeigt die Vorteile des erfindungsgemäßen Verfahrens deutlich. Durch die Einführung des DH-Bits für alle Speicherbereiche wird der Speicher in Bezug auf die Anwendung eines Refreshes in zwei Gruppen unterteilt, wobei jeweils nur Pages einer der beiden Gruppen für ein Refresh ausgewählt werden. Werden beispielsweise zu einem bestimmten Zeitpunkt nur Pages einer ersten Gruppe für ein Refresh ausgewählt, so werden diese Pages nach einem erfolgten Refresh aufgrund der Invertierung des DH-Bits der zweiten Gruppe der Speicherbereiche zugeordnet. Da auch neu programmierte bzw. umprogrammierte, also überschriebene Pages, aufgrund des erfindungsgemäßen Verfahrens automatisch der zweiten Gruppe der Speicherbereiche zugeordnet werden, wird so sichergestellt, dass keine Page einem Refresh zugeführt wird, solange es eine Page gibt, die seit einer längeren Zeit nicht mehr durch einen schreibenden Speicherzugriff verändert wurden. Da die Zugehörigkeit einer Page zu einer der beiden Gruppen durch den Wert des betreffenden DH-Bits erfolgt, weist das erfindungsgemäße Verfahren einen „aktuellen" DH-Bit-Wert auf, mit dem alle weiteren schreibenden Speicherzugriffe durchgeführt werden.
  • In dem in 2 gezeigten Speicherabbild handelt es sich bei dem „aktuellen" DH-Bit-Wert im Fall der 2d und 2e um den Wert DH = 1, da es sich hierbei um den DH-Bit-Wert der niedrigsten benutzten Page, also um die Page mit der logischen Adresse LA = 0, handelt. Die 2b und 2c illustrieren den Fall, in dem der „aktuelle" DH-Bit-Wert gerade aufgrund des erfindungsgemäßen Verfahrens geändert wird. Während in dem in 2b gezeigten Beispiel der neu eingeschriebene Inhalt der sechsten Page (LA = 5) noch den aktuellen DH-Bit-Wert DH = 0 erhält, wird dem einem Refresh-Vorgang unterworfenen logischen Speicherbereich mit der logischen Adresse LA = 0 (erste Page) der „neue" aktuelle DH-Bit-Wert DH = 1 zugewiesen.
  • Das beschriebene Verfahren bewirkt, dass niemals eine jüngere Page mit dem gerade „aktuellen" DH-Bit-Wert zum Neuschreiben ausgewählt wird, wenn noch eine ältere Page mit einem zu dem „aktuellen" DH-Bit-Wert inversen DH-Bit-Wert existiert. Dadurch wird die Statistik der Neuschreibvorgänge erheblich verbessert, da ausschließlich „sinnvolle" Pages zum Neuschreiben ausgewählt werden. Dadurch wiederum wird die Anzahl der notwendigen Neuschreibungen stark verringert, da nun ausschließlich gezielt Neuschreibungen von Pages stattfinden, die einen zu dem aktuellen DH-Bit-Wert inversen DH-Bit-Wert aufweisen, falls solche existieren.
  • Darüber hinaus wird auch der Zeitaufwand für die Auswahl eines zum Neuschreiben vorgesehenen logischen Speicherbereichs reduziert, da aufgrund der Anordnung der Pages durch die Einführung einer Reihenfolge nur in wenigen Fällen bei einem Neuschreib-Vorgang alle benutzten Pages durchsucht oder berücksichtigt werden müssen. Vielmehr muss in der Mehrzahl der Refresh-Vorgänge nur ein kleiner Bruchteil der benutzten Pages nach einer benutzten Page mit einem bestimmten Wert des DH-Bits durchsucht werden.
  • Aufgrund der Tatsache, dass das DH-Bit, also der zugeordnete Kontrollwertspeicherplatz 125-0 bis 125-N, Teil des jeweiligen logischen bzw. des zugeordneten physikalischen Speicherbereichs 120-0 bis 120-N ist, führt dazu, dass die Zahl der Schreibzugriffe im Vergleich zu einer zentralen Speicherung der DH-Bits in einer bestimmten Anordnung (Array) minimiert wird. Hierdurch wird die Zahl der Störungen, die durch das Eingreifen der Störungsbehandlung selber ausgelöst werden, ebenfalls erheblich reduziert. Darüber hinaus muss kein zusätzlicher Speicherbedarf beispielsweise in einem flüchtigen Speicher (RAM) reserviert werden, der im Falle eines plötzlichen Ausfalls der Betriebsspannung verloren werden könnte. Die Minimierung der schreibenden Speicherzugriffe im Bereich des nichtflüchtigen Speichers führt darüber hinaus zu einer verlängerten Lebensdauer der Speicherschaltung, da die mittlere Lebensdauer eines nichtflüchtigen Speichers wesentlich durch die Zahl der schreibenden Speicherzugriffe beschränkt wird.
  • Das oben beschriebene Ausführungsbeispiel des erfindungsgemäßen Verfahrens funktioniert auch dann, wenn unabhängig davon zu beliebigen Zeitpunkten beliebige Pages gelöscht werden, also vorher benutzte Pages wieder als unbenutzt markiert und gegebenenfalls gelöscht, also mit einem vorbestimmten Wert überschrieben werden.
  • Obwohl bei dem bevorzugten Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum Schreiben in einen Zielspeicherbereich nur ein einzelnes Bit für jeden logischen Speicherbereich als Speicher für einen Kontrollwert verwendet wurde, kann statt eines einzelnen Bits eine Mehrzahl von Bits zu diesem Zweck verwendet werden. So können die einzelnen logischen Speicherbereiche eine mehrere Bits umfassende Markierung (Token) aufweisen, so dass neben einer Aufteilung der Speicherbereiche in zwei Segmente eine Aufteilung in mehr als zwei Gruppen durchgeführt werden kann. Prinzipiell ist es so z. B. möglich, verschiedene Gruppen mit einer unterschiedlichen Häufigkeit einem Refresh zuzuführen. Hierdurch kann beispielsweise für bestimmte Speicherbereiche eine erhöhte Ausfallsicherheit realisiert werden.
  • Darüber hinaus kann die Reihenfolge der Abarbeitung der in dem oben beschriebenen Ausführungsbeispiel erläuterten Teilschrittblöcke, die einerseits die Schritte a–c und andererseits die Schritte d–g umfassen, vertauscht werden. Mit anderen Worten kann der Refresh-Vorgang bzw. die Umprogrammierung auch vor der eigentlichen Programmierung bzw. dem eigentlichen Schreiben erfolgen. Gerade diese Variationsmöglichkeit erfordert nur eine leichte Modifikation der Beschreibung des oben erläuterten Ausführungsbeispiels des erfindungsgemäßen Verfahrens, wobei im Wesentlichen nur Anpassungen der Bedingungen an eine vorzeitige Beendigung bzw. einen vorzeitigen Abbruch des Refresh-Vorgangs (Verfahrensbeendigung) notwendig sind.
  • Des weiteren müssen die Adressen bzw. die logischen Adressen der logischen Speicherbereiche nicht notwendigerweise die Such-Reihenfolge der logischen Speicherbereiche in der Weise vorgeben, wie dies das oben geschilderte Ausführungsbeispiel zeigt. Grundsätzlich kann jede festgelegte Reihenfolge der logischen Speicherbereiche bzw. der Pages innerhalb eines Sektors als Ordnungskriterium für das Durchsuchen der Pages herangezogen werden, da grundsätzlich jede Reihenfolge geeignet ist im Sinne der vorliegenden Erfindung, solange sie jeden logischen Speicherbereich genau einmal umfasst. So ist beispielsweise neben der in dem Ausführungsbeispiel geschilderten Reihenfolge der Anordnung der logischen Speicherbereiche nach ihrer aufsteigenden logischen Adresse auch eine Anordnung nach fallender logischer Adresse LA denkbar. Darüber hinaus sind auch Mischformen einer aufsteigenden und einer absteigenden Anordnung denkbar, bei der beispielsweise erst alle geraden Pages in aufsteigender Reihenfolge durchsucht werden, um dann anschließend alle ungeraden Pages in absteigender Reihenfolge zu durchsuchen. Wichtig ist in diesem Zusammenhang nur, dass jede Page bzw. jeder logische Speicherbereich in einer festen Folge genau einmal auf Basis der logischen Adressen LA durchsucht werden muss.
  • Weiterhin kann eine andere vorbestimmte Bedingung zur Beschleunigung des Refresh-Teilschrittblocks, also eine Änderung von Schritt d des oben geschilderten Ausführungsbeispiels, umgesetzt werden. Neben einer im Rahmen des Ausführungsbeispiels beschriebenen Analyse einer (Pseudo-) Zufallszahl besteht weiterhin die Möglichkeit, den Refresh-Vorgang beispielsweise erst nach Verstreichen einer vorbestimmten Zeitspanne zu starten. Alternativ kann der Refresh-Vorgang auch nach einer vorbestimmten Zahl von schreibenden Speicherzugriffen oder zu einer bestimmten Systemzeit ausgeführt werden.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Schreiben in einen Zielspeicherbereich in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette, CD oder DVD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das erfindungsgemäße Verfahren zum Schreiben in einen Zielspeicherbereich ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Software-Programm-Produkt bzw. einem Computer-Programm-Produkt bzw. einem Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Software-Programm-Produkt auf einem Rechner oder einem Prozessor abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm bzw. Software-Programm bzw. Programm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Programm auf einem Prozessor abläuft. Der Prozessor kann hierbei von einem Computer, einer Chipkarte (Smart Card) oder einem anderen integrierten Schaltkreis gebildet sein.
  • 100
    Speicherschaltung
    110
    Speicher
    120-0
    physikalischer Speicherbereich
    120-N
    physikalischer Speicherbereich
    125-0
    Kontrollwertspeicherplatz
    125-N
    Kontrollwertspeicherplatz
    130
    Systemeinheit
    140
    Mapping-Einheit
    150
    Statusspeicher
    160
    bidirektionaler Bus
    170
    weiterer bidirektionaler Bus

Claims (17)

  1. Speicherschaltung (100) mit folgenden Merkmalen: eine Mehrzahl von Speicherbereichen (120), deren Reihenfolge von jeweils zugeordneten logischen Adressen (LA) abhängt und denen jeweils ein Kontrollwert (DH) zugeordnet ist; eine Einrichtung (150), die Informationen enthält, welche Speicherbereiche (120) benutzt sind; und eine Steuereinrichtung (130), die so ausgelegt ist, dass sie beim Schreiben in einen Zielspeicherbereich der Mehrzahl von Speicherbereichen (120) – dem dem Zielspeicherbereich zugeordneten Kontrollwert (DH) einen Wert gibt, der dem einem niedrigsten benutzten Speicherbereich (120) zugeordneten Kontrollwert (DH) entspricht, wenn ein benutzter Speicherbereich (120) existiert, und einen beliebigen oder vorgegebenen Wert gibt, wenn kein benutzter Speicherbereich (120) existiert; und – wenn eine vorbestimmte Bedingung erfüllt ist, und wenn zumindest zwei benutzte Speicherbereiche (120) existieren, – Neuschreiben des Inhalts eines nächsten Speicherbereichs (120), dessen Kontrollwert (DH) zu dem Kontrollwert (DH) des niedrigsten Speicherbereichs (120) eine vorbestimmte Beziehung aufweist, und Ändern des Kontrollwerts (DH) des nächsten Speicherbereichs (120), wenn ein solcher nächster Speicherbereich (120) existiert; und – Neuschreiben des Inhalts des niedrigsten Speicherbereichs (120) und Ändern des demselben zugeordne ten Kontrollwerts (DH), wenn ein nächster Speicherbereich (120), dessen Kontrollwert (DH) zu dem Kontrollwert (DH) des niedrigsten Speicherbereichs (120) die vorbestimmte Beziehung aufweist, nicht existiert.
  2. Speicherschaltung (100) nach Anspruch 1, bei der der Kontrollwert (DH) in einem Kontrollwertspeicher, den der zugeordnete Speicherbereich (120) umfasst, abgespeichert wird.
  3. Speicherschaltung (100) nach einem der vorhergehenden Ansprüche, bei der die vorbestimmte Beziehung definiert, dass sich die Kontrollwerte (DH) unterscheiden.
  4. Speicherschaltung (100) nach einem der vorhergehenden Ansprüche, bei der der Kontrollwert (DH) genau ein Bit aufweist, das zwei unterschiedliche logische Zustände annehmen kann.
  5. Speicherschaltung (100) nach Anspruch 4, bei der das Ändern des Kontrollwerts (DH) einem Invertieren des logischen Zustands des Kontrollwerts (DH) entspricht.
  6. Speicherschaltung (100) nach einem der vorhergehenden Ansprüche, bei der die vorbestimmte Bedingung erfüllt ist, wenn eine (Pseudo-) Zufallszahl einen Wertes innerhalb eines vorbestimmten Wertebereichs annimmt.
  7. Speicherschaltung (100) nach einem der Ansprüche 1 bis 5, bei der die vorbestimmte Bedingung erfüllt ist, wenn eine vorbestimmte Zahl von Schreibprozessen durchgeführt wurde, wenn eine vorbestimmte Zeitspanne verstrichen ist, oder wenn eine vorbestimmte Systemzeit erreicht ist.
  8. Speicherschaltung (100) nach einem der vorhergehenden Ansprüche, bei der die Speicherbereiche (120) Speicherseiten sind, die einen Speichersektor bilden.
  9. Verfahren zum Schreiben in einen Zielspeicherbereich einer Speicherschaltung (100) mit einer Mehrzahl von Speicherbereichen (120), deren Reihenfolge von den jeweils zugeordneten logischen Adressen (LA) abhängt, und denen jeweils ein Kontrollwert (DH) zugeordnet ist, und mit einer Einrichtung (150), die Informationen enthält, welche Speicherbereiche (120) benutzt sind, mit folgenden Schritten: Zuweisen eines Wertes, der dem eines niedrigsten benutzten Speicherbereich (120) zugeordneten Kontrollwert (DH) entspricht, zu dem dem Zielspeicherbereich zugeordneten Kontrollwert (DH), wenn ein benutzter Speicherbereich (120) existiert, und Zuweisen eines beliebigen oder eines vorgegebenen Werts zu dem dem Zielspeicherbereich zugeordneten Kontrollwert (DH), wenn kein benutzter Speicherbereich (120) existiert; und wenn eine vorbestimmte Bedingung erfüllt ist und wenn zumindest zwei benutzte Speicherbereiche (120) existieren, – Neuschreiben des Inhalts eines nächsten Speicherbereichs (120), dessen Kontrollwert (DH) zu dem Kontrollwert (DH) des niedrigsten Speicherbereichs (120) eine vorbestimmte Beziehung aufweist, und Ändern des Kontrollwerts (DH) des nächsten Speicherbereichs (120), wenn ein solcher nächster Speicherbereich (120) existiert, und – Neuschreiben des Inhalts des niedrigsten Speicherbereichs (120) und Ändern des demselben zugeordneten Kontrollwerts (DH), wenn ein nächster Speicherbereich (120), dessen Kontrollwert (DH) zu dem Kontrollwert (DH) des niedrigsten Speicherbereichs (120) eine vorbestimmte Beziehung aufweist, nicht existiert.
  10. Verfahren nach Anspruch 9, bei dem der Kontrollwert (DH) in einem Kontrollwertspeicher, den der zugeordnete Speicherbereich (120) umfasst, abgespeichert wird.
  11. Verfahren nach einem der Ansprüche 9 oder 10, bei dem die vorbestimmte Beziehung definiert, dass sich die Kontrollwerte (DH) unterscheiden.
  12. Verfahren nach einem der Ansprüche 9 bis 11, bei dem der Kontrollwert (DH) genau ein Bit aufweist, das zwei unterschiedliche logische Zustände annehmen kann.
  13. Verfahren nach Anspruch 12, bei dem das Ändern des Kontrollwerts (DH) einem Invertieren des logischen Zustands des Kontrollwerts (DH) entspricht.
  14. Verfahren nach einem der Ansprüche 9 bis 13, bei dem die vorbestimmte Bedingung erfüllt ist, wenn eine (Pseudo-) Zufallszahl einen Wert innerhalb eines vorbestimmten Wertebereichs annimmt.
  15. Verfahren nach einem der Ansprüche 9 bis 13, bei dem die vorbestimmte Bedingung erfüllt ist, wenn eine vorbestimmte Anzahl von Schreibprozessen durchgeführt wurde, wenn eine vorbestimmte Zeitspanne verstrichen ist, oder wenn eine vorbestimmte Systemzeit erreicht ist.
  16. Verfahren nach einem der Ansprüche 9 bis 15, bei dem die Speicherbereiche (120) Speicherseiten sind, die einen Speichersektor bilden.
  17. Programm mit einem Programmcode zum Durchführen des Verfahrens zum Schreiben in einen Zielspeicherbereich nach Anspruch 9, wenn das Programm auf einem Prozessor abläuft.
DE102005052293A 2005-11-02 2005-11-02 Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich Expired - Fee Related DE102005052293B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102005052293A DE102005052293B4 (de) 2005-11-02 2005-11-02 Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich
US11/555,799 US7552273B2 (en) 2005-11-02 2006-11-02 Memory circuit and method for writing into a target memory area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005052293A DE102005052293B4 (de) 2005-11-02 2005-11-02 Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich

Publications (2)

Publication Number Publication Date
DE102005052293A1 true DE102005052293A1 (de) 2007-05-03
DE102005052293B4 DE102005052293B4 (de) 2013-08-14

Family

ID=37912854

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005052293A Expired - Fee Related DE102005052293B4 (de) 2005-11-02 2005-11-02 Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich

Country Status (2)

Country Link
US (1) US7552273B2 (de)
DE (1) DE102005052293B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013157047A (ja) * 2012-01-27 2013-08-15 Toshiba Corp 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US9268635B2 (en) * 2014-05-21 2016-02-23 Sandisk Technologies Inc. Error correction using multiple data sources
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9601193B1 (en) * 2015-09-14 2017-03-21 Intel Corporation Cross point memory control
US11715511B2 (en) * 2021-12-21 2023-08-01 Micron Technology, Inc. Trim level adjustments for memory based on data use

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10344625A1 (de) * 2003-02-27 2004-10-07 Renesas Technology Corp. Halbleiterspeichervorrichtung mit einer Verhinderungsfunktion betreffend eine Datenänderung aufgrund sich aufsummierender Störungen

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2700040B1 (fr) * 1992-12-31 1995-02-17 Gemplus Card Int Carte à puce avec données et programmes protégés contre le vieillissement.
JP3155847B2 (ja) * 1993-01-13 2001-04-16 株式会社東芝 不揮発性半導体記憶装置およびこれを用いた記憶システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10344625A1 (de) * 2003-02-27 2004-10-07 Renesas Technology Corp. Halbleiterspeichervorrichtung mit einer Verhinderungsfunktion betreffend eine Datenänderung aufgrund sich aufsummierender Störungen

Also Published As

Publication number Publication date
US20080126717A1 (en) 2008-05-29
US7552273B2 (en) 2009-06-23
DE102005052293B4 (de) 2013-08-14

Similar Documents

Publication Publication Date Title
DE4207934C2 (de) Nichtflüchtige Halbleiterspeichervorrichtung und Programmierverfahren für eine nichtflüchtige Halbleiterspeichervorrichtung
DE3037130C2 (de) Adressenbezeichnungsschaltung
DE102005026900B4 (de) Blockgrößenänderungsfähige NAND-Flash-Speichervorrichtung
DE102005035084B4 (de) Speicherbauelemente und Programmierverfahren
DE19740695C2 (de) Datenspeicher mit Mehrebenenhierarchie
DE102008011514B4 (de) Steuerschaltung einer Flash-Speichervorrichtung und Verfahren zum Betreiben der Flash-Speichervorrichtung
DE3936676A1 (de) Pufferschaltkreis fuer eine mit verschiedenen versorgungspotentialen arbeitende halbleitereinrichtung und verfahren zu deren betrieb
DE102005052293B4 (de) Speicherschaltung und Verfahren zum Schreiben in einen Zielspeicherbereich
DE112005000866T5 (de) Verfahren und Systeme zur Erreichung einer hohen Schreibleistung in Multibit-Speichervorrichtungen
DE102007039844A1 (de) Flashspeicherelement und Speichersystem
DE60102466T2 (de) Zwei-tor cam speicher für simultanen flash speicher betrieb
DE19964012A1 (de) Verfahren und Einrichtung zum Refresh des Speicherinhalts einer Speicherzelle eines Festwertspeichers
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE102004054968B4 (de) Verfahren zum Reparieren und zum Betreiben eines Speicherbauelements
DE102005028217B3 (de) Nichtflüchtiger Halbleiterspeicher und Verfahren zum Schreiben von Daten in einen nichtflüchtigen Halbleiterspeicher
DE10252059B3 (de) Verfahren zum Betreiben einer Speicheranordnung
DE112008001409T5 (de) Nichtflüchtiger Speicher mit hoher Zuverlässigkeit
DE69936567T2 (de) Ein-Chip-Mikrocomputer
DE112004002860T5 (de) Halbleitervorrichtung und Steuerverfahren derselben
EP0965083B1 (de) Datenspeicher mit einer redundanzschaltung
DE19731954C2 (de) Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers
WO1998039709A1 (de) Datenspeicher mit einer redundanzschaltung
EP1625592A1 (de) Vorrichtung und verfahren zum behandeln eines zustands eines speichers
DE102009053977B3 (de) Speicherzelle in einem NV-SRAM Speicherschaltkreis
DE19545523C2 (de) EEPROM und Verfahren zur Ansteuerung desselben

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20131115

R082 Change of representative
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee