Document Number: 001-98285 Rev. *R
Page 22 of 108
S29GL01GS/S29GL512S
S29GL256S/S29GL128S
5.2.2
Incremental Programming
The same word location may be programmed more than once, by either the Word or Write Buffer Programming methods, to
incrementally change 1’s to 0’s. Note that if additional programming is performed on a page its ECC coverage is disabled.
5.3
Automatic ECC
5.3.1
ECC Overview
The Automatic ECC feature works transparently with normal program, erase, and read operations. As the device transfers each
Page of data from the Write Buffer is to the memory array, internal ECC logic programs ECC Code for the Page into a portion of the
memory array that is not visible to the host system. The device evaluates the Page data and the ECC Code during each initial Page
access. If needed, the internal ECC logic corrects a one bit error during the initial access.
Programming more than once to a particular Page will disable the ECC function for that Page. The ECC function will remain disabled
for that Page until the next time the host system erases the Sector containing that Page. The host system may read data stored in
that Page following multiple programming operations; however, ECC is disabled and an error in that Page will not be detected or
corrected.
5.3.2
Program and Erase Summary
For performance and reliability reasons, GL-S devices perform reading and programming on full 32-byte Pages in parallel. The GL-S
device provides ECC on each Page by adding an ECC Code to each Page when it is first programmed. The ECC Code is automatic
and transparent to the host system.
5.3.3
ECC Implementation
Each 32-byte Page in the main flash array and OTP regions features an associated ECC Code. The ECC Code, in combination with
ECC logic, is able to detect and correct any single bit error found in a Page during a read access.
The first Write Buffer program operation applied to a Page programs the ECC Code for that Page. Subsequent programming
operations that occur more than once on a particular Page disable the ECC function for that Page. This allows bit or word
programming; however, note that multiple programming operations to the same Page will disable the ECC function on the Page
where incremental programming occurs. An erase of the Sector containing a Page with ECC disabled will re-enable the ECC
function for that Page.
The ECC function is automatic and transparent to the user. The transparency of the Automatic ECC function enhances data integrity
for typical programming operations that write data once to each Page. The ECC function also facilitates software compatibility to
previous generations of GL Family products by allowing single word programming and bit walking where the same Page or word is
programmed more than once. When a Page has Automatic ECC disabled, the ECC function will not detect or correct an error on a
data read from that Page.
5.3.4
Word Programming
Word programming programs a single word anywhere in the main Flash Memory Array. Programming multiple words in the same
32-byte page disables Automatic ECC protection on that Page. A sector erase of the sector containing that Page will re-enable
Automatic ECC following word programming on that Page.
5.3.5
Write Buffer Programming
Each Write Buffer Program operation allows for programming of 1 bit up to 512 bytes. A 32-byte Page is the smallest program
granularity that features Automatic ECC protection. Programming the same Page more than once will disable the Automatic ECC on
that Page. Cypress recommends that a Write Buffer programming operation program multiple Pages in an operation and write each
Page only once. This keeps the Automatic ECC protection enabled on each Page. For the very best performance, program in full
Lines of 512 bytes aligned on 512-byte boundaries.