347
11054A–ATARM–27-Jul-11
SAM9X25
28.4
Functional Description
The NAND Flash sector size is programmable and can be set to 512 bytes or 1024 bytes. The
PMECC module generates redundancy at encoding time, when a NAND write page operation is
performed. The redundancy is appended to the page and written in the spare area. This opera-
tion is performed by the processor. It moves the content of the PMECCx registers into the NAND
Flash memory. The number of registers depends on the selected error correction capability,
refer to
. This operation is executed for each sector. At decoding time,
the PMECC module generates the remainder of the received codeword by minimal polynomials.
When all polynomial remainders for a given sector are set to zero, no error occurred. When the
polynomial remainders are other than zero, the codeword is corrupted and further processing is
required.
The PMECC module generates an interrupt indicating that an error occurred. The processor
must read the PMECCISR register. This register indicates which sector is corrupted.
To find the error location within a sector, the processor must execute the decoding steps as
follows:
1.
Syndrome computation
2.
Find the error locator polynomials
3.
Find the roots of the error locator polynomial
All decoding steps involve finite field computation. It means that a library of finite field arithmetic
must be available to perform addition, multiplication and inversion. The finite field arithmetic
operations can be performed through the use of a memory mapped lookup table, or direct soft-
ware implementation. The software implementation presented is based on lookup tables. Two
tables named gf_log and gf_antilog are used. If alpha is the primitive element of the field, then a
power of alpha is in the field. Assume beta = alpha ^ index, then beta belongs to the field, and
gf_log(beta) = gf_log(alpha ^ index) = index. The gf_antilog tables provide exponent inverse of
the element, if beta = alpha ^ index, then gf_antilog(index) = beta.
The first step consists of the syndrome computation. The PMECC module computes the remain-
ders and software must substitute the power of the primitive element.
The procedure implementation is given in
Section 28.5.1 “Remainder Substitution Procedure” on
.
The second step is the most software intensive. It is the Berlekamp’s iterative algorithm for find-
ing the error-location polynomial.
The procedure implementation is given in
Section 28.5.2 “Find the Error Location Polynomial
The Last step is finding the root of the error location polynomial. This step can be very software
intensive. Indeed, there is no straightforward method of finding the roots, except by evaluating
each element of the field in the error location polynomial. However a hardware accelerator can
be used to find the roots of the polynomial. The Programmable Multibit Error Correction Code
Location (PMERRLOC) module provides this kind of hardware acceleration.
Содержание SAM9X25
Страница 26: ...26 11054A ATARM 27 Jul 11 SAM9X25...
Страница 138: ...138 11054A ATARM 27 Jul 11 SAM9X25 138 11054A ATARM 27 Jul 11 SAM9X25...
Страница 162: ...162 11054A ATARM 27 Jul 11 SAM9X25 162 11054A ATARM 27 Jul 11 SAM9X25...
Страница 216: ...216 11054A ATARM 27 Jul 11 SAM9X25 216 11054A ATARM 27 Jul 11 SAM9X25...
Страница 266: ...266 11054A ATARM 27 Jul 11 SAM9X25 266 11054A ATARM 27 Jul 11 SAM9X25...
Страница 330: ...330 11054A ATARM 27 Jul 11 SAM9X25 330 11054A ATARM 27 Jul 11 SAM9X25...
Страница 374: ...374 11054A ATARM 27 Jul 11 SAM9X25...
Страница 468: ...468 11054A ATARM 27 Jul 11 SAM9X25 468 11054A ATARM 27 Jul 11 SAM9X25...
Страница 532: ...532 11054A ATARM 27 Jul 11 SAM9X25 532 11054A ATARM 27 Jul 11 SAM9X25...
Страница 692: ...692 11054A ATARM 27 Jul 11 SAM9X25 692 11054A ATARM 27 Jul 11 SAM9X25...
Страница 777: ...777 11054A ATARM 27 Jul 11 SAM9X25 777 11054A ATARM 27 Jul 11 SAM9X25...
Страница 886: ...886 11054A ATARM 27 Jul 11 SAM9X25 886 11054A ATARM 27 Jul 11 SAM9X25...
Страница 962: ...962 11054A ATARM 27 Jul 11 SAM9X25 962 11054A ATARM 27 Jul 11 SAM9X25...
Страница 1036: ...1036 11054A ATARM 27 Jul 11 SAM9X25 1036 11054A ATARM 27 Jul 11 SAM9X25...
Страница 1067: ...1067 11054A ATARM 27 Jul 11 SAM9X25 1067 11054A ATARM 27 Jul 11 SAM9X25 PTZ Pause Time Zero Enable pause time zero interrupt...
Страница 1069: ...1069 11054A ATARM 27 Jul 11 SAM9X25 1069 11054A ATARM 27 Jul 11 SAM9X25 PTZ Pause Time Zero Disable pause time zero interrupt...
Страница 1071: ...1071 11054A ATARM 27 Jul 11 SAM9X25 1071 11054A ATARM 27 Jul 11 SAM9X25 PTZ Pause Time Zero Pause time zero interrupt masked...
Страница 1128: ...1128 11054A ATARM 27 Jul 11 SAM9X25 1128 11054A ATARM 27 Jul 11 SAM9X25...
Страница 1130: ...1130 11054A ATARM 27 Jul 11 SAM9X25...
Страница 1131: ...1131 11054A ATARM 27 Jul 11 SAM9X25 Revision History Doc Rev 11054A Comments Change Request Ref 1st issue...
Страница 1132: ...1132 11054A ATARM 27 Jul 11 SAM9X25...
Страница 1144: ...xii 11054A ATARM 27 Jul 11 SAM9X25...