Hardware task manager
First Claim
1. A hardware task manager in a corresponding hardware node of a processing system for managing created tasks run on the hardware node, each created task being configured to use one or more input ports to obtain data from one or more producing tasks run on one or more producing hardware nodes of the processing system, each created task being further configured to use one or more output ports to provide data to one or more consuming tasks run on one or more consuming hardware nodes of the processing system, each input port of each created task being associated with a corresponding buffer, the hardware task manager comprising a state machine component configured to:
- identify each created task;
provide a ports count for each created task that indicates how many of the one or more input ports and the one or more output ports that are needed for the created task to be ready to run are available to the created task, each input port being available to the created task when a predetermined amount of data produced by one of the one or more producing tasks and needed by the created task to begin consuming data is available in the corresponding buffer, each output port being available to the created task when a predetermined amount of capacity needed by the created task to begin producing data for consumption by one of the one or more consuming tasks is available in the corresponding buffer; and
provide a task state for each created task that indicates when the created task is ready to run based on the ports count for the created task.
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.
-
Citations
11 Claims
-
1. A hardware task manager in a corresponding hardware node of a processing system for managing created tasks run on the hardware node, each created task being configured to use one or more input ports to obtain data from one or more producing tasks run on one or more producing hardware nodes of the processing system, each created task being further configured to use one or more output ports to provide data to one or more consuming tasks run on one or more consuming hardware nodes of the processing system, each input port of each created task being associated with a corresponding buffer, the hardware task manager comprising a state machine component configured to:
-
identify each created task; provide a ports count for each created task that indicates how many of the one or more input ports and the one or more output ports that are needed for the created task to be ready to run are available to the created task, each input port being available to the created task when a predetermined amount of data produced by one of the one or more producing tasks and needed by the created task to begin consuming data is available in the corresponding buffer, each output port being available to the created task when a predetermined amount of capacity needed by the created task to begin producing data for consumption by one of the one or more consuming tasks is available in the corresponding buffer; and provide a task state for each created task that indicates when the created task is ready to run based on the ports count for the created task. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A hardware node of a processing system comprising:
- one or more input ports to obtain data from one or more producing tasks run on one or more producing hardware nodes of the processing system;
one or more output ports to provide data to one or more consuming tasks run on one or more consuming hardware nodes of the processing system; a hardware task manager for managing created tasks run on the hardware node, each created task being configured to use the one or more input ports to obtain data from one or more producing tasks run on one or more producing hardware nodes of the processing system, each created task being further configured to use one or more output ports to provide data to one or more consuming tasks run on one or more consuming hardware nodes of the processing system, each input port and each output port of each created task being associated with a corresponding buffer; and wherein the hardware task manger composes a state machine component configured to; identify each created task; provide a ports count for each created task that indicates how many of the one or more input ports and the one or more output ports that are needed for the created task to be ready to run are available to the created task, each input port being available to the created task when a predetermined amount of data produced by one of the one or more producing tasks and needed by the created task to begin consuming data is available in the corresponding buffer, each output port being available to the created task when a predetermined amount of capacity needed by the created task to begin producing data for consumption by one of the one or more consuming tasks is available in the corresponding buffer; and provide a task state for each created task that when the created task is ready to run based on the ports count for the created task. - View Dependent Claims (8, 9, 10, 11)
- one or more input ports to obtain data from one or more producing tasks run on one or more producing hardware nodes of the processing system;
Specification