Stored program control
Stored program control (SPC) is a telecommunications technology used for telephone exchanges controlled by a computer program stored in the memory of the switching system. SPC was the enabling technology of electronic switching systems (ESS) developed in the Bell System in the 1950s, and may be considered the third generation of switching technology. Stored program control was invented in 1954 by Bell Labs scientist Erna Schneider Hoover, who reasoned that computer software could control the connection of telephone calls.

History 
Proposed and developed in the 1950s, SPC was introduced in production electronic switching systems in the 1960s. The 101ESS PBX was a transitional switching system in the Bell System to provide expanded services to business customers that were otherwise still served by an electromechanical central office switch. The first central office switch with SPC was installed at Morris, Illinois, in a 1960 trial of electronic switching, followed shortly thereafter by the first Western Electric 1ESS switch at Succasunna, NJ in 1965. Other examples of SPC-based third-generation switching systems include: British GPO TXE (various manufacturers), Metaconta 11 (ITT Europe) and the AKE, ARE and pre-digital (1970s) versions of the AXE telephone exchange by Ericsson and Philips PRX were large-scale systems in the public switched telephone network.

SPC enables sophisticated calling features. As SPC exchanges evolved, reliability and versatility increased.

Second-generation exchanges such as Strowger, panel, rotary, and crossbar switches were constructed purely from electromechanical switching components with combinational logic control, and had no computer software control. The first generation were the manual switchboards operated by attendants and operators.

Later crossbar systems also used computer control of their switching matrices and may be considered SPC systems as well. Examples include the Ericsson ARE 11 (local) and ARE 13 (transit) as well as the North Electric NX-1E & D Switches and the ITT Metaconta 11, once found throughout Western Europe and in many countries around the world. SPC technology using analog switching matrices was largely phased out in the 1980s and had disappeared from most modern networks by the late 1990s. Some such switches in countries like Russia or Ukraine may still be in service.)

The addition of time-division multiplexing (TDM) decreased subsystem sizes and dramatically increased the capacity of the telephone network. By the 1980s, SPC technology dominated the telecommunications industry.

Viable, fully digital switches emerged in the 1970s, with early systems, such as the French Alcatel E10 and Canadian Nortel DMS series going into production during that decade. Other widely adopted systems became available in the early 1980s. These included Ericsson AXE 10, which became the world's most popular switching platform, the Western Electric 5ESS used through the US and in many other countries, the German designed Siemens ESWD, the ITT System 12 (later rebranded Alcatel S12) and NEC NEAX all of which were widely used around the world. The British developed System X (telephony), and other smaller systems also emerged in the early 1980s.

Some digital switches, notably the 5ESS and very early versions of Ericsson AXE 10, continued to use analog concentrator stages, using SPC-like technologies, rather than direct connections to the digital line cards containing the CODEC.

Early in the 21st century the industry began using a fifth generation of telephony switching, as TDM and specialist hardware based digital circuit switching is being replaced by softswitches and voice over IP VoIP technologies.

The principal feature of stored program control is one or multiple digital processing units (stored-program computers) that execute a set of computer instructions (program) stored in the memory of the system by which telephone connections are established, maintained, and terminated in associated electronic circuitry.

An immediate consequence of stored program control is automation of exchange functions and introduction of a variety of new telephony features to subscribers.

A telephone exchange must run continuously without interruption at all times, by implementing a fault-tolerant design. Early trials of electronics and computers in the control sub systems of an exchange were successful and resulted in the development of fully electronic systems, in which the switching network was also electronic.  A trial system with stored program control was installed in Morris, Illinois in 1960. It used a flying-spot store with a word size of 18 bits for semi-permanent program and parameter storage, and a barrier-grid memory for random access working memory. The world’s first electronic switching system for permanent production use, the No.1 ESS, was commissioned by AT&T at Succasunna, New Jersey, in May 1965.  By 1974, AT&T had installed 475 No. 1ESS systems. In the 1980s SPC displaced electromechanical switching in the telecommunication industry, hence the term lost all but historical interest. Today SPC is standard in all automatic exchanges.

The attempts to replace the electromechanical switching matrices by semiconductor cross point switches were not immediately successful, particularly in large exchanges. As a result, many space division switching systems used electromechanical switching networks with SPC, while private automatic branch exchanges (PABX) and smaller exchanges used electronic switching devices.  Electromechanical matrices were replaced in the early 21st century by fully electronic ones.

