A method and apparatus for generating checksum values for data segments retrieved
from a data storage device for transfer into a buffer memory, is provided. A checksum
list is maintained to contain checksum values, wherein the checksum list includes
a plurality of entries corresponding to the data segments stored in the buffer
memory, each entry for storing a checksum value for a corresponding data segment
stored in the buffer memory. For each data segment retrieved from the storage device:
a checksum value is calculated for that data segment using a checksum circuit;
an entry in the checksum list corresponding to that data segment is selected; the
checksum value is stored in the selected entry in the checksum list; and that data
segment is stored in the buffer memory. Preferably, the checksum circuit calculates
the checksum for each data segment as that data segment is transferred into the
buffer memory.