WO2013053341A1 - Hybride dekodierung von bch kodes für nichtflüchtige speicher - Google Patents

Hybride dekodierung von bch kodes für nichtflüchtige speicher Download PDF

Info

Publication number
WO2013053341A1
WO2013053341A1 PCT/DE2011/075251 DE2011075251W WO2013053341A1 WO 2013053341 A1 WO2013053341 A1 WO 2013053341A1 DE 2011075251 W DE2011075251 W DE 2011075251W WO 2013053341 A1 WO2013053341 A1 WO 2013053341A1
Authority
WO
WIPO (PCT)
Prior art keywords
corrector
correction
error
quick
data
Prior art date
Application number
PCT/DE2011/075251
Other languages
English (en)
French (fr)
Inventor
Franz Schmidberger
Christoph Baumhof
Axel Mehnert
Steffen Allert
Original Assignee
Hyperstone Gmbh
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 Hyperstone Gmbh filed Critical Hyperstone Gmbh
Priority to US14/115,022 priority Critical patent/US20140068390A1/en
Priority to DE112011102474.6T priority patent/DE112011102474B4/de
Priority to PCT/DE2011/075251 priority patent/WO2013053341A1/de
Publication of WO2013053341A1 publication Critical patent/WO2013053341A1/de

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Definitions

  • the invention relates to a method and a device for the correction of
  • a halved version, SiBM-2 results in a halved circuit requirement and twice the correction time of 2t clocks compared to the fully parallel version, SiBM, with a simplified inversion-free Berlekamp-Massey method, SiBM, respectively.
  • corrective error number t is arranged and this is connected as needed used serially operating correction circuit.
  • An optimization of the average time requirement is done by a suitable choice of the size of the correctable error number t and the error sub-number t 1; taking into account the total length n of the data block to be processed and the probability of the occurrence of t 2 errors (t> t 2 > t for which correction of the error underscore would be insufficient.
  • the overall circuit comprises the two correction devices, which are connected on the one hand to the SLC / MLC data memory via a first interface circuit and on the other hand connected via a further interface circuit to a consumer, also called a host.
  • the data blocks which have been passed through for the purpose of storage are used in a known manner, for example according to the BCH algorithm, with the backup data supplemented stored in the data storage and delivered in each case after a later readout by the testing and correction devices error-free to the consumer.
  • an error code also called a syndrome
  • a syndrome is calculated and used to determine the position of incorrect bits in the data block and to correct the bits thus determined.
  • the invention is based on the finding that only a relatively small number of errors occurs in a plurality of the read data blocks, so that their correction requires a correspondingly small, correspondingly fast, parallel operation. Only in the smaller number of cases where errors still occur is an extremely simple serial correction circuit used for this larger number of errors, but the time required increases quadratically with the number of correctable errors.
  • both correction circuits can be started simultaneously and, if necessary, after a successful correction completion of the parallel correction circuit, the process can be terminated altogether or the serial circuit can only be activated if the result of the parallel correction circuit is insufficient, whereby a small additional time delay occurs.
  • the serial circuit can only be activated if the result of the parallel correction circuit is insufficient, whereby a small additional time delay occurs.
  • the BCH code yields for t Root syndromes zero, if there is no error, otherwise occur
  • Nquer ati + bpt 2 .
  • ati is the number of iterations for the parallel BMA
  • bt 2 is the number of iterations for the serial BMA.
  • conditional probability p depends on ti and a raw bit error rate ⁇ , which can be approximated for a binary-symmetric channel
  • n is the total number of bits in a saved data block and the counter indicates the probability that an error number greater than ti will occur, and the denominator indicates the probability that at least one error in the n bits of one
  • Nquer In order to optimally design t 1 with respect to the shortest possible average correction time Nquer, Nquer must be less than or equal to 2 times the time requirement of a fully parallel correction. In the combination device according to the invention results on average under the above conditions, a time advantage over a fully parallel correction device of 2t- (2t 1 + p2t 2 ).
  • time optimization can also be analogously applied to other parallel correction units and other series correction units and for other error frequencies and block lengths.
  • a further optimization can also be fitted for mixed
  • Such memory combinations are frequently used, in which a heavily used portion of the memory blocks consists of simple elements and the remainder consists of multiple-use memory elements with a higher error rate.
  • the circuit diagram is similar to the representation in Wei Liu et al. a.a.O., Fig. 12 ajar. It illustrates the splitting of the overall device into three areas, the pre-checker VP, the quick-correction SK and the post-corrector NK.
  • the input data coming from a memory MLC, coming from the input INP go through the first für sch vigorousier ENC1 and parallel to a first
  • Delay register DL1 for bridging the test time. If the test result is 0, ie correct, then the test state flag PI controls the output of the first one Delay DLl via a first AND gate Gl in a wired OR circuit to the output OUTP.
  • the output from the first delay element DL1 is supplied to the quick corrector SK, which consists of the parallel correction device SiBM-2 designed for t ⁇ error corrections.
  • the quick corrector SK which consists of the parallel correction device SiBM-2 designed for t ⁇ error corrections. This works according to a simplified inversion-free Berlekamp-Massey- method, as shown for example in Fig. 8 of the document Wei Liu et al. aaO, and operates the error corrector COR-ti whose corrected output is checked by a second checker ENC2 which drives the check flag P2.
  • Control device CT1, CT2, CT3 controlled.
  • the first control device CT1 is driven by a suitable start signal St, which is derived from the memory MLC.
  • the further control devices CT2, CT3 are each started depending on the associated test state flag PI, P2 in the event of an error.
  • Circuit areas VP, SK, NK can also, as described above, realize a parallel connection of two or all three circuit areas. With the release of one of the output gates Gl, G2, G3 then the still working circuit parts are turned off.
  • n Total number of bits of a saved data block

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

Die Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zur Korrektur von Datenfehlern in einem Datenblock, dessen Ursprungsdaten mit einem solchen Sicherungssyndrom ergänzt sind, dass es eine Korrektur von maximal t Datenfehlern erbringt, wobei ein parallel arbeitender Schnellkorrektor (SK) zum Einsatz kommt, wobei der Schnellkorrektor (SK) nur für eine Korrektur von einer Untermenge t1 der Menge der maximal t Datenfehler ausgelegt ist und dieser Schnellkorrektor (SK) einen Prüfverschlüssler (ENC2) umfasst, der einen ersten Prüfzustandsmerker P1 setzt, der im Falle einer vollständigen Korrektur eines bearbeiteten Datenblocks diesen ausgibt und anderenfalls einen seriell arbeitenden Nachkorrektor (NK) für maximal t Datenfehler aktiviert, dessen Ausgangssignal alternativ ausgegeben wird.

Description

HYBRIDE DEKODIERUNG VON BCH KODES FÜR NICHTFLÜCHTIGE SPEICHER
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Korrektur von
Datenfehlern mit einem Berlekamp-Massey Algorithmus, BMA, für eine Bose- Chandhuri-Hacquenghem, BCH, Dekodierung. Insbesondere die relativ größere Fehlerhäufigkeit bei den modernen Großspeichern aus Mehrebenen-Speicherzellen, MLC, im Vergleich zu den bekannten Einebenen-Speicherzellen, SLC, erfordern erstere Korrekturvorrichtungen für eine erheblich höhere Fehlerzahl in einem Datenblock. Dies führt zu einem erheblichen Zeit- und/oder Platzaufwand.
In dem Artikel von Wei Liu; Junrye Rho; Wonyong Sung;„Low-Power High- Throughput BCH Error Correction VLSI Design for Multi-Level Cell NAND Flash Memories" in der Publikation„Signal Processing Systems Design and Implementation, 2006. SIPS '06, pp.303-308, Oct. 2006" ist am Beispiel mit CMOS-Technologie das Verhältnis von erreichbarer Korrekturzeit und Schaltungsbedarf bei unterschiedlichen Schaltungsausführungen mit verschiedenem Parallelisierungsgrad der
Algorithmendarstellung gezeigt. Für eine voll parallel arbeitende Korrekturschaltung, SiBM, ergibt sich für eine Korrektur von bis zu t Fehlern ein Aufwand von 2t
Feldaddierern, 4t Feldmultiplikatoren, 2t+l Registern sowie 2t Multiplexern, wohingegen eine extrem gefaltete Version, SiBM-2t, nur 1 Feldaddierer, 2
Feldmultiplikatoren und 2t+l Register sowie 1 Multiplexer benötigt. Anstelle von t- Takten benötigt die reduzierte Version jedoch 2t Takte. Bei einer halbierten Version, SiBM-2, ergeben sich ein halbierter Schaltungsbedarf und die doppelte Korrekturzeit von 2t-Takten im Vergleich zur voll parallelen Version, SiBM, wobei ein vereinfachtes inversionsfreies Berlekamp-Massey Verfahren - SiBM - jeweils vorgesehen ist.
Um erheblich Zeit und Energie zu sparen, wird jeweils vor der Ausführung einer Fehlerkorrekturprozedur ermittelt, ob ein fehlerfreier Datenblock vorliegt; falls das zutrifft, wird er sofort freigegeben und keine Korrekturprozedur ausgeführt.
In dem genannten Artikel stützen Blockschaltbilder, Zeitdiagramme von
Teilschaltungen und eine Architekturübersicht die Darstellung der verschiedenen Ausgestaltungen einer parallelen oder einer seriellen Arbeitsweise. Eine Kombination alternativ genutzter verschiedener Korrekturschaltungen zu einer Gesamtschaltung ist aber nicht offenbart.
Ein ausführliches Beispiel einer schnellen Parallelschaltungsanordnung ist in der US 5,446,743 gezeigt.
Ein weiteres Beispiel einer geeigneten seriellen Schaltungsanordnung ist in Hsie-Chia Chang; Shung, C.B.:„New serial architecture for the Berlekamp-Massey algorithm", Communications, IEEE Transactions on, Vol. 47, No. 4, pp. 481-483, 4. Apr. 1999, dargestellt, die 2 Feldaddierer, 3 Feldmultiplikatoren, 2 Multiplexer und 2t+l Register umfasst.
Es ist Aufgabe der Erfindung, bei vergleichsweise geringem Aufwand eine höhere Anzahl korrigierbarer Fehler und eine durchschnittlich optimale Zeiteinsparung bei einer Korrektur von Fehlern zu erreichen und des Weiteren eine Dimensionierungs- Vorschrift für die Korrekturschaltungen anzugeben.
Die Lösung besteht darin, dass eingangsseitig eine voll- oder teilparallel arbeitende Korrekturschaltung für eine Fehlerunteranzahl tl der insgesamt maximal zu
korrigierenden Fehleranzahl t angeordnet ist und dieser eine bedarfsweise genutzte seriell arbeitende Korrekturschaltung zugeschaltet ist.
Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.
Eine Optimierung des durchschnittlichen Zeitbedarfs geschieht durch eine geeignete Wahl der Größe der korrigierbaren Fehleranzahl t und der Fehlerunteranzahl t1; wobei die gesamte Länge n des zu bearbeitenden Datenblocks und die Wahrscheinlichkeit des Auftretens von t2 Fehlern (t > t2 > t berücksichtigt werden, für die eine Korrektur der Fehlerunteranzahl unzureichend wäre.
Die Gesamtschaltung umfasst die beiden Korrekturvorrichtungen, die einerseits an den SLC/MLC Datenspeicher über eine erste Interfaceschaltung angeschlossen sind und andererseits über eine weitere Interfaceschaltung an einen Verbraucher, auch Host genannt, angeschlossen sind. Die zwecks Einspeicherung durchgeleiteten Datenblöcke werden in bekannter Weise, z.B. nach dem BCH- Algorithmus, mit den Sicherungsdaten ergänzt im Datenspeicher eingelagert und jeweils nach einem späteren Auslesen durch die Prüf- und Korrekturvorrichtungen fehlerfrei an den Verbraucher abgegeben.
Gewöhnlich werden zur Prüfung und Korrektur ein Fehlerschlüssel, auch Syndrom genannt, errechnet und daraus die Lage von fehlerhaften Bits im Datenblock ermittelt sowie die so bestimmten Bits korrigiert.
Der Erfindung liegt die Erkenntnis zugrunde, dass in einer Mehrzahl der gelesenen Datenblöcke nur eine relativ geringe Fehlerzahl auftritt, so dass zu deren Korrektur eine entsprechend kleine parallel arbeitende, entsprechend schnelle Schaltung erforderlich ist. Nur in der geringeren Zahl der Fälle, in denen darüber hinaus noch Fehler auftreten, kommt eine extrem einfache seriell arbeitende Korrekturschaltung für diese größere Fehleranzahl zum Einsatz, deren Zeitbedarf jedoch quadratisch mit der Zahl der korrigierbaren Fehler zunimmt.
Es können alternativ beide Korrekturschaltungen gleichzeitig gestartet werden und ggf. nach einem erfolgreichen Korrekturabschluss der Parallelkorrekturschaltung der Vorgang insgesamt beendet werden oder die serielle Schaltung jeweils nur nach unzureichendem Ergebnis der Parallelkorrekturschaltung aktiviert werden, wodurch eine geringe zusätzliche Zeitverzögerung eintritt. Andererseits besteht dabei die
Möglichkeit, die serielle Arbeitsweise durch eine relativ einfache Teilabschaltung der Operatorbaugruppen der ursprünglich parallelen Korrekturvorrichtung und eine Zuschaltung im Verhältnis t zu längerer Register auszuführen. Eine bevorzugte getrennte Realisierung der parallel und der seriell arbeitenden
Korrekturschaltungen erbringt vorteilhaft eine Redundanz insbesondere für den Fall, dass die weit aufwendigere Parallelschaltung ausfällt, da dann, wenn auch mit größerer Verzögerung, die serielle, einfachere Korrekturschaltung noch weiterarbeitet. Der hier empfohlene Bose-Chaudhuri-Hocquenghem-Code, BCH, wird gewöhnlich durch Polynome dargestellt als v(x) = u(x)xn~k + (u(x)xn~k mod g(x)), wobei die n Bits von v(x) aus k Informationsbits u(x) mittels eines Generatorpolynoms g(x) ermittelt werden. Dieses ist Polynom des geringsten Grades über ein Galoisfeld, dessen t Wurzeln der Zahl der korrigierbaren Fehler entspricht. Der BCH-Code erbringt für t Wurzelsyndrome jeweils Null, wenn Fehlerfreiheit besteht, anderenfalls treten
Fehlerpolynome auf, die jeweils einen Fehlerort bezeichnen.
Zur Ausführung der Erfindung, nämlich eine separate Vorabkorrektur einer
möglicherweise nur vorhandenen geringeren Fehlerunteranzahl ti vorzunehmen, werden nur die 2t1 ersten Koeffizienten der Wurzelsyndrome genutzt. Dadurch ist der auf ti eingeschränkt korrigierbare Code eine Übermenge zum auf t Fehler voll korrigierbaren Code. Im bevorzugten Beispiel einer BMA-Implementation für ti Korrekturen mit einer parallelen Korrekturschaltung SiBM-2 werden 2t1 Zeittakte benötigt für einen vollständigen Korrekturvorgang. Zudem werden nur in den Fällen, in denen mehr als ti
Fehler vorliegen, 2t Zeittakte einer SiBM-2t Vorrichtung zusätzlich zur weiteren Korrektur benötigt, wenn beide Korrekturvorgänge nacheinander ausgeführt werden, was hier der Einfachheit halber angenommen wird.
Unter Einbeziehung der Wahrscheinlichkeit p, dass mehr als ti Fehler auftreten, ergibt sich somit ein Durchschnitt der Durchlaufzeiten von quer = 2ti + 2pt , bzw.
allgemeiner Nquer = ati + bpt2. ati ist die Anzahl Iterationen für den parallelen BMA, bt2 die Anzahl Iterationen für den seriellen BMA.
Die bedingte Wahrscheinlichkeit p hängt von ti und einer Rohbitfehlerrate ε ab, die für einen binärsymmetrischen Kanal angenähert werden kann als
Figure imgf000006_0001
, wobei n die Gesamtzahl der Bits in einem gesicherten Datenblock ist und der Zähler die Wahrscheinlichkeit angibt, dass eine Fehlerzahl größer als ti auftritt, und der Nenner die Wahrscheinlichkeit angibt, dass mindestens ein Fehler in den n Bits eines
Datenblocks auftritt. Um t1 optimal bezüglich einer möglichst kurzen durchschnittlichen Korrekturzeit Nquer auszulegen, muss Nquer≤ 2t, also kleiner als oder gleich groß wie der Zeitbedarf einer voll parallelen Korrektur sein. In der erfindungsgemäßen Kombinationsvorrichtung ergibt sich durchschnittlich unter den vorgenannten Voraussetzungen ein Zeitgewinn gegenüber einer vollparallelen Korrekturvorrichtung von 2t- (2t1 + p2t2).
Bei einer Variation von t1 bei jeweils vorgegebener maximal korrigierbarer
Fehleranzahl t, gegebener Blocklänge n und einer bekannten maximalen Blockfehlerrate ε zeigt sich jeweils ein Maximum der Zeiteinsparung. Dies wird an folgenden drei
Beispielen gezeigt, wobei die Restfehlerrate als kleiner 10-16 angesetzt ist
Figure imgf000007_0001
Im Fall 1 mit einer Korrektur von maximal 24 Fehlern in 8624 bit ergibt ti
Einsparung von 32 Takten gegenüber 48 Takten einer Parallelkorrektur.
Im Fall 2 mit einer Korrekturmöglichkeit von 48 bit in 8960 bit ergibt sich bei tj = 23 ein Maximum der Einsparung von 49 Takten gegenüber ansonsten 96 Takten.
Im Fall 3 ergibt sich die maximale Einsparung bei ti = 59, so dass 72 Takte gegenüber 192 Takten eingespart werden.
Es sind also ganz erhebliche Zeiteinsparungen zu erreichen und dazu eine enorme Einsparung an Schaltungsaufwand, der aus der einleitend bei Wei Liu et al angegebenen Auflistung der Schaltungsteile zu entnehmen ist. Im Fall 1 ist die Schaltungseinsparung, also für t = 24, t1 = 8, bei 24-(8+l) Addierern, 48-(16+2) Multiplizierern und 24-(8+1) Multiplexern. Insgesamt liegt der Schaltungsaufwand also etwa bei 1/3 der
vollparallelen Schaltung.
Im Fall 2 ergeben sich an Einsparungen 48-(23+l) Addierer, 96-(46+2) Multiplizierer und 48-(23+l) Multiplexer.
In Beispiel 3 ergeben sich an Einsparungen 96-(59+l) Addierer, 192-(118+2)
Multiplizierer und 96-(59+l) Multiplexer. Auch hier liegt die Materialeinsparung noch fast bei der Hälfte.
Eine weitere Einsparung ergibt sich daraus, dass ggf. nach einer ersten noch unvollständigen Korrektur bereits 2 t\ Syndromwerte vorliegen, so dass bei der Nachkorrektur im seriellen Korrekturmodus nur noch 2t-2t1 Syndrome zu ermitteln sind, wenn die bereits vorhandenen mitgenutzt werden.
Die hier angegebenen Beispiele der Zeitoptimierung lassen sich ebenso analog auf andere Parallelkorrekturwerke und andere Serienkorrekturwerke und für andere Fehlerhäufigkeiten sowie Blocklängen ausführen. Insbesondere lässt sich durch Bestimmung der Fehlerwahrscheinlichkeitsverteilung und deren Berücksichtigung eine weitere Optimierung auch für gemischt bestückte
Speichermodule erbringen. Solche Speicherkombinationen werden häufig genutzt, bei denen ein stark genutzter Anteil der Speicherblöcke aus einfachen Elementen und der übrige Teil aus mehrfach genutzten Speicherelementen höherer Fehlerrate bestehen.
Anhand des Blockschaltbildes Fig. 1 wird die Funktionsweise der neuartigen
Vorrichtung beschrieben. Das Schaltbild ist an die Darstellung in Wei Liu et al. a.a.O., Fig. 12 angelehnt. Es verdeutlicht die Aufspaltung der Gesamtvorrichtung in drei Bereiche, den Vorprüfer VP, den Schnellkorrektor SK und den Nachkorrektor NK. Die Eingangsdaten, die von einem Speicher MLC kommen, durchlaufen vom Eingang INP kommend den ersten Prüfverschlüsseier ENC1 und parallel ein erstes
Verzögerungsregister DL1 zur Überbrückung der Prüfzeit. Ist das Prüfergebnis 0, d.h. korrekt, so steuert der Prüfzustandsmerker PI den Ausgang des ersten Verzögerungsgliedes DLl über ein erstes UND-Gatter Gl in einer verdrahteten ODER- Schaltung dem Ausgang OUTP zu.
Ergibt die Vorprüfung, dass der Datenblock fehlerhaft ist, d.h. PI > 0, so wird der Ausgang vom ersten Verzögerungsglied DLl dem Schnellkorrektor SK zugeführt, der aus der parallel, auf t\ Fehlerkorrekturen ausgelegten Korrekturvorrichtung SiBM-2 besteht. Diese arbeitet nach einem vereinfachten inversionsfreien Berlekamp-Massey- Verfahren, wie sie etwa in der Fig. 8 des Dokumentes Wei Liu et al. a.a.O. dargestellt ist, und betreibt den Fehlerkorrektor COR-ti, dessen korrigiertes Ausgangssignal von einem zweiten Prüfverschlüsseier ENC2 überprüft wird, der den Prüfzustandsmerker P2 ansteuert.
Im Fall der Korrektheit steuert dieser das Ausgangssignal des ersten Korrektors COR-ti, über ein zweites UND-Gatter G2 auf den Ausgang OUTP, anderenfalls wird der über das erste und das zweite Verzögerungsregister DLl, DL2 unkorrigierte Datenblock dem Nachkorrektor NK zugeführt. Dieser besteht aus einer seriell arbeitenden Korrekturvorrichtung SiBM-2t, wie sie etwa in der Fig. 10 des
Dokumentes Wei Liu et al. a.a.O. dargestellt ist. Über die Korrekturvorrichtung SiBM- 2t wird ein zweiter Fehlerkorrektor COR-t für t Korrekturstellen angesteuert. Diesem wird das von dem, dem zweiten Verzögerungsregister DL2 nachgeschalteten dritten Verzögerungsregister DL3 kommende Ausgangssignal zugeführt und dessen korrigiertes Ausgangssignal über das UND-Gatter D3 dem Ausgang OUTP zugeleitet, an den ein Arbeitsgerät HOST angeschlossen ist.
Sämtliche drei Schaltungsbereiche werden durch jeweils eine zugehörige
Steuereinrichtung CT1, CT2, CT3 angesteuert. Die erste Steuervorrichtung CT1 wird von einem geeigneten Startsignal St angesteuert, das von dem Speicher MLC abgeleitet wird. Die weiteren Steuervorrichtungen CT2, CT3 werden jeweils abhängig von dem zugeordneten Prüfzustandmerker PI, P2 bei Vorliegen eines Fehlerfalles gestartet.
Anstatt der wegen der Übersichtlichkeit dargestellten Serienschaltung der drei
Schaltungsbereiche VP, SK, NK lässt sich auch , wie schon zuvor beschrieben, eine Parallelschaltung von zwei oder allen drei Schaltungsbereichen realisieren. Mit der Freigabe eines der Ausgangsgatter Gl, G2, G3 werden dann die noch arbeitenden Schaltungsteile abgeschaltet.
Am Grundsätzlichen der Erfindung ändert sich dadurch nichts. Ebenso sind Varianten mit noch schneller arbeitenden Parallelkorrektoren oder Serienkorrektoren realisierbar. Auch die Sicherheits Verschlüsselung kann nach einem der anderen Verfahren ausgeführt und zur Korrektur genutzt werden.
Bezugszeichen ati Anzahl Iterationen für den parallelen BMA
bt2 Anzahl Iterationen für den seriellen BMA
c, d, e, f, g Anzahlen von Komponenten des Nachkorrektors
COR-t, COR-ti Fehlerkorrektur von t bzw. tl Fehlern
CT1 - CT3 Steuervorrichtungen
DL1 - DL3 Verzögerungsregister
ENC1, ENC2 Prüfverschlüsseier
G1 - G3 UND-Gatter
h, i, j, k Anzahlen von Komponenten des Schnellkorrektors
HOST Arbeitsgerät
INP Eingang
1 Zykleneinsparung
MLC Multi-Level-Speicher
m Exponent der akzeptablen Restfehlerwahrscheinlichkeit
NK Nachkorrektur
n Gesamtanzahl der Bits eines gesicherten Datenblocks
OUTP Ausgang
PI, P2 Prüfzustandsmerker
p Wahrscheinlichkeit für das Auftreten von mehr als ti Fehlern r Restfehlerwahrscheinlichkeit
SiBM-2 Korrekturrechner, parallel
SiBM-2t Korrekturrechner, seriell
SK Schnellkorrektur
St Startsignal
t Anzahl der maximal korrigierbaren Datenfehler
ti Anzahl der schnell korrigierbaren Datenfehler
VP Vorprüfung
ε Rohbitfehlerrate

Claims

Patentansprüche
1. Vorrichtung zur Korrektur von Datenfehlern in einem Datenblock, dessen Ursprungsdaten mit einem solchen Sicherungssyndrom ergänzt sind, dass es eine Korrektur von maximal t Datenfehlern erbringt, wobei ein parallel arbeitender
Schnellkorrektor (SK) zum Einsatz kommt,
dadurch gekennzeichnet, dass der Schnellkorrektur (SK) nur für eine Korrektur von einer Fehlerunteranzahl ti der maximal t Datenfehler ausgelegt ist und dieser
Schnellkorrektor (SK) einen Prüfverschlüssler (ENC2) umfasst, der einen ersten Prüfzustandsmerker PI setzt, der im Falle einer vollständigen Korrektur eines bearbeiteten Datenblocks diesen ausgibt und anderenfalls einen seriell arbeitenden Nachkorrektur (NK) für maximal t Datenfehler aktiviert, dessen Ausgangssignal alternativ ausgegeben wird.
2. Vorrichtung nach Anspruch 1,
dadurch gekennzeichnet, dass sie mit einem Berlekamp-Massey- Verfahren, BMA, arbeitet, und eine Bose-Chandhuri-Hacquenghem-Codierung, BCH, nutzt.
3. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass für die Fehlerunteranzahl ti des Schnellkorrektors (SK) nur die ersten Koeffizienten der Wurzelsyndrome der vollständigen Fehleranzahl t genutzt werden.
4. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass der Schnellkorrektor (SK) parallel vereinfacht inversionslos nach Berlekamp-Massey arbeitet.
5. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass der Nachkorrektor (NK) seriell vereinfacht inversionslos nach Berlekamp-Massey arbeitet.
6. Vorrichtung nach einem der Ansprüche 1 - 4, dadurch gekennzeichnet, dass der Nachkorrektor (NK) mit c Feldaddierern, d Feldmultiplizierern, e Multiplexern und ft + g Registern aufgebaut ist, wobei c, d, e^ f und g nahe bei eins liegen.
7. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass der
Schnellkorrektor (SK) auf einem Korrekturrechner (SiBM-2) aufgebaut ist, der mit h(t Feldaddierern, i(t Feldmultiplizierern und j(t1) Registern sowie k(t Multiplexern aufgebaut ist, wobei h, i, j und k lineare Funktionen von sind.
8. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet, dass der Nachkorrektor (NK) aus c Feldaddierern, d
Feldmultiplikatoren und e(t) Registern und einem Multiplexer aufgebaut ist, wobei c und d Konstanten sind, deren Wert nahe bei 1 liegt, und e eine lineare Funktion von t ist.
9. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass sie eingangs seitig einen ersten Prüfverschlüssler (ENCl) enthält, der bei Feststellung von Fehlerfreiheit des zugeführten Datenblocks diesen zur Ausgabe (OUTP) leitet.
10. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass die Daten vom Schnellkorrektor (SK) in einem zweiten Prüfverschlüssler (ENC2) auf Fehlerfreiheit untersucht werden und gegebenenfalls diese Daten zur Ausgabe (OUTP) freigibt und anderenfalls den Nachkorrektor (NK) aktiviert oder freigibt.
11. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass der Vorprüfer (VP), der Schnellkorrektor (SK) und der Nachkorrektor (NK) vollständig oder teilweise seriell oder parallel geschaltet sind.
12. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass der Nachkorrektor (NK) zu dem Schnellkorrektor (SK) redundant arbeitend geschaltet ist.
13. Vorrichtung nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet, dass der Nachkorrektor (NK) durch eine selektive
Umschaltung der Baugruppen des Schnellkorrektors (SK) implementiert ist.
14. Verfahren zur Bestimmung einer zeitoptimierten Festlegung der Untermenge t1; in dem Schaltungen nach den Ansprüchen 1 - 13 in Bezug auf die maximal
korrigierbare Fehleranzahl t in einem Datenblock mit n Binärelementen, wobei eine mittlere Durchlaufzeit Nquer durch eine Arbeitszyklenzahl a(t des Schnellkorrektors
(SK) und eine wahrscheinlich auftretende Anzahl von p*b(t ) Arbeitszyklen des Nachkorrektors (NK) bestimmt ist und diese kleiner als eine auf t Fehler ausgelegte mittlere Durchlaufzeit Nquer eines entsprechend ausgelegten Schnellkorrektors sein soll, indem jeweils die Zykleneinsparung 2(t) -(a(t + p*b(t )) bei Variation von maximiert wird.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die
Wahrscheinlichkeit p in Bezug auf eine Rohfehlerrate ε für einen binärsymmetrischen Kanal angenähert nach der Formel
Figure imgf000014_0001
errechnet wird.
16. Vorrichtung dimensioniert nach den Verfahren nach Anspruch 14 und Anspruch 15, dadurch gekennzeichnet, dass bei einer Restfehlerwahrscheinlichkeit r < 10~m bei einer Blocklänge von n Bit und einer maximal zu korrigierenden Fehleranzahl t die Schaltung auf die Fehlerunteranzahl t\ ausgelegt ist, wobei t\ < t ist.
17. Vorrichtung dimensioniert nach den Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass bei einer Blocklänge von n = 8960 Bit und einer zu korrigierenden Fehleranzahl von t = 48 die Fehlerunteranzahl t\ = 23 beträgt.
PCT/DE2011/075251 2011-10-13 2011-10-13 Hybride dekodierung von bch kodes für nichtflüchtige speicher WO2013053341A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/115,022 US20140068390A1 (en) 2011-10-13 2011-10-13 Hybrid decoding of bch codes for nonvolatile memories
DE112011102474.6T DE112011102474B4 (de) 2011-10-13 2011-10-13 Hybride Dekodierung von BCH-Kodes für nichtflüchtige Speicher
PCT/DE2011/075251 WO2013053341A1 (de) 2011-10-13 2011-10-13 Hybride dekodierung von bch kodes für nichtflüchtige speicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/DE2011/075251 WO2013053341A1 (de) 2011-10-13 2011-10-13 Hybride dekodierung von bch kodes für nichtflüchtige speicher

Publications (1)

Publication Number Publication Date
WO2013053341A1 true WO2013053341A1 (de) 2013-04-18

Family

ID=45929366

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2011/075251 WO2013053341A1 (de) 2011-10-13 2011-10-13 Hybride dekodierung von bch kodes für nichtflüchtige speicher

Country Status (3)

Country Link
US (1) US20140068390A1 (de)
DE (1) DE112011102474B4 (de)
WO (1) WO2013053341A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10765009B2 (en) 2016-12-21 2020-09-01 Lumileds Llc Method for addressing misalignment of LEDs on a printed circuit board
CN108683426B (zh) * 2018-05-18 2022-08-26 中国科学院微电子研究所 一种基于bch码的ecc系统及存储器
US11722152B1 (en) * 2020-11-25 2023-08-08 Astera Labs, Inc. Capacity-expanding memory control component
US12061793B1 (en) 2020-11-25 2024-08-13 Astera Labs, Inc. Capacity-expanding memory control component

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446743A (en) 1993-11-04 1995-08-29 Cirrus Logic, Inc. Coefficient updating method and apparatus for Reed-Solomon decoder
US20030172339A1 (en) * 2002-03-08 2003-09-11 Davis James Andrew Method for error correction decoding in a magnetoresistive solid-state storage device
US20090319843A1 (en) * 2008-06-22 2009-12-24 Sandisk Il Ltd. Method and apparatus for error correction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69919199T2 (de) * 1998-11-09 2005-09-15 Broadcom Corp., Irvine Vorwärtsfehlerkorrektur
US20030101406A1 (en) 2001-10-12 2003-05-29 Leilei Song Low complexity and low power FEC supporting high speed parallel decoding of syndrome-based FEC codes
US7865809B1 (en) * 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
KR100891332B1 (ko) * 2007-03-30 2009-03-31 삼성전자주식회사 에러 정정 부호화기를 이용하여 에러를 체크하는 bch에러 정정 방법 및 회로
US8413023B2 (en) * 2008-12-31 2013-04-02 Stmicroelectronics, Inc. Error-locator-polynomial generation with erasure support
US8453038B2 (en) * 2009-06-30 2013-05-28 Apple Inc. Chien search using multiple basis representation
JP2011165026A (ja) * 2010-02-12 2011-08-25 Toshiba Corp エラー検出訂正システム
US8433985B2 (en) 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
RU2010135817A (ru) * 2010-08-30 2012-03-10 ЭлЭсАй Корпорейшн (US) Реконфигурируемый декодер кодов бчх
US8601351B2 (en) * 2011-03-16 2013-12-03 Intel Corporation BCH decoding with multiple sigma polynomial calculation algorithms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446743A (en) 1993-11-04 1995-08-29 Cirrus Logic, Inc. Coefficient updating method and apparatus for Reed-Solomon decoder
US20030172339A1 (en) * 2002-03-08 2003-09-11 Davis James Andrew Method for error correction decoding in a magnetoresistive solid-state storage device
US20090319843A1 (en) * 2008-06-22 2009-12-24 Sandisk Il Ltd. Method and apparatus for error correction

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"ERROR CORRECTION DECODING BY TRIAL AND ERROR", IP.COM JOURNAL, IP.COM INC., WEST HENRIETTA, NY, US, 15 October 2006 (2006-10-15), XP013116304, ISSN: 1533-0001 *
HSIE-CHIA CHANG; SHUNG, C.B.: "New serial architecture for the Berlekamp-Massey algorithm'', Communications", IEEE TRANSACTIONS ON, vol. 47, no. 4, 4 April 1999 (1999-04-04), pages 481 - 483, XP011009380
JUNRYE RHO; WONYONG SUNG: "Low-Power High-Throughput BCH Error Correction VLSI Design for Multi-Level Cell NAND Flash Memories", SIGNAL PROCESSING SYSTEMS DESIGN AND IMPLEMENTATION, 2006, October 2006 (2006-10-01), pages 303 - 308, XP031080559
WEI LIU ET AL: "Low-Power High-Throughput BCH Error Correction VLSI Design for Multi-Level Cell NAND Flash Memories", PROC. IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS, DESIGN AND IMPLEMENTATION, BANFF, CANADA, 1 October 2006 (2006-10-01), pages 303 - 308, XP031080559, ISBN: 978-1-4244-0382-0 *

Also Published As

Publication number Publication date
DE112011102474B4 (de) 2021-08-12
US20140068390A1 (en) 2014-03-06
DE112011102474A5 (de) 2013-06-06

Similar Documents

Publication Publication Date Title
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE3784459T2 (de) Arithmetische und logische einheit fuer elemente von galois-feldern.
DE4242810C2 (de) EEPROM mit einem Fehlerprüf- und Korrektur-Schaltkreis
DE102009044555B4 (de) Verfahren und Vorrichtung zum Durchführen einer CRC-Prüfung
DE102007058828A1 (de) Speicherbauelement und Fehlerkorrekturverfahren
WO2013053341A1 (de) Hybride dekodierung von bch kodes für nichtflüchtige speicher
DE4220196C2 (de) Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
DE102018122826A1 (de) Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE102011085602A1 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE112011101852B4 (de) Decodieren von LDPC-Code
DE112020003489T5 (de) Speichersteuerung und verfahren zum decodieren von speichervorrichtungen mit vorzeitigem hartdecodierabbruch
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE10238841A1 (de) Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102005022107A1 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102006007326A1 (de) Fehlerkorrekturschaltung und -Verfahren
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
EP1444700B1 (de) Speichertest

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 1120111024746

Country of ref document: DE

Ref document number: 112011102474

Country of ref document: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11831785

Country of ref document: EP

Kind code of ref document: A1

REG Reference to national code

Ref country code: DE

Ref legal event code: R225

Ref document number: 112011102474

Country of ref document: DE

Effective date: 20130606

WWE Wipo information: entry into national phase

Ref document number: 14115022

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11831785

Country of ref document: EP

Kind code of ref document: A1