The Difference Between PCI-X and PCI-Express
64-bit PCI
Original Article Date: 2004-11-11
When I first heard of PCI-Express, it was verbal, and I simply assumed the guy
who was telling me about it was referring to PCI-X. After all they both sound
the same, right? I mean, they both sound like "Pea-Sea-Eye-Ex-blah-blah".
Nobody ever listens to the ends of words - I think someone proved that.
And like anyone, I would have never believed the industry would come up with two
technologies that were so phonetically similar. Well, they did! We have PCI-X and
PCI-Express! No wonder just about everyone I talk to about it has the two
muddled into one concept!
Both are 64-bit, high-bandwidth versions of the now decade old PCI
interconnect standard. But that is the only commonality between them. They work
in completely different ways, have different applications, and have physically
incompatible architecture.
Basic Differences
PCI-X uses a parallel interconnect along a bus that is shared
with other PCI-X devices, just like PCI. In fact, PCI-X is best thought of as "
PCI-e
X
tended", as it is simply an extension of the legacy PCI 32-bit
format, with which it is backward-compatible. It differs mainly in the fact
that the bus is now 64-bits wide, and runs at higher frequencies (now up to
533MHz, compared to 66MHz - the fastest PCI frequency).
PCI-Express, on the other hand, uses a
serial
interconnect along a switched bus dedicated exclusively to that slot. In this
respect, and most others, it uses radically new architecture, having little to
do with old PCI. Furthermore, PCI-Express has the unique capability of
multiplying
up individual data "lanes", to produce aggregate interconnects
that can deliver up to 16 times the bandwidth of a single lane. This
is why you will always see PCI-Express slots referred to as "PCI-Express*4" or
"PCI-Express*16" etc.
Applications
PCI-X has been with us in the server and workstation arena for some time now, as
a bus for high-bandwidth server peripherals such as RAID Controllers and
Gigabit Ethernet.
PCI-Express, on the other hand, is brand-new, and is intended to replace AGP in
the desktop market and ultimately be the de-facto high-bandwidth peripheral bus
across all markets.
Hardware that benefits from 64-bit PCI include:
-
High-performance graphics cards
(PCI-Express only) in the 3D Gaming desktop and graphic intensive workstation
markets.
-
U320 SCSI Controllers
for high-speed hard disk access.
-
Multi-port Serial ATA RAID Controllers
for terabyte storage arrays.
-
Gigabit Ethernet
for high-speed networking.
-
IEEE1394b ("Firewire 800") for ultra-high bandwidth
peripherals, such as external hard drives and DV camcorders.
Architecture
Comparing the slots used by PCI-X and PCI-Express to the existing 32-bit
slot gives us the biggest clue as to how different the two 64-bit
technologies are.
You can see that the slot used by PCI-X is merely an extension of the 32-bit PCI
slot. As long as the voltage is the same (3.3V or 5V), a PCI-card can be
inserted into a PCI-X slot, although it will of course only operate at a
bandwidth of 32-bits, and at the lower PCI frequency. The baffles will prevent
the insertion of a voltage-incompatible card.
The PCI-Express slot, on the other hand, is like a cuckoo in this nest, with no
compatibility to either PCI or PCI-X. This reflects the fact that PCI-Express
uses very different bus architecture to the others.
This is all very interesting, but just tell me which is better - PCI-X or
PCI-Express?
Well, in a short answer, PCI-Express is the superior technology. Ultimately
it has higher bandwidth, because you can just bundle up single PCI-Express
lanes into x4 or x16 buses. There are also fewer steps needed to process
instructions between the CPU and PCI device compared to PCI-X, thus reducing
latency.
A single PCI-Express lane can deliver a maximum of 2.5 gigabits per second (2.5Gbps)
in a single direction, with a theoretical maximum of 5Gbps in both directions.
PCI-Express slots are available currently in up to 16 lanes i.e. 16x5Gbps =
80Gbps maximum bandwith in both directions. That's 10 gigabytes
per second of data transfer (10 GB/s)!
PCI-X doesn't work in quite the same way, since it uses a shared data bus
between slots/devices, which is why most serverboards usually have more than
one PCI-X bus, to prevent I/O bottlenecks. However, that said, with the PCI-X
2.0 specification, bus frequencies of 533MHz are now possible,
providing a theoretical bandwidth of up to 34Gbps (4GB/s).
To get these figures into perspective, consider that the hottest Dual Channel
SCSI controller cards can deliver up to 1GB/s of data transfer, and so these
speed limits on PCI-X and PCI-Express are not likely to be limiting for any
devices in the near future.
The Future of 64-bit PCI
I was at an Intel trade show just last week, and I learned there that Intel were
staking their future on PCI-Express. So this would suggest that
PCI-Express will become the de-facto I/O standard. But then Intel have been
denied before by the market, haven't they? (read "RAMBUS")
In this case, however - I think they're right. With its serial point-to-point
architecture, and ability to be multiplexed into theoretically limitless
numbers of lanes acting as a single bus, PCI-Express has clearly has the
greater longevity.
PCI-X, on the other hand, will be with us for some time, and will serve us well
as a bridge, allowing continued use of 32-bit PCI cards as well as a many PCI-X
devices that have been around when PCI-Express was merely a solvent-heavy
suggestion of black lines on a SIG's whiteboard.
So for now, it doesn't matter too much which way you go. Right at this moment -
it will probably depend on what peripheral you're looking to use. In the market
right now, only graphics cards are using the PCI-Express format. But in the
long run, expect the dominance of PCI-X in the arena of RAID Controllers,
multiple Gigabit Ethernet and 1394B cards to give way to the young
pretender of PCI-Express.
Ben Ranson
Chief Systems Engineer