A memory system, comprising: a plurality of memory modules, each memory module having a capability for writing and reading data, configured so that data comprising a data block and an error correcting code data for the data block, is stored in a group of memory modules of the plurality of memory modules; and a memory controller for reading and writing data to the plurality of memory modules, wherein the group of memory modules is a RAID group, characterised in that the memory controller is configured to: manage the RAID group such that an erase operation is enabled to be performed on one memory module of the RAID group at a time; issue a read request to memory modules of the RAID group to read the stored data block and error correcting code data for the stored data block; and output the data block using either: (a) the error correcting code and a sufficient portion of the stored data block read from the group of memory modules to use the error correcting code data to compute the remaining portion of the stored data block, or (b) the stored data of the data block read from the group of memory modules, whichever of (a) or (b) is received by the memory controller. a plurality of memory modules, each memory module having a capability for writing and reading data, configured so that data comprising a data block and an error correcting code data for the data block, is stored in a group of memory modules of the plurality of memory modules; and a memory controller for reading and writing data to the plurality of memory modules, wherein the group of memory modules is a RAID group, characterised in that the memory controller is configured to: manage the RAID group such that an erase operation is enabled to be performed on one memory module of the RAID group at a time; issue a read request to memory modules of the RAID group to read the stored data block and error correcting code data for the stored data block; and output the data block using either: (a) the error correcting code and a sufficient portion of the stored data block read from the group of memory modules to use the error correcting code data to compute the remaining portion of the stored data block, or (b) the stored data of the data block read from the group of memory modules, whichever of (a) or (b) is received by the memory controller. manage the RAID group such that an erase operation is enabled to be performed on one memory module of the RAID group at a time; issue a read request to memory modules of the RAID group to read the stored data block and error correcting code data for the stored data block; and output the data block using either: (a) the error correcting code and a sufficient portion of the stored data block read from the group of memory modules to use the error correcting code data to compute the remaining portion of the stored data block, or (b) the stored data of the data block read from the group of memory modules, whichever of (a) or (b) is received by the memory controller. (a) the error correcting code and a sufficient portion of the stored data block read from the group of memory modules to use the error correcting code data to compute the remaining portion of the stored data block, or (b) the stored data of the data block read from the group of memory modules, whichever of (a) or (b) is received by the memory controller.