Patent ID: 8898420

Claim:
A non-volatile storage device, which communicates with an access device and carries out reading and/or writing of data in accordance with a command from the access device, the device comprising: one or more non-volatile memories for storing data; and a memory controller for carrying out control of the non-volatile memory; wherein the non-volatile memory includes a plurality of blocks, which are erase units, each of the blocks including a plurality of pages, which are write units of data; and the memory controller, assigns a plurality of error correcting groups each configured by the plurality of pages to one recording region of the non-volatile memory, and assigns data of a first size and an error correcting code with respect to the data of the first size to the error correcting group, further assigns a parity table to a different recording region of the non-volatile memory, the different recording region being different from the one recording region to which the plurality of error correcting groups are assigned, and writes data to the error correcting group and writes a provisional error correcting code with respect to the data to the parity table if a data size is smaller than the first size when writing the data, wherein when a plurality of parity tables each identical to the parity table are stored, the memory controller sets a most recently stored parity table as valid and sets the other of the plurality of parity tables other than the most recently stored parity table as invalid.