Stored program control

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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.

Early exchanges such as Strowger, panel, rotary, and crossbar switches were constructed purely from electromechanical switching components with analog control electronics, and had no computer software control. Stored program control was invented by Bell Labs scientist Erna Schneider Hoover in 1954 who reasoned that computer software could control the connection of telephone calls.[1][2][3]

SPC was introduced in 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, while the Western Electric 1ESS switch and the AXE telephone exchange by Ericsson were large-scale systems in the public switched telephone network. SPC enabled sophisticated calling features. As SPC exchanges evolved, reliability and versatility increased. 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.


The principle 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.[4] 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 a standard feature in all electronic 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. Nonetheless, private automatic branch exchanges (PABX) and smaller exchanges do use electronic switching devices. The two types of space division electronic switching systems are using electromechanical switching network and the other using electronic switching network. The second type is fully electronic.


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[edit]

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.[citation needed] 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[edit]

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[edit]

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
  • Take out the active processor and continue with the other.
  • Continue with active processor but remove other processor from service.

Scheme 1 is based on the assumption that the fault is transient one and may not appear again. In scheme 2 and 3 the processor taken out is subjected to extensive testing to identify a marginal failure in these cases.

Load-sharing mode[edit]

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[edit]

Distributed SPC is both more available and more reliable than centralized SPC.[5]

  • Vertical decomposition:
    Whole exchange is divided into several blocks and a processor is assigned to each block.This processor perform all the task related to that specific blocks.Therefore the total control system consists of several control units coupled together.For redundancy purpose processor may be duplicated in each blocks.
  • Horizontal Decomposition:
    In this type of decomposition each processor performs only one or some exchange function.

See also[edit]


  1. ^ Alpha Doggs (February 15, 2008). "Phone switching pioneers to be inducted in National Inventors Hall of Fame". Network World. Retrieved 2012-06-17. 
  2. ^ "Erna Schneider Hoover". 2012-06-17. Retrieved 2012-06-17. 
  3. ^ "Erna Schneider Hoover". Global History Network of IEEE. 2012. Retrieved 2012-06-17. 
  4. ^ A. E. Joel, An Experimental Electronic Switching System, Bell Laboratory Record, October 1958 p.359
  5. ^ [1] T Wiswanathan