Patent ID: 8706987

Claim:
A circuit for shifting or moving data, the circuit comprising: a first block transfer module connected to a source processing unit, the source processing unit comprising a source memory configured to store a plurality blocks of data and a processor configured to access the data in the source memory; a second block transfer module between the source processing unit and a plurality of destination processing units, each of the destination processing units comprising a destination memory and a processor configured to access the data in the destination memory, the second block transfer module comprising: a connection manager configured to: receive a request to shift or move a block of data stored in a location of the source memory, select a destination processing unit from the plurality of destination processing units to store the block of data based on load at the plurality of destination processing units and availability of the plurality of destination memories for storing the block of data, and send a signal to the first block transfer module responsive to shifting or moving the block of data to the selected destination processing unit, the signal representing availability of the location of the source memory for storing another block of data; and at least one copy engine coupled to the connection manager, the at least one copy engine configured to copy the block of data from the source memory to the destination memory of the selected destination processing unit.