1. Apparatus for transferring data between data modules, each of said data modules being at least one of a data processing module and a data storage module, the apparatus comprising: at least one crossbar switch, wherein input nodes and output nodes of each of the crossbar switches are coupled to corresponding ones of the data modules, the ith crossbar switch having an Ni-input node by Mi-output node switch fabric, wherein Ni and Mi are each positive integers greater than one and wherein each crossbar switch comprises: an input buffer at each input node having an input arbiter configured to read data packets from each input buffer in accordance with a first scheduling algorithm; a crosspoint buffer at each crosspoint of the switch fabric, the crosspoint buffer providing a queue having an output arbiter configured to read data packets from the crosspoint buffer queue in accordance with a second scheduling algorithm; and an output node configured to receive segments of data packets provided from one or more corresponding crosspoint buffers.