A device can receive information to be stored in a first part of a first
portion of a block, read previously-stored information from a second
part, and store the specified information in the first part and simulate
storage of the previously-stored information in the second part while
generating error detection information which is then stored in a second
portion of the block. The device can read a specified subset of sections
in a block, use part of each section to detect and/or correct an error in
another part thereof, while avoiding reading the error detection
information unless a section in the subset has an uncorrected error.
Detected errors are corrected with successive correction stages, while
maintaining for each section being processed in the stages a count of the
number of other sections which are thereafter read in succession without
error.