1. A computer implemented method of controlling the data rate of a data transmission between an emitter and a receiver, wherein data rate adaptation control commands may be sent using a return path from the receiver to the emitter, the method comprising:
monitoring at least one receiving condition at the receiver;
determining at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands;
estimating the transmission time of the data rate adaptation control commands from the receiver to the emitter; and
adjusting at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands based on said estimation of the transmission time of the data rate adaptation control commands from the receiver to the emitter.
2. The method according to claim 1 wherein determining at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands comprises determining a set of at least one said threshold, and wherein adjusting at least one said threshold comprises changing the set of at least one said threshold used to trigger data rate adaptation control commands.
3. The method according to claim 1 wherein the receiving condition monitored at the receiver is the filling level of the receiver input buffer.
4. The method according to claim 1 wherein determining at least one threshold on said receiving conditions to trigger data rate adaptation control commands comprises:
determining a first threshold corresponding to an almost empty filling level of the receiver input buffer; and
determining a second threshold corresponding to an almost full filling level of the receiver input buffer.
5. The method according to claim 1 wherein the transmission time of the data rate adaptation control commands from the receiver to the emitter is estimated based on the filling level of the emitting buffer for said data rate control commands at the receiver.
6. The method according to claim 5, wherein the estimation comprises:
determining at least one threshold on the filling level of the emitting buffer for the data rate control commands at the receiver; and
associating the ranges of filling levels defined by at least one said threshold with estimations of the transmission time.
7. The method according to claim 2, wherein said set of at least one threshold on at least one said receiving condition to trigger data rate adaptation control commands is associated with corresponding ranges of filling level of the emitting buffer for the data rate control commands at the receiver.
8. A controlling device for controlling the data rate of a data transmission between an emitter and a receiver, wherein data rate adaptation control commands may be sent using a return path from the receiver to the emitter, the controlling device comprising:
a monitoring module to monitor at least one receiving condition at the receiver;
a determining module to determine at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands;
an estimator to estimate the transmission time of the data rate adaptation control commands from the receiver to the emitter;
an adjusting module to adjust at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands based on said estimation of the transmission time of the data rate adaptation control commands from the receiver to the emitter.
9. The device according to claim 8 wherein the determining module to determine at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands comprises:
a determining module to determine a set of at least one said threshold,
and wherein the adjusting module to adjust at least one said threshold comprises a changing module to change the set of at least one said threshold used to trigger data rate adaptation control commands.
10. The device according to claim 8 wherein the receiving condition monitored at the receiver is the filling level of the receiver input buffer.
11. The device according to claim 8 wherein the determining module to determine at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands comprises:
a determining module to determine a first threshold corresponding to an almost empty filling level of the receiver input buffer;
a determining module to determine a second threshold corresponding to an almost full filling level of the receiver input buffer.
12. The device according to claim 8 wherein the transmission time of the data rate adaptation control commands from the receiver to the emitter is estimated based on the filling level of the emitting buffer for said data rate control commands at the receiver.
13. The device according to claim 12, wherein the estimation is performed by:
a determining module to determine at least one threshold on the filling level of the emitting buffer for the data rate control commands at the receiver;
an association module to associate the ranges of filling levels defined by at least one said threshold with estimations of the transmission time.
14. The device according to claim 9, wherein said set of at least one threshold on said receiving conditions to trigger data rate adaptation control commands is associated with corresponding ranges of filling level of the emitting buffer for the data rate control commands at the receiver.
15. A non-transitory computer-readable storage medium on which is stored codes of an executable program causing a computer to execute each of the steps of the method according to claim 1.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method performed by a network processor, comprising executing a first process thread using data in a first register set;
while executing the first process thread, in response to an event having an event tag and an event flag, loading a second register set with data associated with a second process thread, wherein the second register set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
after said executing of the first process thread is completed, executing the second process thread using the data in the second register set.
2. The method of claim 1, further comprising:
while executing the second process thread using the data in the second register set, loading the first register set with data associated with a third process thread.
3. The method of claim 1, wherein the second register set is a duplicate of the first register set.
4. The method of claim 1, wherein an amount of the data associated with the second process thread based on a number of registers in the second register set.
5. The method of claim 1, wherein the event tag is used to access a control word from the first memory, wherein the control word is used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
6. The method of claim 5, wherein a location of the control word in the first memory referenced by the event tag is immediately prior to a location of the data associated with the second process thread.
7. The method of claim 1, wherein the event flag is used to conditionally load the data associated with the second process thread into the registers in the second register set.
8. The method of claim 1, wherein using the event tag to access the data associated with the second process thread from the first memory comprises:
using the event tag as an index to a second memory to access an address to index to the first memory, the address to index to the first memory used to access the data associated with the second process thread in the first memory.
9. The method of claim 8, wherein the address to index to the first memory points to a control word used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
10. The method of claim 8, wherein the address to index to the first memory points to the data associated with the second process thread.
11. A computer readable medium having stored thereon sequences of instructions which are executable by a system, and which, when executed by the system, cause the system to:
execute a first process thread using data in a first register set;
while executing the first process thread, in response to an event having an event tag and an event flag, load a second register set with data associated with a second process thread, wherein the second register set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
after said executing of the first process thread is completed, execute the second process thread using the data in the second register set.
12. The computer readable medium of claim 11, further comprising instructions to cause the system to:
while executing the second process thread using the data in the second register set, load the first register set with data associated with a third process thread.
13. The computer readable medium of claim 11, wherein the second register set is a duplicate of the first register set.
14. The computer readable medium of claim 11, wherein an amount of the data associated with the second process thread based on a number of registers in the second register set.
15. The computer readable medium of claim 11, wherein the event tag is used to access a control word from the first memory, wherein the control word is used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
16. The computer readable medium of claim 15, wherein a location of the control word in the first memory referenced by the event tag is immediately prior to a location of the data associated with the second process thread.
17. The computer readable medium of claim 11, wherein the event flag is used to conditionally load the data associated with the second process thread into the registers in the second register set.
18. The computer readable medium of claim 11, wherein the instructions to cause the system to use the event tag to access the data associated with the second process thread from the first memory comprises instructions to:
use the event tag as an index to a second memory to access an address to index to the first memory, the address to index to the first memory used to access the data associated with the second process thread in the first memory.
19. The computer readable medium of claim 18, wherein the address to index to the first memory points to a control word used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
20. The computer readable medium of claim 18, wherein the address to index to the first memory points to the data associated with the second process thread.
21. A system, comprising:
a reduced instruction set computer (RISC) processor, the RISC processor including a first register set and a second register set, the second register set being a duplicate of the first register set; and
a memory coupled to the RISC processor, wherein the first register set is initialized to a first state using a first data from the memory to enable the RISC processor to process a first thread, wherein the second register set is initialized to a second state using a second data from the memory in response to an event while the RISC processor is processing the first thread, and wherein the event includes an event tag and an event flag, the event tag indicating a location of the memory from which the second data is loaded and the event flag indicating which portion of the data stored in the location of the memory referenced by the event tag should be loaded.
22. The system of claim 21, further comprising a process state loader (PSL) coupled to the RISC processor and the memory, wherein the PSL loads the first data to the first register set and the PSL loads the second data to the second register set while the RISC processor is processing the first thread using the data from the first register set.
23. The system of claim 22, further comprising an event generator coupled to the PSL and the memory to generate the event, wherein the PSL loads in response to receiving the event from the event generator.
24. The system of claim 23, wherein the event tag is used to access one of the first data and the second data from the memory.
25. The system of claim 24, wherein the event tag is used as an index to the memory.
26. The system of claim 25, wherein the event tag is used to access a control word in the memory.
27. The system of claim 26, wherein the control word is used to direct how much of the first data is to be loaded into the first register set and how much of the second data is to be loaded into the second register set.
28. The system of claim 24, wherein the event tag is used as an index to an indirect memory to access an address to the memory.
29. The system of claim 28, wherein the address to the memory is used to access a control word in the memory.
30. The system of claim 28, wherein the address to the memory is used to access one of the first data and the second data in the memory.
31. The system of claim 24, wherein the event further includes one or more event flags, and wherein the one or more event flags are used to conditionally load the first data to the first register set and the second data to the second register set.
32. A system, comprising:
means for executing a first process thread using data in a first register set;
means for loading a second register set with data associated with a second process thread, while executing the first process thread, in response to an event having an event tag and an event flag, wherein the second resister set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
means for executing, after said executing of the first process thread is completed, the second process thread using the data in the second register set.