APPARATUS, METHODS, AND SYSTEMS FOR MULTICAST IN A CONFIGURABLE SPATIAL ACCELERATOR
First Claim
1. An apparatus comprising:
- a first output buffer of a first processing element coupled to a first input buffer of a second processing element and a second input buffer of a third processing element via a data path that is to send a dataflow token to the first input buffer of the second processing element and the second input buffer of the third processing element when the dataflow token is received in the first output buffer of the first processing element;
a first backpressure path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when storage is not available in the first input buffer of the second processing element;
a second backpressure path, formed before the dataflow token is generated, from the second input buffer of the third processing element to the first processing element to indicate to the first processing element when storage is not available in the second input buffer of the third processing element;
a first speculation path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when the dataflow token is to be stored in the first input buffer of the second processing element; and
a scheduler of the first processing element to;
dequeue the dataflow token from the first output buffer of the first processing element for a first transmission attempt of the dataflow token when the first backpressure path and the second backpressure path indicate storage is available for the first transmission attempt, andwhen the first backpressure path indicated storage was not available in the first input buffer for the first transmission attempt of the dataflow token and the second backpressure path indicated storage was available in the second input buffer for the first transmission attempt of the dataflow token, dequeue the dataflow token from the first output buffer of the first processing element for a second transmission attempt of the dataflow token when the first speculation path indicates the dataflow token is to be stored in the first input buffer of the second processing element.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and apparatuses relating to multicast in a configurable spatial accelerator are described. In one embodiment, an accelerator includes a first output buffer of a first processing element coupled to a first input buffer of a second processing element and a second input buffer of a third processing element; and the first processing element determines that it was able to complete a transmission in a previous cycle when the first processing element observed for both the second processing element and the third processing element that either a speculation value was set to a value to indicate a dataflow token was stored in its input buffer (e.g., as indicated by a reception value (e.g., bit)) or a backpressure value was set to a value to indicate that storage is to be available in its input buffer before dequeuing the dataflow token from the first output buffer.
57 Citations
24 Claims
-
1. An apparatus comprising:
-
a first output buffer of a first processing element coupled to a first input buffer of a second processing element and a second input buffer of a third processing element via a data path that is to send a dataflow token to the first input buffer of the second processing element and the second input buffer of the third processing element when the dataflow token is received in the first output buffer of the first processing element; a first backpressure path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when storage is not available in the first input buffer of the second processing element; a second backpressure path, formed before the dataflow token is generated, from the second input buffer of the third processing element to the first processing element to indicate to the first processing element when storage is not available in the second input buffer of the third processing element; a first speculation path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when the dataflow token is to be stored in the first input buffer of the second processing element; and a scheduler of the first processing element to; dequeue the dataflow token from the first output buffer of the first processing element for a first transmission attempt of the dataflow token when the first backpressure path and the second backpressure path indicate storage is available for the first transmission attempt, and when the first backpressure path indicated storage was not available in the first input buffer for the first transmission attempt of the dataflow token and the second backpressure path indicated storage was available in the second input buffer for the first transmission attempt of the dataflow token, dequeue the dataflow token from the first output buffer of the first processing element for a second transmission attempt of the dataflow token when the first speculation path indicates the dataflow token is to be stored in the first input buffer of the second processing element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
coupling a first output buffer of a first processing element to a first input buffer of a second processing element and a second input buffer of a third processing element via a data path that is to send a dataflow token to the first input buffer of the second processing element and the second input buffer of the third processing element when the dataflow token is received in the first output buffer of the first processing element; sending a first backpressure value on a first backpressure path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when storage is not available in the first input buffer of the second processing element; sending a second backpressure value on a second backpressure path, formed before the dataflow token is generated, from the second input buffer of the third processing element to the first processing element to indicate to the first processing element when storage is not available in the second input buffer of the third processing element; sending a first speculation value on a first speculation path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when the dataflow token is to be stored in the first input buffer of the second processing element; dequeuing the dataflow token from the first output buffer of the first processing element for a first transmission attempt of the dataflow token when the first backpressure value on the first backpressure path and the second backpressure value on the second backpressure path indicate storage is available for the first transmission attempt; and when the first backpressure value on the first backpressure path indicated storage was not available in the first input buffer for the first transmission attempt of the dataflow token and the second backpressure value on the second backpressure path indicated storage was available the second input buffer for the first transmission attempt of the dataflow token, dequeuing the dataflow token from the first output buffer of the first processing element for a second transmission attempt of the dataflow token when the first speculation value on the first speculation path indicates the dataflow token is to be stored in the first input buffer of the second processing element. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:
-
coupling a first output buffer of a first processing element to a first input buffer of a second processing element and a second input buffer of a third processing element via a data path that is to send a dataflow token to the first input buffer of the second processing element and the second input buffer of the third processing element when the dataflow token is received in the first output buffer of the first processing element; sending a first backpressure value on a first backpressure path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when storage is not available in the first input buffer of the second processing element; sending a second backpressure value on a second backpressure path, formed before the dataflow token is generated, from the second input buffer of the third processing element to the first processing element to indicate to the first processing element when storage is not available in the second input buffer of the third processing element; sending a first speculation value on a first speculation path, formed before the dataflow token is generated, from the first input buffer of the second processing element to the first processing element to indicate to the first processing element when the dataflow token is to be stored in the first input buffer of the second processing element; dequeuing the dataflow token from the first output buffer of the first processing element for a first transmission attempt of the dataflow token when the first backpressure value on the first backpressure path and the second backpressure value on the second backpressure path indicate storage is available for the first transmission attempt; and when the first backpressure value on the first backpressure path indicated storage was not available in the first input buffer for the first transmission attempt of the dataflow token and the second backpressure value on the second backpressure path indicated storage was available the second input buffer for the first transmission attempt of the dataflow token, dequeuing the dataflow token from the first output buffer of the first processing element for a second transmission attempt of the dataflow token when the first speculation value on the first speculation path indicates the dataflow token is to be stored in the first input buffer of the second processing element. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification