Hardware task manager
First Claim
1. An apparatus for coordinating buffer use among tasks in a processing system, wherein the processing system includes a plurality of hardware nodes, wherein a task is executed on one or more of the hardware nodes, wherein a consuming task uses input buffers to obtain data and wherein a producing task uses output buffers to provide data, the apparatus comprising a task manager for indicating the status of the buffers, the task manager including an output buffer available indicator associated with an output buffer;
- an input buffer available indicator associated with an input buffer; and
a status indicator for indicating that a task is ready to run based on a combination of the output buffer available indicator and the input buffer available indicator.
5 Assignments
0 Petitions
Accused Products
Abstract
A hardware task manager for managing operations in an adaptive computing system. The task manager indicates when input and output buffer resources are sufficient to allow a task to execute. The task can require an arbitrary number of input values from one or more other (or the same) tasks. Likewise, a number of output buffers must also be available before the task can start to execute and store results in the output buffers. The hardware task manager maintains a counter in association with each input and output buffer. For input buffers, a negative value for the counter means that there is no data in the buffer and, hence, the respective input buffer is not ready or available. Thus, the associated task can not run. Predetermined numbers of bytes, or “units,” are stored into the input buffer and an associated counter is incremented. When the counter value transitions from a negative value to a zero the high-order bit of the counter is cleared, thereby indicating the input buffer has sufficient data and is available to be processed by a task.
99 Citations
12 Claims
-
1. An apparatus for coordinating buffer use among tasks in a processing system, wherein the processing system includes a plurality of hardware nodes, wherein a task is executed on one or more of the hardware nodes, wherein a consuming task uses input buffers to obtain data and wherein a producing task uses output buffers to provide data, the apparatus comprising
a task manager for indicating the status of the buffers, the task manager including an output buffer available indicator associated with an output buffer; -
an input buffer available indicator associated with an input buffer; and
a status indicator for indicating that a task is ready to run based on a combination of the output buffer available indicator and the input buffer available indicator. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for coordinating buffer use among tasks in a processing system, the method executing in the processing system, wherein the processing system includes a plurality of hardware nodes, wherein a task is executed on one or more of the hardware nodes, wherein a consuming task uses input buffers to obtain data and wherein a producing task uses output buffers to provide data, the method including the following
indicating the status of one or more buffers associated with a task; -
maintaining an output buffer available indicator associated with an output buffer;
maintaining an input buffer available indicator associated with an input buffer; and
providing a status indicator for indicating that a task is ready to run based on a combination of the output buffer available indicator and the input buffer available indicator.
-
-
12. A computer-readable medium including instructions for coordinating buffer use among tasks in a processing system, wherein the processing system includes a plurality of hardware nodes, wherein a task is executed on one or more of the hardware nodes, wherein a consuming task uses input buffers to obtain data and wherein a producing task uses output buffers to provide data, the computer-readable medium including
one or more instructions for indicating the status of one or more buffers associated with a task; -
one or more instructions for maintaining an output buffer available indicator associated with an output buffer;
one or more instructions for maintaining an input buffer available indicator associated with an input buffer; and
one or more instructions for providing a status indicator for indicating that a task is ready to run based on a combination of the output buffer available indicator and the input buffer available indicator.
-
Specification