Patent ID: 8516182
Filing Date: 2013-08-20
Classification: G06F

Abstract:
1. A controller comprising: a translation table storage unit that stores a translation table in which logical addresses and physical addresses are kept in correspondence with one another, each of the logical addresses indicating a virtual position in an area in a flash memory, and each of the physical addresses indicating a physical position in the area in the flash memory in units of pages; a File Allocation Table (FAT) information storage unit that stores pieces of FAT information and FAT information identifiers that are kept in correspondence with one another, each of the pieces of FAT information indicating a state of data stored in a corresponding page of pages contained in a corresponding block of a plurality of blocks which are areas corresponding to a plurality of the pages, and each of the FAT information identifiers identifying a different one of the blocks to which the corresponding pages each storing data in the state of data indicated by a corresponding one of the pieces of FAT information belong; a block management-table storage unit that stores a block management table in which block identifiers, pieces of use-state judging information, and the FAT information identifiers are kept in correspondence with one another, each of the block identifiers identifying a different one of the blocks, each of the pieces of use-state judging information indicating whether a corresponding one of the blocks is used or unused, and the FAT information identifiers being respectively kept in correspondence with all of such blocks that are each indicated as being used by a corresponding one of the pieces of use-state judging information; and a controller controlling unit that manages data stored in the flash memory by using the translation table, the pieces of FAT information, and the block management table, wherein each of the pieces of FAT information indicates that the data stored in the corresponding page of the pages is at least one of valid, invalid, and deleted, and wherein, when each of all pages contained in any one of the blocks is indicated as either deleted or invalid by the corresponding one of the pieces of FAT information, the controller controlling unit updates the block management table so that the piece of use-state judging information corresponding to the one of the blocks indicates unused, and deletes a corresponding one of the FAT information identifiers that identifies the one of the blocks.