1. A data processing module comprising: a first interface configured to connect to (i) a host via a second interface and (ii) a plurality of storage arrays, wherein the second interface is separate from the data processing module, wherein the first interface is configured to receive, from the host via the second interface, a plurality of blocks of data for storage in one or more of the plurality of storage arrays, and wherein the plurality of storage arrays comprise respective processing modules; a memory configured to store the plurality of blocks of data received by the first interface; and a processor configured to (i) determine error checking and correcting processing to be applied to each block of data of the plurality of blocks of data, and (ii) for each block of data, (a) select a storage array from the plurality of storage arrays, (b) transfer the block of data from the memory to the selected storage array, and (c) assign, to the processing module of the selected storage array, the error checking and correcting processing to be applied to the block of data and to be performed by the processing module of the selected storage array, wherein the memory is further configured to store a map, wherein the map indicates storage of the plurality of blocks of data among the plurality of storage arrays.