A device comprises a memory array in which a plurality of codewords is
stored. Each codeword comprises an error correction code and a data block
that comprises a plurality of units of data. The device further comprises
an error code correction module coupled to the memory array. When
multiple units of data are to be read from the device for an address, a
codeword stored in a location associated with the address is fetched from
the memory array, the error code correction module decodes the codeword
and corrects any errors in the data block for that codeword, and the
multiple units of data are read from the corrected data block.