[Geben Sie hier die Überschrift ein] - MPC
[Geben Sie hier die Überschrift ein] - MPC
[Geben Sie hier die Überschrift ein] - MPC
- TAGS
- mpc.belwue.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Tabelle 1: Parameter dreier verschiedener BCH-Codes für Flashspeicher<br />
mit 1 kByte Sektorgröße.<br />
t 24 48 96<br />
n 8624 8960 9623<br />
ε t<br />
p t , ε )<br />
( 1 t<br />
t t , opt<br />
3⋅<br />
10<br />
D. Chien-Search<br />
−4<br />
−3<br />
Die Fehlerpositionen sind durch das Fehlerstellenpolynom<br />
σ (x)<br />
bestimmt. Die Aufgabe der Chien-Search<br />
ist, <strong>die</strong> inverse DFT auf <strong>die</strong>ses Polynom anzuwenden.<br />
Dies geschieht durch<br />
σ<br />
t<br />
l ( α ) = ∑<br />
=<br />
i<br />
0<br />
σ α<br />
In <strong>ein</strong>er Hardwareimplementierung kann man über <strong>die</strong><br />
Fehlerpositionen l iterieren, wobei je Iteration jede<br />
i<br />
Stelle i des Fehlerstellenpolynoms σ ( α ) berücksichtigt<br />
wird. Ist das Ergebnis Null, so ist an <strong>die</strong>ser<br />
Stelle <strong>ein</strong> Fehler aufgetreten und das entsprechende<br />
Informationsbit wird invertiert. Da sich der Grad des<br />
Fehlerstellenpolynoms mit t verändert, muss der<br />
Term<br />
t<br />
∑<br />
=<br />
i<br />
1,<br />
3⋅<br />
10<br />
σ α<br />
0<br />
an den Code angepasst werden. Eine Multiplexerschaltung<br />
wählt <strong>die</strong> jeweilige Fehlerkorrekturfähigkeit<br />
t .<br />
38<br />
Abbildung 7: t-N für <strong>die</strong> drei BCH-Codes aus der Tabelle.<br />
1<br />
1,<br />
4⋅<br />
10<br />
i<br />
il<br />
i<br />
−3<br />
6,<br />
5⋅<br />
10<br />
−4<br />
8 23 59<br />
il<br />
.<br />
3,<br />
8⋅<br />
10<br />
−3<br />
2,<br />
3⋅<br />
10<br />
−4<br />
HARDWARE-ENTWURF EINER FLEXIBLEN<br />
FEHLERKORREKTUREINHEIT FÜR FLASHSPEICHER<br />
VI. FAZIT<br />
Das komplette Design <strong>ein</strong>es BCH-Encoders und Decoders<br />
wurde in Verilog HDL implementiert und auf<br />
<strong>ein</strong>em Xilinx Virtex4 (xc4vlx200) FPGA verifiziert.<br />
Für <strong>die</strong>sen FPGA benötigt <strong>ein</strong> 24-bit korrigierender<br />
paralleler BMA 11069 Lookup Tables (LUT), während<br />
der serielle 48-bit korrigierende BMA 3462 LUT<br />
belegt. Insgesamt werden für <strong>ein</strong>e serielle/parallele<br />
Mischimplementierung 14531 LUT benötigt. Eine r<strong>ein</strong><br />
parallele Implementierung für <strong>ein</strong>en 48-bit korrigierenden<br />
BMA benötigt 29655 LUT.<br />
In <strong>die</strong>sem Artikel haben wir den Enco<strong>die</strong>r- und Deco<strong>die</strong>rablauf<br />
des BCH-Codes erläutert. Eine wichtige<br />
Anforderung dabei war, mehrere Codes in <strong>ein</strong>er<br />
Hardwareimplementierung zu realisieren. Diese Flexibilität<br />
wurde durch <strong>ein</strong>e gemischte seriell/parallel<br />
Implementierung des BMA erreicht. Diese Implementierung<br />
erlaubt es, ohne Reduktion des mittleren<br />
Durchsatzes den Flächenbedarf signifikant zu verringern.<br />
LITERATURVERZEICHNIS<br />
[1] R. Micheloni, A. Marelli, R. Ravasio, „Error Correction<br />
Codes for on-Volatile Memories”, Springer, 2008.<br />
[2] E. Yaakobi, J. Ma, L. Grupp, P. <strong>Sie</strong>gel, S. Swanson, and J.<br />
Wolf, „Error characterization and coding schemes for flash<br />
memories”, in IEEE GLOBECOM Workshops, Dec. 2010,<br />
pp. 1856-1860.<br />
[3] R. E. Blahut, „Algebraic Codes for Data Transmission. “,<br />
Cambridge Univeristy Press, 2003.<br />
[4] W. Liu, J. Rho, and W. Sung, „Low-Power High-Throughput<br />
BCH Error Correction VLSI Design for Multi-Level-Cell<br />
NAND Flash Memory“, in Signal Processing Systems Design<br />
and Implementation, 2006. SIPS ’06. IEEE Workshop<br />
on, oct. 2006, pp. 303-308.<br />
[5] R. E. Blahut,, „Theory and Practice of Error Control<br />
Codes.”, Addison-Wesley, 1983.<br />
[6] M. Bagatin, „Effects of Ionizing Radiation in Flash Memories“,<br />
University of Padova, 2010.<br />
[7] J. Spinner, J. Freudenberger, „Generierung von Codekomponenten<br />
für BCH-Enco<strong>die</strong>rer“, <strong>MPC</strong> Workshop, 2012.