-
Die vorliegende Offenbarung betrifft Speichervorrichtungen, Verfahren zum Betreiben derselben und Computerprogramme, die solche Verfahren implementieren. Insbesondere betrifft die vorliegende Offenbarung eine Leseverstärker-Neuordnung zum erneuten Lesen eines Speichers.
-
Speichervorrichtungen können eine Mehrzahl von Speicherzellen aufweisen. Speicherzellen können durch Bewertungselemente bewertet werden. Beispiele für Speicherzellen sind unter anderem Transistoren, resistive Zellen oder dergleichen. Solche Zellen können beschrieben oder programmiert werden und können gelesen werden.
-
Das Lesen einer Speicherzelle kann eine Bewertung eines physikalischen Parameters der Zelle aufweisen, z.B. einer Spannung oder eines Potentials, die an der Zelle detektierbar sind, eines Stroms, der durch eine Zelle fließt, und/oder eines elektrischen Widerstands, der gemessen werden kann.
-
Es besteht Bedarf an zuverlässig operierenden Speichervorrichtungen.
-
Gemäß einem Beispiel weist eine Speichervorrichtung auf: eine Mehrzahl von Speicherzellen, eine Mehrzahl von Bewertungselementen, wobei jedes Bewertungselement mit einer Speicherzelle der Speichervorrichtung verbindbar ist, und eine Verbindungseinheit, die zum Verbinden der Mehrzahl von Speicherzellen mit einer ersten Zuweisung von Bewertungselementen in einem ersten Zustand und zum Verbinden derselben Mehrzahl von Speicherzellen mit zumindest einer zweiten Zuweisung der Bewertungselemente in einem zweiten Zustand ausgebildet ist. In dem zweiten Zustand ist zumindest eine Speicherzelle von der Mehrzahl von Speicherzellen mit einem unterschiedlichen Bewertungselement verbunden. Die Speichervorrichtung weist ferner eine Bewertungseinheit auf, die dazu ausgebildet ist, die Verbindungseinheit aus dem ersten Zustand in den zweiten Zustand zu steuern. Die Bewertungseinheit ist dazu ausgebildet, die Mehrzahl von Speicherzellen in dem ersten Zustand zu bewerten, um ein erstes Bewertungsergebnis zu gewinnen, und die Mehrzahl von Speicherzellen in dem zweiten Zustand zu bewerten, um ein zweites Bewertungsergebnis zu gewinnen.
-
Gemäß einem Beispiel weist eine Speichervorrichtung eine Mehrzahl von Speicherzellen und eine Mehrzahl von Bewertungselementen auf, wobei jedes Bewertungselement mit einer Speicherzelle der Speichervorrichtung verbindbar ist. Die Speichervorrichtung weist eine Verbindungseinheit auf, die zum Verbinden der Mehrzahl von Speicherzellen mit einer ersten Zuweisung von Bewertungselementen in einem ersten Zustand und zum Verbinden derselben Mehrzahl von Speicherzellen mit einer zweiten Zuweisung der Bewertungselemente in einem zweiten Zustand ausgebildet ist. In dem zweiten Zustand ist zumindest eine Speicherzelle von der Mehrzahl von Speicherzellen mit einem unterschiedlichen Bewertungselement verbunden. Die Vorrichtung weist ferner eine Bewertungseinheit auf, die dazu ausgebildet ist, die Verbindungseinheit aus dem ersten Zustand in den zweiten Zustand zu steuern. Die Vorrichtung weist ferner einen Speicher auf, auf dem Fehlerinformationen gespeichert sind, die anzeigen, dass eine Leseoperation mithilfe eines spezifischen Paars aus einer Speicherzelle von der Mehrzahl von Speicherzellen und einer Bewertungseinheit in dem ersten Zustand fehleranfällig ist. Die Bewertungseinheit ist dazu ausgebildet, die Fehlerinformationen aus dem Speicher zu lesen und ein Bewertungsergebnis der Mehrzahl von Speicherzellen auf Basis einer Leseoperation mithilfe des zweiten Zustands auf Basis der Fehlerinformationen zu gewinnen.
-
Gemäß einem Beispiel weist eine Speichervorrichtung auf: eine Speicherzelle, eine Mehrzahl von Bewertungselementen, wobei jedes Bewertungselement mit der Speicherzelle der Speichervorrichtung verbindbar ist, eine Verbindungseinheit, die zum Verbinden der Speicherzelle mit einem ersten Bewertungselement in einem ersten Zustand und zum Verbinden der Speicherzelle mit einem zweiten Bewertungselement in einem zweiten Zustand ausgebildet ist, und eine Bewertungseinheit, die zum Gewinnen eines ersten Bewertungsergebnisses der Speicherzelle in dem ersten Zustand und zum Gewinnen eines zweiten Bewertungsergebnisses der Speicherzelle in einem zweiten Zustand ausgebildet ist. Die Bewertungseinheit ist dazu ausgebildet, eine Abweichung zwischen dem ersten Bewertungsergebnis und dem zweiten Bewertungsergebnis zu bestimmen und eine Abweichungsinformation in einem Speicher der Speichervorrichtung zu speichern.
-
Weitere Beispiele betreffen Verfahren zum Betreiben einer Speichervorrichtung und ein Computerprogramm.
-
Weitere Beispiele sind in den abhängigen Ansprüchen definiert.
-
Im Folgenden werden nun Beispiele unter Bezugnahme auf die beigefügten Figuren beschrieben. Es zeigen:
- 1a ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einem Beispiel und in einem ersten Zustand;
- 1b ein schematisches Blockdiagramm der Speichervorrichtung aus 1a in einem zweiten Zustand;
- 2a ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einem weiteren Beispiel und in einem ersten Zustand derselben;
- 2b ein schematisches Blockdiagramm der Speichervorrichtung aus 2a in einem zweiten Zustand;
- 3 ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einem Beispiel mit einer Neuordnungslogik und einer Invers-Neuordnungslogik;
- 4 ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einem Beispiel mit einem Speicher zum Lesen und/oder Schreiben von Fehlerinformationen;
- 5a eine schematische Darstellung einer möglichen Verteilung einer Menge von Speicherzellen auf der Ordinate eines Graphen, mit einem zu erfassenden Parameter auf der Abszisse, in einem Idealzustand;
- 5b eine schematische Darstellung der Verteilung aus 5a in einem gestörten Zustand;
- 6a ein schematisches Blockdiagramm für die Gewinnung eines ersten Bewertungsergebnisses in einem ersten Zustand eines Beispiels für eine Speichervorrichtung;
- 6b ein Beispiel für einen zweiten Zustand der Ausbildung aus 6a;
- 7 ein schematisches Flussdiagramm eines Verfahrens gemäß einem Beispiel;
- 8 ein schematisches Flussdiagramm eines Verfahrens gemäß einem weiteren Beispiel und
- 9 ein schematisches Flussdiagramm eines Verfahrens gemäß einem Beispiel zum Ableiten von Abweichungsinformationen.
-
Gleiche oder äquivalente Elemente oder Elemente mit gleicher oder äquivalenter Funktionalität sind in der folgenden Beschreibung mit gleichen oder äquivalenten Bezugsziffern bezeichnet, auch wenn sie in unterschiedlichen Figuren erscheinen.
-
In der folgenden Beschreibung wird zur gründlicheren Erläuterung von Ausführungsbeispielen der vorliegenden Offenbarung eine Mehrzahl von Einzelheiten angegeben. Für den Fachmann ist jedoch ersichtlich, dass Ausführungsbeispiele der vorliegenden Offenbarung ohne diese spezifischen Einzelheiten ausgeübt werden können. In anderen Fällen sind bekannte Strukturen und Vorrichtungen nicht im Einzelnen, sondern in Form von Blockdiagrammern gezeigt, um eine Verundeutlichung von Ausführungsbeispielen der vorliegenden Offenbarung zu vermeiden. Außerdem sind Merkmale der unterschiedlichen Ausführungsbeispiele, die nachfolgend beschrieben werden, miteinander kombinierbar, sofern nicht ausdrücklich anders angegeben.
-
Hier beschriebene Beispiele betreffen Speichervorrichtungen, die Speicherzellen aufweisen, welche programmiert und/oder gelesen werden können. Insbesondere betreffen Beispiele nichtflüchtige Speicher wie etwa EEPROM (electrically erasable programmable read-only memory; elektrisch löschbarer Nur-Lese-Speicher), RRAM (resistive random access memory; resistiver Direktzugriffsspeicher), PCRAM (phase change random access memory; Phasenwechsel-Direktzugriffsspeicher), FeRAM (ferroelectric random access memory; ferroelektrischer Direktzugriffsspeicher), MRAM (magnetoresistive random access memory; magnetoresistiver Direktzugriffsspeicher), CBRAM (conductive bridging random access memory; Direktzugriffsspeicher mit leitender Brückenbildung) oder dergleichen, sind jedoch nicht darauf beschränkt. Beispiele betreffen eine Bewertung programmierbarer Speicherzellen, die ohne Einschränkung auch auf flüchtige Speicher wie SRAM (static random access memory; statischer Direktzugriffsspeicher) und/oder DRAM (dynamic random access memory; dynamischer Direktzugriffsspeicher) anwendbar ist.
-
Hier beschriebene Beispiele betreffen eine Verbesserung der Zuverlässigkeit von Speichervorrichtungen, insbesondere von Halbleiterspeichervorrichtungen, durch das Vorsehen einer robusten Leseoperation.
-
Beispiele betreffen Bewertungselemente, die solche Speicherzellen bewerten können. Ein Bewertungselement kann als ein Element angesehen werden, das ein Ergebnis für einen Messwert mit Bezug auf die von ihm bewertete Speicherzelle, z.B. einen analogen Wert, bereitstellt. Ein solcher Wert kann beispielsweise ein Stromwert, ein Spannungswert und/oder ein Widerstandswert sein.
-
Ein Ergebnis der Bewertungseinheit kann weiter bewertet, z.B. quantisiert werden, so dass es eine spezifische Bedeutung hat. Beispielsweise kann der aus der Bewertungseinheit gewonnene Wert als eine logische 0 oder logische 1 angesehen werden, wobei die Zuweisungen von Bewertungswerten zu logischen Bedeutungen ohne Einschränkung möglich sind.
-
1a zeigt ein schematisches Blockdiagramm einer Speichervorrichtung 10 gemäß einem Beispiel. Die Speichervorrichtung 10 weist eine Mehrzahl von Speicherzellen 121 und 122 auf, wobei eine Zahl der Speicherzellen größer als 2 sein kann, z.B. zumindest 3, zumindest 5, zumindest 10, zumindest 100 oder sogar einige Tausend betragen kann.
-
Die Speichervorrichtung 10 weist ferner eine Mehrzahl von Bewertungselementen 141 und 142 auf, wobei eine Zahl der Bewertungselemente größer als 2, z.B. zumindest 3, zumindest 5, zumindest 8, zumindest 16, zumindest 32 oder jede andere Zahl sein kann. Bei Beispielen ist eine Zahl der implementierten Bewertungselemente niedriger als eine Zahl der Speicherzellen, die mit den Bewertungselementen 14 zu bewerten sind. Beispielsweise können die Bewertungselemente oder eine Teilmenge davon bei einer Operation mit zu lesenden Speicherzellen verbunden sein und für unterschiedliche Leseoperationen mit unterschiedlichen Speicherzellen verbunden sein. Jedes Bewertungselement 141 und/oder 142 ist mit einer Speicherzelle 121 und/oder 122 von den Speicherzellen verbindbar.
-
Die Speichervorrichtung 10 weist eine Verbindungseinheit 16 auf. Wie in Verbindung mit 1b beschrieben wird, ist die Verbindungseinheit 16 zum Verbinden der Speicherzellen 121 und 122 mit einer ersten Zuweisung von Bewertungselementen 141 und 142 in einem ersten Zustand und zum Verbinden derselben Mehrzahl von Speicherzellen 121 und 122 mit einer zweiten Zuweisung der Bewertungselemente 141 und 142 in einem zweiten Zustand ausgebildet. Das bedeutet, in dem zweiten Zustand, der beispielsweise in 1b illustriert ist, ist zumindest eine Speicherzelle 121 und/oder 122 von der Mehrzahl von Speicherzellen mit einem unterschiedlichen Bewertungselement verbunden. Obwohl 1a und 1b ein Umschalten oder eine Änderung zwischen zwei Zuweisungen zeigen, sind Ausführungsbeispiele nicht hierauf beschränkt, sondern ermöglichen zwei oder eine höhere Zahl von Zuweisungen.
-
Die Speichervorrichtung 10 weist eine Bewertungseinheit 18 auf, die dazu ausgebildet ist, die Verbindungseinheit 16 aus dem ersten Zustand aus 1a in den zweiten Zustand aus 1b zu steuern. Die Bewertungseinheit 18 ist dazu ausgebildet, die Mehrzahl von Speicherzellen 121 und 122 in dem ersten Zustand zu bewerten, um ein erstes Bewertungsergebnis, d.h. ein Ausleseergebnis zu gewinnen, und die Mehrzahl von Speicherzellen in dem zweiten Zustand zu bewerten, um ein zweites Bewertungsergebnis zu gewinnen. Das bedeutet, die Bewertungseinheit 18 kann dieselben Speicherzellen mithilfe unterschiedlicher Zuweisungen von Bewertungselementen 14 lesen.
-
1b zeigt ein schematisches Blockdiagramm der Speichervorrichtung 10 in dem zweiten Zustand, in dem die von der Verbindungseinheit 16 bereitgestellte Zuweisung oder Verbindung zwischen Speicherzellen 121 und 122 mit Bezug auf die Bewertungselemente 141 und 142 geändert ist. In dem ersten Zustand aus 1a ist die Speicherzelle 121 durch das Bewertungselement 141 bewertet, und die Speicherzelle 122 ist durch das Bewertungselement 142 bewertet, wie mit den durchgezogenen Linien angezeigt. Ebenso zeigen die durchgezogenen Linien in 1b an, dass in dem zweiten Zustand die Speicherzelle 121 durch das Bewertungselement 142 bewertet ist und die Speicherzelle 122 mit dem Bewertungselement 141 bewertet ist. Ein solche geänderte Zuweisung kann eine Reihenfolge oder Sequenz eines Inhalts der Speicherzellen 121 und 122 an der Bewertungseinheit 18 ändern. Da jedoch die Bewertungseinheit 18 die Verbindungseinheit 16 steuern kann, kann die Bewertungseinheit 18 dieses Wissen berücksichtigen und kann die empfangenen Bits neu ordnen, um eine Sequenz von Bits beizubehalten oder neu zu gewinnen.
-
Beispiele basieren auf der Idee, Zuweisungen zwischen Bewertungselementen und Speicherzellen zu ändern. Dies kann auf unterschiedliche Weise erfolgen, zum Beispiel durch eine paarweise Änderung, eine ringbasierte Änderung, indem z.B. jedes Bewertungselement entlang einer spezifischen Richtung mit der nächsten Speicherzelle verbunden ist, oder durch eine andere Lösung.
-
Das bedeutet, durch die Bewertungseinheit 18 können zwei vergleichbare Ergebnisse mit Bezug auf dieselben Speicherzellen 121 und 122 gewonnen sein. Hierdurch können Fehler von Speicherzellen vermeidbar sein, die auftreten können, wenn eine ungenau programmierte oder definierte Speicherzelle durch eine ungenaue Bewertungseinheit gelesen wird. Durch Ändern der Bewertungseinheit, die mit der Speicherzelle zu verwenden ist, kann ein solcher Fehler vermieden werden, wie später ausführlicher beschrieben wird.
-
In dem ersten Zustand und dem zweiten Zustand kann jede von der Mehrzahl von Speicherzellen mit einem Bewertungselement verbunden sein. Es ist möglich, jedoch nicht notwendig, dass jede der Speicherzellen 121 und 122 mit einer unterschiedlichen Bewertungseinheit verbunden ist. Beispielsweise kann die Bewertungseinheit 18 Zugriff auf Informationen haben, die anzeigen, dass einige der Speicherzellen und/oder Bewertungseinheiten als fehleranfällig oder schwach ansehbar sind, so dass Fehler, die beim Lesen dieser Speicherzellen oder durch Verwendung einer solchen Bewertungseinheit auftreten, durch Neuverbinden der jeweiligen Speicherzelle oder Bewertungseinheit behandelt werden können, um optional, jedoch nicht notwendig, andere Elemente neu zu verbinden. Unter fehleranfällig kann verstanden werden, dass eine höhere Fehlerwahrscheinlichkeit gegenüber einem Referenzzustand für vorhanden angesehen wird, z.B. höher in dem ersten Zustand als in dem zweiten Zustand oder umgekehrt.
-
Die in dem ersten Zustand und in dem zweiten Zustand gewonnenen Bewertungsergebnisse können jeweils eine Bitsequenz, d.h. eine erste Bitsequenz in dem ersten Zustand und eine zweite Bitsequenz in dem zweiten Zustand sein. Die Bewertungseinheit 18 kann dazu ausgebildet sein, einen Wert, der aus einer Speicherzelle gelesen ist, einer gleichen Bitposition in der ersten Bitsequenz und in der zweiten Bitsequenz zuzuweisen, was als inverse Neuordnung bezeichnet werden kann, die der Neuordnung aus dem ersten Zustand in den zweiten Zustand entgegenwirkt. Beispielsweise können die Werte der Speicherzellen jeweils den gleichen, unveränderten Bitpositionen zugewiesen sein. Beispielsweise kann bei der Änderung aus dem ersten Zustand mit einer unveränderten Zuweisung, die bei dem Beispiel eine Bewertung der Speicherzelle 121 mit dem Bewertungselement 141 ermöglicht, in den zweiten Zustand, in dem dieselbe Speicherzelle 121 durch ein unterschiedliches Bewertungselement 142 bewertet ist, die Neuordnung entsprechend angepasst werden. Dies kann eine Verwendung der Neuordnung bei beiden Zuständen oder nur in solchen Zuständen ermöglichen, in denen eine Abweichung von einem Referenzzustand wie etwa dem ersten Zustand im Hinblick auf die Zuweisung besteht.
-
2a zeigt ein schematisches Blockdiagramm einer Speichervorrichtung 20 gemäß einem Beispiel und in einem ersten Zustand derselben. 2b zeigt ein schematisches Blockdiagramm der Speichervorrichtung 20 in einem zweiten Zustand.
-
Gegenüber der Speichervorrichtung 10 kann die Speichervorrichtung 20 dazu angepasst sein, zumindest ein unterschiedliches Bewertungselement 143 zu verwenden, das in dem ersten Zustand unverwendet ist. Beispielsweise kann die Speicherzelle 121 durch Verwendung des Bewertungselements 141 bewertet sein, und die Speicherzelle 122 kann durch Verwendung des Bewertungselements 142 bewertet sein. In dem zweiten Zustand kann das Speicherelement 121 durch Verwendung des Bewertungselements 142 bewertet sein. Optional kann das Bewertungselement 141 zum Bewerten der Speicherzelle 121 verwendet sein. Beispielsweise kann in dem zweiten Zustand ein Bewertungselement 143 mit der Speicherzelle 122 verbunden sein.
-
Das bedeutet, gegenüber dem ersten Zustand ist in dem zweiten Zustand zumindest eine Speicherzelle 121 oder 122 mit einem unterschiedlichen Bewertungselement verbunden. Dieses unterschiedliche Bewertungselement kann in dem ersten Zustand unverwendet sein oder kann in dem ersten Zustand für eine unterschiedliche Speicherzelle verwendet sein.
-
3 zeigt ein schematisches Blockdiagramm einer Speichervorrichtung 30 gemäß einem Beispiel. Die Speichervorrichtung 30 weist eine Mehrzahl von Speicherzellen 121 bis 12M auf, wodurch ein Speicherfeld oder eine Anordnung 12 aus Speicherzellen vorgesehen ist.
-
Die Verbindungseinheit 16 kann eine Neuordnungslogik implementieren. Die Verbindungseinheit 16 kann Schaltkreise aufweisen, die aus den Speicherzellen 121 und 122 einen Satz von im Wesentlichen analogen Signalen empfangen, um jeden dieser Werte in unterschiedlichen Zuständen der Speichervorrichtung 30 unterschiedlichen Bewertungselementen zuzuführen. Die Bewertungselemente können den Satz analoger Werte in einen Satz von im Wesentlichen digitalen Werten, d.h. ein Ergebnis der Bewertungselemente 141. bis 14N., umwandeln. Das bedeutet, gemäß einem Beispiel kann ein Bewertungselement einen Leseverstärker oder ein anderes Element zum Bereitstellen eines digitalen Werts auf Basis eines analogen Werts aufweisen, der aus der Speicherzelle abgeleitet ist. Eine Reihenfolge oder Sequenz dieser Ausgabewerte kann durch die Steuersignale gesteuert sein, die durch die Bewertungseinheit 18 erzeugt sind.
-
Die Bewertungseinheit 22 kann eine Invers-Neuordnungslogik 22 aufweisen oder implementieren. Die Invers-Neuordnungslogik 22 kann zumindest teilweise in Software und/oder zumindest teilweise in Hardware implementiert sein, einschließlich einer reinen Software-Implementierung und einer reinen Hardware-Implementierung. Die Invers-Neuordnungslogik kann die Sequenz der aus dem Speicherfeld 12 gelesenen Bits umordnen, um die geänderte Reihenfolge, die mit der Neuordnungslogik der Verbindungseinheit 16 geändert ist, rückgängig zu machen. Das bedeutet, die inverse Neuordnung der Bewertungseinheit kann invers zu einer Neuordnungslogik sein, die durch die Verbindungseinheit 16 implementiert ist, und kann dazu ausgebildet sein, eine Zuweisung des Bewertungselements zu einer Bitposition aus dem ersten Zustand in den zweiten Zustand invers zu der Neuordnungslogik zu ändern, um eine Bitposition einer einzelnen Speicherzelle, einer Mehrzahl von Speicherzellen oder aller Speicherzellen in der ersten Bitsequenz und in der zweiten Bitsequenz konstant oder unverändert zu halten. Dies kann es ermöglichen, bei einer Änderung der Zuweisung von Bewertungselementen eine gleiche Sequenz von Bits aus den bewerteten Speicherzellen zu gewinnen. Die Bewertungseinheit 18 kann dazu ausgebildet sein, die erste Bitsequenz und die zweite Bitsequenz mit einer gleichen Reihenfolge oder identischen Reihenfolge von Bits zu versehen, d.h. die Darstellung von Werten von Speicherzellen in den Bitsequenzen kann unverändert bleiben.
-
Die Bewertungseinheit 18 kann eine Fehlerdetektionseinheit 24 aufweisen, so dass Beispiele vorgesehen sind, gemäß denen die Bewertungseinheit zum Bestimmen von Bitfehlern des empfangenen Ergebnisses ausgebildet ist. Das bedeutet, die Informationen über gespeicherte Bits in dem Speicherfeld 12 können der Bewertungseinheit 18 zugeführt sein. Beispielsweise kann eine Verwendung von Fehlerdetektionscodes oder Fehlerkorrekturcodes es ermöglichen, ein Auftreten von Bitfehlern in der Auslesung der bewerteten Speicherzellen, d.h. in der Sequenz von Bits, zu detektieren. Ein Fehlerkorrekturcode kann eine Fähigkeit aufweisen, eine bestimmte erste Menge von Bitfehlern zu detektieren und möglicherweise eine bestimmte, in der Regel kleinere, zweite Menge von Bitfehlern zu korrigieren.
-
Speichervorrichtungen gemäß Beispielen können dazu ausgebildet sein, immer die Mehrzahl von Speicherzellen, d.h. die Zieldaten, mithilfe des ersten und zweiten Zustands zu lesen. Um jedoch z.B. Zeit und/oder Energie zu sparen, können Vorrichtungen dazu implementiert sein, eine Leseoperation in dem zweiten Zustand bei Bedarf durchzuführen, z.B. wenn die Fehlerdetektionslogik 24 bestimmt, dass eine Zahl von Bitfehlern in dem ersten Bewertungsergebnis, d.h. dem ersten Zustand, eine Zahl von Fehlern gemäß einer vordefinierten Schwelle, z.B. eine Zahl korrigierbarer Fehler, überschreitet. Beispielsweise kann die Zahl von Bitfehlern die Zahl überschreiten, die korrigierbar sind, liegt jedoch innerhalb einer Zahl, die mit der Fehlerdetektionseinheit 24 und durch Verwendung einer Speicherung von Informationen in den Speicherzellen mit dem Einsatz eines Fehlerkorrekturcodes noch detektierbar ist.
-
Die Speichervorrichtung 30 kann beispielsweise eine Steuereinheit 26 als Teil der Bewertungseinheit 18 aufweisen. Die Steuereinheit 26 kann eine Zustandslogik implementieren und kann ein Ergebnis bezüglich der aufgetretenen Fehler aus der Fehlerdetektionseinheit 24 empfangen. Die Steuereinheit 26 kann ferner mit der Verbindungseinheit 16 und der Invers-Neuordnungslogik 22 verbunden sein, um die Speichervorrichtung 30 aus dem ersten Zustand in den zweiten Zustand zu steuern. Nach dem Einstellen der Speichervorrichtung 30 in den zweiten Zustand können die Speicherzellen erneut gelesen werden. Beispielsweise kann die Bewertungseinheit 18 dazu ausgebildet sein, zu bestimmen, dass eine zweite Zahl von Bitfehlern, die in dem zweiten Bewertungsergebnis bei dem zweiten Zustand auftreten, höchstens die Zahl von Fehlern ist, die korrigierbar sind, d.h. innerhalb der Fähigkeit des Fehlerkorrekturcodes liegt. Die Bewertungseinheit 18 kann dazu ausgebildet sein, das zweite, korrigierbare Bewertungsergebnis als Ergebnis einer Ausleseoperation der Speichervorrichtung zu verwenden. Dies kann ein Korrigieren der Bitfehler umfassen.
-
In einem solchen Szenario werden zwei Ausleseoperationen durchgeführt, um ein Endergebnis z.B. durch Verwendung des zweiten Bewertungsergebnisses vorzusehen.
-
Beispiele sind jedoch nicht auf ein solches Szenario beschränkt. Gemäß einem Beispiel kann eine Speichervorrichtung wie etwa die Speichervorrichtung 10, 20 und/oder 30 dazu ausgebildet sein, zumindest eine dritte Ausleseoperation mithilfe einer dritten Zuweisung von Bewertungseinheiten und Speicherzellen durchzuführen, die sich von der ersten Zuweisung in dem ersten Zustand und der zweiten Zuweisung in dem zweiten Zustand unterscheidet.
-
Die Bewertungseinheit kann dazu ausgebildet sein, ein kombiniertes Bewertungsergebnis als Entscheidung nach Mehrheit zu bestimmen, indem z.B. das erste Ergebnis und das zweite Ergebnis bezüglich eines Zusammenfallens verglichen werden. Gemäß Beispielen kann die Bewertungseinheit 18 die Speichervorrichtung zu zumindest einer dritten Zuweisung steuern, um zumindest ein drittes Bewertungsergebnis der Mehrzahl von Speicherzellen in einem solchen dritten Zustand zu gewinnen. Mit einem solchen dritten Ergebnis (oder einer höheren Zahl) kann das Gewinnen der Entscheidung verbessert werden, indem innerhalb der Entscheidung nach Mehrheit z.B. eine 2:1-Entscheidung oder dergleichen ermöglicht wird. Alternativ kann eine solche Entscheidung nach Mehrheit gruppenweise für Gruppen von Speicherzellen durchgeführt werden, wobei jede Gruppe von Speicherzellen zumindest eine Speicherzelle aufweist, so dass eine Entscheidung für einzelne Zellen eingeschlossen ist. Indem drei oder mehr Ergebnisse bezüglich einer einzelnen Speicherzelle, einer Gruppe derselben oder des zu lesenden Satzes gewonnen werden, können mit dem Bewertungsergebnis unterschiedliche Kriterien zur Entscheidung darüber implementiert sein, welches Ergebnis zur Grundlage genommen und/oder wie diese Ergebnisse interpretiert werden sollen.
-
Beispiele sind jedoch nicht auf eine Auswahl entweder des ersten oder des zweiten Ergebnisses (oder einer höheren Zahl oder Iteration) oder auf die Durchführung einer Mehrheitsentscheidung beschränkt. Wenn beispielsweise an der Bewertungseinheit Wissen darüber vorhanden ist, welches Bewertungselement und/oder welche Speicherzelle möglicherweise fehlerhaft ist, kann ein Gesamtergebnis oder kombiniertes Ergebnis auch gewonnen sein, indem unterschiedliche Bewertungsergebnisse aus unterschiedlichen Auslesungen kombiniert sind, z.B. indem für fehlerfrei gehaltene Bitwerte kombiniert oder fehlerhafte Bits ausgeschlossen werden.
-
Gemäß einem Beispiel kann eine Erweiterung für n Datenlesungen, d.h. n Zustände mit unterschiedlichen Leseverstärkerzuweisungen, die Durchführung einer bitweisen Mehrheitsentscheidung über die n Leseergebnisse ermöglichen, deren Ableitung beispielsweise aufeinanderfolgend erfolgt. Mit Bezug auf unentschiedene Bits, die für eine Zahl von n = 2*k Leseoperationen vorkommen können, können solche Bits zur Behandlung in geeigneten ECC als (Löschung) markiert werden, d.h. die Bitposition kann für den ECC markiert werden. Solche Informationen können zusammen mit Fehlerinformationen 32 gespeichert sein und können beispielsweise anzeigen, dass ein Bitfehler an einer spezifischen Bitposition vorhanden ist. Das Schreiben der Fehlerinformationen 32 kann somit ein lernendes System ermöglichen, das es beispielsweise ermöglichen kann, fehleranfällige Kombinationen aus Leseoperationen auszuschließen. Alternativ oder zusätzlich, und als Möglichkeit für jeden Wert von n, können alle instabilen Bits als Löschungen markiert werden.
-
Alternativ oder zusätzlich kann eine Speichervorrichtung gemäß einem Beispiel, z.B. die Speichervorrichtung 10, 20 und/oder 30, dazu implementiert sein, die Speicherzellen mit unterschiedlichen Zuweisungen von Bewertungseinheiten erneut zu lesen, bis ein Ergebnis gewonnen ist, das höchstens eine korrigierbare Zahl Fehler aufweist. Das bedeutet, die Bewertungseinheit kann dazu ausgebildet sein, eine Ausleseoperation mithilfe unterschiedlicher Zuweisungen oder Bewertungselemente von Speicherzellen zu wiederholen, bis ein korrigierbares Ausleseergebnis gewonnen ist oder bis ein Abbruchkriterium eintritt, z.B. eine maximale Zahl Ausleseoperationen, die vordefiniert ist, eine Zeitüberschreitung oder ein Steuerbefehl oder dergleichen.
-
Mit anderen Worten stellt das Speicherfeld im Wesentlichen analoge Werte bereit, die beim Auslesen Daten darstellen. Die Bewertungselemente, z.B. Leseverstärker, können beliebige Schaltkreise aufweisen oder darstellen, die einen oder mehrere im Wesentlichen analoge Werte aus einem Speicher akzeptieren und sie in ein oder mehrere digitale Datenbits umwandeln. Beispielsweise wird genau ein Analogwert in ein digitales Bit umgewandelt. Dies kann es ermöglichen, ein Bit Informationen pro Speicherzelle vorzusehen. Es können jedoch eine oder mehrere Speicherzellen als Mehrebenenspeicher implementiert sein, bei dem ein Analogwert in mehr als ein digitales Bit umgewandelt ist. Alternativ oder zusätzlich und optional kann eine Mehrzahl von Speicherzellen der Speichervorrichtung 10, 20 und/oder 30 implementiert sein, um einen Mehrzellenspeicher zu bilden, bei dem mehr als ein Analogwert in ein digitales Bit umgewandelt ist.
-
Unter der Fehlerdetektionslogik der Fehlerdetektionseinheit 24 können Schaltkreise verstanden werden, die durch Prüfen einiger Eigenschaften eines Satzes von Datenbits bestimmen, ob die Daten korrekt sein können oder nicht. Dies kann eine einfache Paritätsprüfungslogik sein, die prüft, ob die Parität eines Satzes von Datenbits den erwarteten Wert hat, d.h. ob die Zahl von Nullen oder Einsen in dem Satz wie erwartet gerade oder ungerade ist. Alternativ oder zusätzlich kann die Fehlerdetektionslogik eine Logik sein, die prüft, ob eine Prüfsumme (z.B. eine CRC-Summe; CRC = cyclic redundancy check; zyklische Redundanzprüfung) für den Satz der Datenbits den erwarteten Wert hat. Alternativ oder zusätzlich kann die Fehlerdetektionslogik eine EDC-Logik implementieren (EDC = error detection code; Fehlerdetektionscode), die die Übereinstimmung des Satzes von Datenbits mit einem bestimmten Code prüft. Alternativ oder zusätzlich kann dies eine ECC-Logik sein (ECC = error correction code; Fehlerkorrekturcode), die den Satz der Datenbits gemäß einem bestimmten Code prüft und (falls erforderlich und möglich) korrigiert, jedoch auch detektiert, dass eine Korrektur nicht möglich oder sinnvoll ist. Diese Beispiele umfassen auch eine Kombination aus zwei oder mehr dieser Möglichkeiten. Falls durch die Bewertungseinheit 18 eine Dateninkonsistenz erzeugt wird, kann die Fehlerdetektionslogik ein erneutes Lesen einleiten. Die maximale Zahl erneuter Lesungen kann auf eine vordefinierte Zahl beschränkt sein. Die Fehlerdetektionslogik kann in Hardware und/oder Software implementiert sein.
-
Die Zustandslogik oder Steuereinheit 26 kann ebenfalls in Hardware und/oder Software implementiert sein. Sie kann eine Logik implementieren, die die Neuordnungslogik oder Verbindungseinheit 16 und die Invers-Neuordnungslogik 22 durchgängig so steuert, dass sich deren Datenneuordnung insgesamt ausgleicht. Zumindest zwei unterschiedliche Reihenfolgen existieren oder sind implementiert, d.h. es gibt zumindest zwei Zustände, in denen sich die Zustandslogik befinden kann. Gemäß Beispielen existieren mehrere unterschiedliche Zustände, d.h. zumindest drei, zumindest vier, zumindest fünf, zumindest sechs oder noch mehr. Die anfängliche Ausleseoperation für einige Daten wird entweder mit einem vorgegebenen Anfangszustand oder nur mit dem aktuellen Zustand, d.h. dem zuletzt verwendeten Zustand, durchgeführt. Der Zustand der Zustandslogik, d.h. die eingesetzte Neuordnung, wird beispielsweise geändert, wenn die Fehlerdetektionslogik eine Dateninkonsistenz detektiert und ein erneutes Lesen eingeleitet wird. Diese Zustandsänderung kann deterministisch sein (z.B. durch den Einsatz eines Zählers oder jeder anderen deterministischen endlichen Zustandsmaschine) oder zufällig sein.
-
Die Invers-Neuordnungslogik kann ebenfalls in Hardware und/oder Software implementiert sein. Sie kann Schaltkreise oder ein Steuerelement wie etwa einen Prozessor, ein feldprogrammierbares Gatterarray (FPGA), einen Mikrocontroller oder dergleichen aufweisen, die einen Satz digitaler Signale einlassen und die empfangenen Werte auf einem Satz digitaler Signale ausgeben, wobei die Reihenfolge dieser Ausgabewerte durch die von der Zustandslogik erzeugten Steuersignale gesteuert ist. Das bedeutet, die Invers-Neuordnungslogik kann die digitalen Bits auf Basis der Reihenfolge neu ordnen, die von der Verbindungseinheit 16 bereitgestellt ist. Die Invers-Neuordnungslogik kann die von der Neuordnungslogik vorgenommene Neuordnung zurücknehmen, so dass die Gesamtzuweisung der Datenbits unverändert bleiben kann.
-
Wie beschrieben, können einige Teile der beschriebenen Logik, z.B. die Zustandslogik und die Invers-Neuordnungslogik, zumindest teilweise in Software implementiert sein.
-
4 zeigt ein schematisches Blockdiagramm einer Speichervorrichtung 40 gemäß einem Beispiel. Die Speichervorrichtung 40 kann zumindest in Teilen eine gleiche Ausbildung und/oder gleiche Elemente wie die Speichervorrichtung 30 aufweisen. Die Bewertungseinheit 18 der Speichervorrichtung 40 kann dazu ausgebildet sein, aus einem Speicher 28, auf den die Bewertungseinheit 18 Zugriff hat, Fehlerinformationen zu lesen, die anzeigen, dass ein spezifisches Paar aus einer Speicherzelle 12i von der Mehrzahl von Speicherzellen und einem Bewertungselement 14j fehleranfällig ist, d.h. wahrscheinlich Fehler verursacht. Die Bewertungseinheit 18 kann dazu ausgebildet sein, das zweite Bewertungsergebnis auf Basis des ersten Bewertungsergebnisses zu gewinnen, das auf dem spezifischen Paar basiert, welches durch die Fehlerinformationen angezeigt ist, und/oder kann dazu ausgebildet sein, das spezifische Paar beim Bewerten der Mehrzahl von Speicherzellen zu vermeiden.
-
Das bedeutet: Wenn detektiert wird, dass die bewertete Bitsequenz Fehler aufweist, und wenn die Fehlerinformationen 32 anzeigen, dass zum Gewinnen des Bewertungsergebnisses ein fehleranfälliges Paar aus Speicherzelle und Bewertungseinheit verwendet wurde, kann die Bewertungseinheit 18 die Entscheidung treffen, ein erneutes Lesen durchzuführen.
-
Dies kann als A-posteriori-Analyse in Betracht gezogen werden, während die gewonnene Bitsequenz von niedriger Qualität ist. Gemäß einem Beispiel kann die Bewertungseinheit auch dazu ausgebildet sein, die Fehlerinformationen 32 a priori zu bewerten. Wenn beispielsweise die Fehlerinformationen 32 anzeigen, dass die kommende Ausleseoperation, z.B. in dem gegenwärtigen Zustand, eine fehleranfällige Kombination aus Speicherzelle und Bewertungseinheit verwenden wird, kann die Bewertungseinheit 18 die Entscheidung treffen, den Zustand zu ändern. Dies kann es ermöglichen, ein erstes Ergebnis einer ersten Ausleseoperation bereits in einem unterschiedlichen Zustand zu gewinnen, und kann es somit ermöglichen, eine Verwendung des spezifischen Paars zu vermeiden und eine Ausleseoperation zu vermeiden, die erwartbar zu Fehlern führt.
-
Die Fehlerinformationen 32 können z.B. während der Herstellung in dem Speicher 28 gespeichert werden. Alternativ oder zusätzlich können die Fehlerinformationen 32 erzeugt oder bereitgestellt sein, indem die Bewertungseinheit zum Speichern der Fehlerinformationen 32 ausgebildet ist. Die Fehlerinformationen 32 können sich beispielsweise auf festsitzende Bits oder Speicherzellen, die auf einem spezifischen logischen Wert festsitzen, auf fehleranfällige Bits oder Speicherzellen und/oder auf fehleranfällige Kombinationen aus Speicherzellen und Bewertungseinheiten beziehen. Beispielsweise kann die Bewertungseinheit 18 die Ausleseoperationen bewerten, während sie überwacht, welche Zelle mit welcher Bewertungseinheit bewertet wurde, und kann daraus die Fehlerinformationen 32 ableiten.
-
Beispiele der vorliegenden Offenbarung ermöglichen die Ausbildung von Speichervorrichtungen zum Bestimmen eines Ergebnisses einer Ausleseoperation der Mehrzahl von Speicherzellen ohne die Verwendung eines Fehlerkorrekturcodes, z.B. mithilfe eines Codes, der nur zum Detektieren von Fehlern fähig ist, d.h. eines Fehlerdetektionscodes wie etwa eines Codes, der Paritätsbits verwendet. Wenn beispielsweise ein Endergebnis, z.B. per Mehrheitsentscheidung, durch eine Kombination aus mehreren Ausleseoperationen und/oder unter Berücksichtigung von Fehlerinformationen 32 beurteilt wird, können Speichervorrichtungen vorgesehen sein, die Ausleseoperationen mit akzeptabler Zuverlässigkeit durchführen können und dabei die Verwendung eines Fehlerkorrekturcodes optional machen, wodurch Ressourcen, Rechenkomplexität, Speicherzellen, Bewertungseinheiten oder dergleichen gespart werden können.
-
Gemäß einem Beispiel kann eine Verwendung der Fehlerinformationen, die anzeigen, dass eine Leseoperation mithilfe eines spezifischen Paars aus einer Speicherzelle von der Mehrzahl von Speicherzellen und einer Bewertungseinheit in dem ersten Zustand fehleranfällig ist, um ein Bewertungsergebnis der Mehrzahl von Speicherzellen auf Basis einer Leseoperation mithilfe des zweiten Zustands auf Basis der Fehlerinformationen zu gewinnen, d.h. optional das Lesen in dem ersten Zustand zu vermeiden, als Alternative zum Gewinnen beider Ergebnisse implementiert sein.
-
5a zeigt eine schematische Darstellung einer möglichen Verteilung einer Menge M von Speicherzellen auf der Ordinate eines Graphen, mit einem zu erfassenden Parameter P, beispielsweise einem Strom I, einer Spannung V oder einem Widerstand R, auf der Abszisse. Während als Beispiel die Zahl der Zellen für auf logische 0 programmierte Zellen und auf logische 1 programmierte Zellen gleich ist, zeigen eine erste Verteilung 341 und eine zweite Verteilung 342 eine Sollgestaltung einer Speichervorrichtung, nach der eine maximale Zahl programmierter Zellen innerhalb der Spezifikation der Vorrichtung voneinander beabstandet ist. Durch Mängel bei der Herstellung von Speicherzellen weisen jedoch einige Speicherzellen, die auf einen Wert programmiert sind, z.B. auf eine logische 0, einen Analogwert auf, der höher als der typische Wert ist, wobei Speicherzellen der Verteilung 342, die auf den jeweiligen anderen Wert programmiert sind, z.B. auf eine logische 1, Zellen aufweisen können, die einen vergleichsweise niedrigen Wert des analogen Parameters aufweisen. Innerhalb der Gestaltung der Speichervorrichtung kann zwischen den Verteilungen 341 und 342 ein Fenster 36 vorhanden sein. Das Fenster 36, das auch als Lücke bezeichnet werden kann, kann eine vergleichsweise kleine Breite aufweisen, z.B. höchstens 30%, höchstens 20% oder höchstens 10% eines Basiswerts der Speicherzelle, z.B. 30%, 20% oder 10% von 30 µA.
-
Innerhalb des Fensters 36, z.B. an dessen Mitte oder bei seinem Mittelwert, kann beispielsweise eine Unterscheidungsschwelle 38R eines Bewertungselements 14 spezifiziert sein. Das bedeutet: Auch wenn eine Speicherzelle einen Minimalwert der Verteilung 342 aufweist, kann sie als programmierte logische 1 beurteilt werden. Alternativ kann die Zelle auch dann, wenn sie einen Maximalwert innerhalb der Verteilung 341 aufweist, durch Verwendung der Unterscheidungsschwelle 38R als auf eine logische 0 programmiert beurteilt werden.
-
5b zeigt eine schematische Darstellung der Verteilung aus 5a, die auf ein mögliches nichtideales Verhalten einer Mehrzahl von Bewertungselementen, z.B. der Bewertungselemente 14 der Speichervorrichtungen 10, 20 und/oder 30, ausgeweitet ist. Diese Bewertungselemente können eine Verteilung innerhalb ihrer realen Unterscheidungsschwellen aufweisen, die zu der Wirkung führen kann, dass einige der durch die Speichervorrichtung implementierten Unterscheidungsschwellen innerhalb der Verteilung 341 oder 342 programmierter Speicherzellen liegen. Beispielsweise können im Hinblick auf eine Unterscheidungsschwelle 381, die bezüglich des Parameters P und gegenüber der idealen Referenz-Unterscheidungsschwelle 38R niedriger ist, Speicherzellen der Verteilung 341, die einen höheren Wert als die Unterscheidungsschwelle 381 aufweisen, falsch interpretiert werden, z.B. innerhalb eines Fehlerbereichs 421. Das gleiche gilt für einen Fehlerbereich 422, der durch Unterscheidungsschwellen gewonnen sein kann, welche gegenüber der Referenz-Unterscheidungsschwelle 38R höher sind, so dass auf eine logische 1 programmierte Speicherzellen als 0 interpretiert werden können, wenn sie durch ein Bewertungselement mit einer hohen oder sogar zu hohen Unterscheidungsschwelle bewertet werden, wie für die Unterscheidungsschwelle 38N illustriert.
-
Speicherzellen innerhalb der Fehlerbereiche 421 und 422 können mit einem Bewertungselement, das selbst eine hohe Abweichung von einem Konstruktionswert aufweist, ein sogenanntes schlechtes Paar (bad pair) bilden. Solche Paare können durch hier beschriebene Beispiele vermieden oder geändert werden.
-
Mit anderen Worten kann beim Auslesen eines nichtflüchtigen Speichers eine analoge Eigenschaft einer Speicherzelle (z.B. ihr Widerstand) durch einen Leseverstärker bewertet werden. Die unterschiedlichen Zellen eines Speicherarrays können (grundsätzlich oder z.B. durch Probleme der Datenaufbewahrung) voneinander abweichende analoge Eigenschaften haben, so dass die Eigenschaften aller Zellen in Kombination Eigenschaftsverteilungen 341 und 342 bilden, wie in 5a gezeigt. Ein Leseverstärker kann bestimmen, ob die analoge Eigenschaft für eine Zelle über oder unter einer Unterscheidungsschwelle 38 liegt, und kann dementsprechend logische Werte zuweisen, z.B. 0 und 1, wie ebenfalls in 5a gezeigt. Ein Satz tatsächlich realisierter Leseverstärker kann einige zufällige und chipbedingte Variationen der exakten Werte der Unterscheidungsschwellen aufweisen, wie in 5b gezeigt. Die tatsächlichen Werte können z.B. um die Sollunterscheidungsschwelle 38R normalverteilt sein. Da sich bei einigen Leseverstärkern die Unterscheidungsschwelle mit der Verteilung 341 oder 342 überschneiden kann, kann dies zu Lesefehlern führen, die es bei idealen Leseverstärkern möglicherweise nicht gäbe.
-
Diese Lesefehler können mithilfe spezieller Codes für die gespeicherten Daten detektiert werden, z.B. mit Fehlerdetektionscodes und/oder Fehlerkorrekturcodes. Manche Codes können das Detektieren und Korrigieren inkorrekter Bits in einem Satz Datenbits bis zu einer bestimmten Zahl ermöglichen. Falls jedoch zu viele Lesefehler gleichzeitig auftreten, ist eine Korrektur mit dem Code möglicherweise nicht mehr durchführbar, obwohl die Fehler noch als solche detektiert werden. Im Fall, dass unkorrigierbare Fehler detektiert werden, kann ein erneuter Versuch oder ein erneutes Lesen eingeleitet werden, in der Hoffnung, dass zufällige Fluktuationen im Leseprozess zu korrekten oder zumindest korrigierbaren Daten in dem gewonnenen zweiten Zustand führen können. Da die eigentliche Ursache für den Lesefehler nicht angegangen wird, kann eine solche Lösung bestenfalls eine begrenzte Erfolgsrate haben.
-
Die eigentliche Ursache des Lesefehlers kann in der mangelhaften Implementierung der Leseverstärker liegen, die z.B. durch Fluktuationen bei der Herstellung verursacht ist, d.h. zumindest teilweise in den voneinander abweichenden Unterscheidungsschwellen. Ein Leseverstärker mit einer besonders stark verschobenen Schwelle kann möglicherweise marginale Zellen, die einen nah am Lesefenster liegenden Analogwert des Parameters bereitstellen, nicht korrekt lesen, z.B. die Leseverstärker 141 und 14N, die durch die Schwellen 381 beziehungsweise 38N dargestellt sind. Es kann erwartet werden, dass nur eine kleine Zahl von Leseverstärkern mit einer kleinen Zahl von marginalen Zellen zusammenfällt, die an diesem Fehler beteiligt sind. Dies ermöglicht, dass Beispiele auf dem Prinzip beruhen, dass die Neuordnung oder Neuzuweisung der Leseverstärker eine hohe Wahrscheinlichkeit dessen bietet, dass der Lesefehler in dem gewonnenen zweiten Zustand nicht vorhanden ist. Im Fall, dass für einige anfänglich gelesene Daten ein Lesefehler detektiert wurde, kann die Einleitung eines erneuten Lesens helfen. Mit einer neuen Zuweisung der Leseverstärker können zumindest einige oder sogar alle Leseverstärker verwendet werden, um die Eigenschaften einer gegenüber dem anfänglichen Lesen unterschiedlichen Zelle zu bewerten. Mit beträchtlicher Wahrscheinlichkeit können die oben beschriebenen Zusammenfälle vermieden werden, und die Daten können bei dem erneuten Lesen korrekt oder zumindest korrigierbar gelesen werden. Falls notwendig, können mehrere erneute Lesungen mit unterschiedlichen Zuweisungen der Leseverstärker ausgelöst werden, bis die Daten korrekt gelesen werden. Zur Implementierung solcher Beispiele kann eine vergleichsweise kleine Logik verwendet werden.
-
6a zeigt ein schematisches Blockdiagramm für die Gewinnung eines ersten Bewertungsergebnisses 441, z.B. in einem ersten Zustand einer Speichervorrichtung 10, 20 und/oder 30. Es sind beispielsweise vier Speicherzellen 121, 122, 123 und 124 durch Verwendung von vier Bewertungselementen 141, 142, 143 und 144 bewertet. Zum besseren Verständnis des Beispiels sind auf den Speicherzellen 121-124 Informationen A, B, C und D gespeichert, wobei jeder Buchstabe ein Teil eines Bits, ein Bit oder ein Satz Bits ist. Wie in Verbindung mit der Bewertungseinheit 18 illustriert, ist in dem ersten Zustand die Information A mit dem Bewertungselement 141 bewertet, wobei die Bewertungselemente 141-144 zum besseren Verständnis mit arabischen Ziffern nummeriert sind. Das bedeutet, die Information A ist durch die Bewertungseinheit 1 bewertet, die Information B mit der Bewertungseinheit 2, die Information C mit der Bewertungseinheit 3 und die Information D mit der Bewertungseinheit 4. Dies kann an der Bewertungseinheit 18 als Sequenz von Informationen A, B, C und D interpretiert werden.
-
6b zeigt ein Beispiel für einen zweiten Zustand der Ausbildung aus 6a, bei dem die Bewertungen der Speicherzellen 121 und 122 einerseits und 123 und 124 andererseits paarweise ausgetauscht wurden. Das bedeutet, die Information A ist mit dem Bewertungselement 142 bewertet, während die Information B mit dem Bewertungselement 141 bewertet ist. Diese Veränderung der Reihenfolge oder Sequenz der Informationen kann durch Verwendung der Bewertungseinheit 18, z.B. der Invers-Neuordnungslogik, gewonnen sein, um die gewonnenen Informationen neu zu ordnen, so dass dennoch in dem zweiten Zustand 442 zu der Sequenz A, B, C und D gelangt wird. Wenn jedoch ein Paar 121/141, 122/142, 123/143 und/oder 124/144 fehlerhaft ist, besteht eine Chance, dass das Bewertungsergebnis 442 in dem zweiten Zustand keinen solchen Fehler, Fehler an anderen Stellen und/oder eine kleinere Menge von Fehlern aufweist. Beispiele sind ohne Einschränkung auch in entgegengesetzter Richtung gültig, d.h. bei einer Änderung aus dem illustrierten zweiten Zustand aus 6b in den ersten Zustand aus 6a. Beispiele ermöglichen ferner eine Veränderung der Verbindung zwischen einer Speicherzelle und einem Bewertungselement, die sich von einem paarweisen Austausch unterscheidet, z.B. als Veränderung auf Ringbasis, z.B. durch Verbinden eines jeden Bewertungselements mit der nächsten Speicherzelle entlang einer spezifischen Richtung, Hinzufügen und/oder Entfernen einer Bewertungseinheit aus der Zuweisung oder auf andere Weise.
-
7 zeigt ein schematisches Flussdiagramm eines Verfahrens 700 gemäß einem Beispiel. Das Verfahren 700 kann beispielsweise zum Betreiben der Vorrichtung 10, 20 und/oder 30 verwendet werden. Bei 710 wird die Mehrzahl von Speicherzellen mit einer ersten Zuweisung von Bewertungselementen in einem ersten Zustand verbunden. Bei 720 wird dieselbe Mehrzahl von Speicherzellen mit einer zweiten Zuweisung der Bewertungselemente und in einem zweiten Zustand so verbunden, dass in dem zweiten Zustand zumindest eine Speicherzelle von der Mehrzahl von Speicherzellen mit einem unterschiedlichen Bewertungselement verbunden ist. Bei 730 wird die Mehrzahl von Speicherzellen in dem ersten Zustand bewertet, um ein erstes Bewertungsergebnis zu gewinnen, und in dem zweiten Zustand wird die Mehrzahl von Speicherelementen in dem zweiten Zustand bewertet, um ein zweites Bewertungsergebnis zu gewinnen. 730 kann unterteilt sein und zum Beispiel teilweise in Verbindung mit 710 ausgeführt werden, was zu dem ersten Zustand führt, und teilweise zusammen mit 720 ausgeführt werden, was zu dem zweiten Zustand führt.
-
8 zeigt ein schematisches Flussdiagramm eines Verfahrens 800 gemäß einem Beispiel, das beispielsweise zum Betreiben der Speichervorrichtung 10, 20 und/oder 30 verwendet werden kann. Bei 810 wird die Mehrzahl von Speicherzellen mit einer ersten Zuweisung von Bewertungselementen und in einem ersten Zustand verbunden. 810 kann 710 entsprechen. Bei 820 kann dieselbe Mehrzahl von Speicherzellen, wie in Verbindung mit 720 beschrieben, mit einer zweiten Zuweisung der Bewertungselemente und in einem zweiten Zustand so verbunden werden, dass in dem zweiten Zustand zumindest eine Speicherzelle von der Mehrzahl von Speicherzellen mit einem unterschiedlichen Bewertungselement verbunden ist. Bei 830 werden Fehlerinformationen aus einem Speicher gelesen, wobei die Fehlerinformationen anzeigen, dass eine Leseoperation mithilfe eines spezifischen Paars aus einer Speicherzelle von der Mehrzahl von Speicherzellen und einer Bewertungseinheit in dem ersten Zustand fehleranfällig ist. Ein Bewertungsergebnis der Mehrzahl von Speicherzellen basiert auf einer Leseoperation mithilfe des zweiten Zustands auf Basis der Fehlerinformationen.
-
Beispiele basieren auf einer Neuordnung oder Neuzuweisung von Bewertungselementen oder Leseverstärkern, falls für einige Daten ein Lesefehler detektiert wurde. Ein nachfolgendes erneutes Lesen derselben Daten kann mit einer unterschiedlichen Zuweisung der Leseverstärker zu den Datenbits durchgeführt werden, was die Wahrscheinlichkeit verbessern kann, dass korrekte oder zumindest korrigierbare Daten oder Daten mit einer kleineren Menge von Fehlern gelesen werden.
-
Stattdessen oder zusätzlich kann zur Verbesserung der Zuverlässigkeit eines Speichers der Bereich der Leseverstärker reduziert werden, wobei eine daraus entstehende niedrigere Genauigkeit der Unterscheidungsschwelle akzeptiert wird, die mit dem beschriebenen Schema des erneuten Lesens ausgeglichen werden kann. Das bedeutet, zumindest ein Teil der vermeidbaren Fehler kann in eine niedrigere Genauigkeit der Bewertungselemente investiert sein. Alternativ oder zusätzlich kann die Leistungsaufnahme der Leseverstärker reduziert werden, wobei wiederum eine daraus entstehende niedrigere Genauigkeit der Unterscheidungsschwellen akzeptiert wird, die auch durch das beschriebene Schema des erneuten Lesens ausgeglichen werden kann.
-
Gemäß einem Beispiel besteht eine Anwendung von hier beschriebenen Beispielen im Testen und Kennzeichnen von Leseverstärkern. Eine ganze Verteilung eines Satzes von Zellen kann mit mehreren Leseverstärkern gelesen werden, wobei sich ihre unterschiedlichen Schwellen direkt zeigen. Dies kann dann sinnvoll oder sogar wichtig werden, wenn die Leseverstärker schon während der Programmierung zum Formen der Verteilungen verwendet werden. In solchen Fällen kann die absolute Zellenverteilung durch die Variationen der Leseverstärker moduliert sein und/oder auf diese hin normalisiert sein, was z.B. Einfluss auf die Programmierlast oder Aufbewahrung hat. Die Leseverstärkervariation kann dann detektierbar sein, indem dieselben Zellen mit unterschiedlichen Leseverstärkern gelesen werden, wie durch hier beschriebene Beispiele vorgesehen.
-
Hier beschriebene Beispiele betreffen eine Verwendung von Abweichungen zwischen Bewertungseinheiten zum Vermeiden oder Reduzieren von Lesefehlern. Die Lehre der vorliegenden Offenbarung ist jedoch nicht hierauf beschränkt. Beispiele betreffen ferner die Bestimmung einer Abweichung, die beispielsweise in Verbindung mit 5b beschrieben ist, zwischen den Bewertungseinheiten im Sinne eines Ausgleichs derselben.
-
9 zeigt ein schematisches Flussdiagramm eines Beispielverfahrens 900 gemäß einem Beispiel. Bei 910 wird eine Speicherzelle mit einem ersten Bewertungselement in einem ersten Zustand verbunden, und es wird, z.B. durch Lesen der Speicherzelle, ein erstes Bewertungsergebnis der Speicherzelle gewonnen. Bei 920 wird dieselbe Speicherzelle mit einem zweiten, unterschiedlichen Bewertungselement in einem zweiten Zustand verbunden. Ein zweites Bewertungsergebnis der Speicherzelle wird z.B. durch die Durchführung eines erneuten Lesens gewonnen. Bei 930 wird eine Abweichung zwischen dem ersten Bewertungsergebnis und dem zweiten Bewertungsergebnis bestimmt, um eine Abweichungsinformation zu gewinnen. Die Abweichungsinformation kann sich auf die digitale Information beziehen, kann sich jedoch insbesondere auf eine Abweichung im Ausleseergebnis des Analogwerts beziehen. Beispielsweise können für die Bestimmung der Abweichungsinformation unterschiedliche Analogwerte verwendet werden, wobei die unterschiedlichen Analogwerte in dem ersten Zustand und in dem zweiten Zustand gewonnen sind. Bei 940 kann die Abweichungsinformation in einem Speicher gespeichert werden. Die Abweichungsinformation kann beispielsweise als Abweichungsinformation 33 in dem Speicher 28 gespeichert werden, der beispielsweise in 4 illustriert ist. Durch diese Abweichungsinformation kann eine Art Korrekturwert vorgesehen sein, der bei der Durchführung weiterer Operationen berücksichtigt werden kann.
-
Auf einer Speichervorrichtung gemäß Beispielen, z.B. der Speichervorrichtung 10, 20, 30 und/oder 40, kann eine Abweichungsinformation, z.B. die Abweichungsinformation 33, gespeichert sein, oder sie kann anderweitig Zugriff darauf haben. Die Abweichungsinformation kann eine Abweichung zwischen einem Verhalten von Bewertungseinheiten anzeigen, z.B. einen Wert, der einen Versatz mit Bezug auf einen Referenzwert wie etwa die Schwelle 38R verursacht. Die Speichervorrichtung, z.B. die Bewertungseinheit, kann dazu ausgebildet sein, das erste Bewertungsergebnis und/oder das zweite Bewertungsergebnis mithilfe der Abweichungsinformation zu korrigieren, z.B. durch deren Anwendung als Korrekturwert und/oder Korrekturfaktor.
-
Das Verfahren 900 kann beispielsweise durch die Speichervorrichtung selbst, jedoch auch durch eine Kalibrierungsvorrichtung irgendeiner Art durchgeführt werden. Eine Speichervorrichtung gemäß Beispielen weist somit zumindest eine Speicherzelle, z.B. eine Referenzzelle, und eine Mehrzahl von Bewertungselementen auf, wobei jedes Bewertungselement mit der Speicherzelle der Speichervorrichtung verbindbar ist. Die Speichervorrichtung weist eine Verbindungseinheit auf, die zum Verbinden der Speicherzelle mit einem ersten Bewertungselement in einem ersten Zustand und zum Verbinden der Speicherzelle mit einem zweiten Bewertungselement in einem zweiten Zustand ausgebildet ist. Die Speichervorrichtung weist ferner eine Bewertungseinheit auf, die zum Gewinnen eines ersten Bewertungsergebnisses der Speicherzelle in dem ersten Zustand und zum Gewinnen eines zweiten Bewertungsergebnisses der Speicherzelle in einem zweiten Zustand ausgebildet ist. Die Bewertungseinheit ist dazu ausgebildet, eine Abweichungsinformation zwischen dem ersten Bewertungsergebnis und dem zweiten Bewertungsergebnis zu bestimmen und eine Abweichungsinformation in einem Speicher der Speichervorrichtung zu speichern. Beispielsweise und mit Bezug auf die Speichervorrichtungen 10, 20, 30 und/oder 40 kann ein Referenzspeicherfeld mit der Verbindungseinheit 16 verbunden sein, das auch Teil der Testvorrichtung sein kann. Die Bewertungselemente 14 können jedoch ein Teil einer später zu kalibrierenden Speichervorrichtung sein. Gemäß einem Beispiel kann die Speichervorrichtung 10, 20, 30 und/oder 40 ihre eigenen Speicherzellen, d.h. das Speicherfeld 12, zur internen Bestimmung verwenden. Beispielsweise kann jede Bewertungseinheit, die dazu angepasst ist, im späteren Betrieb mit einer spezifischen Speicherzelle verbunden zu sein, z.B. mithilfe der unterschiedlichen Zustände, mit Bezug auf die Abweichungsinformationen bewertet oder berücksichtigt werden, wobei die jeweilige Information in einem Speicher wie etwa dem Speicher 28 zu speichern ist. Das bedeutet, eine Speichervorrichtung gemäß Beispielen kann eine Bewertungseinheit aufweisen, die dazu ausgebildet ist, eine Abweichungsinformation für eine selbe Speicherzelle auf Basis unterschiedlicher Bewertungsergebnisse zu bestimmen, die mit unterschiedlichen Bewertungselementen 14 gewonnen sind, und/oder kann dazu ausgebildet sein, eine solche Abweichungsinformation aus einem Speicher zu lesen, wobei die Abweichungsinformation eine Abweichung zwischen einem Verhalten von Bewertungseinheiten anzeigt, um eine Korrektur des ersten Bewertungsergebnisses und/oder des zweiten Bewertungsergebnisses mithilfe der Abweichungsinformation zu ermöglichen.
-
Obwohl das Verfahren 900 in Verbindung mit einer einzelnen Speicherzelle beschrieben ist, kann es auch für eine Mehrzahl von Speicherzellen parallel durchgeführt werden. Das Verfahren 900 kann dazu verwendet werden, zumindest einen Teil oder sogar alle Speicherzellen eines Speicherfelds oder zumindest einen Teil der oder alle Bewertungselemente zu kennzeichnen.
-
Es wird darauf hingewiesen, dass Aktionen der Verfahren 700, 800 und 900 auf jede Weise miteinander kombinierbar sind, d.h. dass die Verfahren 800 und/oder 900 zumindest teilweise zusammen mit dem Verfahren 700 durchgeführt werden können oder umgekehrt, und/oder dass das Verfahren 900 zumindest teilweise zusammen mit dem Verfahren 800 durchgeführt werden kann oder umgekehrt.
-
Obwohl einige Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, ist deutlich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog dazu stellen Aspekte, die im Zusammenhang mit einem Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar.
-
Je nach bestimmten Implementierungsanforderungen können Beispiele der vorliegenden Offenbarung in Hardware oder in Software implementiert sein. Die Implementierung kann mithilfe eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers durchgeführt werden, auf dem beziehungsweise der elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken (oder zusammenwirken können), dass das jeweilige Verfahren durchgeführt wird.
-
Manche Beispiele gemäß der vorliegenden Offenbarung umfassen einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Allgemein können Beispiele der vorliegenden Offenbarung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Beispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten ist ein Beispiel für das Verfahren somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
-
Ein weiteres Beispiel für ein Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
-
Ein weiteres Beispiel für ein Verfahren ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
Ein weiteres Beispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
-
Ein weiteres Beispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
Bei einigen Beispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Beispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bevorzugt durch eine beliebige Hardware-Vorrichtung durchgeführt.
-
Die oben beschriebenen Beispiele sind lediglich darstellend für die Prinzipien der vorliegenden Offenbarung. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass eine Beschränkung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten erfolgt, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden.