DE102010050957A1 - Verfahren und Vorrichtung zur Fehlerkorrektur in einem Speicher - Google Patents

Verfahren und Vorrichtung zur Fehlerkorrektur in einem Speicher Download PDF

Info

Publication number
DE102010050957A1
DE102010050957A1 DE102010050957A DE102010050957A DE102010050957A1 DE 102010050957 A1 DE102010050957 A1 DE 102010050957A1 DE 102010050957 A DE102010050957 A DE 102010050957A DE 102010050957 A DE102010050957 A DE 102010050957A DE 102010050957 A1 DE102010050957 A1 DE 102010050957A1
Authority
DE
Germany
Prior art keywords
ecc
digital
analog
unit
memory
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
DE102010050957A
Other languages
English (en)
Other versions
DE102010050957B4 (de
Inventor
Ferdinando Bedeschi
Paolo Amato
Roberto Gastaldi
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.)
Micron Technology Inc
Original Assignee
Numonyx BV Amsterdam Rolle Branch
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 Numonyx BV Amsterdam Rolle Branch filed Critical Numonyx BV Amsterdam Rolle Branch
Publication of DE102010050957A1 publication Critical patent/DE102010050957A1/de
Application granted granted Critical
Publication of DE102010050957B4 publication Critical patent/DE102010050957B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)

Abstract

Hierin sind ein Verfahren und Vorrichtungen zum Bereitstellen anpassbarer Fehlerkorrektur für Speichermatrizen beschrieben. Bei einem Ausführungsbeispiel weist eine Vorrichtung eine Speichereinrichtung auf, die eine Speichermatrix zum Speichern von Daten hat, und eine Analog-zu-digital-Abtasteinheit, die mit der Speichermatrix gekoppelt ist. Die Analog-zu-digital-Abtasteinheit tastet analoge Signale ab, die zu der Speichermatrix gehören und wandelt die analogen Signale in Verteilungen digitaler Werte um. Eine Fehlerkorrekturcode(ECC)-Einheit empfängt die Verteilungen digitaler Werte von der Analog-zu-digital-Abtasteinheit. Eine einrichtbare nicht flüchtige Nachschlagetabelle erzeugt ECC-Parameter, die Fehlerwahrscheinlichkeitsdaten aufweisen, und stellt die ECC-Parameter der ECC-Einheit zur Fehlerkorrektur bereit. Die Fehlerwahrscheinlichkeitsdaten haben Fehlerwahrscheinlichkeitswerte, die mit den Verteilungen digitaler Werte verknüpft sind. Die ECC-Einheit führt einen ECC-Algorithmus zum Bereitstellen einer Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten aus.

