Patent ID: 8533560

Claim:
A controller connected to an access unit, a host interface, and a first generating unit, the access unit configured to support a readout/writing process from/to a storage unit that has a plurality of storage areas each including a user data storage area and a redundant area and stores data associated with each logical block address in each of the storage areas, the host interface configured to receive, from a host device, a special data setting request containing logical block address information and special data identification information identifying a type of a predetermined response, and send the special data setting request to a special data setting unit, the first generating unit configured to receive, from a request source, data from which a first error detecting code or a first error correcting code is to be generated, generate the first error detecting code or the first error correcting code from the data based on a predetermined method, and send the first error detecting code or the first error correcting code to the request source, the controller comprising: a bit string manipulating unit configured to receive a manipulation target data from a request source, manipulate a bit string of the manipulation target data based on a predetermined rule, and send a manipulated manipulation target to the request source; and the special data setting unit configured to receive the special data setting request from the host interface, extract the special data identification information from the special data setting request, generate an identification bit string based on the special data identification information, send the identification bit string to the first generating unit, receive a first error detecting code associated with the identification bit string from the first generating unit, send the identification bit string and the first error detecting code as the manipulation target data to the bit string manipulating unit, receive a manipulated manipulation target data from the bit string manipulating unit, extract logical block address information from the special data setting request, and instruct the access unit to write the identification bit string in the manipulated manipulation target data to the user data storage area in the storage area located by the logical block address information and to write the first error detecting code in the manipulated manipulation target data to the redundant area.