Patent ID: 7849382
Filing Date: 2010-12-07
Classification: G06F,G11C

Abstract:
1. A memory control circuit for a rewritable nonvolatile memory comprising: a first management table that stores management data, which indicates a data writing condition of the nonvolatile memory at every data writing by blocks; a second management table that stores management data, which is a copy of the management data of said first management table upon completion of data writing of a predetermined unit of data, wherein the predetermined unit includes a plurality of blocks; a writer that writes the predetermined unit of data in the blocks of the nonvolatile memory based on the management data of said first management table; a management table updater that updates the management data of said first management table so that rewriting to the written blocks is forbidden; a determiner that determines whether or not the data writing to each block is normally executed; an error address register that registers an address of a block for which said determiner determines that the data writing is not normally executed; an error corrector that reads the data in the block identified by the address registered in said error address register, after completion of the writing of the predetermined unit of data, and that detects and corrects an error in the read data; and a termination controller that normally terminates, after copying the management data of said first management table to said second management table when the writing of the predetermined unit of data is set to be valid, based on a state of the error detected by said error corrector, and that abnormally terminates, after copying the management data of said second management table to said first management table when the writing of the predetermined unit of data is set to be invalid, based on the state of the error detected by said error corrector, so that the management data of the first management table is reverted to a state before the data writing of the predetermined unit of data is performed.