PCI-X boosts PCI bus performance

"Chasing speed" could be a slogan for the computer industry: Systems administrators are eternally pursuing bottlenecks around the triangle of memory, CPU speed, and I/O bandwidth. The latest contestant in this game is the new PCI-X bus standard, which is a faster version of the successful PCI 2.2. (Officially, PCI-X is Addendum 1.0 to the PCI 2.2 specification.) Toward the end of 2000, commercial hardware will be implementing the new standards—and increasing I/O bandwidth—in servers near you.

A standard 32-bit 33MHz PCI bus has a theoretical peak bandwidth of 133MBps; 64-bit 33MHz and 64-bit 66MHz PCI cards' bandwidths peak at 266MBps and 533MBps, respectively. By comparison, PCI-X operates at 64 bits and up to 133MHz and has a peak bandwidth of 1066MBps. Hardware designers can allocate this bandwidth in several ways: A PCI-X bus segment can have one 133MHz slot, two 100MHz slots, or four 66MHz slots.

In addition to the faster bus speed, design improvements (e.g., eliminating wasted clock cycles that PCI uses as wait states, supporting split transactions that eliminate polling across the bus, transferring predetermined transaction byte counts) permit PCI-X devices to perform up to 10 times as fast as 32-bit 33MHz PCI devices. Realtime audio and video applications benefit from relaxed ordering, which lets PCI bridges handle transactions from multiple PCI-X devices in the most efficient order rather than the first in/first out (FIFO) order that earlier PCI protocols enforce. Non-cache-coherent transaction support lets the PCI device driver tell the system cache controllers not to snoop the processors, thus reducing processor-bus utilization and increasing system efficiency.

Compaq compared protocol-level throughput performance between the 64-bit 66MHz PCI and PCI-X implementations. The company reports that PCI-X demonstrates overall throughput gains of up to 14 percent for I/O workloads consisting of 512-byte data transfers (typical of Ethernet NICs) and up to 34 percent for 4KB data transfers (typical of Ultra3 SCSI and Gigabit Ethernet).

PCI cards and slots are keyed by voltage (i.e., 5 volts or 3.3 volts). Although universal PCI cards are notched for both 5 volts and 3.3 volts, PCI slot connectors can be keyed for only one voltage. PCI 2.1 and 2.0 specifications permitted both 5-volt and 3.3-volt signaling; PCI 2.2 favored 3.3-volt signaling but also supported 5-volt signaling. (PCI 2.2 cards can be 5 volt, 3.3 volt, or universal; vendors have designed most PCI 2.2 cards as universal cards.) When PCI cards and slots use 5-volt signaling, they operate at a maximum speed of 33MHz; only 3.3-volt PCI slots can support higher bandwidths. Therefore, all PCI-X slots are 3.3-volt slots. PCI-X slots work with universal PCI cards and 3.3-volt cards but don't work with 5-volt-only cards. Universal PCI-X cards operate at 33MHz in a 5-volt slot, at speeds as fast as 66MHz in a 3.3-volt PCI 2.2 slot, and at speeds as fast as 133MHz in a 3.3-volt PCI-X slot. As when you mix SCSI devices of different speeds, mixing PCI and PCI-X cards on the same bus causes the speed of the PCI-X bus and all other cards on the bus to operate at the slowest card's speed.

PCI-X systems don't require OS or device-driver updates to work, but you'll need new device drivers if you want to take advantage of the new PCI-X features. And those features are mighty attractive when you consider, for example, the bandwidth requirements of a four-port Gigabit Ethernet card, which pushes four 125MBps loads and consumes nearly the full bandwidth of today's fastest bus. For now, PCI-X can give you room to satisfy the ever-growing I/O requirements of tomorrow's computer systems.