Programster's Blog

Tutorials focusing on Linux, programming, and open-source

PCI Express Cheatsheet

I keep having to look this up, so I just made this cheatsheet instead.

The speeds listed below are per lane. This means you will need to multiply by the number of lanes to get your total bandwidth. E.g. x PCI-e x4 = 4 times as much. Speeds are specified in gigatransfers per second and MB/s. This is because the MB/s is what you will actually get out of it due to overheads.

  • 1.0 - 2.5 GT/s - 250 MB/s - enough for a 1 gigabit NIC
  • 2.0 - 5 GT/s - 500 MB/s - good enough for 4 hdds or a 4 port gigabit NIC.
  • 3.0 - 8 GT/s - 985 MB/s - 2 or 3 SSDs

PCI Express 3.0 upgrades the encoding scheme to 128b/130b from the previous 8b/10b encoding, reducing the bandwidth overhead from 20% of PCI Express 2.0 to approximately 1.54% (= 2/130)

It is worth remembering that:

  • plugging a PCI-e 2.0 card into a PCI-e 3.0 slot will always work at 2.0 speeds.
  • Just because the motherboard slot is x16, and so is your card, that doesn't mean it will be given x16 bandwidth. Often the second PCI-e x 16 slot is only given 8 lanes or possibly even less depending on what else you also have plugged in. This depends upon your motherboard and is worth referring to the manual.