PCI Hot-Plug Application and Design

PCI Hot-Plug Application and Design

by Alan Goodrum

Paperback

$31.46 $34.95 Save 10% Current price is $31.46, Original price is $34.95. You Save 10%.

Product Details

ISBN-13: 9780929392608
Publisher: Annabooks
Publication date: 04/28/1998
Pages: 162
Product dimensions: 6.00(w) x 8.94(h) x 0.37(d)

Read an Excerpt

Over the past decade file and application servers based on the industry-standard personal computer architecture have undergone steady improvement in the areas of reliability and availability. Redundancy was first introduced in the least reliable subsystems, disk drives, main memory, and power supplies. Eventually some subsystems were further enhanced to be inserted and removed while the rest of the system remained operational, a process commonly referred to as hot-plugging. While standards-based servers were making steady progress toward higher reliability and availability, the PCI bus burst onto the scene. Since the introduction of the PCI Local Bus Specification, Revision 1.0 in 1992, the PCI bus has rapidly pervaded the computer industry. In the first five years after the publication of the specification the installed base of PCI adapter cards exploded to well over 100 million card. Once the least reliable subsystems (the disk drives and power supplies) had been improved with hot-plug capabilities, the next step for improving system availability was adding hot-plug capabilities to the I/O subsystem. The PCI bus was the natural place to start. The PCI Hot-Plug Specification extended the capabilities of the PCI Local Bus Specification, Revision 2.1 (PCI 2.1), to enable standard PCI adapter cards to be inserted and removed in systems without turning off the system power. Hot-plugging of I/O cards is not a new concept. For example, certain industrial markets such as the telephone equipment industry have used hot-plug subsystems for years. The Hot-Plug Spec brought hot-plug technology to the PCI bus, the bus that will likely be the mainstay for I/O cards for servers for years to come. ThePCI bus was originally designed to serve the personal and business computer markets. The size of this market has caused PCI components to achieve volumes that have also captured the attention of equipment manufacturers in smaller markets such as telecommunications and industrial computing. It is expected that the concepts employed to enable hot-plugging PCI adapter cards in standards-based servers are similarly applicable to other systems based on the PCI local bus.
1.1 Using Standard PCI Adapter Cards
The primary objective of PCI hot-plug technology is to increase the availability of server-class products that use standard PCI adapter cards. Constraining the solution to use standard PCI adapter cards has certain advantages and disadvantages. The primary advantages are that the solution works with the installed base of adapter cards, and doesn't splinter the future adapter card market into �hot-plug-capable� cards and �non-hot-plug-capable� cards. This leads to more rapid market acceptance of systems employing the technology.
The disadvantage of constraining the solution to use existing standard PCI adapter cards is that it limits the alternative implementations. The PCI 2.1 specification and its predecessors were not written to accommodate hot-plug operations. Many of the alternatives used to implement hot-plug cards on other I/O busses are unworkable with standard PCI adapter cards. For example, some hot-plug systems use variable-length connector pins to guarantee a sequence of connections as a card is inserted or removed. However, the PCI connector's card-edge �gold fingers� are specified to be all the same lengths. Although the mating connector could have been modified, the infinite variations in the size and shape of PCI adapter cards makes card-guide schemes difficult and expensive. Without a guide scheme there is a high probability that an adapter card could be inserted into the connector at an angle and short connections on the bus.
Furthermore, there is no provision in the PCI 2.1 for isolating the bus signals on a device if its power is removed. Most digital logic I/O-buffer designs commonly used today include diode clamps both to ground and to the power pins. These diodes are designed to protect the device from electrostatic discharges (ESD) that could destroy the device. However, if a device with such input buffers is not powered (i.e. the power pins are at 0 V), then the I/O pins will be clamped by the ESD diodes to near 0 V. Such a device could not be connected to a live PCI bus without interfering with PCI bus signaling.
Without the freedom of modifying the adapter card to optimize cost, a solution that impacts only the system-board design will inevitably have the disadvantage of higher cost. The Hot-Plug Spec requires all power and bus signals for each slot to be isolated for insertion and removal. The specification does not define how a platform will isolate these signals, but considering that there are over 45 bussed signals in the 32-bit version of the PCI connector, the cost of any solution will be a significant concern.
1.2 Who Needs PCI Hot-Plug Technology?
PCI hot-plug technology is not for everybody. The added cost of isolating each hot-plug slot from the bus must be weighed against the cost of system downtime.
The classes of applications that would typically derive a suitable benefit from PCI hot-plug technology are mission-critical applications with a high cost of downtime, applications that require continuous availability, or applications where a large number of users depend upon a single server. In many cases such applications could recover the increased system cost by avoiding only one or two unexpected downtime events.
On the other hand, single-user systems or systems that can be easily stopped at night or on weekends for maintenance would be less likely to benefit significantly from PCI hot-plug capabilities. The following questions can be used as a guide in determining whether your application requires hot-plug capability:
1. Would a large number of users be affected if this application were not available?
2. Would there likely be significant other costs (e.g., lost sales, lost productivity, etc.) if the application were not available?
3. Is it difficult to schedule a time for maintenance when no one is using the application?
In general, the more �yes� answers to the above questions, the more likely your application can justify the higher cost of PCI hot-plug capabilities.
1.3 What's Different from PCI 2.1 and What's Common?
Differences
A PCI hot-plug system differs from a conventional system in several areas.
* Isolation devices. The platform includes additional hardware for each hot-plug slot that enables all bus and power pins on that connector to be isolated from the rest of the system.
* Other hot-plug electrical hardware. The platform includes other electrical hardware for control and indication of hot-plug operations. This hardware is described in detail in Chapter 3.
* Hot-plug-ready operating system. The operating system must comprehend a device being removed or inserted while the system is running. Once the operating system allows this, special applications can be added to control turning slots on and off.
* Hot-plug-ready adapter drivers. In most cases hot-plug-ready operating systems will require changes in the device-driver model to allow them to be stopped and started while the system is running. Adapter card device drivers must be modified to conform to the new device-driver specification from the operating system vendor.
* System electrical and timing requirements. Most alternatives for bus isolation devices will affect the electrical and timing characteristics of the bus. The platform vendor must compensate for any negative effects on signal flight times. For example, the number of slots or the total length of the bus may have to be reduced.
* System mechanical design. Although the Hot-Plug Spec includes no requirements in this area, good design practice will require certain changes to the mechanical design of the system to make PCI hot-plug capability useful. For example, the chassis will probably require new openings that provide access to the hot-plug slots, while restricting access to hazardous areas. Other changes would also be required to simplify the user's access to one card, while protecting adjacent cards from accidental shorting. See Chapter 6 for other examples.
Commonality
Hot-plug systems must have many things in common with conventional systems, if they are to use the same adapter cards.
* Same bus protocol. PCI signaling protocol is in no way affected by the presence of hot-plug slots. An adapter card should plug in and power-on in a hot-plug slot exactly the same way it plugs in and powers-on in a conventional slot.
* Signaling levels. Either 3.3 V or 5.0 V signaling can be used with hot-plug slots. The same slot keying mechanisms that are defined in PCI 2.1 apply as well.
* Power supply specifications. The same power supply voltage and tolerance specifications apply to hot-plug systems as well as conventional systems.
* Adapter card mechanical specifications. PCI hot-plug platforms accept standard PCI adapter card mechanical designs.
* Connector. The PCI 2.1 32- and 64-bit PCI connectors and their pinouts are used in PCI hot-plug platforms.
* Configuration Space. No changes are required in the Configuration Space.
* Slot electrical and timing requirements. The platform vendor must compensate for any changes in flight time caused by bus isolation devices. Therefore, the adapter card timing requirements remain the same in both hot-plug and conventional platforms.
1.4 What the PCI Hot-Plug Specification Controls
The Hot-Plug Spec does not specify every aspect of a hot-plug system. Instead the specification completely defines a few key areas, and then allows the suppliers of the various hardware and software components of the system to optimize the remaining areas of their design to fit the needs of their customers. The Hot-Plug Spec focuses primarily on two interfaces, one hardware and one software, as shown in Figure 1-1. The figure illustrates a hot-plug system comprised of conventional components, and components unique to hot-plug systems. The Conventional System Software consists of the operating system, adapter drivers, and applications that are present in any system. In a system that fully supports PCI hot-plug technology, the operating system and drivers would be enhanced as described in Chapter 5 to allow devices to be removed and inserted while the system is running. The Conventional Platform Hardware consists of the CPU(s), the bridge to the PCI bus, and all of the standard components in a standards-based server, such as standard disk controllers, standard peripherals, and a bridge to an expansion bus. The PCI bus includes at least one hot-plug slot that accepts standard PCI adapter cards. The cloud in the center of the figure represents the collection of hardware and software that are unique to a hot-plug system. It includes the control logic for powering-on and powering-off a slot, and a device driver for managing the control logic. The interfaces between the cloud and the rest of the system are the two interfaces standardized by the specification. The first interface defined by the Hot-Plug Spec is the connection to the slot. In most respects this interface is a standard PCI slot. However, PCI 2.1 tacitly assumes that the whole systems powers-on and powers-off together. Additional requirements of powering-on and powering-off a single slot while the rest of the system is running are beyond the scope of PCI 2.1. These requirements are covered in the Hot-Plug Spec, and are presented in Chapters 2, 3, and 4 of this book. The second standard interface defined for PCI hot-plug is purely a software interface. It is the interface between the high-level hot-plug routines that include the user interface, and the low-level device driver that directly controls the hardware for powering-on and powering-off slots. This software interface will be presented in Chapter 5, and is referred to as the Hot-Plug Primitives.

