-
Ausführungsformen der vorliegenden Erfindung betreffen eine Leerdetektion von Datenbits eines nichtflüchtigen Speichers mit differenziellem Lesen.
-
Ein differenzielles Lesen kann zur Detektion von Datenbits von nichtflüchtigem Speicher verwendet werden. Die Einführung eines differenziellen Lesens in einem nichtflüchtigen Speicher (NVM) verbessert die Zuverlässigkeit, z.B. sogar nach einer hohen Anzahl von Schreib-/Lesezyklen, erfordert aber (mindestens) zwei NVM-Zellen (auch als Zellenpaar bezeichnet) pro Datenbit. Das Lesen dieser Zellen kann jedoch unvorhersehbare Ergebnisse liefern.
-
Eine Aufgabe besteht darin, insbesondere eine verbesserte oder effizientere Möglichkeit zur Bestimmung eines Leerzustands zu schaffen.
-
Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
-
Mindestens eines/eine der folgenden Beispiele und/oder Ausführungsformen können als innovativ betrachtet werden. Sie können mit anderen beschriebenen Aspekten oder Ausführungsformen kombiniert werden. Jede hier beschriebene Ausführungsform oder Ausgestaltung ist nicht unbedingt als gegenüber anderen Ausführungsformen oder Ausgestaltungen bevorzugt oder vorteilhaft aufzufassen.
-
Es wird ein Verfahren zur Verarbeitung von Daten vorgeschlagen, umfassend:
- – Bestimmen eines Leerzustands für mehrere Datenbits auf der Basis einer Mehrheitsentscheidung.
-
Die Gruppe von mindestens zwei Speicherzellen kann als ein Zellenpaar implementiert sein, d.h. zwei komplementäre Speicherzellen eines Differenzielles-Lesen-Speichers.
-
Es ist eine Weiterbildung, dass jedes Datenbit der mehreren Datenbits durch eine Gruppe von mindestens zwei Speicherzellen repräsentiert wird, wobei die mindestens zwei Speicherzellen dieser Gruppe komplementäre Zellen eines Differenzielles-Lesen-Speichers sind.
-
Es ist eine Weiterbildung, dass die Speicherzellen Teil eines nichtflüchtigen Speichers sind.
-
Es ist eine Weiterbildung, dass der Differenzielles-Lesen-Speicher mindestens eines der Folgenden umfasst:
- – Floating-Gate-Zellen;
- – PCRAM,
- – RRAM,
- – MRAM,
- – MONOS-Einrichtungen,
- – Nanokristallzellen und
- – ROM.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Setzen eines Leer-Indikators, falls der Leerzustand für mehrere Datenbits bestimmt wird;
- – Rücksetzen des Leer-Indikators, falls der Leerzustand für mehrere Datenbits nicht bestimmt wird.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen des Leerzustands auf der Basis eines Status eines Fehlerkorrekturcodes.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen des Leerzustands auf der Basis eines Fehlerkorrekturstatus von voll gelöschten Datenbits.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen eines oder mehrerer potentiell leerer Datenbits, falls der Strom seiner Speicherzellen eine vorbestimmte Stromschwelle erreicht oder überschreitet;
- – Bestimmen eines Verhältnisses der potentiell leeren Datenbits zu Gesamtdatenbits der Speicherzellen;
- – Bestimmen eines Leerzustands für die Gesamtdatenbits, falls das Verhältnis ein vordefiniertes Kriterium erfüllt.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen eines weiteren potentiell leeren Datenbits, falls der Strom aller Speicherzellen die vorbestimmte Stromschwelle erreicht oder überschreitet.
-
Es ist eine Weiterbildung, dass das Verhältnis das vordefinierte Kriterium erfüllt, falls das Verhältnis eine vordefinierte Schwelle erreicht oder überschreitet.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen der potentiell leeren Datenbits während oder nach einer Leseoperation der Datenbits.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Anwenden eines vorbestimmten Offset entweder auf einen Zellenerfassungsverstärker oder auf einen komplementären Erfassungsverstärker;
- – Bestimmen einer Anzahl umgewechselter Datenbits;
- – Bestimmen des Leerzustands für die Datenbits, falls die Anzahl umgewechselter Datenbits ein vordefiniertes Kriterium erfüllt.
-
Es wird angemerkt, dass das Offset eine beliebige Kombination aus Folgendem sein kann: ein Strom, eine Spannung, eine Zeitinformationen (z.B. Verzögerung) oder ein beliebiger Parameter, der z.B. von einem Erfassungsverstärker genutzt werden kann.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen des Leerzustands für die Datenbits, falls die Anzahl und/oder ein Verhältnis umgewechselter Datenbits eine vordefinierte Schwelle erreicht oder überschreitet.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Bestimmen der Anzahl umgewechselter Datenbits über eine Exklusiv-Oder-Funktion.
-
Es ist eine Weiterbildung, dass das Verfahren ferner umfasst:
- – Invalidieren mindestens eines Datenbits durch Überschreiben mindestens einer Speicherzelle mindestens eines Datenbits.
-
Ein (Über-)Schreiben der Zellen der Zellenpaare eines Wortes kann daher zur Invalidierung von Daten verwendet werden, ohne das gesamte Datenwort löschen zu müssen.
-
Weiterhin wird eine Vorrichtung zur Datenverarbeitung vorgeschlagen. Diese umfasst:
- – eine Verarbeitungseinheit, die eingerichtet ist zum Bestimmen eines Leerzustands für mehrere Datenbits auf der Basis einer Mehrheitsentscheidung.
-
Es ist eine Weiterbildung, dass jedes Datenbit durch eine Gruppe von mindestens zwei Speicherzellen repräsentiert wird, wobei mindestens zwei Speicherzellen dieser Gruppe komplementäre Zellen eines Differenzielles-Lesen-Speichers sind.
-
Es ist eine Weiterbildung, dass die Speicherzellen Teil eines nichtflüchtigen Speichers sind.
-
Es ist eine Weiterbildung, dass der Differenzielles-Lesen-Speicher mindestens eines der Folgenden umfasst:
- – Floating-Gate-Zellen;
- – PCRAM,
- – RRAM,
- – MRAM,
- – MONOS-Einrichtungen,
- – Nanokristallzellen und
- – ROM.
-
Es ist eine Weiterbildung, dass die Verarbeitungseinheit eingerichtet ist zum
- – Bestimmen eines potentiell leeren Datenbits, falls der Strom seiner Speicherzellen eine vorbestimmte Stromschwelle erreicht oder überschreitet;
- – Bestimmen eines Verhältnisses der potentiell leeren Datenbits zu den Gesamtdatenbits; und
- – Bestimmen eines Leerzustands für die Datenbits, falls das Verhältnis ein vordefiniertes Kriterium erfüllt.
-
Es ist eine Weiterbildung, dass die Verarbeitungseinheit eingerichtet ist zum
- – Anwenden eines vorbestimmten Offset entweder auf einen Zellenerfassungsverstärker oder auf einen komplementären Erfassungsverstärker;
- – Bestimmen einer Anzahl umgewechselter Datenbits;
- – Bestimmen des Leerzustands für die Datenbits, falls die Anzahl umgewechselter Datenbits ein vordefiniertes Kriterium erfüllt.
-
Es ist eine Weiterbildung, dass die Verarbeitungseinheit ausgelegt ist zum
- – Invalidieren mindestens eines Datenbits durch Überschreiben mindestens einer Speicherzelle mindestens eines Datenbits.
-
Weiterhin ist eine Vorrichtung zur Verarbeitung von Daten vorgesehen, insbesondere zur Bestimmung eines Leerzustands von Datenbits, wobei die Vorrichtung umfasst:
- – ein Mittel zum Bestimmen eines Leerzustands für mehrere Datenbits auf der Basis einer Mehrheitsentscheidung.
-
Es ist eine Weiterbildung, dass jedes Datenbit durch eine Gruppe von mindestens zwei Speicherzellen repräsentiert wird, wobei die mindestens zwei Speicherzellen dieser Gruppe komplementäre Zellen eines Differenzielles-Lesen-Speichers sind.
-
Ausführungsformen werden unter Bezugnahme auf die Zeichnungen dargestellt und veranschaulicht. Die Zeichnungen dienen der Veranschaulichung des Grundprinzips, so dass zum Verständnis des Grundprinzips notwendige Aspekte dargestellt werden. Die Zeichnungen sind nicht maßstabgerecht. In den Zeichnungen stehen gleiche Bezugszeichen für gleiche Merkmale.
-
1 zeigt eine Tabelle, die Zustände eines Zellenpaars eines Differenzial-Lese-NVM zusammenfasst;
-
2 zeigt Verteilungen des Zellenstroms ("Icell") für korrekt programmierte Zellenpaare mit einer Stromverteilung geschriebener Zellen und einer Stromverteilung gelöschter Zellen;
-
3 zeigt die Zellenstromverteilung für zwei gelöschte Zellenpaare, d.h. Zellenpaare, die sich im Leerzustand befinden;
-
4 zeigt eine Überlagerung von 2 und 3, die das Problem der Leerzustandsdetektion angibt;
-
5 zeigt eine Verteilung des Zellenstroms und geschriebene Paare und leere Paare, die in diese Verteilung fallen, wobei eine Stromschwelle vorgesehen ist, um eine Anzahl potentiell leerer Zellenpaare zu identifizieren;
-
6 zeigt eine Beispieltabelle, die einen Leerindikator umfasst, der angibt, ob ein gelesenes Datenwort als leer angesehen wird oder nicht;
-
7 zeigt zwei Graphen zur Visualisierung der Grenzen eines Lesefensters, das wegen einer hohen Anzahl von Lese-/Schreibzyklen und/oder Temperatureffekten verschoben ist;
-
8 zeigt ein Offset, das auf einen Zellenstrom der Zelle angewandt wird, um dadurch zu einer verschobenen Kurve zu führen;
-
9 zeigt ein Beispiel für umgewechselte Zellenpaare, wenn das Offset angewandt wird;
-
10 zeigt eine Beispieltabelle, die eine Spalte umfasst, die eine Anzahl umgewechselter Zellenpaare nfl abbildet, die mit einer vorbestimmten Schwelle nth verglichen wird, um zu bestimmen, ob die Datenbits leer sind;
-
11 zeigt eine Stromverteilung geschriebener Zellen und eine Stromschwelle zur Bestimmung, ob sich ein Zellenpaar potentiell in einem undefinierten Zustand befindet;
-
12 zeigt eine Beispieltabelle, die zwei Schwellen für das Verhältnis m/n benutzt, um eine Unterscheidung zwischen den Zuständen leer, fehlerhaft und gültig zu ermöglichen;
-
13 zeigt eine Tabelle mit einem Beispiel-Benutzungsfallszenario, das auch einen Fehlerkorrekturcode-(ECC-)Mechanismus berücksichtigt, wobei angenommen wird, dass der voll gelöschte Zustand nicht ECC-Sauber ist;
-
14 zeigt eine Tabelle mit einem anderen Beispiel-Benutzungsfallszenario, wobei angenommen wird, dass der voll gelöschte Zustand ECC-Sauber ist.
-
Die Einführung eines differenziellen Lesens in einem nichtflüchtigen Speicher (NVM) verbessert die Zuverlässigkeit, z.B. selbst nach einer hohen Anzahl von Schreib-/Lesezyklen, erfordert aber (mindestens) zwei NVM-Zellen (auch als Zellenpaar bezeichnet) pro Datenbit.
-
Abhängig von den Zuständen der zwei Zellen eines Paars (d.h. eine cell_t und eine cell_c mit t = wahr und c = Komplement) kann der Zustand eines gespeicherten Datenbits auf der Basis einer in 1 gezeigten Beispieltabelle bestimmt werden.
-
Daher können zwei assoziierte NVM-Zellen eines Speichers komplementäre Informationen speichern, d.h. sie können entgegengesetzte Zustände aufweisen. Wie in 1 gezeigt, kann nur ein Bit, das komplementäre Zellenzustände aufweist, erfolgreich decodiert werden, d.h. eine der zwei Zellen eines Zellenpaars muss sich im geschriebenen Zustand befinden, und die andere Zelle muss sich im gelöschten Zustand befinden, um erfolgreiche Datendecodierung zu erlauben.
-
Die Löschung einer Seite, die mehrere Datenbits umfasst, die jeweils durch zwei Speicherzellen repräsentiert werden, führt jedoch zu einem Zustand, bei dem sich beide Zellen im gelöschten Zustand befinden, einem sogenannten "Leerzustand". Nach einer Löschoperation sind daher die Datenbits für dieses Zellenpaar noch nicht definiert. Das Lesen eines solchen Zellenpaars kann zu einem unvorhersehbaren Ergebnis führen oder kann sogar bei wiederholten Leseoperationen unterschiedliche Ergebnisse ergeben.
-
Falls eine Leseoperation einer Software einen Leerzustand liest, ist das Ergebnis einer solchen Leseoperation deshalb unvorhersehbar. Die Software kann Anweisungen umfassen, die auf einem Prozessor oder prozessorgestützten System ausgeführt sind und/oder werden. Daher können zusätzliche Maßnahmen erforderlich sein, um zu bestimmen, ob sich das Zellenpaar in einem solchen Leerzustand befindet oder nicht.
-
Daher werden nachfolgend Beispiele und/oder Ausführungsformen angegeben, um zu erleichtern, wie das Lesen eines Leerzustands zu detektieren ist, wodurch die Vorteile des differenziellen Lesens aufrechterhalten werden.
-
2 zeigt Verteilungen des Zellenstroms ("Icell") für korrekt programmierte Zellenpaare mit einer Stromverteilung 201 geschriebener Zellen und einer Stromverteilung 202 gelöschter Zellen. Ein geschriebenes Zellenpaar 203 ("geschriebenes Paar 1") umfasst zwei Zellen, die komplementäre Ströme liefern (eine Zelle befindet sich im geschriebenen Zustand und die andere Zellen im gelöschten Zustand). Dasselbe gilt dementsprechend für die übrigen in 2 abgebildeten Zellenpaare, d.h. die geschriebenen Paare 2 bis 4.
-
Die gelöschte und geschriebene Verteilung 201 und 202 in 2 weisen einen Überlappungsbereich 204 auf, wobei der Zellenstrom einer der Zellen der geschriebenen Zellenpaare 2 bis 4 in diesen Überlappungsbereich 204 fällt. Bei allen geschriebenen Zellenpaaren 1 bis 4, die in 2 abgebildet sind, erlaubt der Unterschied zwischen den Strömen der komplementären Zellen jedoch eine unzweideutige Decodierung, und somit wird dem Datenbit, das mit dem jeweiligen Zellenpaar assoziiert ist, ein Wert "0" oder "1" zugewiesen.
-
3 zeigt die Zellenstromverteilung gelöschter Zellen mit zwei beispielhaften gelöschten Zellenpaaren "leeres Paar 1" und "leeres Paar 2", d.h. Zellenpaaren, die sich in dem Leerzustand befinden.
-
4 zeigt eine Überlagerung von 2 und 3, wodurch das Problem der Leerzustandsdetektion angegeben wird: Aufgrund der sich überlappenden Verteilungen für geschriebene und gelöschte Zellen kann der Zustand des "geschriebenen Paars 4" nicht vom Zustand des "leeren Paars 2" unterschieden werden. Daher ist in einem solchen Szenario auf der Basis von Zellenströmen eines einzigen Zellenpaars Leerdetektion nicht möglich.
-
Beispiel: Betrachtung mehrerer Datenbits
-
Ein hier angegebenes Beispiel erlaubt Leerdetektion eines Zustands eines Zellenpaars durch Betrachtung von mehreren Datenbits, die ein Datenwort bilden können, die (im Wesentlichen) zur selben Zeit geschrieben und/oder gelesen werden können. Die Anzahl der betrachteten Datenbits (d.h. Zellenpaare) wird als n bezeichnet.
-
Es wird angemerkt, dass jedes Zellenpaar mehrere Speicherzellen umfassen kann und nicht auf nur zwei komplementäre Zellen beschränkt ist. Zum Beispiel können in einem solchen Zellenpaar mehrere komplementäre Zellen verwendet werden, um ein Datenbit zu repräsentieren. Mehrere Datenbits können das Wort bilden, wobei das Wort in diesem Kontext nicht auf eine konkrete Anzahl von Datenbits beschränkt ist. Das Wort kann einer Löschprozedur unterzogen werden, d.h. alle Bit des Worts können während einer solchen Löschoperation gelöscht werden. Das Wort kann in diesem Kontext als Seite betrachtet werden, oder eine solche Seite kann mehrere Wörter umfassen.
-
Dieser Ansatz kann den Umstand nutzen, dass die Wahrscheinlichkeit des Vorliegens eines Zustands wie ein geschriebenes Zellenpaar und ein leeres Zellenpaar, die (im Wesentlichen) dieselben Zellenströme aufweisen (wie in 4 für das "geschriebene Paar 4" und das "leere Paar 2" gezeigt), relativ niedrig ist, weil in einem solchen Fall mindestens eine der Zellen des Zellenpaars einen Strom bereitstellen muss, der von der Niederwahrscheinlichkeits-Überlappungsregion 204 ist.
-
5 zeigt die Verteilung des Zellenstroms 202 und die geschriebenen Paare 2 und 4 und die leeren Paare 1 und 2, die in diese Verteilung 202 fallen. Es wird eine Stromschwelle 501 vorgesehen, um eine Anzahl m potentiell leerer Zellenpaare zu identifizieren. Die Stromschwelle 501 kann benutzt werden, wenn die Stromdifferenzen der Zellenpaare gelesen werden, um die Datenbits eines Worts zu decodieren. Daher wird die Anzahl von m potentiell leeren Zellenpaaren durch alle Zellenpaare bestimmt, bei denen beide Zellen einen Zellenstrom aufweisen, der höher als die Stromschwelle 501 ist.
-
In dem in 5 gezeigten Beispiel beträgt die Anzahl m potentiell leerer Zellenpaare vier und umfasst die geschriebenen Zellenpaare "geschriebenes Paar 2" und "geschriebenes Paar 4".
-
Als nächstes kann ein Anteil der potentiell leeren Zellenpaare m angesichts der Gesamtzahl der Zellenpaare n
m/n
mit einer vorbestimmten Schwelle, z.B. 50%, verglichen werden. Das vollständige gelesene Wort (Datenbits) kann daher als leer definiert werden, falls m/n diese vorbestimmte Schwelle erreicht oder überschreitet. Dadurch kann eine Software automatisch entscheiden, ob sich eine Menge von Datenbits (Datenwort) im Leerzustand befindet oder nicht. Die Software kann Anweisungen umfassen, die auf einem Prozessor oder prozessorgestützten System ausgeführt sind und/oder werden.
-
6 zeigt eine Beispieltabelle, die einen Leerindikator umfasst, der angibt, ob ein gelesenes Datenwort als leer betrachtet wird oder nicht. Wenn das Verhältnis m/n kleiner als 50% ist, wird daher angenommen, dass das Datenwort gültig ist, und abhängig von den Strömen ihrer jeweiligen komplementären Zellen wird angenommen, dass jedes Bit des Datenworts einen Wert von entweder "0" oder "1" aufweist. In einem solchen Fall wird der Leerindikator auf "0" gesetzt. Verbleibende Bitfehler können über Fehlerkorrekturcodes (ECC) korrigiert werden.
-
Wenn das Verhältnis m/n 50% erreicht oder überschreitet, d.h. mindestens die Hälfte der Zellenpaare die Stromschwelle 501 erreicht oder überschreitet, wird auch angenommen, dass das Datenwort gültig, aber leer ist. Daher wird der Leerindikator auf "1" gesetzt.
-
Dieser Ansatz erlaubt das Erhalten definierter Daten; es gibt keine "undefinierten" Daten mehr. Zusätzlich werden die Vorteile differenzieller Lesungen bewahrt.
-
Beispiel: differenzielle Prüfung
-
Mit der Zeit und insbesondere hinsichtlich Zellen, die eine hohe Menge von Lese- und Schreibzyklen erfahren müssen, kann sich ein Lesefenster in Richtung höherer Zellenströme bewegen. Außerdem kann sich die Temperatur auch auf den Zellenstrom auswirken.
-
Im Fall eines sich bewegenden Lesefensters kann eine absolute und feste Stromschwelle zu unvollkommenen Ergebnissen führen, wie in 7 gezeigt ist: Ein Graph 701 zeigt, dass sich eine Stromschwelle 703 eines Lesefensters zwischen einer Stromverteilung 704 geschriebener Zellen und einer Stromverteilung 705 gelöschter Zellen befindet. Daher ist Decodierung der Zellenpaare durchführbar.
-
Ein Graph 702 zeigt, dass sich die Stromschwelle 703 des Lesefensters in dem unteren Strombereich der Stromverteilung 704 geschriebener Zellen befindet, wodurch eine korrekte Detektion der Zellenpaare beeinträchtigt wird.
-
Um zu bestimmen, ob sich Zellenpaare eines Datenworts in einem Leerzustand befinden, kann eine differenzielle Prüfung durchgeführt werden. Eine solche differenzielle Prüfung kann auf der Basis mindestens einer der folgenden Beispielannahmen unterstützt werden:
- – In einem gelöschten Zustand kann eine Überlappung zwischen Zellen- und Komplementverteilungen angenommen werden, da sie gleichzeitig gelöscht werden und dieselbe Zyklusgeschichte erfahren.
- – Störungen sind (statistisch) gleich verteilt und erzeugen kein Ungleichgewicht zwischen der Zelle und ihrem Komplementarray.
- – Ein Verstärker der Komplementerfassung zeigt keinerlei systematisches Offset.
-
Auf der Basis dieser Annahmen gibt eine Komplementerfassung im Mittel 50% Nullen und 50% Einsen aus.
-
Wenn entweder an einen Zellenerfassungsverstärker- oder Komplement-Zellenerfassungsverstärkereingang ein zusätzliches Stromoffset (um einen vorbestimmten Offsetbetrag, z.B. +1/+2/+3 Sigma) ausgegeben wird, ändern sich die Daten mit Offset und ohne Offset signifikant.
-
8 zeigt eine positives Offset eines einzelnen Sigma 803, das auf den Zellenstrom der Zelle "cell_c" angewandt wird, was zu einer verglichen mit der Kurve 801 verschobenen Kurve 802 führt. Diese Verschiebung beeinflusst alle Zellenpaare, aber mit unterschiedlicher Auswirkung: Zellenpaare mit einem Zellenstrom Icell_c, der höher als der Zellenstrom Icell_t (gemäß 9 einer logischen "0" zugewiesen) ist, erhalten eine höhere Stromdistanz (+1 Sigma). Im Gegensatz dazu, erhalten Zellenpaare mit einem Zellenstrom Icell_t, der höher als der Zellenstrom Icell_c (gemäß 9 einer logischen "1" zugewiesen) ist, eine Reduktion der Stromdifferenz. Wenn diese Reduktion die ursprüngliche Stromdifferenz zwischen dem Zellenstrom Icell_c und dem Zellenstrom Icell_t überschreitet, d.h. (Icell_c + Sigma > Icell_t), wechselt das Bit von einer logischen "1" zu "0". Die Anzahl der Bit, die von "1" auf "0" wechseln, kann durch dieses Stromoffset moduliert werden. Je höher das Stromoffset ist, desto höher ist die Wahrscheinlichkeit, Bit umzuwechseln, und umgekehrt. Die positive Verschiebung kann auch auf die Verteilung des Zellenstroms Icell_t angewandt werden, was wiederum zu Bitumwechslungen von "0" auf "1" führen kann. Daher kann dann auf der Basis der Verschiebung auf der Basis des angewandten Offset bestimmt werden, wie viele Zellenpaare ihren Zustand wechseln. Der Wechsel kann über eine Exklusiv-Oder-(XOR-)Funktion bestimmt werden und kann zur Unterscheidung zwischen einer leeren und einer normal programmierten, aber potentiell verzerrten Verteilung, verwendet werden. Das Offset kann wie in 8 gezeigt ein Strom sein, oder es kann abhängig von dem in einem jeweiligen Erfassungsverstärker benutzten Parameter eine Spannung oder ein beliebiger anderer geeigneter Parameter verwendet werden.
-
9 zeigt ein Beispiel für umgewechselte Zellenpaare, wenn das Offset angewandt wird (Bit, die Zellenpaare ohne Offset 901 repräsentieren, im Gegensatz zu Bit, die Zellenpaare, nachdem das Offset angewandt wurde, repräsentieren 902). Bestimmte Bit, die ohne das zusätzliche Stromoffset eine logische "1" angeben (wegen Icell_t > Icell_c), wechseln nun aufgrund des zu dem Strom Icell_c addierten zusätzlichen Stroms um und geben eine logische "0" an, wegen des Wechsels zu Icell_t < Icell_c.
-
Gemäß diesem Beispiel haben daher auf der Basis des angewandten Offsets sechs Zellenpaare ihren Wert von "1" auf "0" gewechselt.
-
Ein Niveau des Wechsels (das über eine Exklusiv-Oder-(XOR-)Funktion bestimmt werden kann) kann benutzt werden, um zwischen einer leeren und einer normal programmierten, aber potentiell verzerrten Verteilung zu unterscheiden.
-
Das Niveau des Wechsels kann eine Anzahl umgewechselter Zellenpaare enthüllen. Diese Anzahl kann mit einer vorbestimmten Schwelle verglichen werden, und auf der Basis eines solchen Vergleichs kann eine Entscheidung möglich sein, ob das Datenwort leere Bit umfasst oder nicht.
-
Anders ausgedrückt, werden benachbarte Zellen erkannt, weil sie zu einem umgewechselten Zellenpaar führen, falls das Offset angewandt wird, was für leere Zellenpaare relativ normal ist, aber für geschriebene Zellenpaare relativ ungewöhnlich. Die Anzahl umgewechselter Zellenpaare auf der Basis des angewandten Offset gibt daher eine Wahrscheinlichkeit an, dass sich ein Datenwort im geschriebenen (programmierten) Zustand oder im Leerzustand befindet.
-
10 zeigt eine Beispieltabelle, wobei in der Spalte 1003 eine Anzahl umgewechselter Zellenpaare nfl mit einer vorbestimmten Schwelle nth verglichen wird. Wenn die Anzahl umgewechselter Zellenpaare nfl größer als die Schwelle nth ist, wird ein Leer-Indikator (Spalte 1004) auf "1" gesetzt. Als Alternative kann ein Verhältnis der umgewechselten Bit und der vorherigen Bit, die logisch "1" angeben, mit einer vorbestimmten Schwelle verglichen werden.
-
Falls die Anzahl umgewechselter Zellen nfl nicht größer (oder kleiner) als die Schwelle nth ist, wird der Leer-Indikator auf "0" gesetzt, und die Zellenpaare sind entweder programmiert oder verfälscht, abhängig von einem Status "ECC sauber" (siehe Spalte 1002): Der ECC-sauber-Status ist erfüllt ("ja" in Spalte 1002), wenn die Fehlerkorrektur in der Lage ist, teilweise verfälschte Daten zu rekonstruieren, oder wenn überhaupt keine verfälschten Daten bestehen. Der ECC-sauber-Status ist nicht erfüllt ("nein" in Spalte 1002), wenn die Fehlerkorrektur nicht in der Lage ist, alle Fehler zu korrigieren.
-
In einem solchen Fall wird ein Verfälschte-Daten-Bit (Spalte 1005) auf "1" gesetzt (das andernfalls auf "0" gesetzt ist).
-
Eine Spalte 1001 hat somit den Status der Daten, der entweder "programmiert", "gelöscht" oder "verfälscht" ist, zusammengefasst.
-
Zusätzliche Aspekte:
-
Als Option kann ein Anteil von Zellenpaaren eines gelesenen Worts bestimmt werden, wobei sich beide Zellen des Zellenpaars potentiell im geschriebenen Zustand befinden. Dies kann für Softwareverarbeitung und/oder Zugriff auf den NVM getrennt angegeben werden. Die Software kann Anweisungen umfassen, die auf einem Prozessor oder prozessorgestützten System ausgeführt sind und/oder werden.
-
11 zeigt eine Stromverteilung 1101 geschriebener Zellen und eine Stromschwelle 1102. Es ist deshalb möglich, beide Zellen eines Zellenpaars zu schreiben und für dieses Zellenpaar einen undefinierten Zustand zu erzeugen, der von dem Leerzustand des Zellenpaars unterschieden werden kann. (Über-)Schreiben beider Zellen der Zellenpaare in einem Wort kann daher zur Invalidierung von Daten benutzt werden, ohne dass es notwendig ist, das gesamte Datenwort zu löschen.
-
Die angegebene Lösung kann auf NVM mit differenziellem Lesen angewandt werden, insbesondere auf NVM-Zellentypen wie Einrichtungen des Typs Floating Gate, PCRAM (Phase-Change Random Access Memory), RRAM (Resistive Random Access Memory), MRAM (Magneto-Resistive Random Access Memory), MONOS (Metal-Oxide-Nitride-Oxide-Silicon), Nanokristallzellen usw. Die Lösung kann für alle Speichertypen verwendet werden, insbesondere Nurlesespeicher (ROM).
-
Die Lösung kann in verschiedenen Arten von Anwendungen implementiert werden, z.B. bezüglich Datenübertragung, Datenspeicherung, insbesondere auf Speichereinrichtungen wie z.B. Festplatten.
-
Die Lösung kann auch mit verschiedenen Typen von Fehlerdetektions- und/oder Fehlerkorrekturschemata, z.B. Blockcodes, zyklische Codes, BCH-Codes usw., kombiniert werden.
-
Jedes Zellenpaar kann mehrere Zellen umfassen, insbesondere mehr als zwei Speicherzellen.
-
12 zeigt eine Beispieltabelle, die zwei Schwellen für das Verhältnis m/n benutzt, um eine Unterscheidung zwischen den Zuständen leer, fehlerhaft und gültig zu ermöglichen. Die abgebildeten Werte der Schwellen sind nur Beispiele und können abhängig von dem jeweiligen Benutzungsfallszenario, von Hardware- und/oder Sicherheitsanforderungen unterschiedlich sein.
-
Falls das Verhältnis m/n kleiner als 40% ist, wird der Leer-Indikator auf "0" gesetzt und der Fehlerindikator wird auf "0" gesetzt, um dadurch gültige Daten anzunehmen.
-
Falls das Verhältnis m/n mindestens 40% aber weniger als 60% ist, kann der Leer-Indikator auf "0" oder "1" (angegeben durch "X") gesetzt werden, und der Fehlerindikator wird auf "1" gesetzt, um dadurch anzunehmen, dass das Datenwort ungültig ist. Anders ausgedrückt, gibt es in diesem Fall zu viele potentiell leere Zellenpaare, damit die Daten gültig (geschrieben oder programmiert) sind, aber noch nicht genug potentiell leere Zellenpaare, um ein leeres Datenwort anzunehmen.
-
Falls das Verhältnis m/n mindestens 60% ist, wird der Leer-Indikator auf "1" gesetzt und der Fehlerindikator wird auf "0" gesetzt, um dadurch ein leeres Datenwort anzunehmen.
-
13 zeigt eine Tabelle mit einem Beispiel-Benutzungsfallszenario, das auch einen Fehlerkorrekturcode-(ECC-)Mechanismus betrachtet. Hierbei bedeutet "ECC sauber", dass Fehler mindestens korrigiert werden können (oder keine Fehler vorliegen können, die Korrektur benötigen). Dementsprechend bedeutet "ECC" nicht sauber" (ECC sauber – nein), dass Fehler durch ECC-Mittel nicht korrigiert werden können. Das Szenario gemäß 13 nimmt an, dass der voll gelöschte Zustand nicht ECC sauber ist.
-
Der Fall "ECC sauber":
- – falls das Verhältnis m/n mindestens 80% beträgt, wird ein Leerzustand des Datenworts angenommen,
- – falls das Verhältnis m/n mindestens 50%, aber kleiner als 80% ist, wird ein fehlerhafter Zustand des Datenworts angenommen und
- – falls das Verhältnis m/n kleiner als 50% ist, wird ein gültiges Datenwort angenommen.
-
Der Fall "ECC nicht sauber":
- – falls das Verhältnis m/n mindestens 30% beträgt (ein niedriger Wert reicht aus, wegen der Grundannahme, dass der ECC im voll gelöschten Zustand des Datenworts nicht sauber ist) wird ein Leerzustand des Datenworts angenommen und
- – falls das Verhältnis m/n kleiner als 30% ist, wird ein fehlerhafter Zustand des Datenworts angenommen.
-
14 zeigt eine Tabelle mit einem anderen Beispiel-Benutzungsfallszenario. Die Terminologie von 13 gilt auch für 14. Das Szenario gemäß 14 nimmt an, dass der voll gelöschte Zustand ECC sauber ist.
-
Der Fall "ECC sauber":
- – falls das Verhältnis m/n mindestens 60% beträgt, wird ein Leerzustand des Datenworts angenommen,
- – falls das Verhältnis m/n mindestens 50%, aber kleiner als 60% ist, wird ein fehlerhafter Zustand des Datenworts angenommen und
- – falls das Verhältnis m/n kleiner als 50% ist, wird ein gültiges Datenwort angenommen.
-
Der Fall "ECC nicht sauber":
- – falls das Verhältnis m/n mindestens 80% beträgt (es wird ein hoher Wert gesetzt, wegen der Grundannahme, dass der ECC im voll gelöschten Zustand des Datenworts sauber ist und daher eine hohe Anzahl potentiell leerer Zellenpaare angesichts aller Zellenpaare des Datenworts erforderlich ist) wird ein Leerzustand des Datenworts angenommen und
- – falls das Verhältnis m/n kleiner als 80% ist (mit der Grundannahme "ECC sauber" im voll gelöschten Zustand besteht eine hohe Wahrscheinlichkeit eines Fehlers, wenn das Verhältnis m/n nicht (sehr) hoch ist) wird ein fehlerhafter Zustand des Datenworts angenommen.
-
Obwohl verschiedene Ausführungsbeispiele der Erfindung offenbart wurden, ist es für den Fachmann offensichtlich, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, mit denen manche Vorteile der Erfindung erreicht werden können, ohne vom Geist und Schutzbereich der Erfindung abzuweichen. Es ist für den hinreichend qualifizierten Fachmann nachvollziehbar, dass weitere Komponenten, die die gleichen Funktionen erfüllen, auf geeignete Weise ersatzweise verwendet werden können. Es sollte erwähnt werden, dass die unter Bezugnahme auf eine bestimmte Figur erläuterten Merkmale mit Merkmalen anderer Figuren kombiniert werden können, selbst in jenen Fällen, in denen dies nicht ausdrücklich erwähnt wurde. Weiterhin können die erfindungsgemäßen Verfahren in entweder allen Software-Implementierungen, unter Verwendung von geeigneten Prozessoranweisungen, oder in Hybridimplementierungen, die eine Kombination aus Hardware- und Softwarelogik nutzen, um die gleichen Ergebnisse zu erzielen, erreicht werden. Solche Modifikationen des Erfindungsgedankens sollen von den angefügten Ansprüchen abgedeckt werden.