PCI express basics
PCI Express 1.x, 2.x and 3.x
Okay so by now we all know that PCI Express connections come in varying numbers of lanes and that the number of lanes is the first thing that determines how fast your device (graphics card, onboard LAN, etc.) can communicate with the rest of your PC.
As most of you will have noticed however, PCI Express connections also come with a version and revision number, there's:
- PCI Express 1.0 and 1.1 (a slight revision of 1.0) collectively referred to as 1.x
- PCI Express 2.0 and 2.1 (a slight revision of 2.0) collectively referred to as 2.x
- PCI Express 3.0
PCI Express 2.0 vs 2.1
This is a frequently asked question and most likely because a lot of videocards specify that they are version 2.1 compliant while a lot of the mainboards specify that they are version 2.0 compliant. To answer what most of you probably really want to know: A PCI Express 2.1 videocard should run just fine in a PCI Express 2.0 motherboard. The PCI Express version that motherboards support is determined by either the mainboard chipset (AMD and Intel X58) or the CPU (Intel Sandy Bridge and Sandy Bridge E).
A PCI Express 2.1 videocard should run just fine in a PCI Express 2.0 motherboard / system because the standard is designed to be both upwards and downwards compatible. The datarate remains unchanged between 2.0 and 2.1 so there should not be any major performance hurdles either when mixing and matching these two revisions. We'll leave the details of the revisions aside for now because that will force us off what's most important (well to most of you anyway).
What separates 1.x, 2.x and 3.x mostly is the transfer speed per lane:
- A PCI Express 1.x lane can transfer up to 250MB/s
- A PCI Express 2.x lane can transfer up to 500MB/s
- A PCI Express 3.x lane can transfer up to 1GB/s
These are Megabytes and Gigabytes not bits, so quite fast, even on just a single lane :-)
Obviously a 16 lane connection is still 16 times as fast as a single lane so:
- PCI Express 1.x does 16 x 250MB/s = 4GB/s on a x16 connection
- PCI Express 2.x does 16 x 500MB/s = 8GB/s on a x16 connection
- PCI Express 3.x does 16 x 1GB/s = 16GB/s on a x16 connection
The standard that is used when you mix different generations of PCI Express in a system is the lowest standard that both components can understand. This means that if you put a PCI Express 3.0 card in a PCI Express 2.x mainboard, communication will be done using the 2.x standard and speed. This works both ways: if you insert a PCI 2.x card in a PCI 3.0 system, it will use 2.x.
PCI Express 1.x is not really used anymore but those of you with a mainboard that still has 1.x are obviously at a speed disadvantage when it comes to talking to graphics cards or other peripherals that connect through PCI Express, by a factor of 2 (compared to 2.x).
Most current systems at the time of writing support PCI Express 2.x maximum. The brand new Sandy Bridge E platform has been recently confirmed to work at PCIe 3.0 transfer speeds though!
- For AMD systems this speed limit is imposed by the chipset. Modern AMD chipsets support 2.x speeds.
- For Intel socket 1155 with a Sandy Bridge processor this speed limit is imposed by the CPU as well as the southbridge for the few lanes that run from there.
Ivy Bridge will have 16 lanes of PCI Express 3.0 running from the processor, however these will only do 3.0 speeds if all the other components on your mainboard and in the slots also support 3.0. If you have a board with an NF200 chip or any other switch that doesn't support 3.0 your PCI Express connections will be 2.x. The lanes running from the P67 or Z68 southbridge will obviously always be PCI Express 2.x so even with an Ivy Bridge 1155 processor only your processor lanes will be upgraded to PCIe 3.0.
So to put it bluntly once again: most of you will never reap any benefit from a Gen3 board. Unless you have a thoroughly PCIe 3.0 ready board, a PCIe 3.0 graphics card and an Ivy Bridge processor you will be using PCIe 2.x. If just one of these components does not support 3.0 this will be the case and there is no unlocking, hacking or any other way around this.
In the long run Ivy Bridge might make up for the x8/x8 graphics limitation on 1155 boards by doubling the speed per lane but this will require new graphics cards in addition to a Gen3 capable mainboard. I'm not a fortune teller by any means but I have never before upgraded all parts of my computer but the mainboard so I find this a strange upgrade path to say the least....
In any case, those of you that still have an X58 board or the lucky few that can afford an X79 board will not have any problems for some time to come because you can easily run 2 graphics cards at x16/x16 speed on virtually any board out there. Even graphics cards that only support PCI Express 2.x will have no problem with this full complement of lanes.
The same goes for users that have any of the AMD high end chipsets (790FX, 890FX, 990FX) although this has the downside of a slower CPU. This is much less of a problem however than people make it out to be:
A final word on "feeding graphics cards" and the speed of your CPU.
Every so often I hear people talk about a CPU not being able to feed a graphics card fast enough. This is really is bullshit. Transfers of data to and from a PCI Express device, be it a disk controller, LAN controller, graphics card or whatever else are done from the PC's main memory to the PCI Express device without the processor doing anything. This is done via a mechanism called "DMA" which is an abbreviation of "Direct Memory Access".
Now for the fun part. Dual Channel DDR3 1333 memory (most of you have this or faster memory in their PC) has a transfer rate of just over 20GB/s. Given that most of you have PCI Express 2.x with a maximum of 16 lanes for your graphics card this means that the transfer speed to (and from) your graphics card is limited to 8GB/s (x16 PCI Express 2.x = 8GB/s).
This means that your memory can "saturate" the PCI Express connection to your graphics card twice over with room to spare!!!! Over 12GB/s of room to spare to be more precise. Even if you have 2 graphics cards at 8GB/s each only one memory transfer at a time will happen so that still leaves you with 4GB/s of free overhead.
So why have a fast PCI Express connection?
Well this is actually quite simple: the higher your bandwidth the sooner the receiving device (video card or any other device) can work with it. So in effect, the faster your first graphics card has a data transfer the earlier it can go about it's business rendering stuff while the next transfer to your second graphics card is underway. Besides the graphics card, transactions to other stuff is happening too: transfers to your audio chip, your disk controller, your network controller etc. The faster your PCI express connection, the faster your machine will be at a whole slew of different tasks.
This is why a x16/x16 Bulldozer machine can outrun a Core i7 in framerates even though the Bulldozer processor is slower. As long as the processor is fast enough the better PCI Express on the Bulldozer system can make a difference that compounds the CPU speed. Ofcourse badly written game software that doesn't use the multiple cores effectively can still slow the entire game down, it just does not mean that there is no reason to have a fast PCI Express connection. The faster PCI Express will still make a positive difference.