Patent ID: 8495336

Claim:
A controller that is connected to a data access unit that writes and reads data to and from a data storage unit that stores data, a management information access unit that writes and reads data to and from a management information storage unit that stores management information including address conversion information in which physical addresses and logical addresses of the data storage unit are associated with each other, a first access unit that writes and reads data to and from a first storage unit that stores a first physical address of the data storage unit, and a second access unit that writes and reads data to and from a second storage unit that stores a second physical address of the data storage unit, wherein a storage area of the data storage unit is composed of a block, the block being a unit for erasing data and including a plurality of pages, a page being a unit for writing and reading data, the data access unit sequentially writes data in non-written pages in units of a page among the pages in the block from which data is erased, the block includes a log-structured block for host write that is allocated for write object data, the write object data being data requested to be written by a host device and a log-structured block for compaction that is allocated for compaction object data, the first physical address is indicative of a page in the log-structured block for the host write, and the second physical address is indicative of a page in the log-structured block for the compaction, and wherein the controller comprises: a receiver that receives a data write request from the host device; a write instructing unit that instructs the first access unit to read the first physical address, instructs the data access unit to write the write object data in a page in the log-structured block for the host write indicated by the first physical address, instructs the management information access unit to update the address conversion information of the write object data, and instructs the first access unit to update the first physical address; and a compaction unit that instructs the management information access unit to read the management information, extracts a physical address of the compaction object data among data stored in the block on the basis of the management information read, instructs the data access unit to read the compaction object data stored in a page in the block indicated by the physical address, instructs the second access unit to read the second physical address, instructs the data access unit to write the compaction object data in a page in the log-structured block for the compaction indicated by the second physical address read, instructs the management information access unit to update the address conversion information of the compaction object data, and instructs the second access unit to update the second physical address.