Description

  • HINTERGRUND
  • Gebiet der Erfindung
  • Ausführungsbeispiele der vorliegenden Erfindung betreffen im Allgemeinen das Gebiet der Fehlerkorrektur in einem Speicher. Insbesondere beziehen sich Ausführungsbeispiele der vorliegenden Erfindung auf eine anpassbare Fehlerkorrektur mit analoger Abtastung.
  • Beschreibung des zugehörigen Standes der Technik
  • Elektronische Einrichtungen können eine Fehlerkorrektur zum Zugreifen auf einen Speicher benötigen, der innerhalb dieser Einrichtungen enthalten ist. Ein Fehlerkorrekturcode (ECC, engl.: error-correcting code) oder ein Vorwärtskorrektur-(FEC, engl.: forward error correction)-Code sind redundante Daten, die der Nachricht auf der Senderseite hinzugefügt werden. Wenn die Anzahl der Fehler innerhalb der Fähigkeit des verwendeten Codes liegt, kann der Empfänger die Extrainformation verwenden, um die Stellen der Fehler zu bestimmen und diese zu korrigieren. Fehlerkorrekturcodes werden bei der Computerdatenspeicherung verwendet.
  • Zukünftige Speicher mit hoher Dichte, wie insbesondere nicht flüchtige Speicher, werden hohe Roh-Bit-Fehlerraten in dem Bereich von 10E-3 aufgrund der Technologieskalierung an den Tag legen. Typische ECC-Maschinen funktionieren nicht gut genug für diese Anforderungen. Zusätzlich verursachen unterschiedliche ECC-Anforderungen und unterschiedliche Produktentwicklungen Design-, Entwicklungs-, Test- und Herstellungskostenprobleme sowie eine zusätzliche Produkteinführungszeit.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein oder mehrere Ausführungsbeispiele der vorliegenden Erfindung werden beispielhaft und ohne Beschränkung in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen ähnliche Bezugszeichen ähnliche Elemente angeben und in denen:
  • 1 eine Datenverarbeitungseinrichtung in Übereinstimmung mit einem Ausführungsbeispiel veranschaulicht;
  • 2 eine Vorrichtung veranschaulicht, die einen Speicherzugriff mit anpassbarer Fehlerkorrektur in Übereinstimmung mit einem Ausführungsbeispiel bereitstellt;
  • 3 eine Vorrichtung veranschaulicht, die einen Speicherzugriff mit anpassbarer Fehlerkorrektur in Überstimmung mit einem weiteren Ausführungsbeispiel bereitstellt;
  • 4 Zellstrom- oder Spannungsschwellwertverteilungen und ein mögliches Raster digitaler Werte veranschaulicht, die von einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem Ausführungsbeispiel erzeugt werden;
  • 5 eine beispielhafte Ausführung einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem Ausführungsbeispiel veranschaulicht;
  • 6 Verteilungen von digitalen Werten veranschaulicht, die von einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem weiteren Ausführungsbeispiel erzeugt werden; und
  • 7 ein Verfahren zur Fehlerkorrektur in einer Speichereinrichtung in Übereinstimmung mit einem Ausführungsbeispiel veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Hierin werden ein Verfahren und Vorrichtungen zum Bereitstellen einer anpassbaren Fehlerkorrektur für Speichermatrizen beschrieben. Bei einem Ausführungsbeispiel weist eine Vorrichtung eine Speichereinrichtung auf, die eine Matrix aus Speicherzellen zum Speichern von Daten hat. Die Speicherzellen sind in n Reihen und m Spalten organisiert. Die Vorrichtung weist auch ein Decodiermittel zum Auswählen und geeigneten Vorspannen dieser Zellen auf und eine Analog-zu-digital-Abtasteinheit, die mit der Speichermatrix gekoppelt ist. Die Analog-zu-digital-Abtasteinheit tastet analoge Signale ab, die zu den Speichermatrixzellen gehören (z. B. Strom oder Schwellspannung) und wandelt die analogen Signale in Verteilungen von digitalen Werten um. Die Vorrichtung weist auch eine Fehlerkorrekturcode-(ECC, engl.: error-correcting code)-Einheit auf, die mit der Analog-zu-digital-Abtasteinheit gekoppelt ist. Die ECC-Einheit empfängt die Verteilungen der digitalen Werte von der Analog-zu-digital-Abtasteinheit. Eine einrichtbare Nachschlagtabelle erzeugt ECC-Parameter, die Fehlerwahrscheinlichkeitsdaten aufweisen, und stellt die ECC-Parameter an der ECC-Einheit für die Fehlerkorrektur bereit. Die Fehlerwahrscheinlichkeitsdaten weisen Fehlerwahrscheinlichkeitswerte auf, die zu den Verteilungen der digitalen Werte gehören. Die ECC-Einheit führt einen ECC-Algorithmus aus, um Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bereitzustellen.
  • Die einrichtbare Nachschlagtabelle aktualisiert Fehlerwahrscheinlichkeitsdaten basierend auf den Verteilungen von analogen Signalen. Die abgetasteten analogen Signale, die zu der Speichermatrix und entsprechenden digitalen Werten gehören bzw. mit ihnen verknüpft sind, können sich während der Produktlebensdauer der Speichermatrix z. B. aufgrund der Streuung im Herstellungsprozess oder aufgrund von Variationen bei Spannungs- und/oder Temperaturbetriebsbedingungen verändern. Die einrichtbare Nachschlagetabelle stellt eine große Flexibilität dahingehend bereit, dass sie in der Lage ist, die „Fehlerwahrscheinlichkeit”, die jedem digitalen Wert zugeordnet ist, zu aktualisieren. Im Falle von Variationen bezüglich Betriebstemperatur oder Betriebsspannung können Fehlerwahrscheinlichkeit unter Verwendung von Eingaben verändert werden, die von einem Spannungs- und Temperatursensor kommen, um die Nachschlagetabellenwerte zu aktualisieren.
  • 1 veranschaulicht eine Datenverarbeitungseinrichtung mit Speicherzugriff und Fehlerkorrektur in Übereinstimmung mit einem Ausführungsbeispiel. Die Datenverarbeitungseinrichtung 100 weist eine Verarbeitungseinheit 110 auf, die einen ersten und einen zweiten Prozessorkern 116 und 118 hat, eine Hoststeuerung 119 und einen Systemspeicher 120, der mit der Verarbeitungseinheit 110 gekoppelt ist. Die Hoststeuerung 119 kann intern bezüglich der Verarbeitungseinheit 110 sein oder extern zu der Verarbeitungseinheit 110. Der erste und zweite Prozessorkern 116 und 118 weist eingebettete nicht flüchtige Speicher 130 bzw. 132 auf. Der Systemspeicher 120 weist eine Schalteinrichtung 122, welche eine integrierte Schalteinrichtung sein kann, und verschiedene Arten von Speicher auf (z. B. DRAM 124, RAM 126, ROM 128). Die Schalteinrichtung 122 stellt einen nicht flüchtigen Speicherzugriff (z. B. NVM 123) mit anpassbarer Fehlerkorrektur unter Verwendung einer Analog-zu-digital-Abtasteinheit bereit, einer Nachschlagetabelle und einer ECC-Einheit. Diese Komponenten werden detailliert in Verbindung mit den 2, 3 und 5 erörtert. Die anpassbare Fehlerkorrektur der vorliegenden Offenbarung kann auch für das Zugreifen auf die Speicher 130 und 132 implementiert sein und sie kann intern zu dem NVM 123 sein oder von der Hoststeuerung 119 betrieben werden.
  • Die Datenverarbeitungseinrichtung 100 kann wahlweise einen Sende-Empfänger 112 aufweisen, der mit der Verarbeitungseinheit 110 gekoppelt ist. Der Sende-Empfänger 112 empfängt mit Antennen 114 Signale über den Äther und weist einen Übertrager 160 und einen Empfänger 162 auf. Wie bei diesem drahtlos-Ausführungsbeispiel gezeigt ist, weist die Datenverarbeitungseinheit 100 eine oder mehrere Antennenstrukturen 114 auf, um eine Funkkommunikation mit anderen über den Äther Datenverarbeitungseinrichtungen zu ermöglichen. Als solche kann die Datenverarbeitungseinrichtung 100 als eine zellulare Einrichtung betrieben werden oder als eine Einrichtung, die in einem Drahtlosnetzwerk betrieben wird. Die Funksubsysteme, die in derselben Plattform der Einrichtung 100 zusammengestellt sind, stellen eine Kommunikationsfähigkeit mit unterschiedlichen Frequenzbändern in einem RF/Ortsraum mit anderen Einrichtungen in einem Netzwerk bereit. Es sollte verstanden werden, dass der Schutzbereich der vorliegenden Erfindung nicht auf die Arten von, die Anzahl von oder die Frequenz der Kommunikationsprotokolle beschränkt ist, die von der Datenverarbeitungseinrichtung 100 verwendet werden können.
  • Das Ausführungsbeispiel veranschaulicht die Kupplung der Antennenstruktur 114 mit einem Sende-Empfänger 112, um Modulation/Demodulation unterzubringen. Im Allgemeinen kann ein analoger Frontend-Sende-Empfänger 112 eine alleinstehende diskrete Funkfrequenz (RF, engl.: radio frequency) oder eine integrierte analoge Schaltung sein oder der Sende-Empfänger 112 kann mit einem Prozessor, der einen oder mehrere Prozessorkerne 116 und 118 aufweist, eingebettet sein. Die mehreren Kerne ermöglichen es, zu verarbeitende Arbeitslasten über die Kerne zu verteilen und Basisbandfunktionen und Anwendungsfunktionen handzuhaben. Eine Schnittstelle kann verwendet werden, um Kommunikation oder Information zwischen dem Prozessor und dem Speicher in einem Systemspeicher 120 bereitzustellen.
  • Der Systemspeicher 120 kann durch eine oder mehrere unterschiedliche Arten von Speicher vorgesehen sein und kann sowohl wahlweise DRAM, RAM und/oder ROM als auch die Schalteinrichtung 122 aufweisen, die einen nicht flüchtigen Speicher (NVM, engl.: nonvolatile memory) 123 hat. Der NVM 123 kann eine Phasenwechselmaterial bzw. einen Speicherstoff (engl.: Phase change material) aufweisen. Der NVM 123 kann als ein Phasenwechselspeicher (PCM, engl. Phase change memory), Phasenwechsel-Schreib-Lesespeicher (PRAM oder PCRAM, engl.: Phase change random access memory), Ovonic Unified Memory (OUM) oder chalkogenider Schreib-Lesespeicher (C-RAM, engl.: chalcogenide random access memory) bezeichnet werden. Der NVM 123 kann einen Flash-Speicher aufweisen (z. B. NOR, NAND), ein Festkörperlaufwerk (engl.: solide state drive) und einen Karten-/Stickspeicher.
  • 2 veranschaulicht eine Vorrichtung, die einen Speicherzugriff mit anpassbarer Fehlerkorrektur in Übereinstimmung mit einem Ausführungsbeispiel bereitstellt. Die Vorrichtung 200 (z. B. Schalteinrichtung 122) weist eine oder mehrere Matrizen 210 aus Speicherzellen auf (z. B. NVM 123), die Daten speichern. Eine Reihenauswahleinheit 220 und eine Spaltenauswahl- und Vorspanneinheit 230 werden für den Zugriff auf die Matrix 210 verwendet. Lese- und Schreibschaltungen und die Logik 240 steuern die Reihen- und Spaltenauswahleinheiten zum Bereitstellen des Speicherzugriffs. Eine Analog-zu-digital-Abtasteinheit 250 ist mit der Speichermatrix 210 gekoppelt. Die Analog-zu-digital-Abtasteinheit 250 tastet analoge Signale ab, die zu den Speicherzellen der Speichermatrix gehören, und wandelt die analogen Signale in eine oder mehrere Verteilung von digitalen Werten um, wie detaillierter in Verbindung mit der Beschreibung von 4 bis 6 beschrieben werden wird. Die analogen Signale können Verteilungen von Strom- oder Spannungswerten aufweisen, die mit logischen Zuständen (z. B. 0, 1, 00, 01, 10, 11) der Speicherzellen verknüpft sind. Benutzerdaten- und Paritätsinformtion kann ebenfalls von der Matrix 210 an die Analog-zu-digital-Abtasteinheit 250 gesendet werden.
  • Bei einem Ausführungsbeispiel ist eine Fehlerkorrekturcode-(ECC)-Einheit 260 mit der Analog-zu-digital-Abtasteiheit 250 gekoppelt. Die ECC-Einheit 260 weist eine Codier- und Decodiermaschine auf, die die Verteilungen von digitalen Werten (z. B. N0[k:0], N1[k:0], ... Ni[k:0]) von der Analog-zu-digital-Abtasteinheit 250 empfängt und einen ECC-Algorithmus ausführt, um eine Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bereitzustellen, die von der Nachschlagetabelle 270 für eine oder mehrere Matrizen bereitgestellt werden. Die Nachschlagetabelle kann durch Aktualisierung der Verteilung digitaler Werte aktualisiert werden. Der ECC-Algorithmus kann in der ECC-Einheit im Speicher gespeichert sein (z. B. ROM) und mit einem Mikrokontroller ausgeführt werden oder der Algorithmus kann als eine endliche Zustandsmaschine oder als eine boolsche Schaltung implementiert werden.
  • Eine einrichtbare nicht flüchtige Nachschlagetabelle 270 ist mit der ECC-Einheit 260 gekoppelt. Die einrichtbare nicht flüchtige Nachschlagetabelle 270 erzeugt ECC-Parameter (z. B. ECC-Parameter 1[j:0], ... ECC-Parameter i[j:0]), die die Fehlerwahrscheinlichkeitsdaten aufweisen, und stellt die ECC-Parameter an der ECC-Einheit 260 für die Fehlerkorrektur bereit. Die einrichtbare nicht flüchtige Nachschlagetabelle 270 kann extern sein oder mit der ECC-Einheit 260 integriert sein. Die einrichtbare nicht flüchtige Nachschlagetabelle aktualisiert Fehlerwahrscheinlichkeitsdaten basierend auf Variationen in den Zellströmen oder Variationen bei dem Widerstand oder der Schwellwertspannungsverteilung in der Matrix. Diese Variationen können z. B. während des Wafertests erkannt werden oder nach der Initiierung der Vorrichtung oder nach einem gegebenen Lesezustand. Darüber hinaus können die Fehlerwahrscheinlichkeitsdaten als eine Folge auf Variationen bei der Betriebstemperatur und/oder -spannung aktualisiert werden, die von einem geeigneten Spannungssensor 280 und Temperatursensor 290 erkannt werden. Die Fehlerwahrscheinlichkeitswerte basieren auf einer Distanz eines digitalen Wertes in einer Verteilung von einer Bezugsebene bzw. Bezugshöhe, wie detaillierter in Verbindung mit der Beschreibung von 4 beschrieben werden wird.
  • Bei einem Ausführungsbeispiel tastet die Analog-zu-digital-Abtasteinheit 250 analoge Signale ab, die zu den Speicherzellen der Speichermatrix gehören, um Anfangs-Digitalwerte bereitzustellen. Bei anderen Ausführungsbeispielen tastet die Analog-zu-digital-Abtasteinheit analoge Signale, die zu den Speicherzellen der Speichermatrix gehören, basierend auf Variationen bei den Zellenströmen oder Variationen bei dem Widerstand oder der Schwellwertspannungsverteilung in der Matrix ab, um die digitalen Werte zu aktualisieren. Die analogen Signale und die entsprechenden digitalen Werte können sich während der Produktlebensdauer der Speichermatrix verändern. Unterschiedliche Arten von Produkten mit unterschiedlichen Arten von Speichern können ebenfalls unterschiedliche analoge Signale haben.
  • Die Nachschlagetabelle 270 stellt eine große Flexibilität bei der Aktualisierung der „Fehlerwahrscheinlichkeit”, die jedem digitalen Wert zugeordnet ist, sogar während der Produktlebensdauer bereit. Prozessvariationen, unterschiedliche Produktspezifikationen (z. B. weniger oder mehr Lese-/Schreibzyklen, unterschiedliche Temperaturbereiche, Prozessparameterfeinabstimmung usw.) werden nachverfolgt und in der Nachschlagetabelle abgespeichert. Es können unterschiedliche Zuverlässigkeitskriterien sowie unterschiedliche erwartete programmierte Speicherzellverteilungen mit Fehlerwahrscheinlichkeiten pro gegebenen Lesezustand korreliert werden und diese Information kann an die ECC-Einheit gesendet werden. Die ECC-Einheit verwendet diese Information aus der Nachschlagetabelle, um die Fehlerkorrektur für die bestimmten Anforderungen ohne irgendeinen neuen Maskenbefehl zu optimieren. Die nachfolgende Produktqualifikationsphase ist ebenfalls stark verringert.
  • Zum Beispiel kann ein analoges Lesen und eine Umwandlung in digitale Werte während der Sortierung elektrischer Wafer, der elektrischen Charakterisierung oder der Produktqualifikation ausgeführt werden. Eine Speicherzellenverteilung nach der Programmierung, wie beispielsweise eine Strom- oder Spannungsverteilung, kann in unterschiedliche und diskrete Populationen von Zellen partitioniert werden, die jeweils eine unterschiedliche statistische Wahrscheinlichkeit haben, korrekt in einen logischen Zustand nach einem Programmierpuls oder Algorithmus platziert zu sein. Auf diese Art und Weise können die Wahrscheinlichkeiten in der Nachschlagetabelle nützlich zusammengestellt werden und während der Fehlerkorrektur durch die ECC-Einheit verwendet werden.
  • 3 veranschaulicht eine Vorrichtung, die einen Speicherzugriff mit Fehlererkennung in Übereinstimmung mit einem weiteren Ausführungsbeispiel bereitstellt. Die Vorrichtung 300 (z. B. Schalteinrichtung 122) weist eine oder mehrere Matrizen 310 aus Speicherzellen auf, die Daten speichern. Eine Reihenauswahleinheit 320 und eine Spaltenauswahl- und Vorspanneinheit 330 werden für den Zugriff auf die Matrix 310 verwendet. Lese- und Schreibschaltungen und Logik 340 steuern die Reihen- und Spaltenauswahleinheiten zum Bereitstellen von Speicherzugriff. Eine Analog-zu-digital-Abtasteinheit 350 ist mit der Speichermatrix 310 gekoppelt. Die Analog-zu-digital-Abtasteinheit 350 tastet analoge Signale ab, die zu den Speicherzellen der Speichermatrix gehören, und wandelt die analogen Signale in Verteilungen von digitalen Werten um.
  • Bei einem Ausführungsbeispiel ist eine Fehlerkorrekturcode-(ECC)-Einheit 360 mit der Analog-zu-digital-Abtasteinheit 350 gekoppelt. Die ECC-Einheit 360 empfängt die Verteilungen digitaler Werte (z. B. N0[k:0], N1[k:0], ... Ni[k:0]) von der Analog-zu-digital-Abtasteinheit 350 und empfängt Fehlerwahrscheinlichkeitsdaten von der Nachschlagetabelle 370. Die ECC-Einheit 360 führt einen ECC-Algorithmus aus, um Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bereitzustellen, welche mit jeder aktualisierten Verteilung digitaler Werte aktualisiert werden können.
  • Eine einrichtbare nicht flüchtige Nachschlagetabelle 370 empfängt die Verteilungen digitaler Werte von der Einheit 350. Die einrichtbare nicht flüchtige Nachschlagetabelle 370 erzeugt ECC-Parameter (z. B. ECC-Parameter 1[j:0], ... ECC-Parameter i[j:0]), die die Fehlerwahrscheinlichkeitsdaten aufweisen, und stellt die ECC-Parameter an der ECC-Einheit 360 zur Fehlerkorrektur bereit. Die einrichtbare nicht flüchtige Nachschlagetabelle 370 kann extern sein oder integriert mit der ECC-Einheit 360. Die einrichtbare nicht flüchtige Nachschlagetabelle aktualisiert Fehlerwahrscheinlichkeitsdaten basierend darauf, wenn die Verteilung digitaler Werte aktualisiert werden. Zum Beispiel können die Fehlerwahrscheinlichkeitsdaten als eine Folge auf Variationen bei der Betriebstemperatur und/oder -spannung aktualisiert werden, die von einem geeigneten Spannungssensor 380 und Temperatursensor 390 erkannt werden.
  • Bei einem weiteren Ausführungsbeispiel werden die Verteilungen digitaler Werte nur an der Nachschlagetabelle 370 und nicht an der ECC-Einheit 360 bereitgestellt. Die ECC-Einheit 360 greift auf die Tabelle 370 zu, um die Fehlerwahrscheinlichkeitsdaten zu aktualisieren, und sie kann diese Daten in einem Speicher abspeichern, der in der ECC-Einheit 360 angeordnet ist.
  • Zukünftige Speicher mit großen Kapazitäten (z. B. NAND, NOR, PCM) werden eine höhere Fehlerwahrscheinlichkeit beim korrekten Empfangen der gespeicherten Daten haben, was als Roh-Bit-Fehlerrate (RBER, engl.: raw bit error rate) bezeichnet wird, da die Technologie an ihre Grenzen geführt wird. Gewöhnlicherweise wird dieses Problem dadurch gehandhabt, dass eine ECC-Maschine implementiert wird, die in der Lage ist, eine Anzahl von Fehlern über einen Datenstring zu korrigieren. Als ein Resultat der ECC-Aktion ist die finale Bitfehlerrate eine Größenordnung niedriger als die Startfehlerrate. Am meisten verbreitete ECC-Maschinen basieren auf einem Code (z. B. Bose Ray-Chaudhuri Hocquenghem), der effektiv ist, vorausgesetzt, dass die Roh-Bit-Fehlerrate (RBER) ist nicht zu hoch. Allerdings wird aufgrund der Technologieskalierung diese Bedingung in naher Zukunft nicht mehr erfüllt werden.
  • Es kann eine andere Klasse von ECC-Codes verwendet werden, die bei einer höheren RBER effektiver sind, nämlich die softdecodierten Codes (z. B. die sog. Konvolutionscodes), aber damit sie funktionieren, müssen sie als Eingabe nicht nur einen String von 0 und 1 haben, sondern auch die „Zuverlässigkeit” der Daten oder in anderen Worten, was ist die Wahrscheinlichkeit, dass eine 0 (oder 1), die empfangen wurde, „wirklich” eine „0” oder „1” ist, die übertragen wurde. Dies kann nicht mit einem herkömmlichen Abtastverstärker bewerkstelligt werden, sondern es bedarf eines neuen Konzepts, wie es in 4 gezeigt ist.
  • 4 veranschaulicht Verteilungen digitaler Werte, die von einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem Ausführungsbeispiel erzeugt werden. Der gesamte Raum analoger Werte (z. B. Ströme, Widerstände oder Schwellwertspannungen), die eine typische Speichermatrix von Zellen annehmen kann, ist in einer Anzahl N von „Anteilen” (engl.: „slices”) partioniert, die durch einen binären Code identifiziert sind, so dass jede Zelle in den Verteilungen von der Abtasterschaltung einem definierten Anteil zugeordnet wird. Jeder Anteil ist durch eine unterschiedliche „Fehlerwahrscheinlichkeit” der repräsentierten Daten charakterisiert, basierend auf der „Distanz” dieses bestimmten Anteils von der Bezugsebene bzw. Bezugshöhe 410. Zum Beispiel werden die Daten (z. B. 420 und 422), die zu den Anteilen gehören, die näher an der Bezugsebene bzw. Bezugshöhe 410 sind, eine höhere Fehlerwahrscheinlichkeit haben und eine niedriger Zuverlässigkeit, da es wahrscheinlicher ist, dass diese das Ergebnis eines Fehlers beim Lesen sind, da die Abtastgenauigkeitsgrenze oder die Existenz von „Ausläufern” (engl.: „tails”) von einer der Verteilungen die Bezugsebene bzw. Bezugshöhe durchquert. Die Daten (z. B. 430, 432, 434), die zu den Anteilen gehören, die weiter von der Bezugsebene bzw. Bezugshöhe 410 weg angeordnet sind oder nahe einem Anteil mit maximaler Population, werden eine niedrigere Fehlerwahrscheinlichkeit haben und eine höhere Zuverlässigkeit, da es weniger wahrscheinlich ist, dass sie das Ergebnis eines Fehlers beim Lesen sind. Die Daten (z. B. 440 und 442), die zu den Anteilen gehören, die nahe an einem Zwischenpopulationsanteil sind, werden eine moderate Fehlerwahrscheinlichkeit haben und eine moderate Zuverlässigkeit.
  • Bei manchen Ausführungsbeispielen weist die Nachschlagetabelle ein reprogrammierbares (NVM)-Register auf, wo die Fehlerwahrscheinlichkeiten oder bestimmte Parameter, die zu den Fehlerwahrscheinlichkeiten der Anteile gehören, gespeichert sind. Die digitalen Werte in der Nachschlagetabelle werden verwendet, um eine gegebene Fehlerwahrscheinlichkeit auszuwählen oder eine andere nützliche Information (z. B. ECC-Parameter [k:0]). Die ECC-Parameter können mit anderer ähnlicher Information kombiniert werden, die von dem gesamten Codewortlesen aus der Speichermatrix kommt und an die ECC-Einheit gesendet wird.
  • Bei manchen Ausführungsbeispielen sind die Anteile nicht a priori fest, sondern können sich von Einrichtung zu Einrichtung oder während der Einrichtungslebensdauer ändern.
  • Die ECC-Einheit kann die Information über den Anteil, wo eine bestimmte Zelle angeordnet ist, und die zugehörige Fehlerwahrscheinlichkeit und andere Information (z. B. Paritätsinformation abrufen, N Anzahl von Anteilen, Produktdatenblattinformation usw.) aus der Nachschlagetabelle, kann sie kombinieren und dann einen Konvolutionscode implementieren, um die Bitfehlerrate effektiv zu verringern. Die Nachschlagetabelle stellte eine signifikante Flexibilität bei der Veränderung der „Fehlerwahrscheinlichkeit” bereit, die jedem Anteil zugeordnet ist, sogar während der Produktlebensdauer entsprechend dem Modell der Speicherzellenmatrix, den Störungsfaktoren, den Prozessvariationen, der Schreibgeschwindigkeitsanforderungen, der Haltbarkeit und der allgemeinen Zuverlässigkeitsspezifikationen usw. Folglich vergrößert das vorliegende Design stark die Effektivität der ECC-Einheit selbst. Die Nachschlagetabelle (z. B. nicht flüchtige Register) ist auf verschiedene Arten anpassbar (z. B. durch Die, durch Wafer, durch Menge).
  • Ein ECC, der die Zuverlässigkeitsinformation (z. B. Wahrscheinlichkeiten, Wahrscheinlichkeitswerte usw.) berücksichtigt, wird als Soft-Decision Algorithmus bezeichnet. Das vorliegende ECC-Design verwendet Softdecodierung. ECC-Maschinen, die nur empfangene Bitwerte verwenden, werden Hard-Decision Algorithmen genannt. Allgemein kann die Softdecodierung eine Verstärkung von bis zu 3 dB bei Signal-zu-Rauschen-Verhältnissen im Vergleich zur Harddecodierung bereitstellen. Mit anderen Worten kann eine Hard-Decision ECC dieselbe Leistung wie die eines Soft-Decision ECC liefern, der bei einer Bitfehlerrate arbeitet, die drei Größenordnungen höher ist. Soft-Decision Techniken schließen Konvolutionscodes mit ein, Trellis-codierte Modulation, Turbocodes und Niedrigdichte-Paritätsüberprüf-(LDPC, engl.: low-density parity check)-Codes. Die effektive Fähigkeit zum Erzeugen von Zuverlässigkeitsinformation ermöglicht die Anwendung von Soft-Decision ECC sogar für eine ECC-Steuerung auf dem Chip. Das vorliegende Design kann für verketteten oder nicht verketteten Code (engl.: concatenated or non-concatenated) verwendet werden.
  • Frühere Ansätze zur Fehlerkorrektur verwenden keine Nachschlagetabelle. Die Evaluierung von Fehlerwahrscheinlichkeiten wird mittels mathematischer Annahmen bewerkstelligt, z. B. durch die Annahme einer Gaußschen Verteilung. Auf diese Art und Weise gibt es keine Möglichkeit, die Fehlerwahrscheinlichkeiten an eine genauere charakterisierungsbasierte Modellierung der Matrixverteilungen anzupassen oder diese als ein Ergebnis von Modifikationen äußerer Bedingungen (z. B. wie all die oben erwähnten) zu verändern.
  • 5 veranschaulicht eine beispielhafte Ausführung einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem Ausführungsbeispiel. Analoge Signale werden aus den Speicherzellen abgetastet und bilden die Eingabe 510 in der Angabe des Stroms Icell oder der Spannung Vcell. Eine Strom- oder Spannungsrampe 520, In(x), wird zum Umwandeln der aus den Speicherzellen abgetasteten Ströme oder Spannungen in digitale Werte verwendet. Ein Digital-zu-analog-Generator und -Abtasteinheit 530 empfängt die Eingabe 510 und eine Strom- oder Spannungsstufe (oder ein kontinuierliches Rampen)-Eingabesignal 512. Die Einheit 530 gibt ein Stoppsignal aus, das als eine Eingabe für eine N-Generationseinheit 540 empfangen wird. Diese Einheit 540 empfängt auch eine Startsignaleingabe.
  • Bei einem Ausführungsbeispiel erzeugt die Einheit 530 eine analoge Ebene bzw. Höhe eines Strom- oder Spannungsrampensignals 520, die von dem Anfangswert von N und einem Bezugseingabesignal Istep (Vstep) 512 abhängt. Das erzeugte Rampensignal 520 entspricht N mal Istep (Vstep) 512 und wird als eine Vergleichsebene bzw. Vergleichshöhe verwendet; N ist eine Funktion von zwei logischen Signalen, Start und Stopp, und einem Taktsignal. N ist 0, wenn das Startsignal 0 ist. N wird um 1 bei jedem Taktzyklus erhöht (N = N + 1), wenn der Strom der Speicherzelle (Icell) 510 größer als der erzeugte Strom N·Istep ist und es wird ein neuer Strom der gleich (N + 1) × Istep ist erzeugt. Diese Bedingung, bei der N erhöht wird, entspricht der, dass das Startsignal gleich 1 ist und das Stoppsignal gleich 0 ist. Die obige Schleife wird weiter durchlaufen bis der Zellenstrom niedriger als die erzeugte Höhe (bzw. Ebene) ist. Wenn der Zellenstrom gleich dem Vergleichsstrom ist und diesen übersteigt, wird ein Stoppsignal durchgesetzt, wird der erzeugte Strom, der gleich N·Istep ist, konstant gehalten (N bleibt als N) und der Zellenstrom wird in eine n-Bit digitale Ausgabe quantisiert, welche verriegelt ist, wodurch dann N sich selbst darstellt. Dasselbe Prinzip kann angewendet werden, wenn abgetastete und erzeugte Stromhöhen durch abgetastete und erzeugte Spannungshöhen ersetzt werden.
  • 6 veranschaulicht Verteilungen digitaler Werte, die von einer Analog-zu-digital-Abtasteinheit in Übereinstimmung mit einem weiteren Ausführungsbeispiel erzeugt werden. Der gesamte Raum von 00, 01, 10 und 11 logischen Zuständen für eine typische Mehrebenen (z. B. 2 Bits/Zelle in diesem Fall 1,5 Bits/Zelle, 3 Bits/Zelle, 4 Bits/Zelle usw.) Speichermatrix aus Zellen (z. B. PCM) wird in eine Anzahl von N „Anteilen” (engl.: „slices”) partioniert, so dass jede Zelle in den Verteilungen von der Abtastschaltung einem definierten Anteil zugeordnet wird. Jeder Anteil ist durch eine unterschiedliche „Fehlerwahrscheinlichkeit” der repräsentierten Daten charakterisiert, basierend auf der „Distanz” des bestimmten Anteils von einer Bezugsebene bzw. Bezugshöhe oder einem Abstand bzw. Begrezung. Zum Beispiel sind Abstände bzw. Begrenzungen 610, 620 und 630 durch Bezugshöhen 612, 614, 622, 624, 632 bzw. 634 definiert.
  • Bei einem Ausführungsbeispiel veranschaulicht 6 eine Stromrampe, wenn das Zellenspeicherelement bei Vsafe gleich 450 Millivolt für eine Mehrebenenzellen (MLC, engl.: multi-level cell) Speicher (z. B. PCM) vorgespannt wird. Insbesondere hat eine 2 Bits/Zell-Einrichtung vier logische Zustände (z. B. 00, 01, 10 und 11). Die PCM-Speicherzellen können als ein variabler Widerstand gebildet sein, der unterschiedliche Werte in Abhängigkeit von der Phase des chalkogenischen Materials annehmen kann. Wenn das Material amorph ist, welches einem Rücksetzzustand 00 entspricht, ist der zugehörige Widerstand sehr hoch, im Bereich von einigen Hundert von Kiloohm bis zu mehr als einem Megaohm. Wenn das Material kristallin ist, ist der zugehörige Widerstand im Bereich von einigen Kiloohm (z. B. weniger als 15 Kiloohm). Es wird ein Strom-(oder Spannungs)-Puls geeigneter Form, Breite und Amplitude verwendet, um von einer Phase zur anderen zu schalten. für den MLC-Betrieb werden Zwischenzustände verwendet und diese Zustände sind durch Zwischenwiderstandswerte gekennzeichnet. Zum Beispiel hat ein Rücksetzzustand 00 einen Widerstand der größer als 200 Kiloohm ist. Ein erster Zwischenzustand 01 hat einen Widerstand zwischen 35 und 50 Kiloohm. Ein zweiter Zwischenzustand 10 hat einen Widerstand zwischen 20 und 25 Kiloohm. Ein Setzzustand 11 hat einen Widerstand, der kleiner als 16 Kiloohm ist.
  • Die Daten, die in einen Anteil fallen, der einen Widerstand in einer der Begrenzungen oder nahe eine der Begrenzungen hat, wird eine höhere Fehlerwahrscheinlichkeit und eine niedriger Zuverlässigkeit haben, da es wahrscheinlicher ist, dass diese Daten das Ergebnis eines Fehlers beim Lesen sind, verglichen zu Daten, die in einen Anteil (z. B. 12) fallen, der einen Widerstand in der Mitte einer der logischen Zustände hat. Der Übergang zwischen unterschiedlichen logischen Zuständen kann auch durch relative Wahrscheinlichkeiten auf eine kontinuierliche Art und Weise ohne Spezifizierung eines Begrenzungsfensters betrieben werden.
  • 7 veranschaulicht ein Verfahren zur Fehlerkorrektur bei einer Speichereinrichtung, die eine Speichermatrix in Übereinstimmung mit einem Ausführungsbeispiel hat. Das Verfahren weist bei Block 702 das Speichern von Daten in der Speichermatrix auf. Das Verfahren weist bei Block 704 das Abtasten analoger Signale auf, die zu der Speichermatrix gehören, unter Verwendung einer Analog-zu-digital-Abtasteinheit. Als nächstes weist das Verfahren bei Block 706 das Umwandeln der analogen Signale in die Verteilung digitaler Werte unter Verwendung der Analog-zu-digital-Abtasteinheit auf. Zum Beispiel kann jede Verteilung mit einem logischen Zustand (z. B. 0, 1, 00, 01, 10, 11) einer einzelnen oder einer Mehrebenenspeichermatrix verknüpft sein. Beim Block 708 sendet die Analog-zu-digital-Abtasteinheit die Verteilungen digitaler Werte an eine Fehlerkorrekturcode-(ECC)-Einheit. Bei Block 710 stellt eine Nachschlagetabelle ECC-Parameter, die Fehlerwahrscheinlichkeitsdaten aufweisen, die mit jedem digitalen Wert verknüpft sind, an der ECC-Einheit bereit.
  • Die ECC-Einheit führt einen ECC-Algorithmus aus, um eine Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bei Block 712 bereitzustellen. Bei einem Ausführungsbeispiel wird die nicht flüchtige Nachschlagetabelle mit Fehlerinformation, die zu der Speichermatrix gehört, nach Initialisierung der Speichereinrichtung oder nach einem gegebenen Lesezustand oder als eine Folge auf Variationen bei der Betriebsspannung oder -temperatur, die durch einen geeigneten Spannungssensor bzw. einen Temperatursensor erkannt wird, bei Block 714 aktualisiert. Die einrichtbare nicht flüchtige Nachschlagetabelle aktualisiert Fehlerwahrscheinlichkeitsdaten basierend auf den Verteilungen digitaler Werte mit Fehlerwahrscheinlichkeitswerten, die auf einer Distanz eines digitalen Werts in der Verteilung von einer Bezugshöhe basieren, wie es in den 4 und 6 veranschaulicht ist.
  • Einige Bereiche der detaillierten Beschreibung sind im Hinblick auf Algorithmen und symbolische Darstellungen von Operationen auf Datenbits oder binären digitalen Signalen innerhalb eines Computerspeichers dargestellt. Diese Beschreibungen von Algorithmen und Darstellungen können die Techniken sein, die vom Fachmann auf dem Datenverarbeitungsgebiet verwendet werden, um die Substanz ihrer Arbeit anderen Fachmännern zu übertragen.
  • Ein Algorithmus wird hier und im Allgemeinen als eine selbstkonsistente Abfolge von Handlungen oder Operationen betrachtet, die zu einem gewünschten Ergebnis führen. Dies schließt physikalische Manipulationen physikalischer Einheiten mit ein. Gewöhnlicherweise, wenn auch nicht notwendigerweise, nehmen diese Einheiten die Form von elektrischen oder magnetischen Signalen an, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen und auf sonstige Weise manipuliert zu werden. Es hat sich bei Zeiten als praktisch erwiesen, in erster Linie aus Gründen der gemeinsamen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Nummern oder dergleichen zu bezeichnen. Es sollte allerdings verstanden werden, dass alle diese und ähnlichen Ausdrücke mit der geeigneten physikalischen Einheit verknüpft werden sollen und sie nur bequeme Bezeichnungen darstellen, die auf diese Einheiten angewendet werden.
  • Solange es nicht spezifisch anders ausgedrückt ist, sollte begrüßt werden, dass Diskussionen innerhalb der Unterlagen, die Ausdrücke wie beispielsweise „verarbeiten”, „berechnen”, „ausrechnen”, „bestimmen” oder dergleichen verwenden, sich auf Handlungen und/oder Verarbeitungen eines Computer oder Computersystems beziehen oder eine ähnliche elektronische Computereinrichtung, die Daten, die als physikalische, wie beispielsweise elektronische, Einheit innerhalb der Register des Computersystems und/oder in Speichern dargestellt sind, in andere Daten manipulieren und/oder transformieren, die auf ähnliche Art und Weise als physikalische Einheiten innerhalb des Speichers des Computersystems, Register oder andere derartige Informationsspeicher, Übertragungs- oder Anzeigeeinrichtungen dargestellt sind.
  • Ausführungsbeispiele der vorliegenden Erfindung können Vorrichtung zum Ausführen der hierin beschriebenen Operationen aufweisen. Eine Vorrichtung kann spezifisch für den gewünschten Zweck konstruiert sein oder sie kann eine Mehrzweckcomputereinrichtung umfassen, die wahlweise aktiviert oder von einem Programm neu konfiguriert wird, das in der Einrichtung gespeichert ist. Ein derartiges Programm kann in einem bzw. auf einem Speichermedium gespeichert werden, wie beispielsweise aber nicht begrenzt auf, jede Art von Disk, einschließlich Floppy-Disk, optische Disk, Nurlesekompaktspeicher (CD-ROM, engl.: compact disc read only memories), magnetooptische Disk, Nurlesespeicher (ROM, engl.: read only memories), Schreib-Lesespeicher (RAM, engl.: random access memories), elektrisch programmierbare Nurlesespeicher (EPROM, engl.: electrically programmable read-only memories), elektrisch löschbare und programmierbare Nurlesespeicher (EEPROM, engl.: electrically erasable and programmable read-only memories), magnetische oder optische Karten oder jede andere Art von Medium, das zum Speichern elektronischer Befehle geeignet ist und in der Lage ist, mit einem Systembus für eine Computereinrichtung gekoppelt zu werden.
  • Es Gebrauch von den Ausdrücken „gekoppelt” und „verbunden” zusammen mit deren Ableitungen gemacht verwendet. Es sollte verstanden werden, dass diese Ausdrücke nicht als Synonyme füreinander gedacht sind. Stattdessen kann in bestimmten Ausführungsbeispielen „verbunden” verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem physikalischen und elektrischen Kontakt miteinander stehen. „Gekoppelt” kann verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder in direktem oder indirektem (ohne zwischen liegende Elemente zwischen diesen) physikalischen oder elektrischen Kontakt miteinander stehen und/oder, dass die zwei oder mehr Elemente kooperieren oder miteinander interagieren (z. B. in einer Ursache-Wirkungs-Beziehung).
  • In der obigen detaillierten Beschreibung sind verschiedene spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Allerdings sollte vom Fachmann verstanden werden, dass die vorliegende Erfindung auch ohne diese spezifischen Details ausgeführt werden kann. An anderen Stellen sind wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern. Es sollte verstanden werden, dass die obige Beschreibung als veranschaulichend und nicht als beschränkend verstanden werden soll. Viele andere Ausführungsbeispiele werden dem Fachmann in den Sinn kommen, wenn er die obige Beschreibung liest und versteht. Der Schutzbereich der Erfindung sollte daher unter Bezugnahme auf die angehängten Ansprüche zusammen mit dem vollem Schutzbereich von Äquivalenten, die von diesen Ansprüchen abgedeckt sind, bestimmt werden.

Claims (20)

  1. Vorrichtung, umfassend: eine Speichermatrix zum Speichern von Daten; eine Analog-zu-digital-Abtasteinheit, die mit der Speichermatrix gekoppelt ist, wobei die Analog-zu-digital-Abtasteinheit zum Abtasten analoger Signale, die zu der Speichermatrix gehören, und zum Umwandeln der analogen Signale in Verteilungen digitaler Werte ausgebildet ist; und eine Fehlerkorrekturcode-(ECC)-Einheit, die mit der Analog-zu-digital-Abtasteinheit gekoppelt ist, wobei die ECC-Einheit zum Empfangen der Verteilungen digitaler Werte von der Analog-zu-digital-Abtasteinheit ausgebildet ist und zum Erhalten von Fehlerwahrscheinlichkeitsdaten, die Fehlerwahrscheinlichkeitswerte aufweisen, die zu den Verteilungen digitaler Werte gehören.
  2. Vorrichtung nach Anspruch 1, wobei die ECC-Einheit zum Ausführen eines ECC-Algorithmus ausgebildet ist, um Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bereitzustellen.
  3. Vorrichtung nach Anspruch 1, weiter umfassend: eine einrichtbare nicht flüchtige Nachschlagetabelle, die mit der ECC-Einheit gekoppelt ist, wobei die einrichtbare nicht flüchtige Nachschlagetabelle zum Erzeugen von ECC-Parametern ausgebildet ist, die die Fehlerwahrscheinlichkeitsdaten aufweisen, und zum Bereitstellen der ECC-Parameter an der ECC-Einheit zur Fehlerkorrektur.
  4. Vorrichtung nach Anspruch 3, wobei die einrichtbare nicht flüchtige Nachschlagetabelle Fehlerwahrscheinlichkeitsdaten basierend auf den Verteilungen digitaler Werte mit Fehlerwahrscheinlichkeitswerten aktualisiert, die auf einer Distanz eines digitalen Wertes in der Verteilung von einer Bezugshöhe basieren.
  5. Vorrichtung nach Anspruch 1, wobei die Analog-zu-digital-Abtasteinheit zum Abtasten analoger Signale, die zu den Speicherzellen der Speichermatrix gehören, nach Initiierung der Vorrichtung ausgebildet ist.
  6. Vorrichtung nach Anspruch 1, wobei die Analog-zu-digital-Abtasteinheit zum Abtasten analoger Signale, die zu den Speicherzellen der Speichermatrix gehören, nach einem gegebenen Lesezustand der Speichermatrix ausgebildet ist.
  7. Vorrichtung nach Anspruch 3, weiter umfassend: eine oder mehrere zusätzliche Speichermatrizen, wobei die ECC-Einheit vorgesehen ist, eine Fehlerkorrektur für zwei oder mehr Speichermatrizen bereitzustellen.
  8. Datenverarbeitungseinrichtung, umfassend: eine Verarbeitungseinheit, die wenigstens einen Prozessorkern aufweist; und einen Systemspeicher, der mit der Verarbeitungseinheit gekoppelt ist, wobei der Systemspeicher wenigstens eine integrierte Schaltungseinrichtung hat, umfassend eine Speichermatrix zum Speichern von Daten; eine Analog-zu-digital-Abtasteinheit, die mit der Speichermatrix gekoppelt ist, wobei die Analog-zu-digital-Abtasteinheit zum Abtasten analoger Signale ausgebildet ist, die zu der Speichermatrix gehören, und zum Umwandeln der analogen Signale in Verteilungen digitaler Werte; und eine Fehlerkorrekturcode-(ECC)-Einheit, die mit der Analog-zu-digital-Abtasteinheit gekoppelt ist, wobei die ECC-Einheit zum Empfangen der Verteilungen digitaler Werte von der Analog-zu-digital-Abtasteinheit ausgebildet ist und zum Erhalten von Fehlerwahrscheinlichkeitsdaten, die Fehlerwahrscheinlichkeitswerte aufweisen, die mit den Verteilungen digitaler Werte verknüpft sind.
  9. Datenverarbeitungseinrichtung nach Anspruch 8, wobei die ECC-Einheit zum Ausführen eines ECC-Algorithmus ausgebildet ist, um Fehlerkorrekur unter Verwendung der Fehlerwahrscheinlichkeitsdaten bereitzustellen.
  10. Datenverarbeitungseinrichtung nach Anspruch 8, weiter umfassend: eine einrichtbare nicht flüchtige Nachschlagetabelle, die mit der ECC-Einheit gekoppelt ist, wobei die einrichtbare nicht flüchtige Nachschlagetabelle zum Erzeugen von ECC-Parametern ausgebildet ist, die die Fehlerwahrscheinlichkeitsdaten aufweisen, und zum Bereitstellen der FCC-Parameter an der ECC-Einheit zur Fehlerkorrektur.
  11. Datenverarbeitungseinrichtung nach Anspruch 10, wobei die einrichtbare nicht flüchtige Nachschlagetabelle Fehlerwahrscheinlichkeitsdaten basierend auf den Verteilungen digitaler Werte Fehlerwahrscheinlichkeitswerten aktualisiert, die auf einer Distanz eines digitalen Werts in der Verteilung von einer Bezugshöhe basieren.
  12. Datenverarbeitungseinrichtung nach Anspruch 8, wobei die digitalen Werte eine Strom- oder Spannungsverteilung von Speicherzellen in der Speichermatrix repräsentieren.
  13. Datenverarbeitungseinrichtung nach Anspruch 10, wobei die nicht flüchtige Nachschlagetabelle eingerichtet ist, aktualisierte digitale Werte zu empfangen, die auf Variationen in den Zellströmen oder Variationen bei dem Widerstand oder der Schwellwertspannungsverteilung in der Matrix basieren.
  14. Datenverarbeitungseinrichtung nach Anspruch 10, wobei die nicht flüchtige Nachschlagetabelle extern ist oder innerhalb der ECC-Einheit eingebettet ist.
  15. Verfahren, umfassend: Speichern von Daten in einer Speichermatrix; Abtasten von analogen Signalen, die zu der Speichermatrix gehören, unter Verwendung einer Analog-zu-digital-Abtasteinheit; Umwandeln der analogen Signale in Verteilungen digitaler Werte unter Verwendung der Analog-zu-digital-Abtasteinheit; Senden der Verteilungen digitaler Werte von der Analog-zu-digital-Abtasteinheit an eine Fehlerkorrekturcode-(ECC)-Einheit; und Erzeugen von Fehlerwahrscheinlichkeitsdaten, die mit jedem digitalen Wert verknüpft sind.
  16. Verfahren nach Anspruch 15, weiter umfassend: Ausführen eines ECC-Algorithmus mit der ECC-Einheit zum Bereitstellen von Fehlerkorrektur unter Verwendung der Fehlerwahrscheinlichkeitsdaten.
  17. Verfahren nach Anspruch 15, weiter umfassend: Bereitstellen von ECC-Parametern, die Fehlerwahrscheinlichkeitsdaten aufweisen, an der ECC-Einheit unter Verwendung einer nicht flüchtigen Nachschlagetabelle.
  18. Verfahren nach Anspruch 17, Aktualisieren der nicht flüchtigen Nachschlagetabelle mit aktualisierter Fehlerinformation, die zu der Speichermatrix gehört, nach Initiierung einer Speichereinrichtung oder auf einen gegebenen Lesezustand der Speichermatrix hin.
  19. Verfahren nach Anspruch 15, weiter umfassend: Aktualisieren der nicht flüchtigen Nachschlagetabelle mit aktualisierter Fehlerinformation, die zu der Speichermatrix gehört, als eine Folge auf Variationen bei der Betriebsspannung oder -temperatur, die von einem geeigneten Spannungssensor bzw. einem Temperatursensor erkannt werden.
  20. Verfahren nach Anspruch 15, wobei die einrichtbare nicht flüchtige Nachschlagetabelle die Fehlerwahrscheinlichkeitsdaten basierend auf den Verteilungen digitaler Werte mit Fehlerwahrscheinlichkeitswerten aktualisiert, die auf einer Distanz eines digitalen Wertes in der Verteilung von einer Bezugshöhe basieren.
DE102010050957.4A 2009-11-12 2010-11-10 Verfahren und Vorrichtung zur Fehlerkorrektur in einem Speicher Active DE102010050957B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/617,661 2009-11-12
US12/617,661 US8510628B2 (en) 2009-11-12 2009-11-12 Method and apparatuses for customizable error correction of memory

Publications (2)

Publication Number Publication Date
DE102010050957A1 true DE102010050957A1 (de) 2011-06-16
DE102010050957B4 DE102010050957B4 (de) 2019-11-21

Family

ID=43975058

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010050957.4A Active DE102010050957B4 (de) 2009-11-12 2010-11-10 Verfahren und Vorrichtung zur Fehlerkorrektur in einem Speicher

Country Status (6)

Country Link
US (1) US8510628B2 (de)
JP (1) JP5808101B2 (de)
KR (1) KR101268772B1 (de)
CN (1) CN102117661B (de)
DE (1) DE102010050957B4 (de)
TW (1) TWI453753B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116905B4 (de) * 2014-10-07 2021-04-22 Sandisk Technologies Llc Hochlinearer Analog-Digital-Wandler und Verfahren für nichtflüchtigen Speicher

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11869584B2 (en) 2010-04-19 2024-01-09 Silicon Motion, Inc. Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
TWI633557B (zh) * 2010-04-19 2018-08-21 慧榮科技股份有限公司 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8412882B2 (en) * 2010-06-18 2013-04-02 Microsoft Corporation Leveraging chip variability
US20140359381A1 (en) * 2011-11-02 2014-12-04 The University Of Tokyo Memory controller and data storage device
KR102012310B1 (ko) 2012-08-07 2019-10-21 삼성전자 주식회사 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템
US9142322B2 (en) * 2012-08-10 2015-09-22 Stmicroelectronics International N.V. Memory manager
US8869008B2 (en) * 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
US9009562B2 (en) 2013-01-30 2015-04-14 Hewlett-Packard Development Company, L.P. Providing memory protection using a modified error correction code
US9019754B1 (en) 2013-12-17 2015-04-28 Micron Technology, Inc. State determination in resistance variable memory
KR102215597B1 (ko) 2013-12-23 2021-02-15 삼성전자주식회사 전자기기
US9847110B2 (en) * 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
JP2016062463A (ja) * 2014-09-19 2016-04-25 株式会社東芝 メモリシステム、誤り訂正装置、および誤り訂正方法
US9912355B2 (en) * 2015-09-25 2018-03-06 Intel Corporation Distributed concatenated error correction
US20170126249A1 (en) * 2015-10-30 2017-05-04 Intel Corporation Temperature dependent multiple mode error correction
US10073138B2 (en) * 2015-12-22 2018-09-11 Intel Corporation Early detection of reliability degradation through analysis of multiple physically unclonable function circuit codes
US10169126B2 (en) * 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
CN108255633B (zh) * 2016-12-28 2021-07-30 旺宏电子股份有限公司 存储控制方法、存储装置
CN106815090B (zh) * 2017-01-19 2019-11-08 深圳星忆存储科技有限公司 一种数据处理方法及装置
US10387242B2 (en) * 2017-08-21 2019-08-20 Qualcomm Incorporated Dynamic link error protection in memory systems
US10269445B1 (en) * 2017-10-22 2019-04-23 Nanya Technology Corporation Memory device and operating method thereof
US11355214B2 (en) * 2020-08-10 2022-06-07 Micron Technology, Inc. Debugging memory devices
US12069970B2 (en) * 2022-02-16 2024-08-20 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device, method for configuring memory cell in N-bit memory unit, and memory array

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
KR100295074B1 (ko) * 1992-12-22 2001-09-17 리패치 응용주문형집적회로인에러정정코드메모리제어기
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US8091009B2 (en) * 2006-03-23 2012-01-03 Broadcom Corporation Symbol by symbol map detection for signals corrupted by colored and/or signal dependent noise
EP1912121B1 (de) * 2006-09-13 2009-08-12 STMicroelectronics S.r.l. NAND-Flash-Speichervorrichtung mit ECC-geschütztem reserviertem Bereich für nicht-flüchtige Speicherung von Redundanzdaten
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US8533563B2 (en) * 2008-03-31 2013-09-10 Qimonda Ag Memory read-out
TW201019327A (en) * 2008-09-30 2010-05-16 Lsi Corp Methods and apparatus for soft data generation for memory devices using reference cells

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116905B4 (de) * 2014-10-07 2021-04-22 Sandisk Technologies Llc Hochlinearer Analog-Digital-Wandler und Verfahren für nichtflüchtigen Speicher