Table of Contents

Preface
Terminology
1. INTRODUCTION TO PCI HOT-PLUG TECHNOLOGY
1.1 Using Standard PCI Adapter Cards
1.2 Who Needs PCI Hot-Plug Technology?
1.3 What is Different from PCI 2.1 and What is Common?
Differences
Commonality
1.4 What the PCI Hot-Plug Specification Controls
Adapter Card Hardware
Platform Requirements
Operating System Requirements
1.5 Limitations of PCI Hot-Plug
1.6 Relationship Between PCI Hot-Plug and PCI Power Management Technologies
1.7 Relationship Between PCI Hot-Plug and ACPI
2. PCI HOT-PLUG FUNDAMENTALS
2.1 Hot-Plug System Components
2.2 Sequence of Steps for Hot-Removal
2.3 Sequence of Steps for Hot-Insertion
2.4 Backward Compatibility
3. PLATFORM ELECTRICAL REQUIREMENTS
3.1 Bus Isolation Alternatives
Transfer Gates
Bus Transceiver
Bridge per Slot
3.2 Hot-Plug Controller
3.3 PCI Bus Arbitration and Hot-Plug Operations
3.4 Hot-Removal
Power-Off Requirements of PCI 2.1
Power-Off Requirements of PCI Hot-Plug
3.5 Hot-Insertion
Power-On Requirements of PCI 2.1
Power-On Requirements of PCI Hot-Plug
3.6 Slot Power and Decoupling Capacitance
The Specified Limits
Voltage Ramp Alternatives
Optional Features; Over Current Detection and System Power Budget
3.7 66 MHz Platforms
Feature Requirements and Alternatives
The M66EN Pin and the 66 MHz Capable Status Flag
3.8 Attention Indicator
3.9 Slot Numbering
3.10 Hot-Plug Platform Backward Compatibility
3.11 Summary of Supplemental Platform Hardware Requirements
4. ADAPTER CARD ELECTRICAL REQUIREMENTS
4.1 Noteworthy Adapter Card Requirements of PCI 2.1.
PRSNT[1:2]# Connection
All Outputs FloatWhen RST# Is Asserted
PCI Interface State Machine Response to RST#
Behavior of CLK Prior to the Rising Edge of RST#
Preference for Memory Space Rather than I/O Space
Efficient Resource Requests
Switching Bus Frequencies Between 33 MHz and 66 MHz
4.2 AC Specifications
4.3 Slot Power and Decoupling Capacitance
4.4 System Issues
Remote Power Sources
Multiple-Card Sets
5. SOFTWARE REQUIREMENTS
5.1 Backward Compatibility
5.2 Software Components
The Hot-Plug Service
Adapter Driver Requirements
Hot-Plug System Driver
5.3 Quiescing Adapter Activity
5.4 Configuration Space Header Initialization
Platform Vendor vs. Operating System Vendor
Holes for Hot-Insertion
Partial Configuration
5.5 Controlling the Attention Indicator
5.6 Slot Identification
The IRQ Routing Table
Translating Slot Identifiers
5.7 Hot-Plug Primitives
Querying the Hot-Plug System Driver
Setting Slot Status
Querying Slot Status
Asynchronous Notification of Slot Status Change
5.8 Operating System Vendor Deliverables Checklist
Software
Adapter Driver Specification
Hot-Plug System Driver Specification
6. MECHANICAL REQUIREMENTS
6.1 Hot-Plug Indicators
6.2 Protection of the User
6.3 Protection of Adapter Card and Platform Electronics
Electrostatic Discharge
Accidental Contact to Platform and Adapter Cards
Hot-Removal Procedure Violations
Hot-Insertion Procedure Violations
6.4 Adapter Card Insertion and Removal Aids
7. HOT-PLUG PLATFORM EXAMPLE
7.1 Slot State and Attention Indicators
7.2 Physical Access and Protection
7.3 Hot-Plug Controller
Slot Enable Register (memory offset 01h)
Miscellaneous Control Register (memory offset 02h)
LED Control Register (Green memory offset 04h, Amber memory offset 06h)
Slot Input Interrupt and Clear Register (memory offset 08h)
Slot Input Interrupt Mask Register (memory offset 0Ch)
7.4 Slot Power Switches
7.5 Bus Isolation Devices
8. HOT-PLUG SOFTWARE EXAMPLES
8.1 Novell IntranetWare
Key IntranetWare Components
ODI
Network Driver
NWPA
Hot-Plug-Aware Storage Drivers
DDFS
Old Storage Driver
OEM-Specific System Bus Driver
Novell Event Bus
Novell Configuration Manager Console
Novell Configuration Manager
Installation Tool
Other NetWare Loadable Modules
Use of the Novell Event Bus
8.2 Microsoft Windows NT
Key Windows NT 4.0 Components
Protocol Stacks
NDIS
LAN Miniport Driver
LAN Class Hot-Plug DLL
Storage Class Driver
Port Driver DLL
Storage Miniport Driver
Storage Class Hot-Plug DLL
Compaq PCI Hot-Plug Utility
Compaq Remote Monitor Service
System Management Driver
Microsoft Windows NT 5.0
8.3 SCO Gemini
Key Hot-Plug UNIX Components
LAN Driver Interface (MDI)
LAN Driver and Storage Driver
SDI
PCI Hot-Plug Driver
SCO Admin Manager
Hot-Plug Services Library and Hot-Plug Controller Interface
Autoconfiguration Subsystem
Index

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews