Claims
- 1. A system for executing a first task, said system comprising:
a first plurality of memory locations for storing a plurality of parameter sets for operation upon by the first task; and a second plurality of memory locations for storing a second task, wherein the second task calls the first task a plurality of times and provides a different one of the plurality of parameter sets to the first task during each of the plurality of times.
- 2. The system of claim 1, further comprising:
a register comprising a plurality of bits, wherein each of said bits are associated with a particular one of the plurality of parameter sets; and wherein the second task sets the a particular one of the bits associated with a particular one of the plurality of parameters sets after providing the parameter set to the first task.
- 3. The system of claim 2, further comprising:
a third plurality of memory locations for storing a plurality of threads, wherein the plurality of threads includes a calling statement and a certain parameter set.
- 4. The system of claim 3, further comprising:
a fourth plurality of memory locations for storing a third task, wherein the third task receives the parameters from the thread and stores the parameters in the first plurality of memory locations.
- 5. The system of claim 4, wherein the third task launches a fourth task, wherein the fourth polls a particular one of the register bits.
- 6. The system of claim 5, wherein the second task receives results from the first task and sets the particular one of the register bits.
- 7. The system of claim 6, wherein the fourth task detects setting of the particular one of the register bits and wherein the third task provides results to a particular one of the threads.
- 8. A method for executing a task, said method comprising:
receiving a set of parameters from a calling thread; storing the set of parameters in a plurality of memory locations; retrieving results from operation on the set of parameters by the task; and providing the results to the thread.
- 9. The method of claim 8, wherein said method further comprises:
launching a second task for indicating when the first task has operated on said parameters; and receiving an indication from the second task when the first task has operated on said parameters.
- 10. The method of claim 9, wherein retrieving the results is responsive to receiving an indication.
- 11. The method of claim 10, further comprising:
selecting a unique identifier; and associating the unique identifier with the set of parameters.
- 12. A method for executing a task, said method comprising:
selecting a parameter set from a position in a queue; calling the task; providing the parameter set to the task; receiving results from the task; storing the results at the position in the queue; indicating that said position in the queue stores the results; and selecting a parameter set from the next position in the queue.
- 13. A system for executing a task, said system comprising:
a first plurality of memory locations for storing a task manager, wherein the task manager receives task calls for execution of the task from a plurality of threads; and a queue for queuing parameters associated with the task calls, and for causing execution of the task with the parameters.
- 14. The system of claim 13, wherein the task manager for selecting a unique identifiers and associating each of the task calls with a particular one of the unique identifiers, and wherein the queue queues the unique identifiers with the parameters.
- 15. The system of claim 14, wherein the queue returns a result associated with a particular one of the parameters and unique identifier, to a particular one of the calling threads associated with the unique identifier.
- 16. The system of claim 13, further comprising a second plurality of memory locations for storing the task.
- 17. The system of claim 16, wherein the task comprises a Verilog™ task.
- 18. The system of claim 13, further comprising a third plurality of memory locations for storing the plurality of threads.
RELATED APPLICATIONS
[0001] Not Applicable
[0002] Not Applicable
[0003] Not Applicable