Also Published As

Publication number Publication date
US20110113303A1 (en) 2011-05-12
DE102010050957B4 (de) 2019-11-21
CN102117661A (zh) 2011-07-06
TWI453753B (zh) 2014-09-21
JP5808101B2 (ja) 2015-11-10
JP2011108354A (ja) 2011-06-02
CN102117661B (zh) 2016-01-27
US8510628B2 (en) 2013-08-13
KR101268772B1 (ko) 2013-05-29
KR20110065323A (ko) 2011-06-15
TW201123197A (en) 2011-07-01

Similar Documents

Publication Publication Date Title
DE102010050957B4 (de) Verfahren und Vorrichtung zur Fehlerkorrektur in einem Speicher
DE60224552T2 (de) Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE10233642B4 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102013103391B4 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE112011103295B4 (de) Decodieren in Solid-State-Speichereinheiten
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE69932962T2 (de) Kodierungsverfahren und Speicheranordnung
DE19782077B4 (de) Verfahren und Vorrichtung zum Korrigieren eines Mehrpegelzellenspeichers durch Verwendung fehlerlokalisierender Codes
DE102010061530A1 (de) Speicher mit variablem Widerstand, Betriebsverfahren und System
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102011056776A1 (de) Flashspeichervorrichtung und Speichersystem mit derselben
DE102004063571A1 (de) System und Verfahren zum Konfigurieren einer Festkörperspeicherungsvorrichtung mit Fehlerkorrekturcodierung
DE102016003366A1 (de) Lesepegelgruppierung für erhöhte flash-leistung
DE102017110389B4 (de) Verfahren und Decoder zur Softinput Decodierung von verallgemeinerten verketteten Codes
DE102014100161A1 (de) Speichersystem und Betriebsverfahren davon
DE102008003267A1 (de) Hybridflashspeicherbauelement, Speichersystem und Verfahren zum Steuern von Fehlern in einem Hybridflashspeicherbauelement
DE102011054181A1 (de) Nichtflüchtige Speichervorrichtung und Ausleseverfahren davon
DE102014103125A1 (de) Verfahren und Vorrichtung zum Optimieren des Log-Likelihood-Quotienten (LLR), die verwendet werden für eine nichtflüchtige Speichervorrichtung und zum Korrigieren von Fehlern in einer nichtflüchtigen Speichervorrichtung
DE102018122826A1 (de) Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
US10320420B2 (en) Bit-flip coding
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R082 Change of representative

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, 80538 MUENCHEN,

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE

R081 Change of applicant/patentee

Owner name: MICRON TECHNOLOGY, INC., BOISE, US

Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH

Effective date: 20120521

R082 Change of representative

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE

Effective date: 20120521

Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE

Effective date: 20120521

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final