Types
Stored program control implementations may be organized into centralized and distributed approaches. Early electronic switching systems (ESS) developed in the 1960s and 1970s almost invariably used centralized control. Although many present day exchange design continue to use centralized SPC, with advent of low cost powerful microprocessors and VLSI chips such as programmable logic array (PLA) and programmable logic controllers (PLC), distributed SPC became widespread by the early 21st century.

Centralized control
In centralized control, all control equipment is replaced a central processing unit. It must be able to process 10 to 100 calls per second, depending on the load to the system. Multiprocessor configurations are commonplace and may operate in various modes, such as in load-sharing configuration, in synchronous duplex-mode, or one processor may be in stand-by mode.

Standby mode
Standby mode of operation is the simplest of a dual-processor configuration. Normally one processor is in standby mode. The standby processor is brought online only when the active processor fails. An important requirement of this configuration is ability of standby processor to reconstitute the state of exchange system when it takes over the control; means to determine which of the subscriber lines or trunks are in use.

In small exchanges, this may be possible by scanning the status signals as soon as the standby processor is brought into action. In such a case only the calls which are being established at the time of failure are disturbed. In large exchanges it is not possible to scan all the status signals within a significant time. Here the active processor copies the status of system periodically into secondary storage. When switchover occurs the recent status from the secondary memory is loaded. In this case only the calls which change status between last update and failure are affected. The shared secondary storage need not to be duplicated and simple unit level redundancy would suffice.  1ESS switch was a prominent example.

Synchronous duplex mode
In synchronous duplex mode of operation hardware coupling is provided between two processors which execute same set of instructions and compare the results continuously. If mismatch occurs then the faulty processor is identified and taken out of service within a few milliseconds. When system is operating normally, the two processors have same data in memories at all times and simultaneously receive information from exchange environment. One of the processor actually controls the exchange, but other is synchronized with the former but does not participate in the exchange control. If a fault is detected by the comparator the processors are decoupled and a check-out program is run independently to find faulty processor. This process runs without disturbing the call processing which is suspended temporarily. When one processor is taken out then the other processor operates independently. When the faulty processor is repaired and brought in service then memory contents of the active processor are copied into its memory and the two are synchronized and comparator is enabled.

It is possible that a comparator fault occurs only due to transient failure which is not shown even when check out program is run. In such case three  possibilities exists:
Continue with both processors: This is based on the assumption that the fault is transient and may not appear again.
Take out the active processor and continue with the other.
Continue with active processor but remove other processor from service.
When a processor is taken out, it is subjected to extensive testing to identify a marginal failure.

Load-sharing mode
In load-sharing operation, an incoming call is assigned randomly or in a predetermined order to one of the processors which then handles the call right through completion. Thus, both the processors are active simultaneously and share the load and the resources dynamically.  Both the processors have access to the entire exchange environment which is sensed as well as controlled by these processors. Since the calls are handled independently by the processors, they have separate memories for storing temporary call data. Although programs and semi permanent data can be shared, they are kept in separate memories for redundancy purposes.

There is an inter processor link through which the processors exchange information needed for mutual coordination and verifying the 'state of health’ of the other. If the exchange of information fails, one of the processors which detect the same takes over the entire load including the calls that are already set up by the failing processor. However, the calls that were being established by the failing processor are usually lost. Sharing of resources calls for an exclusion mechanism so that both the processors do not seek the same resource at the same time. The mechanism may be implemented in software or hardware or both. Figure shows a hardware exclusion device which, when set by one of the processors, prohibits access to a particular resource by the other processor until it is reset by the first processor.

Distributed control 
Distributed SPC is both more available and more reliable than centralized SPC.  The control function are shared by many processors within the exchange.  It uses low cost microprocessors. Exchange control may decomposed either horizontally or vertically for distributed processing.

In vertical decomposition the whole exchange is divided into several blocks and  a processor is assigned to each block. This processor performs all tasks related to that specific block.  Therefore, the total control system consists of several control units coupled together.  For redundancy, processors may be duplicated in each block.

In horizontal decomposition each processor performs only one or only some exchange functions.

See also 
 List of telephone switches
 Stored-program computer

References 

Telephone exchanges