1. A method comprising:
loading initialization code into a control store in an embedded processor, the embedded processor in an array of embedded processors in a multi-core processor;
executing the initialization code, the initialization code comprising instructions to initialize the embedded processor;
determining if the execution of the initialization code is complete; and
replacing the initialization code in the control store of the embedded processor with main code after the execution of the initialization code is complete, the main code comprising instructions related to tasks to be performed by the embedded processor after initialization of the embedded processor.
2. The method of claim 1 wherein replacing the initialization code includes overwriting the initialization code.
3. The method of claim 1 wherein replacing the initialization code includes:
clearing the control store; and
writing the main code into the control store.
4. The method of claim 1 further comprising resetting a program counter before executing the main code.
5. The method of claim 1 further comprising maintaining separate execution states for the initialization code and the main code.
6. The method of claim 1 further comprising:
killing all threads of the embedded microprocessor subsequent to determining that the initialization is complete; and
reviving all threads of the embedded microprocessor prior to executing the main code.
7. The method of claim 1 wherein the initialization code is not called from functions included in the main code.
8. The method of claim 1 further comprising concurrently compiling the initialization code and the main code.
9. The method of claim 1 further comprising calling the initialization code from the main code and removing the call from the main code after execution of the initialization code is complete.
10. A system comprising:
an engine, the engine in an array of engines in a multi-core processor;
a compiler; and
a loader, the compiler and loader located separately from the engine, wherein the compiler and loader are configured to:
load an initialization routine into a control store of the engine, the initialization routine comprising instructions to initialize the engine;
upon completion of the initialization routine replace the initialization code in the control store of the engine with a main routine, the main code comprising instructions related to tasks to be performed by the engine after initialization of the engine.
11. The system of claim 10 wherein the loader and compiler are further configured to inactivate at least some threads subsequent to the determined completion of the initialization routine.
12. The system of claim 11 wherein the compiler and loader are further configured to revive the threads.
13. A computer program product, tangibly embodied in an information carrier, for executing instructions on a processor, the computer program product being operable to cause a machine to:
load initialization code into a control store in an embedded microprocessor, the embedded processor in an array of embedded processors in a multi-core processor;
execute the initialization code, the initialization code comprising instructions to initialize the embedded processor;
determine if the execution of the initialization code is complete; and
replace the initialization code in the control store of the embedded processor with main code after the execution of the initialization code is complete, the main code comprising instructions related to tasks to be performed by the embedded processor after initialization of the embedded processor.
14. The computer program product of claim 13 wherein the instructions to cause a machine to replace the initialization code include instructions to cause a machine to overwrite the initialization code.
15. The computer program product of claim 13 wherein the instructions to cause a machine to replace the initialization code include instructions to cause a machine to: clear the control store; and
write the main code into the control store.
16. The computer program product of claim 13 further comprising instructions to cause a machine to reset a program counter before executing the main code.
17. The computer program product of claim 13 further comprising instructions to cause a machine to maintain separate execution states for the initialization code and the main code.
18. The computer program product of claim 13 further comprising instructions to cause a machine to:
kill all threads of the embedded microprocessor subsequent to determining that the initialization is complete; and
revive all threads of the embedded microprocessor prior to executing the main code.
19. A router comprising:
a backplane; and
a processor, the processor including:
a plurality of engines; and
a loader located separately from the engines, wherein the loader is configured to:
load an initialization routine into a control store of the engines;
executing the initialization routine, the initialization routine comprising instructions to initialize the engine;
determine completion of the initialization routine; and
overwrite the initialization routine in the control store of the engine with a main routine after the execution of the initialization routine is complete, the main routine comprising instructions related to tasks to be performed by the engine after initialization of the engine.
20. The system of claim 19 wherein the loader is further configured to kill all threads subsequent to the determine completion of the initialization routine.
21. The system of claim 19 wherein the loader is further configured to revive the threads.
22. An arrangement configured to:
concurrently compile an initialization code and a main code to generate compiled initialization instructions and compiled main instructions;
load the compiled initialization instructions into a control store in an embedded microprocessor, the embedded microprocessor in an array of embedded processors in a multi-core proccssor;
determine if the execution of the compiled initialization instructions is complete; and
replace the compiled initialization instructions in the control store of the embedded microprocessor with the compiled main instructions after the execution of the initialization instructions is complete, the main instructions comprising instructions related to tasks to be performed by the embedded microprocessor after initialization of the embedded processor.
23. The arrangement of claim 22 further configured to reset a program counter before executing the main code.
24. The arrangement of claim 22 further configured to maintain separate execution states for the initialization code and the main code.
25. The arrangement of claim 22 further configured to insert a call in the main code to the initialization code and remove the call from the main code after execution of the initialization code is complete.
26. The arrangement of claim 22 wherein the arrangement includes a compiler.
27. The arrangement of claim 22 wherein the arrangement includes a loader.
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 conferencing system, comprising:
one or more computerized servers connected to a network;
software executing on the one or more servers providing an interface allowing a caller to invoke specific functions by spoken or keyed input, including at least:
enabling a caller using a telephony device to initiate and configure a new conference by input of a pre-assigned code, wherein configuration allows the initiator to select participants from personal profile information stored in a data repository accessible to the server, or to leave the conference open to new participants.
2. The conferencing system of claim 1 wherein the initiator is enabled to select a pre-stored list of participants for a new conference, or may select participants individually from one or more lists presented by the interface.
3. The conferencing system of claim 2 wherein the interface is adapted to call participants to join the conference after the initiator of the conference selects participants either by a list or individually.
4. The conferencing system of claim 2 wherein pre-stored lists of participants are stored by list names that have social or business context.
5. The conferencing system of claim 1 wherein the initiator is prompted by the interface to enter a conference name or identifier code to be used by other participants to join the conference, and wherein subsequent callers entering the name or identifier code are joined to the conference.
6. The conferencing system of claim 5 wherein the conference name has a social or a business context.
7. The conferencing system of claim 1 wherein the initiator is verified before being enabled to initiate a conference.
8. The conferencing system of claim 1 wherein, after configuration, as each participant enters the conference, an enunciated message is provided to just that participant as to one or both of the number and identity of participants who are already in the conference.
9. The conferencing system of claim 1 wherein, after a conference has started, the interface announces to participants in the conference the arrival of any new participant and the departure of any participant from the conference, and how many participants remain in the conference.
10. The conferencing system of claim 1 wherein, after a primary conference has started, the interface enables a participant in the conference to open a private secondary conference by inviting individual ones of participants in the primary conference to a secondary conference, the audio processes of the secondary conference not available to uninvited participants in the primary conference.
11. A conferencing method, comprising the steps of:
(a) contacting a conference server by an initiator;
(b) presenting an interface to the initiator by software executing from a non-transitory medium on a processor of the server;
(c) inputting a pre-assigned code by the initiator through the interface to establish a new conference.
(d) selecting participants by the initiator through the interface from personal profile information stored in a data repository accessible to the server, or leaving the conference open to new participants.
12. The method of claim 11 wherein the initiator is enabled to select a pre-stored list of participants for a new conference, or may select participants individually from one or more lists presented by the interface.
13. The method of claim 12 wherein the interface is adapted to call participants to join the conference after the initiator of the conference selects participants either by a list or individually.
14. The method of claim 12 wherein pre-stored lists of participants are stored by list names that have social or business context.
15. The method of claim 11 wherein the initiator is prompted by the interface to enter a conference name or identifier code to be used by other participants to join the conference, and wherein subsequent callers entering the name or identifier code are joined to the conference.
16. The method of claim 15 wherein the conference name has a social or a business context.
17. The method of claim 11 wherein the initiator is verified before being enabled to initiate a conference.
18. The method of claim 11 wherein, after configuration, as each participant enters the conference, an enunciated message is provided to just that participant as to one or both of the number and identity of participants who are already in the conference.
19. The method of claim 11 wherein, after a conference has started, the interface announces to participants in the conference the arrival of any new participant and the departure of any participant from the conference.
20. The method of claim 11 wherein, after a primary conference has started, the interface enables a participant in the conference to open a private secondary conference by entering identity to invite individual ones of participants in the primary conference to a secondary conference, the audio processes of the secondary conference not available to uninvited participants in the primary conference.