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.

References

Last updated: 16th August 2018
First published: 16th August 2018

This blog is created by Stuart Page

I'm a freelance web developer and technology consultant based in Surrey, UK, with over 10 years experience in web development, DevOps, Linux Administration, and IT solutions.

Need support with your infrastructure or web services?

Get in touch