Patent ID: 8108594

Claim:
A memory system comprising: a volatile first storing unit; a nonvolatile second storing unit including a memory cell that can store multi-value data; and a controller that performs data transfer between a host apparatus and the second storing unit via the first storing unit, stores management information including a storage position of the data stored in the second storing unit during a startup operation of the memory system into the first storing unit, and performs, while updating stored management information, data management in the first and second storing units based on the stored management information, the controller includes a management-information storing unit that stores, when a predetermined condition is satisfied, the management information stored in the first storing unit in the second storing unit as a snapshot and stores, in the second storing unit, a pre-log as update difference information of the management information stored before a change occurs in the management information and a post-log as update difference information of the management information stored after the change occurs in the management information; and a management-information restoring unit that performs, when the pre-log or the post-log is present in the second storing unit during the startup operation, restoration of the management information in the first storing unit based on the snapshot and the pre-log or the post-log and performs, when the pre-log and the post-log are not present in the second storing unit during the startup operation, restoration of the management information in the first storing unit based on the snapshot, wherein when a program error occurs while writing of data in the second storing unit is being performed as update processing after storage of the pre-log, the management-information storing unit stores, after performing the data writing again, the snapshot without performing writing of a new log.