Introduction to PCI Express: A Hardware and Software Developer's Guide

Every great advance in science has issued from a new audacity of imagination.
John Dewey
There are certain times in the evolution of technology that serve as inflection points that forever change the course of events. For the computing sector and communications, the adoption of PCI Express will serve as one of these inflection points. PCI Express, a groundbreaking new general input/output architecture, allows computers to evolve far beyond the limitations imposed by their current infrastructure. In addition to this, PCI Express provides many new and exciting features such as Active State Power Management, Quality of Service, Hot Plug and Hot Swap support, and true isochronous capabilities.
Throughout this book there are references to three separate general I/O technologies. These technologies include: PCI (Peripheral Component Interconnect), PCI-X (a derivative of PCI), and the new architecture PCI Express. PCI-X is not an abbreviation for PCI Express. PCI-X evolved from PCI and is backward-compatible with PCI from a hardware and software perspective. PCI Express is neither an evolved nor an enhanced form of PCI or PCI-X, but does preserve the configuration, programming, and ordering models that PCI has established over the last ten years. At the physical level there are many differences between PCI/PCI-X and PCI Express. These differences are justifiable since they address many of the challenges that general I/O faces today, such as bandwidth limitations, physical space constraints, quality of service issues, and the inability to address immediate and future usage models. These differences are also equally justified through...