Since the first PC, launched in 1981, the computer has had expansion slots where you can install additional cards to add capabilities not available on the motherboard of the computer. Currently, the most common type of expansion slot available is called PCI Express. In this tutorial, you will learn everything you need to know about this kind of connection: how it works, versions, slots, and more.
Before talking about the PCI Express, we must talk a little bit about the history of PC expansion slots and their main challenges, so you can understand what makes the PCI Express different.
Below we list the most common types of expansion slots that were launched for the PC throughout its history:
- ISA (Industry Standard Architecture)
- MCA (Micro Channel Architecture)
- EISA (Extended Industry Standard Architecture)
- VLB (VESA Local Bus)
- PCI (Peripheral Component Interconnect)
- PCI-X (Peripheral Component Interconnect eXtended)
- AGP (Accelerated Graphics Port)
- PCI Express (Peripheral Component Interconnect Express)
New kinds of expansion slots are released whenever available slot types are proved to be too slow for certain applications. For example, the original ISA slot available on the original IBM PC and on the IBM PC XT and their clones, had a maximum theoretical transfer rate (i.e., bandwidth) of only 4.77 MB/s (4.77 MHz transferring eight bits per clock cycle). The 16-bit version of the ISA, launched with the IBM PC AT in 1984, almost doubled the available bandwidth to 8 MB/s (8 MHz transferring 16 bits each two clock cycles; each access cycle on the ISA bus takes two clock pulses to be completed), but this number was extremely low even at the time for high-bandwidth applications such as video.
Then IBM released the MCA slot for its PS/2 computer line, and because it was copyrighted, other manufacturers couldn’t copy or use it. So the MCA slots were confined to computers manufactured by IBM. Nine PC manufacturers joined to create the EISA slot, but it wasn’t successful for two reasons. First, it maintained compatibility with the original ISA slot, so its clock rate was the same as the 16-bit ISA slot. Second, the alliance didn’t include motherboard manufacturers, so do-it-yourself users and other manufacturers didn’t have access to this slot.
The first real high-speed slot to be released was the VLB. The higher speed was achieved by tying the slot to the CPU local bus, i.e., the CPU external bus. This way, the slot worked at the same speed as the CPU external bus, which is the fastest bus available on the PC. In the table below, we are listing this slot as using a 33 MHz clock rate, but the actual clock rate will depend on the CPU used. (Most CPUs at the time used a 33 MHz external clock rate, but CPUs with 25 MHz and 40 MHz external clock rates were also available.) The problem with this bus was that it was designed specifically for the local bus of 486-class processors. When the Pentium processor was released, it was incompatible with it, as it used a local bus with different specifications (66 MHz external clock rate instead of 33 MHz and 64-bit data transfers instead of 32-bit).
The first industry-wide solution appeared in 1992, when Intel lead the industry to create “the definitive” expansion slot, the PCI. Later, other companies joined the alliance, which is known today as PCI-SIG (PCI Special Interest Group). The PCI-SIG is responsible for standardizing the PCI, PCI-X and PCI Express slots. By the way, some laypeople have difficulty making a distinction between PCI, PCI-X, and PCI Express (“PCIe”). Even though these names are similar, they refer to completely different technologies.
The PCI is a platform-independent bus that is connected to the system using a bridge chip (which is part of the motherboard chipset). Whenever a new CPU is released, you can still use the same PCI bus by redesigning the bridge chip instead of redesigning the bus, which was the norm before the PCI bus was created.
A bus is a data path where you can attach several devices at the same time, sharing this data path. The most obvious devices attached to the PCI bus were expansion slots, but integrated components available on the motherboard such as an on-board network chip could be connected to the PCI bus.
Even though other configurations were theoretically possible, the most common implementation of the PCI bus was with a clock with 33 MHz with a 32-bit data path, enabling a bandwidth of 133 MB/s.
The PCI-X bus is a version of the PCI bus working at higher clock rates and with wider data paths for server motherboards, achieving higher bandwidth for devices that demanded more speed, such as high-end network cards and RAID controllers.
When the PCI bus proved to be too slow for high-end video cards, the AGP slot was developed. This slot was used exclusively for video cards.
Then, finally, the PCI-SIG developed a connection called PCI Express (formerly known as “3GIO” and officially abbreviated as “PCIe,” although most people abbreviate it, incorrectly, as “PCI-E”). Despite its name, PCI Express works radically different from the PCI bus.
- 1. PCI is a bus, whereas PCI Express is a point-to-point connection, i.e., it connects only two devices; no other device can share this connection. Just to clarify, on a motherboard using standard PCI slots, all PCI devices are connected to the PCI bus and share the same data path, so a bottleneck (i.e., performance decrease because more than one device wants to transmit data at the same time) may occur. On a motherboard with PCI Express slots, each PCI Express slot is connected to the motherboard chipset using a dedicated lane, not sharing this lane (data path) with other PCI Express slots. Also, devices integrated on the motherboard, such as network, SATA, and USB controllers, are usually connected to the motherboard chipset using dedicated PCI Express connections.
- 2. PCI and all other kinds of expansion slots use parallel communications, while PCI Express is based on high-speed serial communications.
- 3. PCI Express is based on individual lanes, which can be grouped to create higher-bandwidth connections. The “x” that follows the description of a PCI Express connection refers to the number of lanes that connection is using.
The PCI Express connection is the subject of this tutorial. We will go into more detail about how it works in the following pages.
Below is a table comparing the main specifications for the expansion slots that ever existed for the PC.
|Slot||Clock||Number of Bits||Data per Clock Cycle||Bandwidth|
|ISA||4.77 MHz||8||1||4.77 MB/s|
|ISA||8 MHz||16||0.5||8 MB/s|
|MCA||5 MHz||16||1||10 MB/s|
|MCA||5 MHz||32||1||20 MB/s|
|EISA||8.33 MHz||32||1||33.3 MB/s (16.7 MB/s typically)|
|VLB||33 MHz||32||1||133 MB/s|
|PCI||33 MHz||32||1||133 MB/s|
|PCI-X 66||66 MHz||64||1||533 MB/s|
|PCI-X 133||133 MHz||64||1||1,066 MB/s|
|PCI-X 266||133 MHz||64||2||2,132 MB/s|
|PCI-X 533||133 MHz||64||4||4,266 MB/s|
|AGP x1||66 MHz||32||1||266 MB/s|
|AGP x2||66 MHz||32||2||533 MB/s|
|AGP x4||66 MHz||32||4||1,066 MB/s|
|AGP x8||66 MHz||32||8||2,133 MB/s|
|PCIe 1.0 x1||2.5 GHz||1||1||250 MB/s|
|PCIe 1.0 x4||2.5 GHz||4||1||1,000 MB/s|
|PCIe 1.0 x8||2.5 GHz||8||1||2,000 MB/s|
|PCIe 1.0 x16||2.5 GHz||16||1||4,000 MB/s|
|PCIe 2.0 x1||5 GHz||1||1||500 MB/s|
|PCIe 2.0 x4||5 GHz||4||1||2,000 MB/s|
|PCIe 2.0 x8||5 GHz||8||1||4,000 MB/s|
|PCIe 2.0 x16||5 GHz||16||1||8,000 MB/s|
|PCIe 3.0 x1||8 GHz||1||1||1,000 MB/s|
|PCIe 3.0 x4||8 GHz||4||1||4,000 MB/s|
|PCIe 3.0 x8||8 GHz||8||1||8,000 MB/s|
|PCIe 3.0 x16||8 GHz||16||1||16,000 MB/s|