According to a first aspect of the present invention there is provided a method of online software switching from execution of a first version of operating software to execution of a second version of operating software in a communication system, the system comprising connection means controllable by the software for routing and processing communication traffic flows between subscribers connected to the system in response to subscriber requirements, the method being characterised in that it comprises the steps of:
(a) providing a connection means for the system to execute the first version of software;
(b) receiving a second version of the software on the connection device;
(c) receiving an instruction to perform an online software switch at the connection device;
(d) storing persistent data describing at least the routing connection established through the connecting device;
(e) transferring control of the connecting means from the first version of software to interface software executing in the connecting means and operable to maintain a routing connection that has been established through the connecting means;
(f) executing the second version of software concurrently with the interfacing software to enable the second version to recover the persistent data and to configure itself in response; and also
(g) Control of the connected device is transferred from the interface software to the second version of software.
The present invention provides the advantage of enabling a connection device to switch from executing a first version of software to executing a second version of software without causing disruption of communication traffic passing through the connection device.
The method involves the invocation of interfacing software, advantageously included in the first version of software, which can be used to control the connection means without being supported by other parts of the first version of software. Thus, the operation of the connection means is maintained by the interface software when the other part of the first version of software terminates its operation.
Persistent data is identified as data that contains one or more of the following:
(a) a status record of the connected device at the moment of saving the persistent data;
(b) the system includes a record of the manner in which the device is connected;
(c) authorization data relating to system subscribers and users;
(d) a record of all connections that have been established by the connection means and their associated processing functions; and
(e) the state of software objects running in the connected device while the persistent data is saved.
In order to reduce the size and complexity of the persistent data, after step (c) of the method, a first version of software can be used to render the connecting means unresponsive to a new request by a new subscriber to establish an inter-subscriber connection via the connecting means, thereby enabling the connecting means to reach a stable state in which current tasks have been completed before the persistent data is saved.
Conveniently, the system comprises management means for downloading versions of software to the connection means and issuing instructions to perform the on-line software switching in step (c) of the method. Preferably, the management device can be used to communicate with the connection device using messages in an ethernet format.
Subscribers often employ incompatible formats for their communication services. It would therefore be advantageous if the connection means could be used to interface between ethernet communications traffic and E1 or T1 Pulse Code Modulation (PCM) communications traffic.
In one useful embodiment, the connection means preferably comprises a plurality of connection gateways, each gateway comprising an array of a main processor and a Digital Signal Processor (DSP), the main processor being operable to receive routing instructions and to distribute connection routes through the signal processors to provide communication paths between subscribers. It is advantageous that the host processor and the array are disposed in close proximity to each other on a circuit board.
Advantageously, the host processor in each gateway can be used to process ethernet communications traffic, the DSPs can be used to process PCM communications traffic in E1 or T1 format, and the host processor can be used to communicate with the DSPs, thereby providing translation of communications traffic between ethernet format and PCM format of E1 or T1 through the gateway. Allocating the processing of ethernet traffic to the host processor while allocating the processing of PCM to the DSP will enable the gateway to handle high rate traffic on the order of 12000 packets/second on ethernet.
When performing an online software switch, it is advantageous that the interfacing software is operable to maintain the flow of communications traffic through the host processor in steps (e) and (f) of the method. Unless otherwise instructed to do so, the DSPs perform the function of maintaining the established connection there through, based on the associated software in which they are stored. Thus, the interfacing software can ensure that an established connection through the system is not interrupted while performing an online switch.
To more evenly distribute the processing load among the various gateways, the DSPs incorporated in the array of various gateways are grouped by rows, with each row being hardwired to a respective PCM communication service port of a gateway.
Advantageously, when loading the second version of software at each gateway, to avoid interrupting execution of the first version of software, the main processor is connected to the associated memory device, and in step (c) the second version of software is loaded into the second portion of the memory device so as not to overwrite the first version of software residing in the first portion of the memory device.
Similarly, to avoid overwriting of the persistent data stored therein by versions of the software stored in the respective gateways, the main processor is connected to the associated memory means to store the persistent data in the third portion thereof in step (d) without overwriting the third portion when the first and second versions of the software are loaded into the memory means.
In order to ensure that the connection via the connecting means that has been established when performing an online software switch is not interrupted, the software that resides in the random access memory of the signal processor and controls the operation of the signal processor remains un-updated in steps (c) to (g) of the method.
The first version of software is made obsolete when the system is switched to operate with the second version of software, ideally each of the first and second versions of software is capable of enabling the connecting means to function in the system when called after a power interruption to the system.
In order for the version of software executed in the connecting means to determine whether it is an upgraded version or not, the connecting means includes in non-volatile memory basic operating software stored therein which can be used to set flagging means from which the second version of software can determine whether it is itself invoked after a power interruption to the system or when performing an online software switch in the system. For example, determining, by the flagging device, whether the version of software being executed is loading software into the DSP; when performing online software switching, loading the software into the DSP like this is not performed, otherwise the connection that has been established will be interrupted.
In a second aspect of the present invention there is provided a communications system operable in accordance with the method of the first aspect of the present invention as hereinbefore described.
In a third aspect of the invention there is provided a connectivity gateway operable according to the method of the first aspect of the invention as hereinbefore described.
Embodiments of the invention will now be described, by way of example only, with reference to the following figures:
The communication system can potentially be configured in a number of alternative ways. Fig. 1 is one possible configuration of a communication system in accordance with the present invention, the system being indicated generally at 100.
The system 100 includes a first subscriber 110, an internetwork 120 that functions according to the Internet Protocol (IP), and a set of connection gateways according to the present invention, indicated generally at 130, contained within a dashed line 125. The gateways in the gateway group 130 are identical to each other. In addition, system 100 further includes a telephony switch 170 and a second subscriber 180.
Network 120 is connected to a first subscriber 110 and also to other similar subscribers (not shown). Similarly, switch 170 is connected to a second subscriber 180, as well as to other similar subscribers (also not shown). The network 120 is connected to the gateway by an ethernet link.
Each connection gateway, such as gateway 200, includes two Ethernet ports P1And P2Each port can be used to receive or output ethernet traffic at a rate of 100 mbits/sec. Ethernet port P1And P2Through network 120 to management system 160, gatekeeper 150, and signaling gateway 140. Each gateway further comprises four Pulse Code Modulation (PCM) ports Q1, Q2, Q3 and Q4 respectively connected to PCM connection ports of the telephone exchange 170.
Each connection gateway in gateway group 130 contains an associated motorola powerquickii processor. Each powerquickii processor can receive ethernet instructions from central management system 160 via its associated port P1 and P2 using Simple Network Management Protocol (SNMP). Similarly, each PowerQuiccII processor can respond to the management system 160 via its associated port P1 and P2, such as to provide an acknowledgement that the processor has received an instruction.
In addition, each PowerQuiccII processor is also capable of receiving Ethernet instructions from gatekeeper 150. The gatekeeper 150 employs a Media Gateway Control Protocol (MGCP) to communicate with the processor. Similarly, each processor can respond to the gatekeeper 150 via its associated ports P1 and P2. In addition, signaling gateway 140 connects call signaling to gatekeeper 150 to enable call control.
The management system 160 is also connected to other gateway groups and their associated signaling gateways and gatekeepers (not shown). The gatekeeper 150 is then connected to a number of gateways ranging from 300 to 1000 contained within the gateway group 130, that is to say the parameter "n" in fig. 1 is in the range 300 to 1000. Thus, management system 160 is responsible for managing the thousands of connection gateways contained within gateway group 130 and other gateway groups (not shown).
The operation of system 100 to connect subscribers 110 and 180 together will now be described with reference to fig. 1. To contact the second subscriber 180, the first subscriber 110 begins by dialing an access number. The access number is transmitted from the first subscriber 110 to the network 120 which converts the number into ethernet format and then outputs it to the gatekeeper 150 at its ethernet port with the access number in ethernet format. Gatekeeper 150, upon receiving the ethernet format number, immediately determines which of gateway groups 130 are available to provide a communication path between network 120 and switch 170. The gatekeeper 150 then uses Ethernet to route ports P to a gateway (e.g., gateway 200)1And P2An instruction is sent instructing it to provide a communication path for the call from network 120 and switch 170. The notified gateway then establishes a communication path therethrough. The gatekeeper 150 then communicates the access number to the switch 170 via the signaling gateway 140, which in response establishes a communication path from the switch 170 to the second subscriber 120.
When the complete communication path between subscribers 110 and 180 is established, first subscriber 110 begins transmitting message data (e.g., digitally sampled voice) which network 120 receives and converts to ethernet-formatted message data. The data in ethernet format is transmitted from network 120 to the commanded gateway in gateway group 130 where the message data is converted to corresponding message data in PCM format, which is output to switch 170. The switch 170 transmits the message data in PCM format to the second subscriber 180.
The second subscriber 180 will also output return data for transmission to the first subscriber 110. The return data is transmitted from the second subscriber 180 to the switch 170 where it is converted to PCM formatted return data. The PCM formatted return data is then forwarded to the gateways in gateway group 130 that are instructed by gatekeeper 150 to provide a communication path for PCM return data to be transmitted to network 120. The indicated gateway receives the return data in PCM format and converts it into corresponding data in Ethernet format, and the indicated gateway then converts it at its associated port P1And P2The data is output to the network 120. Network 120 then routes the ethernet-formatted data onward to subscriber 110.
Thus, the group of gateways 130, the management system 160, the gatekeeper 150, and the signaling gateway 140 are effective in providing a flexible interface between the network 120 and the switch 170 operating in mutually different communication data formats. In addition to providing a communication path and converting data formats, each gateway in the gateway group 130 can perform other functions, such as filtering, encryption, decryption, and error checking. Each gateway can also be used to provide bi-directional communication, i.e. from its ethernet port to its PCM port and from its PCM port to its ethernet port.
When the system 100 is operating, almost always at least some communication traffic data flows between subscribers connected to the system 100; thus, the system 100 is rarely inactive. This lack of inactivity means that the gateway cannot power down for software upgrades without interrupting data passing therethrough. Conventional connection gateways are not capable of software upgrades in operation without interrupting the transmission of data traffic therethrough. In contrast, the present inventors devised a connection gateway arrangement and a method of operating such a gateway such that the software therein can be upgraded without interrupting the transmission of data via the gateway. To further describe the present invention and its sensitivity to online software upgrades, a connection gateway 200 according to the present invention will now be described with reference to fig. 2.
The gateway 200 is built on a multilayer fiberglass circuit board and contains a number of major components and associated supporting components; the supporting components include a power regulator, a signal regulator, and line drivers and receivers. Such supporting components are well known to those of ordinary skill in the digital circuit design industry.
The major components include a PowerQuiccII processor 300, Synchronous Dynamic Random Access Memory (SDRAM)310, and field programmable erasable read-only memory (FEPROM) 315. These components further include a Programmable Logic Device (PLD) signaling processor 320, and an associated 24-chip Motorola Digital Signal Processor (DSP) array. The DSPs are generally indicated at 330 and are represented by the portion contained by dashed line 340. Gateway 200 further comprises a memory buffer 350, a switching PLD360 and four PCM ports Q are provided1、Q2、Q3And Q4The quaternary PCM termination unit 370. In system 100, port Q1And Q4Are connected to the corresponding PCM ports of the switch 170.
The processor 300 is a proprietary MCP8260 Motorola device that effectively includes two interconnected processors on a silicon die, a first processor capable of executing Power-PC type machine code and a second communication control processor designed to handle ethernet communications and associated input/output stacks. The second processor contains hardware that can be configured to process high-speed data streams (i.e., ethernet data streams with transmission rates on the order of 100 mbits/sec).
Each DSP in array 330 comprises a proprietary Motorola 56311 digital signal processor device including on-chip Random Access Memory (RAM). These DSsP is arranged in four rows, each row containing six DSPs. Preferably, each of the four rows of the DSP is assigned to a slave Q1To Q4To a corresponding one of the PCM ports.
As shown in fig. 2, the main components are connected together. In fig. 2, an ethernet port P1、P2Is connected to the corresponding FCC port of powerquickii processor 300. The processor 300 is connected via a memory bus to its SDRAM310, its FEPROM 315 and a Read Only Memory (ROM) (not shown). The ROM is programmed with basic boot-up operating software to: the software is executed each time power is initially supplied to gateway 200 to run-time processor 300. The processor 300 is further connected to a signaling handler 320 via a local bus.
The processor 320 is a programmable gate array customized to act as a hardware backbone in the gateway 200. The processor 320 comprises four communication ports H connected to respective rows of DSPs1、H2、H3And H4. Moreover, the processor 320 further includes a port K connected to the memory buffer 3501. In addition, the processor 320 includes a plurality of input ports K including four input ports2、K3、K4、K5And four output ports K6、K7、K8、K9Signaling I/FS port(s). From K2To K5Is connected to switch PLD360 and also to PCM termination unit 370. Similarly, from K6To K9Is connected to switch PLD 360. Switch PLD360 is also connected to D of PowerQuiccII processor 3001、D2、D3And D4A port.
Referring to fig. 3, there is shown a top view of the circuit board layout of the gateway 200, wherein the board is generally indicated at 400. The circuit board has an area of approximately 15 cm by 20 cm. An ethernet port P is integrated along the lower edge of the board 4001And P2The connector 410. The middle section along the lower edge includes a PCM port Q1To Q4The connector 420. The electricityThe area outlined by dashed line 420 on the left hand side of the wiring board 400 incorporates the DSP array 330. The DSPs are arranged in four rows, each row containing six DSPs. The handler 320 is located on the right hand side of the board 400. The SDRAM310 is contained in the upper right corner of the board 400. A power conditioning component, generally designated 430, is incorporated in the lower right corner of the board 400. Buffer 350 and swap PLD360 are contained in a central area of board 400.
An overview of the operation of the gateway 200 in the system 100 will now be described with reference to figures 1 and 2. Gateway 200 can be at its port P1And P2Up receives or outputs ethernet traffic. The service may comprise one or more of the following:
(a) communication traffic to or from network 120;
(b) MGCP-controlled input instructions from gatekeeper 150 or from signaling gateway 140; or
(c) SNMP management instructions from management system 160.
The PCM traffic between the gateway 200 and the telephony switch 170 may be in E1 or T1 format.
The T1 format employs a data frame structure defined by the ANSI standard family of T1.111 based on a data rate of 1544 kbits/sec. The T1 frame structure contains multiple frames, each containing 24 time slots. And each slot contains eight bits of data. Each frame further includes an associated synchronization "F" bit at the beginning of the frame outside the time slot to indicate frame synchronization. Furthermore, a multiframe synchronization signal for identifying a multiframe start position containing 24 frames is also given; such signals are defined in the International telecommunication Union recommendation ITU-TG.704.
The E1 format employs a data frame structure based on a data rate of 2048 kbits/sec. The E1 frame structure contains 32 slots, each slot containing 8 bits of data; and these time slots are numbered from slot 0 to slot 31. Slot 0 is used for frame synchronization. In addition, slot 16 is used for SS7 signaling information (as defined in recommendation ITU-TQ.703). Time slots 1 to 15 are allocated to respective communication channels 1 to 15.Similarly, time slots 17 to 31 are allocated to respective communication channels 16 to 30. Thus, PCM communication traffic in E1 format is capable of conveying information corresponding to 30 communication channels. Since the gateway 200 comprises four PCM outputs Q1To Q4And gateway 200 is able to route any channel to these PCM outputs, gateway 200 is therefore able to provide 120 possible connection paths via it.
PowerQuiccII processor 300 pairs its associated Ethernet ports P1And P2Incoming communication traffic is interpreted and separated from instructions from management system 160 or gatekeeper 150. The first processor in PowerQuiccII processor 300 interprets the instructions and responds in a number of ways, such as:
(a) it configures the processor 320 and the DSP to route the channel through the gateway 200 in a particular manner, such as by routing port P1Channels 1 to 5 provided from ethernet traffic are routed to PCM port Q3 and traffic is encrypted;
(b) by which it composes a reply message and passes through port P1、P2Back to the administrative system 160 or the gatekeeper 150, such as an audit response; or
(c) Which loads data or software into a memory area specific to the gateway 200, such as into SDRAM310 or RAM associated with the DSP.
Gateway 200 can be configured so that at its port P1And P2Incoming ethernet communication traffic can be directed through the second communication control processor of powerquickii processor 300 and then across the local bus to processor 320, which outputs the traffic to buffer 350. From there, the traffic stored in buffer 350 is then output again through handler 320 to one or more allocated DSPs in array 330, which process the traffic in the manner indicated by gatekeeper 150. When the traffic is processed in array 330, it then passes through port K of handler 3206To K9Is output to the switchPLD360 and further output therefrom to termination unit 370. Element 370 conditions the processed traffic to be in its PCM port Q1To Q4Output on one or more of them.
Gateway 200 can also be configured to enable ingress to its PCM port Q1To Q4The PCM traffic of (1) routes and processes the traffic in gateway 200 according to instructions from management system 160, gatekeeper 150, or signaling gateway 140. For example, PCM traffic can be routed through the processor 320 to a selected DSP in the array 330 for processing. The corresponding processed traffic from the selected DSP can then be routed through processor 320 and its associated buffer 350, and ultimately there to the second communication control processor of PowerQuiccII processor 300, for routing by the latter to its Ethernet port P1、P2As ethernet traffic output on one or more of them.
Thus, the gateway 300 can be configured to support two-way communications and process through it.
The present inventors have recognized that software loaded into the connection gateway from the management system 160 in the system 100 needs to be updated from time to time for a variety of reasons. Such reasons include, for example, adding more gateway groups or changing the way powerquickii processors in the gateways process ethernet traffic they receive from network 120. It is desirable to be able to download software from management system 160 to a connection gateway without causing disruption to the traffic flowing between network 120 and switch 170. The inventors devised a method of operating system 100 and its associated connection gateway to implement such an update.
In general, this approach has led the present inventors to incorporate into the design of a connection gateway the following features, including:
(a) the SDRAM is divided into three parts, the first part is used for storing the current running software, the second part is used for storing the new running software to be executed instead of the current software, and the third part is used for storing the persistent data corresponding to the state of the gateway and the connection relationship with the system 100; and
(b) the current and newer running software stored in the SDRAM310 contains a special software object, namely: a small media handler (MMH), and the MMH is invoked when the operation of the gateway transitions from one version of running software to another.
MMH has special features: it can maintain the operation of its associated connection gateway as the transition from the current software to the newer software occurs. Furthermore, MMH does not require support from routines contained within current or new software to maintain the functionality of the gateway associated therewith; thus, the MMH can continue to function even if the running software associated therewith has stopped executing.
The operation of the system 100 to download a current version of the operating software into its connected gateway and then upgrade the current version of the software to a newer version will now be described with reference to fig. 1 and 2.
Initially when power is supplied to the network 100, none of the connected gateways in the gateway group 130 has already loaded running software thereto; each of which contains only the aforementioned boot-up software stored in the associated on-board ROM. Initially, by executing the boot software, the PowerQuiccII processors 300 in each gateway are at their associated Ethernet ports P1、P2And outputs data that makes the management system 160 aware of the presence of the gateway in the system 100. Similarly, both the gatekeeper 150 and the signaling gateway output data so that the management system 160 knows their presence
System 160 then loads the operating software into gatekeeper 15 and signaling gateway 14. The management system 160 further passes through its associated ethernet port P1And P2A current version of the operating software is sent to each gateway in the gateway group 130. The currently running software is loaded into the first portion of SDRAM310 of each gateway in gateway group 130. Then theIn each gateway, a portion of the running software is transferred from its associated PowerQuiccII processor 300 into the RAM associated with each of its associated DSPs in the array 330. Each DSP loads mutually consistent software into a RAM associated with the DSP; however, if desired, the individual gateways in the gateway group 130 may be programmed so that their DSPs can be loaded with mutually different software, although this is not the usual mode of operation. The software loaded into the DSP is designed to enable the DSP to interface with the processor 320 and perform a series of signal processing functions, such as signal filtering, reformatting, encryption, decryption, compression and decompression functions. Conversely, software located in the first portion of SDRAM310 is intended to execute in the respective gateway-connected PowerQuiccII processor 300, and can be used to interface processor 300 with management system 160, gatekeeper 150, and signaling gateway 140, and to enable processor 300 to interpret commands, configure, and connect with its associated DSP to perform the required routing and processing functions.
The software located in the SDRAM first portion of each gateway in the gateway group 130 also includes a special software object, namely a Mini Media Handler (MMH). Typically MMH is dormant and only special commands to operating system 160 are activated by PowerQuiccII processor 300 when an online software switch is ready to be performed.
After the current operating software is loaded into the gateways of gateway group 130, and also into gatekeeper 150, signaling gateway 140, management system 160 then sends a command to system 100 to initiate operation. The system 100 then operates as described earlier in the summary.
When system 100 has been operating for a period of time, such as weeks or months, a significant amount of communication traffic corresponding to inter-subscriber calls will flow through system 100; for example, if the gateway group 130 contains 1000 connection gateways, each gateway providing 120 potential connections when operating with E1-formatted traffic, it is not uncommon to route 10000 calls through the gateway group at the same time. In general, data traffic may be relatively constant, and periods of time when system 100 is in a silent state do not occur in a predictable manner.
The inventors have realised that when a software upgrade is required it is not feasible to simply switch off the system 100 and load new software therein, as this would cancel all call connections in the system 100 and would present unreliability to the subscriber. If the right to sell the system 100 to subscribers is based on a reliable connection, simply temporarily shutting down the system 100 for the purpose of upgrading the software may have serious financial consequences, affecting the user's bill and hence revenue from the system 100.
Thus, the gateways in gateway group 130 are designed to enable software upgrades to be accomplished without interfering with established calls that have been routed through system 100. In general, when the running current version of software in the gateway group 130 needs to be replaced by a new version of software, the software switching process is invoked upon receiving a command from the management system 160. This process is depicted in fig. 4.
In fig. 4 is a graphical representation of an online software switching process that can be performed in communication system 100 to switch from a current version of operating software to a new version of operating software, the process being represented by a graph indicated at 500; in fig. 4, "version 1" and "version 2" correspond to the running software of the current and newer versions, respectively. Graph 500 includes an abscissa 510 representing the passage of time from left to right. Additionally, the graph 500 further includes an ordinate 520 on which various items of software are indicated.
At time t0The system 100 gets power and starts to start; basic startup software in the connected gateways causes the gateways to declare to the management system 160 over ethernet that they are subordinate to the system 100. In addition, the base software also sets a flag FS in each gateway-connected SDRAM310 to record that no early version of the running software has been loaded into the gateway. At time t0Thereafter, management system 160 loads the current version of the running software intoEach of the gateway groups 130 is connected to a gateway. As previously described, the current version of the running software is loaded into the first portion of SDRAM310 of each connection gateway. Each connection gateway then downloads a portion of the current version of the running software from its SDRAM310 through its powerquickii processor 300 into the RAM of its associated DSP. Management system 160 then sends an instruction to system 100 to begin operation of transmitting the communication traffic. When the current version of software is executed in each connection gateway, it initially checks the flag FS. Flags F as a result of a series of actions of the underlying softwareSIs in an unset state; current version of software according to flag FSTo identify itself as not a software upgrade.
At time t1E.g. at time t0After a few months, the operator of the management system 160 notifies it that a software update needs to be made in the system 100. In response, the management system 160 then retrieves the new version of the running software from its memory and then sends an instruction to the connection gateways in the gateway group 130 to prompt them to prepare to receive the new software. The gateways in the gateway group 130 then pass through their ethernet ports P1And P2New versions of software are received from management system 160 and each stores the software in its second portion of SDRAM310 and therefore does not overwrite the current version of software stored in its first portion of SDRAM 310. While the new version of software is downloaded to the gateway, the gateway continues to execute their current version of software to perform the function. At time t2Management system 160 has completely downloaded the new version of the software into the connection gateway.
At time t3Management system 160 sends an instruction to the connection gateways in gateway group 130 to switch online to execute the new version of software in the past. This instruction causes the respective connection gateway executing the current version of software to perform a switchover routine. When executing the handover routine, each gateway ignores further instructions from the management system 160 or the gatekeeper 150; the current version of software calls its MMH. As described aboveMMH is a special software object that enables the gateway associated with it to maintain functionality without calling the operating system routines contained in the current version of the running software. In addition, each gateway sets its flag FS to a set state to indicate that it is at time t0The running software is then already executed in the gateway. Each gateway then waits until after the current job is completed, such as a subscriber connected thereto has completed its dialing sequence or has hung up, so that the gateway is in a stable state. After each gateway has entered a stable state, it stores persistent data describing its current state in the third portion of its SDRAM 310. The persistent data will be described further below.
At time t4After the connection gateway has saved the persistent data associated with it, the current version of software stops executing leaving only the MMH to continue executing.
At time t5The MMH calls a new version of the running software. At time t5And a later time t6During the time period between MMH and the new version of the running software are executed simultaneously, although during this time the new version does not realize any new connections through the DSP of its gateway. The new version first passes the check flag FSAnd thus determine whether the new version has been invoked as an upgrade, or whether it was invoked following a power down of system 100; due to the mark FSHas been set as described above, so the new version thus determines that it is an upgrade. The new version then retrieves the persistent data from its associated SDRAM310 and loads it into the random access memory of its processor 300. If the flag FSWithout being set, the new version will thus assume it is not an upgraded version and no search for persistent data is required.
After retrieving the persistent data and setting its operating parameters to be consistent with the persistent data, the new version of software is then at time t6Terminating execution of the MMH provided in the current version of software and seizing control of the gatewayThe right. At this stage, each connection gateway is completely under the control of its new version of software and is again able to receive instructions from the management system 160 and the gatekeeper 150. Time t6The end of the online software switching process in the connectivity gateway is characterized.
During the online switching process, the software in the DSP is not updated; doing so could potentially disrupt the communication paths that have been established through the gateway group 130. Further, similar to the current version, the new version of software enables the gateway group 130 to operate after an event occurs in which the system 100 is powered off and then restarted with new software; thus, the new version of software contains its own MMH to enable switching from the new version of software to other software if later needed. This process even allows for a rollback from a new version of software to a current version in case it is found to be defective when executing the new version of software in the system 100 (e.g., if the software bug it contains becomes apparent only when the new version of software is executed in the field in the system 100). The software thus backed-down to the current version also employs the process shown in fig. 4, except that "version 1" and "version 2" become the new version of software and the current version of software, respectively, and the MMH called corresponds to the one included in the new version of software.
In the process shown in fig. 4, waiting until each gateway reaches a steady state before saving its persistent data greatly simplifies the complexity of the persistent data and also simplifies the new version of software at time t5And t6The time period in between the tasks that must be performed. If the individual gateways are not allowed to enter a steady state, the size of the persistent data will increase considerably because it must contain parameters describing the instantaneous state of the task being performed by the current version of software, rather than the final state of the task that has been completed. In practice, when only the final state is recorded there, the persistent data has a size on the order of 100 kilobytes.
The division of the SDRAM310 of each gateway into first, second and third parts is controlled by memory parameters assigned to each version of software; the SDRAM310 is a continuous memory, an area not interrupted by significant hard wiring. The current and new versions of software are stored in distinct first and second portions of SDRAM310, while the persistent data is stored in a third portion of SDRAM310 and is not overwritten when the new version of software is loaded from management system 160.
If power is re-supplied after a power interruption and a new version of software in the system 100 is called immediately thereafter, the new version of software will check the flags F in the respective connection gatewaysSAnd in the event that the flag is set to record that no earlier version of the running software has been executed after power up, the software received from the management system 160 is loaded into the RAM of the DSP.
The persistent data stored in the SDRAM310 of each connection gateway may provide a record of the following parameters:
(a) current configuration of the gateway, e.g. its port Q1、Q2、Q3、Q4Whether it can be used to receive communication traffic in E1 or T1 format;
(b) configuration data relating to where the gateway is contained in the system 100 and to what the gateway is connected;
(c) authorization data relating to subscribers and users of system 100;
(d) from Q at PCM port1To Q4And port P1、P2Details of the connections that have been established between them by the DSP, such as which DSP is processing a particular connection through the gateway, and which processing DSP is configured with the functions to perform, filtering, encryption, decryption, data compression, and format reconstruction; and
(e) the state of software objects running in PowerQuiccII processor 300 just prior to saving persistent data.
The cell will now be described in more detailA type media handler. Unless the DSPs in the connected gateway are commanded to terminate their assigned processing functions, they will continue to perform the functions assigned to them; therefore, to maintain the current operation of the DSP, the MMH does not have to send new instructions to the DSP. Additionally, the second communication control processor in each powerquickii processor 300 contains a plurality of data registers that determine the routing of ethernet data through its associated powerquickii processor 300 to its associated buffer 350. Ensure that these registers are set correctly and that traffic is on port P1、P2And the DSP, through the buffer 350 and the handler 320, which are responsible for the MMH. The MMH must also be able to take place at time t4Processing software calls from the current version of software to enable MMH operations must also be able to do so at time t6And transferring the software control right of the gateway to the running software of the new version under the requirement of the new version. As described earlier, the MMH must be able to do these operations without the support of the current and new versions of software.
In fact, the process of online software switching represented in FIG. 4 is relatively fast; e.g. from t1To t2During which only a few seconds are required from t in order to load a new version of the software into the connection gateway3To t4It takes at most seconds to wait for steady state and save persistent data, because events such as dialing will time out if not completed within seconds, and from t4To t6The period during which MMH is performed will also last in the range of seconds. At time t4The transition from executing the current version of software to executing the MMH is done within a period of time on the order of typical jitter times observed in ethernet traffic provided by network 120. Similarly, at time t6Software transitioning from MMH to a new version is similarly within the order of normal jitter time observed in system 100. Thus, switching from the current version to the new version of software is almost imperceptible to the system 100 except at time t4When trying to reach a stable state beforeIn this state, the connecting gateway appears unresponsive to new call requests from the gatekeeper 150; such non-responsiveness does not correspond to a disruption of an established connection through the system 100, as would occur when performing a software upgrade with prior art communication systems. Thus, running system 100 as described above will enable the gateway to update to new software online without causing an interruption in the operation of system 100.
Table 1 provides a tabular event list of the online software switching process, represented graphically in fig. 4.
Table 1
| Step (ii) of | Time of day | Operation of | 
| 1 | t0 | Supplying power to the system 100 | 
| 2 |  | Basic operating software begins executing in connection gateway (from ROM), signaling gateway 140, and gatekeeper 150 so that they declare their presence in system 100 to management system 160 over ethernet | 
| 3 |  | Flags F in the respective connection gatewaysSSet to record: no earlier version of the running software has been loaded since step 1 | 
| 4 |  | Loading of operating software from management system 160 into gatekeeper 150, signaling gateway 140, and a first portion of SDRAM310 of each connection gateway in gateway group 130 | 
| 5 |  | Each connection gateway loads software into its associated DSP | 
| 6 |  | Management system 160 issues an instruction to system 100 to begin operation | 
| 7 |  | The running software of the current version in each connection gateway checks the flag F associated with itSAnd proceed to bring the gateway into an operational state | 
| 8 | t1 | Management system 160 issues an instruction to download a new version of software | 
| 9 | t2 | Downloading new versions of software from management system 160 to the second portion of SDRAM310 for each connection gateway | 
| 10 | t3 | Management system 160 issues an instruction to the connection gateway instructing the switch to execute the new version of software in the past | 
| 11 |  | The connection gateway restricts the interpretation of its SNMP commands and provides only an audit function, i.e.That is to say, a status report is sent back to the gatekeeper 150 | 
| 12 |  | The connectivity gateway restricts the interpretation of its MGCP commands and provides only an audit function, i.e. sends a status report back to the gatekeeper 150 | 
| 13 |  | Flags F to be associated with each gatewaySSet to record: at time t0After the current version of the software has been executed | 
| 14 |  | Each gateway completes its current task without responding to new requests from gatekeeper 150, signaling gateway 140, or management system 160; whereby each gateway reaches a steady state | 
| 15 |  | Each connection gateway saves persistent data corresponding to its steady state to the third portion of its SDRAM310 | 
| 16 | t4 | Each connection gateway calls its MMH software to terminate the running of the current version of software | 
| 17 | t5 | In each gateway, the new version of software starts with the MMH softwareRun, but the full control of the connecting gateway has not yet been passed on to the new version | 
| 18 |  | In each connected gateway, the new version of software checks its flag FS to determine if the new version is an upgraded version or is called after the system 100 was initially powered up | 
| 19 |  | In each connection gateway, if FSSet to indicate that the new version is an upgraded version, the new version of software will preserve the state that the DSP, processor 320 and PowerQuiccII processor 300 SNMP (Ethernet) have established at that time | 
| 20 |  | In each connection gateway, the new version software carries out one-time 'soundness check' to ensure that the loss of the function of the connection gateway can not occur when the new version software takes over the complete gateway control right; if there is a problem, the MMH continues to retain control and sends a report back to management system 160 via Ethernet SNMP | 
| 21 | t6 | In each connection gateway, the MMH transmits the complete control right of the gateway to the software of a new version; termination of MMH software operation while new version software seizes full control | 
| 22 |  | In each connected gateway, the new version of software will cause PowerQuiccII processor 300 to respond fully again to P in its associated gateway1、P2SNMP and MGCP communications received on an Ethernet port | 
It will be appreciated that modifications may be made to the system 100 without departing from the scope of the invention. For example, DSP and powerquickii devices may be replaced with alternative proprietary devices that provide similar general data processing and interpretation functions, respectively. PLD handling machine 320 can be replaced with other semiconductor devices that can provide an interface between processor 300 and a DSP.
In addition, current and new versions of software may be constructed in a number of alternative ways to control the various gateways. Thus, current and new versions of software may be replaced by alternative versions, so long as:
(a) the alternate version can control the connection gateway associated therewith; and also
(b) When switching from one version of software to another, the state of the connection gateway can be recorded by calling the intermediate software (i.e., MMH software), using the storage of persistent data, so that the operation of the gateway can transition between the alternate versions.
Other methods of online software updating may be used to upgrade the software loaded into the gatekeeper 150 and the DSPs of the various connection gateways; for example, software upgrades may be loaded into the DSPs when they are not actively providing a communication connection through them.