Patent ID: 8135902

Claim:
A nonvolatile semiconductor memory drive of a type in which data is additionally written, the memory drive comprising: a nonvolatile semiconductor memory arranged as a plurality of groups, each of the plurality of groups consisting of a plurality of pages, each of the plurality of pages comprising at least one cluster used as a data management unit; and a controller coupled to the semiconductor memory, the controller configured to control a process of writing and reading data with respect to the nonvolatile semiconductor memory, the controller comprising: a compaction module configured to acquire free groups by rearranging valid data scattered in n groups in groups of a number not larger than n−1 when the number of free groups remaining in a plurality of groups becomes not larger than a predetermined number, wherein the valid data being rearranged is in a unit of clusters, and a compression module configured to acquire free groups in order to suppress an execution opportunity of the compaction module, by compressing data stored in m groups in which access to valid data stored therein has not been made for a period longer than a predetermined period, and rearranging the compressed data in groups of a number not larger than m−1, wherein data being compressed is in a unit of groups, the compression module further decompresses the compressed data and rearranges the decompressed data when a read frequency with respect to valid data in a group set in a state in which the stored data is compressed and rearranged together with stored data of another group exceeds a predetermined number.