Datasheet
252
32072H–AVR32–10/2012
AT32UC3A3
For ECC-RS, in order to perform 4-error correction per 512 bytes of 8-bit words, the codeword
have to be generated by the RS4 Encoder module and stored into the NAND Flash extra area,
according to the scheme shown in Figure 17-5 on page 252
Figure 17-5. RS Codeword Generation
In read mode, firstly, the detection for any error is done with the partial syndrome module. It is
the responsibility of the ECC-RS Controller to determine after receiving the old codeword stored
in the extra area if there is any error on data and /or on the old codeword. If all syndromes (Si)
are equal to zero, there is no error, otherwise a polynomial representation is written into
CWPS00 to CWPS79 registers. The Partial Syndrome module performs an algorithm according
to the scheme in Figure 17-6 on page 252
Figure 17-6. Partial Syndrome Block Diagram
If the Correction Enable bit is set in the ECC Mode Register (MD.CORRS4) then the polynomial
representation of error are sent to the polynomial processor. The aim of this module is to per-
form the polynomial division in order to calculate two polynomials, Omega (Z) and Lambda (Z),
which are necessary for the two following modules (Chien Search and Error Evaluator). In order
to perform addition, multiplication, and division a Read Only Memory (ROM) has been added
containing the 1024 elements of the Galois field. Both Chien Search and Error Evaluator work in
parallel. The Error Evaluator has the responsibility to determine the Nth error value in the data
and in the old codeword according to the scheme in Figure 17-7 on page 253
CW7 CW6 CW5 CW4 CW3 CW2 CW1 CW0
+
+ + + +
+
+ +
500
α
28
α
397
α
402
α
603
α
395
α
383
α
539
α
Feedback
DataIn
x
DataIn(x)
x
Mult α
RegOct
x
i
S0
S1
S2
S7