Patent ID: 8397011

Claim:
A data storage device comprising: an outer routing module receiving data to be stored in the data storage device; a plurality of inner data routing modules operatively coupled to the outer routing module, the outer routing module routing the data to the plurality of inner routing modules based on at least one identifier; a first plurality of memory modules operatively coupled to a first one of the inner data routing modules, the first plurality of memory modules configured to receive the data from the first one of the plurality of inner data routing modules and, wherein at least one of the first plurality of memory modules includes non-volatile memory for storing at least a portion of the data; a plurality of buses including at least first and second buses through which the data is routed, the first and second buses being decoupled by the first one of the inner data routing modules to permit concurrent operation of the first and second buses, the first one of the inner data routing modules being configured to route the data to at least one of the memory modules in the first plurality of memory modules through at least one of the first bus or the second bus; and means for controlling the flow of the data in the data storage device, wherein routing of the data between the outer routing module and the memory modules via the buses is controlled based on flow control information utilized by at least one of the outer routing module and the inner routing modules to determine when to transmit the data via the buses, the flow control information being related to an ability of the outer routing modules, the inner routing modules, or the memory modules to process the data such that timing of transmission of the data is determined in part by availability of the data.