EP2294510B1

Method and apparatus for error correction according to erase counts of a solid-state memory

Abstract

Embodiments of the present invention relate to methods and devices where an erase count is maintained for at least one block of solid state memory. Errors are corrected in data read from the solid state memory in accordance with the associated erase count of the memory block. In some embodiments, one or more of the following error-correction operations may be effected according to the associated erase count of a memory block from which the data is read: (i) a decoder and/or decoder mode is selected; (ii) a decision to attempt correcting errors using a lighter-weight weight decoder (mode) and/or heavier weight decoder (mode) and/or faster decoder (mode) and/or slower decoder (mode) is made; (iii) a mode transition and/or error correction attempt resource budget is determined; (iv) a number of soft bits is determined; and (v) a decoding bus width size is selected.

EP2294510B1, drawing sheet 1
Sheet 1 of 14

Term

2.6 yearsleft in the term

Expires 6 May 2029.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

10 claims: 10 independent, 0 dependent

  1. 1
    A method for handling error correction, the method comprising:a) maintaining (S411) an erase count for at least one block of a solid state memory;b) reading data (S423) from one of the memory blocks having an associated erase count;c) in accordance with the associated erase count, determining (S511, S561) at least one of: i) a mode transition condition being selected from a group consisting of: a timeout condition;a number of iterations condition;anda number of CPU cycles condition;andii) an error correction attempt resource budget being selected from a group consisting of: a time budget;a CPU cycles budget;andan iterations budget;d) making a first attempt (S519) to correct errors in the read data using a first set of error correction parameters;ande) in the event that the first attempt to correct errors is unsuccessful, making a second attempt (S539) to correct errors in the read data using a second set of error correction parameters, the second attempt being contingent upon at least one of: i) a triggering of the mode transition condition by the first attempt;andii) an exhausting of the resource budget by the first attempt. Procédé destiné à traiter une correction d'erreurs, le procédé comprenant les étapes ci-dessous consistant à : a) maintenir (S411) un décompte d'effacement pour au moins un bloc d'une mémoire à semi-conducteur ;b) lire des données (S423) à partir de l'un des blocs de mémoire présentant un décompte d'effacement associé ;c) selon le décompte d'effacement associé, déterminer (S511, S561) au moins l'un des éléments ci-dessous : i) un état de transition de mode sélectionné dans un groupe comportant les états ci-dessous : un état de fin de temporisation ;un état de nombre d'itérations ;etun état de nombre de cycles de processeur ;etii) un budget de ressources de tentatives de correction d'erreurs sélectionné dans un groupe comportant les budgets ci-dessous : un budget temporel ;un budget de cycles de processeur ;etun budget d'itérations ;d) mettre en oeuvre une première tentative (S519) destinée à corriger des erreurs dans les données lues en faisant appel à un premier ensemble de paramètres de correction d'erreurs ;e) au cas où la première tentative de correction des erreurs est infructueuse, mettre en oeuvre une seconde tentative (S539) destinée à corriger des erreurs dans les données lues en faisant appel à un second ensemble de paramètres de correction d'erreurs, la seconde tentative étant subordonnée à au moins l'un parmi les éléments ci-dessous : i) un déclenchement de l'état de transition de mode sous l'effet de la première tentative ;etii) un épuisement du budget de ressources sous l'effet de la première tentative. Verfahren zur Abwicklung einer Fehlerkorrektur, wobei das Verfahren umfasst: a) Führen (S411) eines Löschzählers für mindestens einen Block eines Festkbrperspeichers;b) Lesen von Daten (S423) aus einem der Speicherblöcke mit einem zugeordneten Löschzähler;c) gemäß dem zugeordneten Löschzähler erfolgendes Bestimmen (S511, S561) mindestens eines von Folgendem: i) eine Modusübergangsbedingung, die aus einer Gruppe ausgewählt ist, die aus Folgendem besteht: einer Zeitüberschreitungsbedingung,einer Iterationsanzahlbedingung undeiner CPU-Zyklenanzahlbedingung;undii) ein Fehlerkorrekturversuchsressourcenbudget, das aus einer Gruppe ausgewählt ist, die aus Folgendem besteht: einem Zeitbudget,einem CPU-Zyklen-Budget undeinem Iterationsbudget;d) Durchführen eines ersten Versuchs (S519), Fehler in den gelesenen Daten unter Verwendung einer ersten Anzahl von Fehlerkorrekturparametern zu korrigieren, unde) falls der erste Versuch, Fehler zu korrigieren, erfolglos ist, Durchführen eines zweiten Versuchs (S539), Fehler in den gelesenen Daten unter Verwendung eines zweiten Satzes von Fehlerkorrekturparametern zu korrigieren, wobei der zweite Versuch von mindestens einem von Folgendem abhängig ist: i) einer Auslösung der Modusübergangsbedingung durch den ersten Versuch;undii) einer Erschöpfung des Ressourcenbudgets durch den ersten Versuch.
  2. 2
    Procédé selon la revendication 1, dans lequel :i) le procédé comprend l'étape consistant à déterminer (S511) l'état de transition de mode;etii) la seconde tentative est subordonnée (S531) au moins au déclenchement de l'état de transition de mode sous l'effet de la première tentative. The method of claim 1 wherein: i) the method includes determining (S5111) the mode transition condition;andii) the second attempt is contingent (S531) upon at least the triggering of the mode transition condition by the first attempt. Verfahren nach Anspruch 1, wobei: i) das Verfahren einschließt: Bestimmen (S511) der Modusübergangsbedingung;und ii) der zweite Versuch mindestens abhängig (S531) ist von der Auslösung der Modusübergangsbedingung durch den ersten Versuch.
  3. 3
    Procédé selon la revendication 1, dans lequel :i) le procédé comprend l'étape consistant à déterminer (S561) le budget de ressources;etii) la seconde tentative est subordonnée (S565) au moins à l'épuisement du budget de ressources sous l'effet de la première tentative. The method of claim 1 wherein: i) the method includes determining (S561) the resource budget;andii) the second attempt is contingent (S565) upon at least the exhausting of the resource budget by the first attempt. Verfahren nach Anspruch 1, wobei: i) das Verfahren einschließt: Bestimmen (S561) des Ressourcenbudgets;undii) der zweite Versuch zumindest abhängig (S565) ist von der Erschöpfung des Ressourcebudgets durch den ersten Versuch.
  4. 4
    Procédé selon la revendication 1, dans lequel au moins un paramètre de correction d'erreurs est sélectionné dans le groupe comportant :i) un paramètre de sélection pour sélectionner un décodeur à partir d'une pluralité de décodeurs ;ii) un paramètre de mode de décodeur pour sélectionner un mode de décodeur pour un décodeur donné, à partir d'une pluralité de modes de décodeur ;iii) une valeur de probabilité binaire pour les données lues ;iv) un nombre de soft-bits ;etv) une largeur de bus de décodeur. The method of claim 1 wherein at least one error correction parameter is selected from the group consisting of: i) a selection parameter for selecting a decoder from a plurality of decoders;ii) a decoder mode parameter for selecting a decoder mode for a given decoder from a plurality of decoder modes;iii) a bit-probability value for the read data;iv) a number of soft bits;andv) a decoder bus width. Verfahren nach Anspruch 1, wobei mindestens ein Fehlerkorrekturparameter aus der Gruppe gewählt wird, die aus Folgendem besteht: i) einem Auswahlparameter zum Auswählen eines Decoders aus einer Vielzahl von Decodern;ii) einem Decodermodusparameter zum Auswählen eines Decodermodus für einen gegebenen Decoder aus einer Vielzahl von Decodermodi;iii) einem Bitwanrscheinlichkeitswert für die gelesenen Daten;iv) einer Anzahl von Soft-Bits;undv) einer Decoder-Busbreite.
  5. 5
    Procédé selon la revendication 1, dans lequel au moins l'une parmi les étapes de maintien (S411), de lecture (S423) et de détermination (S511, S561), et une ou plusieurs des tentatives (S519, S539), est mise en oeuvre par un contrôleur de dispositif d'un dispositif de stockage dans lequel la mémoire à semi-conducteur réside. The method of claim 1 wherein at least one of the maintaining (S411), the reading (S423), the determining (S511, S561), and one or more of the attempts (S519, S539) is carried out by a device controller of a storage device in which the solid state memory resides. Verfahren nach Anspruch 1, wobei mindestens eines, nämlich das Führen (S411), das Lesen (S423), das Bestimmen (S511, S561) und einer oder mehrere der Versuche (S519, S539) durch einen Vorrichtungscontroller einer Speichervorrichtung, in der sich der Festkörperspeicher befindet, durchgeführt wird.
  6. 6
    Computer readable media for storing executable program instructions, the executable program instructions, when executed on a computer performing all the method steps defined in any one of claims 1-5. Computerlesbare Medien zur Speicherung von ausführbaren Programmanweisungen, wobei die ausführbaren Programmanweisungen bei Ausführung auf einem Computer alle Verfahrensschritte nach einem der Ansprüche 1 bis 5 durchführt. Support lisible par un ordinateur, destiné à stocker des instructions de programme exécutable, les instructions de programme exécutable, lorsqu'elles sont exécutées sur un ordinateur, mettant en oeuvre l'ensemble des étapes de procédé définies selon l'une quelconque des revendications 1 à 5.
  7. 7
    A data storage device comprising:a) a solid state memory: andb) a device controller operative to: i) maintain (S411) an erase count for at least one block of the solid state memory;ii) read data (S423) from one of the memory blocks having an associated erase count;iii) in accordance with the associated erase count, determined (S511, S561) at least one of: A) a mode transition condition being selected from a group consisting of: a timeout condition;a number of iterations condition;anda number of CPU cycles condition;andB) an error correction attempt resource budget being selected from a group consisting of: a time budget;a CPU cycles budget;andan iterations budget;iv) make a first attempt (S519) to correct errors in the read data using a first set of error correction parameters;andv) in the event that the first attempt to correct errors is unsuccessful, make a second attempt (S539) to correct errors in the read data using a second set of error correction parameters, the second attempt being contingent upon at least one of: A) a triggering of the mode transition condition by the first attempt;andB) an exhausting of the resource budget by the first attempt. Datenspeichervorrichtung, umfassend: a) einen Festkörperspeicher undb) eine Vorrichtungssteuerung, die betriebsfähig ist: i) um einen Löschzähler für mindestens einen Block des Pestkörperspeichers zu führen (S411);ii) um Daten aus einer der Speicherblöcke mit einem zugeordneten Löschzähler zu lesen (S423);iii) um in Übereinstimmung mit dem zugeordneten Löschzähler mindestens eines von Folgendem zu bestimmen (S511, S561): A) eine Modusübergangsbedingung, die aus einer Gruppe ausgewählt ist, die aus Folgendem besteht: einer Zeitübersebreitungsbedingung,einer Iterationsanzahlbedingung undeiner CPU-Zyklenanzahlbedingung;undB) einen Fehlerkorrekturversuchsressourcenbudget, das aus einer Gruppe ausgewählt ist, die aus Folgendem besteht: einem Zeitbudget,einem CPU-Zyklen-Budget undeinem Iterationsbudget;iv) um einen ersten Versuch (S519) durchführen, Fehler in den gelesenen Daten unter Verwendung einer ersten Anzahl von Fehlerkorrekturparametern zu korrigieren;undv) um, falls der erste Versuch, Fehler zu korrigieren, erfolglos ist, einen zweiten Versuch (S539) durchzuführen, Fehler in den gelesenen Daten unter Verwendung eines zweiten Satzes von Fehlerkorrekturparametern zu korrigieren, wobei der zweite Versuch von mindestens einem von Folgendem abhängig ist: A) einer Auslösung der Modusübergangsbedingung durch den ersten Versuch undB) einer Erschöpfung des Ressourcenbudgets durch den ersten Versuch. Dispositif de stockage de données comprenant : a) une mémoire à semi-conducteur ;etb) un contrôleur de dispositif exploitable de manière à : i) maintenir (S411) un décompte d'effacement pour au moins un bloc d'une mémoire à semi-conducteur;ii) lire des données (S423) à partir de l'un des blocs de mémoire présentant un décompte d'effacement associé ;iii) selon le décompte d'effacement associé, déterminer (S511, S561) au moins l'un des éléments ci-dessous : A) un état de transition de mode sélectionné dans un groupe comportant les états ci-dessous: un état de fin de temporisation;un état de nombre d'itérations ;etun état de nombre de cycles de processeur;etB) un budget de ressources de tentatives de correction d'erreurs sélectionné dans un groupe comportant les budgets ci-dessous: un budget temporel ;un budget de cycles de processeur;etun budget d'itérations;iv) mettre en oeuvre une première tentative (S519) destinée à corriger des erreurs dans les données lues, en faisant appel à un premier ensemble de paramètres de correction d'erreurs ;v) au cas où la première tentative de correction des erreurs est infructueuse, mettre en oeuvre une seconde tentative (S539) destinée à corriger des erreurs dans les données lues, en faisant appel à un second ensemble de paramètres de correction d'erreurs, la seconde tentative étant subordonnée à au moins l'un parmi les éléments ci-dessous : A) un déclenchement de l'état de transition de mode sous l'effet de la première tentative ;etB) un épuisement du budget de ressources sous l'effet de la première tentative.
  8. 8
    Datenspeicher nach Anspruch 7, wobei:i) der Vorrichtungscontroller betriebsfähig ist, um die Modusübergangsbedingung zu bestimmen (S561), undii) der zweite Versuch zumindest abhängig (S531) ist von der Auslösung des Modusübergangszustands durch den ersten Versuch. Dispositif de stockage de données selon la revendication 7, dans lequel : i) le contrôleur de dispositif est exploitable en vue de déterminer (S561) l'état de transition de mode ;etii) la seconde tentative est subordonnée (S531) au moins au déclenchement de l'état de transition de mode sous l'effet de la première tentative. The data storage device of claim 7 wherein: i) the device controller is operative to determine (S561) the mode transition condition;andii) the second attempt is contingent (S531) upon at least the triggering of the mode transition condition by the first attempt.
  9. 9
    Datenspeicher nach Anspruch 7, wobei:i) der Vorrichtungscontroller betriebsfähig ist, um das Ressourcenbudget zu bestimmen (S511);undii) der zweite Versuch zumindest abhängig (S565) ist von der Erschöpfung des Ressourcenbudgets. Dispositif de stockage de données selon la revendication 7, dans lequel: i) le contrôleur de dispositif est exploitable en vue de déterminer (S511) le budget de ressources;etii) la seconde tentative est subordonnée (S565) au moins à l'épuisement du budget de ressources sous l'effet de la première tentative. The data storage device of claim 7 wherein: i) the device controller is operative to determine (S511) the resource budget;andii) the second attempt is contingent (S565) upon at least the exhausting of the resource budget by the first attempt.
  10. 10
    Datenspeichervorrichtung nach Anspruch 7, wobei mindestens ein Fehlerkorrekturparameter aus der Gruppe gewählt wird, die aus Folgendem besteht:i) einem Auswahlparameter zum Auswählen eines Decoders aus der Vielzahl von Decodern;ii) einem Decodermodusparameter zum Auswählen eines Decodermodus für einen gegebenen Decoder aus einer Vielzahl von Decodermodi;iii) einem Bitwahrscheinlichkeitswert für die gelesenen Daten;iv) einer Anzahl von Soft-Bits;undv) einer Decoder-Busbreite. Dispositif de stockage de données selon la revendication 7, dans lequel au moins un paramètre de correction d'erreurs est sélectionné dans le groupe comportant les éléments ci-dessous: i) un paramètre de sélection pour sélectionner un décodeur à partir d'une pluralité de décodeurs ;ii) un paramètre de mode de décodeur pour sélectionner un mode de décodeur pour un décodeur donné, à partir d'une pluralité de modes de décodeur;iii) une valeur de probabilité binaire pour les données lues;iv) un nombre de soft-bits;etv) une largeur de bus de décodeur. The data storage device of claim 7 wherein at least one error correction parameter is selected from the group consisting of: i) a selection parameter for selecting a decoder from a plurality of decoders;ii) a decoder mode parameter for selecting a decoder mode for a given decoder from a plurality of decoder modes;iii) a bit-probability value for the read data;iv) a number of soft bits;andv) a decoder bus width.