Hot swap is the ability to insert and remove boards, without adversely affecting a running system. CompactPCI Hot Swap Specification allows vendors to add hot swap capabilities to CompactPCI system.
The hot swap feature that has been established in the CompactPCI Specification is particularly well suited, and has indeed been a critical requirement, for application designs in the telecom and datacom markets. In systems that do not support hot swapping of peripheral boards, each process of board insertion or removal, requires a complete shut-down of the entire system until the process is complete, in order to prevent damage to other boards or to the system software. In time critical systems such as telecom and datacom systems, system downtime is a major financial and quality of service factor; any downtime translates into financial loss, and disconnecting service to active lines. Hence, reduction or even elimination of system downtime is critical.
The hot swap facility reduces the system downtime, which may be required for replacement of boards and making changes in the system configuration. The hot swap feature is one of the key reasons why CompactPCI architecture is so attractive for telecom and datacom vendors.
CompactPCI hot swap is not limited to peripheral boards, but at this time the CompactPCI Hot Swap Specification (PICMG 2.1 R1.0) does not address hot swapping of the System Board Computer (SBC).
CompactPCI Boards (other than the system host) can be one of three types:
|Go-HotSwap architecture allows it to fully support both basic and full hot swap boards.|
CompactPCI Silicon can be one of four types:
|Go-HotSwap architecture, allows it to fully support hot swap capable, friendly and ready silicon.|
Enumeration is defined by the CompactPCI Specification (PICMG 2.1 R1.0) as the action taken by the system host to poll the configuration spaces of all the PCI devices and assign (or release) the necessary resources (memory and/or I/O address space, interrupts, and software drivers). In systems that do not support hot swap, enumeration only takes place as the system boots. In hot swap capable systems, dynamic configuration is required, whereby a hot swap board is allocated system resources (enumerated) by the system software, following insertion of the board. These same resources are released prior to extraction of the board.
In order to take advantage of the hardware's hot swap capability, a substantial amount of additional software is required - at the device driver level, at the system services level and at the applications level.
The software aspect of the hot swap process involves detection of the hot swap event, dynamic configuration and resource allocation. It also involves informing the system of the event so that the system and applications running are not damaged, and the insertion/removal event is transparent to the system user.
While many hardware products are already electrically and mechanically hot swap compatible, until now little software existed that allowed utilization of the new capabilities. Mass-market operating systems, such as Windows, Solaris (until version 8), and Linux, currently lack the additional software layers needed to support the new hot swap capabilities. The absence of such software standards has retarded market growth, and is forcing companies either to give up utilization of hot swap capabilities, or to develop/buy proprietary solutions. Either way, the situation is a considerable resource consumer.
Another problem involves the hot swap standard itself, which is somewhat shady in some of the software areas. The gray areas in the specification have resulted in different implementations of some of the hot swap mechanisms provided by the system board manufacturers. As a result, a CompactPCI hardware vendor that desires to ship hot swap aware drivers with the hardware needs to develop and provide a different driver for each different system board needed to be supported.
In order to provide a complete hot swap aware solution, the hardware vendor needs to either use proprietary operating systems, or implement the hot swap mechanism from scratch, and separately, for each different system hardware that needs to be supported as well as for each different operating system that needs to be supported.