Developers have been applying PICMG 2.0 CompactPCI Specification compliant systems to a variety of High Availability applications over the years. As the market requirements for High Availability have increased, CompactPCI systems have had to evolve to meet the new challenges. The original CompactPCI systems were simple bus based architectures. Figure 1 shows typical first generation CompactPCI architecture.
Figure 1 CompactPCI 2.0 Backplane Architecture
PICMG 2.0 CompactPCI compliant systems are composed of one or more CompactPCI bus segments. Each segment can contain up to eight CompactPCI board slots. Each bus segment contains one System Slot and up to 7 Peripheral Slots. The PCI bus is used as the primary communication path between the slots in each bus segment. In this architecture the PCI Bus and the System Slot are single points of failure. A misbehaving Peripheral Slot can bring down the entire PCI Bus segment preventing communication between any of the slots. This single point of failure was a significant obstacle to the adoption of CompactPCI in High Availability applications. Early architects of CompactPCI High Availability systems had to overcome the limitation of the single point of failure PCI Bus. The typical solution was to add a second CompactPCI bus segment and duplicate the functionality in both bus segments. Figure 2 shows an example of a dual CompactPCI bus based architecture.

Figure 2 Dual Segment CompactPCI Architecture
In Figure 2 dual bus segments and dual System Slots are used to provide redundancy for the single points of failures that exist in standard Compact PCI architectures. In the Dual Segment architecture, each of the System Slots can control either of the two PCI Bus Segments. By providing redundant System Slots, a failure of either System Slot can now be compensated for. This architecture also covers the potential fault of a PCI bus. If a fault occurs in PCI Bus 1, then PCI Bus 2 is available to handle the task. The engineering challenges with this kind of architecture are complicated. The System Slots provide clocks, arbitration and interrupt servicing for a bus segment. The failover of a System Slot requires that the clock drivers, request/grant arbitration and interrupt controllers also transfer over to the active System Slot. Knowing when a bus has failed and then being able to bring up the redundant System Slot without impacting the total system availability is difficult. In 1999 PICMG formed a subcommittee to standardize an implementation of Redundant System Slots. The PICMG 2.13 Redundant System Slot specification was abandoned three years later. PICMG 2.13 is the only subcommittee that was disbanded without completing a specification. This is largely due to the complexities of the problem and the propriety solutions that exist. It is clear that redundant system slots in CompactPCI can be used to increase system availability but at a cost and at a level of complexity that are prohibitive. Vendors that provide this type of architecture are selling proprietary solutions - not open architectures.