Method and system for initiating computation upon unordered receipt of data
First Claim
Patent Images
1. A method of synchronization comprising the steps of:
- receiving a first command to transfer a first block of data;
receiving a second command to transfer a second block of data; and
receiving a third command to receive the first and second blocks of data; and
after receiving the first and second blocks of data, initiating a computation;
wherein in a first instance, the second block of data is received before receiving the first block of data; and
wherein in a second scenario, the first block of data is received before receiving the second block of data.
14 Assignments
0 Petitions
Accused Products
Abstract
In complex systems, the arrival of data to a computation component is difficult to predict. A method of synchronizing the initiation of computation with the reception of its input data is disclosed. The method allows the input data and computation initiation commands to arrive in any order. The method is dynamically adjustable allowing for varying numbers of data inputs.
-
Citations
15 Claims
-
1. A method of synchronization comprising the steps of:
-
receiving a first command to transfer a first block of data;
receiving a second command to transfer a second block of data; and
receiving a third command to receive the first and second blocks of data; and
after receiving the first and second blocks of data, initiating a computation;
wherein in a first instance, the second block of data is received before receiving the first block of data; and
wherein in a second scenario, the first block of data is received before receiving the second block of data.- View Dependent Claims (2, 3)
prior to the initiating the computation, waiting for an available computation indication.
-
-
3. The method of claims 2 further including the step of:
adjusting a counter upon receiving said block of data.
-
4. A synchronization system, comprising:
-
a scheduler sending a first command, a second command, and a third command;
a first component receiving the first command to transfer a first block of data;
a second component receiving the second command to transfer a second block of data; and
a third component receiving the third command to receive the first and second blocks of data and to begin a computation, wherein the third component does not initiate the computation until the third component received the first and second blocks of data.
-
-
5. A synchronization system, comprising:
-
a scheduler for generating one or more commands;
a routing fabric coupled to the scheduler for receiving one or more input data operands that are uniquely tagged;
a fabric interface having an input coupled to the routing fabric, a first output coupled to the routing fabric, and a second output;
a command queue having an input coupled to the fabric interface, the command queue receiving and storing the one or more commands;
a data queue having an input coupled to the fabric interface for receiving an input data, a second input, a first output, and a second output; and
a synchronization unit having a first input coupled to the output of the command queue, a second input and a first output coupled to a compute block, a third input and a second output coupled to the second input and the first input of the data queue wherein commands that initiate computations are delayed by the synchronization unit until receiving the input data operands and receiving a compute available signal. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
Specification