01.08.2013 Views

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

Chapter 10 Memory Subsystem.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Public Version<br />

General-Purpose <strong>Memory</strong> Controller www.ti.com<br />

The GPMC.GPMC_ECC_CONTROL[3:0] ECCPOINTER field must be set to the correct value to select<br />

the ECC result register to be used first in the list for the incoming ECC computation process. The<br />

ECCPointer can be read to determine which ECC register is used in the next ECC result storage for the<br />

ongoing ECC computation. The GPMC.GPMC_ECCj_RESULT register value (j = 1 to 9) can be<br />

considered valid when ECCPOINTER equals j + 1. When GPMC.GPMC_ECCj_RESULT (where j = 9) is<br />

updated, ECCPOINTER is frozen at <strong>10</strong>, and ECC computing is stopped (ECCENABLE = 0).<br />

The ECC accumulator must be reset before any ECC computation accumulation process. The<br />

GPMC.GPMC_ECC_CONTROL[8] ECCCLEAR bit must be set to 1 (nonpersistent bit) to clear the<br />

accumulator and all ECC result registers.<br />

For each ECC result (each GPMC.GPMC_ECCj_RESULT register, j = 1 to 9), the number of bytes or<br />

Word16s used for ECC computing accumulation can be selected from between two programmable values.<br />

The ECCjRESULTSIZE bits (j = 1 to 9) in the GPMC.GPMC_ECC_SIZE_CONFIG register select which<br />

programmable size value (ECCSIZE0 or ECCSIZE1) must be used for this ECC result (stored in<br />

GPMC.GPMC_ECCj_RESULT).<br />

The ECCSIZE0 and ECCSIZE1 fields allow selection of the number of bytes or Word16s used for ECC<br />

computation accumulation. Any even values from 2 to 512 are allowed.<br />

Flexibility in the number of ECCs computed and the number of bytes or Word16s used in the successive<br />

ECC computations enables different NAND page error-correction strategies. Usually based on 256 or 512<br />

bytes and on 128 or 256 Word16, the number of ECC results required is a function of the NAND device<br />

page size. Specific ECC accumulation size can be used when computing the ECC on the NAND spare<br />

byte.<br />

For example, with a 2-Kbyte data page 8-bit-wide NAND device, eight ECCs accumulated on 256 bytes<br />

can be computed and added to one extra ECC computed on the 24 spare bytes area where the eight ECC<br />

results used for comparison and correction with the computed data page ECC are stored. The GPMC then<br />

provides nine GPMC.GPMC_ECCj_RESULT registers (j= 1 to 9) to store the results. In this case,<br />

ECCSIZE0 is set to 256, and ECCSIZE1 is set to 24; the ECC[1:8]RESULTSIZE bits are set to 0, and the<br />

ECC9RESULTSIZE bit is set to 1.<br />

<strong>10</strong>.1.5.14.3.1.2 ECC Enabling<br />

The GPMC.GPMC_ECC_CONFIG[3:0] ECCCS field selects the allocated chip-select. The<br />

GPMC.GPMC_ECC_CONFIG[0] ECCENABLE bit enables ECC computation on the next detected read or<br />

write access to the selected chip-select.<br />

The ECCPOINTER, ECCCLEAR, ECCSIZE, ECCjRESULTSIZE (where j = 1 to 9), ECC16B, and ECCCS<br />

fields must not be changed or cleared while an ECC computation is in progress.<br />

The ECC accumulator and ECC result register must not be changed or cleared while an ECC computation<br />

is in progress.<br />

Table <strong>10</strong>-5 describes the ECC enable settings.<br />

Table <strong>10</strong>-5. ECC Enable Settings<br />

Bit Field Register Value Comments<br />

ECCCS GPMC_ECC_CONFIG 0 -7 Selects the chip-select where ECC is computed<br />

ECC16B GPMC_ECC_CONFIG 0/1 Selects column number for ECC calculation<br />

ECCCLEAR GPMC_ECC_CONTROL 0 -7 Clears all ECC result registers<br />

ECCPOINTER GPMC_ECC_CONTROL 0 -7 A write to this bit field selects the ECC result register<br />

where the first ECC computation is stored. Set to 1<br />

by default.<br />

ECCSIZE1 GPMC_ECC_SIZE_CONFIG 0x00 -0xFF Defines ECCSIZE1<br />

ECCSIZE0 GPMC_ECC_SIZE_CONFIG 0x00 - 0xFF Defines ECCSIZE0<br />

ECCjRESULTSIZE GPMC_ECC_SIZE_CONFIG 0/1 Selects the size of ECCn result register<br />

(j from 1 to 9)<br />

ECCENABLE GPMC_ECC_CONFIG 1 Enables the ECC computation<br />

2146<strong>Memory</strong> <strong>Subsystem</strong> SPRUGN4L–May 20<strong>10</strong>–Revised June 2011<br />

Copyright © 20<strong>10</strong>–2011, Texas Instruments Incorporated

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!