There is disclosed a controller included in a flash memory system
attachable to a memory interface of a host system. If a block in which
new data is written and a block in which old data is written are present
simultaneously, the controller determines in which block the newest data
is written, based on version identifier stored in a redundant area of a
flash memory. Specifically, the controller has an access control function
for controlling access to the flash memory, an address managing function
for managing correspondence between a logical block address supplied from
the host system and a physical block address in the flash memory, a
version identifier setting function for writing version identifier in the
redundant area of the flash memory, and a version identifying function
for identifying a block in which newest data corresponding to a same
logical block address is written based on the version identifier.