Claims
- 1. A method for efficient processing of tasks in a communications system, comprising:
sampling a current task identifier and a next task identifier; providing a first register file for storing values for a current task; providing a second register file for storing values for the current task that are not in the first register file; providing a third register file for preloading values for the next task; and performing a task switch by making the next task identifier the current task identifier and sampling a further next task identifier.
- 2. The method of claim 1, further comprising the step of completing the preload of the register values for the next task identifier which after the task switch is the current task identifier.
- 3. The method of claim 2, further comprising using the third register file as the second register file after the task switch,.
- 4. The method of claim 1, wherein the first register file comprises registers with a data field and a task identifier field.
- 5. The method of claim 4, wherein the first register file has 32 registers, each register having a 32 bit data field and a 6 bit task identifier field.
- 6. The method of claim 1, wherein the first register file is exposed to a programmer of the communications processor and the second register file and the third register file are hidden from the programmer.
- 7. The method of claim 1, wherein task switches are performed without an explicit save/restore of the register files.
- 8. The method of claim 1, further comprising performing a write during execution of the current task by:
comparing the current task identifier to a task identifier in the first register file; writing a value to the first register file when the current task identifier is the same as the task identifier in the first register file; and writing a value to the first register file when the current task identifier is not the same as the task identifier in the first register file after the content in the first register file is saved to a memory.
- 9. The method of claim 8, wherein the content in the first register file is saved to a task identifier context table.
- 10. The method of claim 1, further comprising performing a read during execution of the current task by:
comparing the current task identifier to a task identifier in the first register file; reading a value from the first register file when the current task identifier is the same as the task identifier in the first register file; and reading a value from the second register file when the current task identifier is not the same as the task identifier in the first register file.
- 11. The method of claim 10, wherein the content of the first register file is not changed as a result of the read.
- 12. A system for efficient processing of tasks in a communications system, comprising:
means for sampling a current task identifier and a next task identifier; a first register file for storing values for a current task; a second register file for storing values for the current task that are not in the first register file; a third register file for preloading values for the next task; and means for performing a task switch by making the next task identifier the current task identifier and sampling a further next task identifier.
- 13. The system of claim 12, wherein the means for performing a task switch completes the preload of the register values for the next task identifier which after the task switch is the current task identifier.
- 14. The system of claim 12, wherein the means for performing a task switch uses the third register file as the second register file after the task switch.
- 15. The system of claim 12, wherein the first register file comprises registers with a data field and a task identifier field.
- 16. The system of claim 15, wherein the first register file has 32 registers, each register having a 32 bit data field and a 6 bit task identifier field, and further wherein the second register file and the third register file each have 32 registers.
- 17. The system of claim 12, further comprising a processor which performs a write during execution of the current task by:
comparing the current task identifier to a task identifier in the first register file; writing a value to the first register file when the current task identifier is the same as the task identifier in the first register file; and writing a value to the first register file when the current task identifier is not the same as the task identifier in the first register file after the content in the first register file is saved to a memory.
- 18. The system of claim 17, wherein the content in the first register file is saved to a task identifier context table.
- 19. The system of claim 12, further comprising a processor which performs a read during execution of the current task by:
comparing the current task identifier to a task identifier in the first register file; reading a value from the first register file when the current task identifier is the same as the task identifier in the first register file; and reading a value from the second register file when the current task identifier is not the same as the task identifier in the first register file.
- 20. The system of claim 19, wherein the content of the first register file is not changed as a result of the read.
- 21. The system of claim 12, wherein the means for performing a task switch comprises a preload and bump unit.
- 22. The system of claim 17, wherein the processor is an ALU.
- 23. The system of claim 19, wherein the processor is an ALU.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] Priority is claimed based on U.S. Provisional Application No. 60/301,843 entitled Communication System Using Rings Architecture, filed Jul. 2, 2001, U.S. Provisional Application No. 60/333,516 entitled Flexible Packet Processor For Use in Communications System, filed Nov. 28, 2001, and U.S. Provisional Application No. 60/347,235 entitled High Performance Communications Processor Supporting Multiple Communications Applications, filed Jan. 14, 2002.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60301843 |
Jul 2001 |
US |
|
60347235 |
Jan 2002 |
US |
|
60333516 |
Nov 2001 |
US |