Claims
- 1. A method of forwarding messages among task blocks using a task manager, the method comprising:
receiving a message at an input port of the task manager; determining a destination of the message; storing the message in a pre-allocated segment that is selected from a plurality of segments within an input buffer, the pre-allocated segment associated with an output buffer; and moving the message to the output buffer; wherein the pre-allocated segment is selected based on the destination of the message.
- 2. The method of claim 1 further comprising extracting a TYPE field from the message.
- 3. The method of claim 1 further comprising removing the message from the output buffer by a task block.
- 4. The method of claim 1 wherein the task manager further comprises a first state machine for handling the message at the input port and routing the message to the pre-allocated segment.
- 5. The method of claim 4 wherein the task manager further comprises a second state machine for moving the message from the input buffer to the output buffer.
- 6. The method of claim 1 further comprising adjusting the size of the output buffer.
- 7. A method of forwarding messages among task blocks using a task manager having at least two switch planes, the steps comprising:
receiving a message at an input port of the task manager, determining a priority of the message base on the control signals; routing the message to a one of the at least two switch planes based on the priority of the message; latching the message; extracting the TYPE field; determining a destination of the message; storing the message in a pre-allocated segment that is selected from a plurality of segments within an input buffer, the pre-allocated segment associated with an output buffer; and moving the message to one of the plurality of output buffers of the selected switch plane; wherein the pre-allocated segment is selected based on the destination of the message.
- 8. The method of claim 7 further comprising removing the message from the output buffer by a task block.
- 9. The method of claim 7 wherein the task manager further comprises a first state machine for handling the message at the input port and routing the message to the pre-allocated segment of the input buffer.
- 10. The method of claim 9 wherein the task manager further comprises a second state machine for moving the message from the input buffer to the output buffer.
- 11. The method of claim 7 further comprising adjusting the output buffer.
- 12. An apparatus comprising:
an input buffer with a plurality of pre-allocated segments; and a plurality of output buffers wherein each of the plurality of pre-allocated segments of the input buffer is matched to one of the plurality of output buffers.
- 13. The apparatus of claim 12 further comprising an arbitration state machine coupled to the input buffer and the plurality of output buffers to prevent more than one input buffer from simultaneously accessing the same output buffer.
- 14. The apparatus of claim 13 further comprising a first state machine coupled to the input buffer for routing a message to one of the plurality of pre-allocated segments of the input buffer.
- 15. The apparatus of claim 14 further comprising a second state machine coupled to the input buffer and the plurality of output buffers for moving a message from the input buffer to the output buffer.
- 16. The apparatus of claim 15 further comprising an arbitration state machine communicatively coupled to the second state machine to prevent more than one input buffer from simultaneously accessing the same output buffer.
- 17. The apparatus of claim 12 further comprising an input port interface, the input port interface comprising a ready_h signal, a write_h signal, a ready_l signal, a write_l signal and a data bus.
- 18. The apparatus of claim 12 further comprising an output port interface, the output port interface comprising a ready_h signal, a ready_h signal, a ready_l signal, a read_l signal and a data bus.
- 19. The apparatus of claim 12 wherein the output buffer is configurable and can be adjusted to act as a jitter buffer to control latency.
- 20. A task manager comprising:
a first switch plane; a second switch plane, wherein each switch plane is independently operated the first switch plane and the second switch plane each comprising:
an input buffer with a plurality of pre-allocated segments; and a plurality of output buffers wherein each of the plurality of pre-allocated segments of the input buffer is matched to a one of the plurality of output buffers.
- 21. The task manager of claim 20, the first switch plane and the second switch plane each further comprising an arbitration state machine coupled to the input buffer and the plurality of output buffers to prevent more than one input buffer from simultaneously accessing the same output buffer.
- 22. The task manager of claim 20, the first switch plane and the second switch plane each further comprising a first state machine coupled to the input buffer for routing a message to the one of the plurality of pre-allocated segments of the input buffer.
- 23. The task manager of claim 20, the first switch plane and the second switch plane each further comprising a second state machine coupled to the input buffer and the plurality of output buffers for moving a message from the input buffer to the output buffer.
- 24. The task manager of claim 23, the first switch plane and the second switch plane each further comprising an arbitration state machine communicatively coupled to the second state machine to prevent more than one input port from simultaneously accessing the same output port.
- 25. The task manager of claim 20 further comprising an input port interface, the input port interface comprising a ready_h signal, a write_h signal, a ready_l signal, a write_l signal and a data bus.
- 26. The task manager of claim 20 further comprising an output port interface, the output port interface comprising a ready_h signal, a read_h signal, a ready_l signal, a read_l signal and a data bus.
- 27. The task manager of claim 20 wherein the output buffer is configurable and can be adjusted to act as a jitter buffer to control latency.
- 28. A task manager comprising:
a first switch plane; a second switch plane, wherein each switch plane is independently operated the first switch plane and the second switch plane each comprising:
an input buffer with a plurality of pre-allocated segments; and a plurality of output buffers means for associating each of the plurality of pre-allocated segments of the input buffer to one of the plurality of output buffers.
- 29. The task manager of claim 28, the first switch plane and the second switch plane each further comprising arbitration means coupled to the input buffer and the plurality of output buffers to prevent more than one input buffer from simultaneously accessing the same output buffer.
- 30. The task manager of claim 28, the first switch plane and the second switch plane each further comprising a first routing means coupled to the input buffer for routing a message to one of the plurality of pre-allocated segments of the input buffer.
- 31. The task manager of claim 28, the first switch plane and the second switch plane each further comprising a second routing means coupled to the input buffer and the plurality of output buffers for moving a message from the input buffer to the output buffer.
- 32. The task manager of claim 31, the first switch plane and the second switch plane each further comprising an arbitration means communicatively coupled to the second routing means to prevent more than one input port from simultaneously accessing the same output port.
- 33. The task manager of claim 28 further comprising adjustment means wherein the output buffer is adjusted to act as a jitter buffer to control latency.
- 34. The task manager of claim 33 wherein the adjust means determines how many outstanding messages are waiting in the output buffer before forwarding to the Task block
- 35. A method for predicting the amount of time available to move a message into an input port, wherein messages are removed from the input port by using a round robin scheme, the steps comprising:
determining the number of input buffers an arbitrator must poll before polling the input buffer; and multiplying the number of input buffers the arbitrator must poll by the clock rate.
CROSS-REFERENCE TO RELATED APPLICATIONS.
[0001] This application is a continuation-in-part of application Ser. No. 10/083,042 filed Feb. 26, 2002.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10083042 |
Feb 2002 |
US |
Child |
10262308 |
Oct 2002 |
US |