What is PCI-Express
by Dr. Fred
The old 32-bit PCI bus was introduced in 1993 into the high-end server and workstation market. From there it trickled down to the mainstream market in 1994, and it has remained mostly unchanged in our desktop PCs for the past decade. Time has passed, however, and PCI’s meager 133MB/s data throughput across a single shared bus is not enough for current high-end systems with Gigabit LAN, Firewire and SATA RAID controllers.
Over the years, there have been several attempts made to improve upon the PCI specification. Among those, PCI-X (short for PCI eXtreme) is probably the most prominent. PCI-X doubles the PCI bus width from 32-bit to 64-bit, increases the clockspeed from 33MHz to a whopping 533MHz for PCI-X 2.0, and increases the slot pin count from 49 to 102.
Unfortunately, since parallel buses are very sensitive to noise, such a dramatic increase in clockspeed and trace/pin count means much more attention must be paid to maintaining a clean signal. This means costlier components as well as very stringent quality requirements, which translates directly to higher manufacturing costs. Because of this, PCI-X is forever confined to the server and high-end workstation market, as desktop PCI-X boards would simply cost too much to be economically viable.
In comes PCI Express, or PCIe. PCIe uses serial signaling instead of parallel, and does away with the shared bus topology by using a point-to-point switch system. Effectively this means that each slot has its own high-speed link with the PCIe switch instead of having to share a common bus with all the other ports. On top of that, the serial signaling method means there are as few as four traces linking a single PCIe 1X port to the switch, compared to 42 for PCI. This greatly simplifies motherboard design, and actually costs less to implement than standard 32-bit PCI.
How does this all help performance, however? Well, PCIe provides 2.5Gbps of bandwidth per direction per lane. Considering that PCIe links are full duplex (i.e. they can send and receive data at the same speed), that adds up to a theoretical maximum of (2.5 x 2)/8 = 625 MB/s for a single PCIe 1X link. Now, PCIe uses something called 8b/10b encoding, where every 8 data bits are translated to 10 transmission bits in order to help synchronization and error detection. This obviously reduces effective bandwidth by 20%, and so the actual bandwidth for a PCIe 1X link is (625 x 0.8) = 500MB/s
For 4X, 8X and 16X links, you simply multiply the 1X bandwidth by the amount of lanes. This gives you 2,000MB/s for 4X, 4,000MB/s for 8X, and 8,000MB/s for 16X. If you’re having trouble picturing just how much bandwidth that is, remember that the current AGP8X standard only offers 2,128MB/s. This means that the 16X PCIe link, which is replacing AGP8X, can offer close to four times as much bandwidth. Obviously graphics cards don’t require anywhere near that much, but considering the PCIe spec allows for a 32X link (which would add up to around 18.5GB/s), it’s nice to know the standard has that much headroom.
PCIe 16X slots are also able to supply more power to video cards, up to 75W per slot compared to only 40W for AGP. This is a logical move, considering the skyrocketing power requirements for latest-generation graphics accelerators: the GeForce 6800 Ultra, for instance, draws a massive 72W at full load. Unfortunately, high-end PCIe video card will still require a direct connection to the PSU in order to ensure a clean supply of power. This is done through a new type of connector, which should avoid having to run the video card on the same power cable as hard drives or other power-hungry devices.
Last but not least, PCIe allows two high-end video cards to function in the same system. The details behind this would be best suited for another article, but suffice it to say that this hasn’t actually been possible since the days of PCI video cards. Why is this? Well, AGP - as its name implies - is a port, which means that it can only send and receive data from point A to point B. Since the AGP specification doesn’t allow for an AGP switch, one is limited to a single AGP port per northbridge. As such, the only motherboards to offer two AGP slots are dual-CPU boards that, naturally, have two northbridges (one for each CPU).
PCIe also offers some miscellaneous added benefits designed to help implementation: it is compatible with PCI on the software layer, allows hot-swapping (although this shouldn’t be on desktop boards), and it offers inter-compatibility between slot sizes. This means that you could put a 1X card into a 4X slot, or a 4X card in an 16X slot. What’s more, if the end of a 1X or 2X slot is left open, it can actually accommodate a 16X card. Obviously this isn’t feasible with normal slots and would cut down bandwidth anyway, but it is still an interesting possibility.
What about the practical side of things? Does PCIe really offer any real-world performance benefits? This really depends on what it is used for. With current graphics cards, the performance gains from PCIe seem to be fairly insignificant – we’ll have to wait for the next generation before anything really needs significantly more bandwidth than AGP8X can offer. On the other hand, pile a couple of gigabit network cards and SATA controllers in a system, and the benefits of PCIe over 32-bit PCI will become immediately apparent.
At the time of this writing, PCIe is slowly replacing AGP on the graphics front. The next generation of cards should be PCIe-native, and it’s likely that only the low-end models will be released in AGP form, perhaps some months after their PCIe siblings. Other PCIe expansion cards are quite rare at the moment, but this should all change next year, when AMD motherboards with PCIe support are widely available. Creative’s next sound card, the Audigy 3, is also rumored to be released in a PCIe 1X package.
This article is ©2010 by the respective authors. Reproduction is prohibited without express permission from all contributors.