PCI-Express: First looks and the future

pci-express

Introduction

PC expansion slots have come a long way since the old eight bit ISA slots, and now we’re going to take a look at their newest incarnation, the PCI Express slot. In this article I’ll be covering some of the technical details of PCI Express (or PCI-E for short) and how it stacks up with what is currently available on the market, and what this means to average users and power users alike.

Overview of Current PCI Technology and its Shortcomings
The PCI bus in most of our PCs is a relic of the i486 when Intel flexed its muscles for the second time, the first being the famous Intel Inside logo. IBM and everybody else had pigeonholed PCs to word processing and very light duty computing; leaving the more powerful tasks to the UNIX workstation with their fast RISC processors and speedy expansion busses needed for handling high-end I/O. To replace ISA, IBM invented the MCA bus and VLB and EISA were explored as another option as they are backwards compatible with 8 and 16 bit ISA, but this trio had one flaw – they only ran at half of the processor bus speed, around 8.33 MHz, the same as the old ISA busses. This is where Intel introduced its PCI bus, running at full processor speed of 25 to 33 MHz and scaling beautifully as the i486 introduced processor multipliers on its DX2 and DX4 line at 50, 66, 75 and 100 MHz. But it would only really shine later when used with high-speed graphics cards on Pentium systems and later Pentium Pro/Pentium II systems.

By this time, of course, graphics cards had gotten powerful enough to maximize a PCI bus and AGP was introduced, and with the main burden off of the PCI bus the old 33 MHz 32 bit bus remained adequate as the one expansion bus beyond AGP in a system until late in the Pentium III line when the southbridge was given control of the bus from the northbridge and rather than the southbridge’s peripherals and all of the expansion slots sharing that single PCI bus the southbridge gained a high speed proprietary point to point connection, allowing more bandwidth to the southbridges peripherals, especially newer, bandwidth hungry hard disk drives. Of course, there were also higher speed busses available in the form of 64 bit PCI and higher clock speeds, but the additional cost of the slots and chipsets and the cards themselves put the kybosh on that idea for desktop PCs fairly quickly, leaving them to servers and workstations, both PC and by this time RISC computers even.


By now there are several variations of PCI busses, ranging in bandwidth from 100 MB/s up to 1066 MB/s, as shown by the table below (Table 1), note the overlap between standard PCI and PCI-X; there are some differences between the two although they for most people exactly the same. In the second table (Table 2) I’ve listed some common peripherals to give a reference to the amount of bandwidth they can consume:

Bus: Clock Speed Bandwidth at 32 bit Bandwidth at 64 bit
Standard PCI 25 MHz 100 MB/s 200 MB/s
Standard PCI 33 MHz 133 MB/s 266 MB/s
PCI-66 66 MHz 266 MB/s 533 MB/s
PCI-X 66 MHz N/A 533 MB/s
PCI-X 100 MHz N/A 800 MB/s
PCI-X 133 MHz N/A 1066 MB/s

Table 1

As you can see, with the average PC sharing a single 133 MB/s PCI bus for all of its expansion slots how bandwidth can easily be gobbled up by modern peripherals. Enter PCI Express.

Peripheral Possible Bandwidth Typical Bus Interface(s) Bus Speeds
Gigabit Ethernet Controller (Full Duplex) 200 MB/s 33 or 66 MHz, 32 bit 133 or 266 MB/s
Dual Channel ATA/133 Controller 266 MB/s 33 or 66 MHz, 32 bit 133 or 266 MB/s
Ultra 320 SCSI Controller 320 MB/s 66 MHz, 64 bit PCI or
66 to 133 MHz PCI-X
533, 800 or 1066 MB/s
Quad Channel SATA/150 Controller 600 MB/s 33 or 66 MHz 32 bit 133 or 266 MB/s
Dual Controller 1394a 160 MB/s 33 MHz 32 bit 133 MB/s

Table 2