27.01.2013 Aufrufe

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!