A semiconductor memory controlling device to which a plurality of semiconductor memory drives are connected and that writes data requested to be written with a logical address specified by an information processing apparatus, the data including one or more pieces of first data, the first data having a predetermined size,
- the semiconductor memory controlling device comprising:
- a write control unit configured to write a predetermined number of the one or more pieces of the first data having the predetermined size and redundant information that is calculated by using the predetermined number of the one or more pieces of the first data and is used for correcting an error in the predetermined number of pieces of the first data into different semiconductor storage drives, respectively;
- a constructing unit configured to construct a first table storage area for storing therein a first table by using information about specifications of the semiconductor memory drives, the first table showing:
- an association between the logical address and a physical address indicating a position into which the first data is written within the semiconductor memory drives;
- identification information for associating the predetermined number of pieces of first data with the redundant information;
- a table controlling unit configured to store the first table into the first table storage area, the first table being associated with:
- the identification information;
- the physical address and the logical address of the predetermined number of pieces of the first data written into the semiconductor memory drives by the write control unit;
- a physical address indicating a position in which the redundant information is written;
- a reading controlling unit configured to read pieces of second data from the semiconductor memory drives and, if any of the pieces of the second data has an error, read another piece of the second data as well as a second redundant information by referring to the first table, and recover the second data by using said another piece of the second data and the second redundant information;
- a determining unit configured to, when a first semiconductor memory drive within the plurality of semiconductor memory drives is replaced with a second semiconductor memory drive, determine whether data stored in the first semiconductor memory drive is to be recovered into the second semiconductor memory drive, based on a predetermined condition while using information about specifications of the second semiconductor memory drive;
- when the determining unit determines that the data stored in the first semiconductor memory drive is to be recovered into the second semiconductor memory drive, the reading controlling unit reads, by referring to the first table, said another piece of the second data as well as the second redundant information from the first semiconductor memory drive, and recovers the second data by using said another piece of the second data and the redundant information;
- the write control unit writes the recovered second data into the second semiconductor memory drive;
- the table controlling unit updates the first table by storing, into the first table storage area, a physical address of the second data written into the first semiconductor memory drive by the write control unit;
- and
- wherein the information about the specifications indicates at least a block size,
- when the block size indicated by the information about the specifications of the second semiconductor memory drive is different from a block size of another one of the semiconductor memory drives that store therein said another piece of second data, the constructing unit further constructs a second table storage area for storing therein a second table showing an association between a first physical address in the first semiconductor memory drive and a second physical address in the second semiconductor memory drive,
- the semiconductor memory controlling device further comprises a first translating unit configured to, when the block size indicated by the information about the specifications of the second semiconductor memory drive is different from the block size of said another one of the semiconductor memory drives that store therein said another piece of second data, translates the first physical address into the second physical address according to the block sizes, and
- the table controlling unit stores, into the second table storage area, the second table showing the association between the first physical address stored in the first table storage area and the second physical address.