A method for managing data stored in a non-volatile memory having a
plurality of memory blocks includes, first, determining if an error
occurs in the read data in a selected memory block. If an error occurs in
the read data in the selected memory block, then a region to which the
selected memory block belongs is determined. If the selected memory block
belongs to a code data region, it is determined if the number of bit
errors of the read data is less than or equal to an allowed number of bit
errors. If number of bit errors of the read data is less than or equal to
the allowed number of bit errors, the selected memory block of the code
data region is replaced with a reserved memory block, and the selected
memory block of the code data region is designated to a user data region.