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.
- 2. The apparatus of claim 1, further comprising
wherein the output buffer available indicator includes using an output buffer counter, wherein the output buffer counter is changed in a first manner when a unit of data is placed into an associated output buffer and wherein the output buffer counter is changed in a second manner when a unit of data is removed from the associated output buffer.
- 3. The apparatus of claim 2, further comprising
wherein the input buffer available indicator includes using an input buffer counter, wherein the input buffer counter is changed in a first manner when a unit of data is placed into an associated input buffer and wherein the input buffer counter is changed in a second manner when a unit of data is removed from the associated input buffer.
- 4. The apparatus of claim 3, wherein the first manner includes incrementing a counter and wherein the second manner includes decrementing the counter.
- 5. The apparatus of claim 4, wherein the status indicator indicates that a given task is ready to run when an output buffer associated with the given task has a predetermined negative output buffer counter value and when an input buffer associated with the given task has a predetermined positive input buffer counter.
- 6. The apparatus of claim 5, further comprising
an initialization value stored in a first counter prior to changing the first counter value.
- 7. The apparatus of claim 6, wherein the initialization value is a negative number that corresponds to a number of bytes of data to fulfill an output buffer, and wherein the initialization value is a positive number that corresponds to a number of bytes of data to fulfill an input buffer.
- 8. The apparatus of claim 7, further comprising
a port state indicator for indicating whether sufficient input and output buffers are available to a task.
- 9. The apparatus of claim 8, wherein the ports counter is decremented for 0-to-1 transitions and incremented for 1-to-0 transitions in an associated input buffer counter and wherein the ports counter is incremented for 0-to-1 transitions and is decremented for 1-to-0 transitions in an associated output buffer counter.
- 10. The apparatus of claim 9, wherein the status indicator is responsive to the high-order bit of the ports counter so that a transition of the high-order bit from 1 to 0 indicates that an associated task is ready to run.
- 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.
CLAIM OF PRIORITY
[0001] This application claims priority from U.S. Provisional Patent Application No. 60/391,874, filed on Jun. 25, 2002 entitled “DIGITAL PROCESSING ARCHITECTURE FOR AN ADAPTIVE COMPUTING MACHINE”; which is hereby incorporated by reference as if set forth in full in this document for all purposes.
[0002] This application is related to U.S. patent application Ser. No. 09/815,122, filed on Mar. 22, 2001, entitled “ADAPTIVE INTEGRATED CIRCUITRY WITH HETEROGENEOUS AND RECONFIGURABLE MATRICES OF DIVERSE AND ADAPTIVE COMPUTATIONAL UNITS HAVING FIXED, APPLICATION SPECIFIC COMPUTATIONAL ELEMENTS.”
[0003] This application is also related to the following copending applications:
[0004] U.S. patent application Ser. No. ______, filed on ______, entitled, “PROCESSING ARCHITECTURE FOR A RECONFIGURABLE ARITHMETIC NODE IN AN ADAPTIVE COMPUTING SYSTEM” (Attorney Docket 21202-002910US); and
[0005] U.S. patent application Ser. No. ______ filed on ______, entitled, “UNIFORM INTERFACE FOR A FUNCTIONAL NODE IN AN ADAPTIVE COMPUTING ENGINE” (Attorney Docket 21202-003400US).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60391874 |
Jun 2002 |
US |