How do I calculate PCIe 1x, 2.0, 3.0, speeds properly?

Space Ghost picture Space Ghost · Jun 2, 2015 · Viewed 11.9k times · Source

I am honestly very lost with the speeds calculations of PCIe devices. I can understand the 33MHz - 66MHz clocks of PCI and PCI-X devices, but PCIe confuses me.

Could anyone explain how to calculate the transfer speeds of PCIe?

Answer

Claudio picture Claudio · Jun 3, 2015

To understand the table pointed to by Paebbels, you should know how PCIe transmission works. Contrary to PCI and PCI-X, PCIe is a point-to-point serial bus with link aggregation (meaning that several serial lanes are put together to increase transfer bandwidth).

For PCIe 1.0, a single lane transmits symbols at every edge of a 1.25GHz clock (Takrate). This yield a transmission rate of 2.5G transfers (or symbols) per second. The protocol encodes 8 bit of data with 10 symbols (8b10b encoding) for DC balance and clock recovery. Therefore the raw transfer rate of a lane is

2.5Gsymb/s / 10symb * 8bits = 250MB/s

The raw transfer rate can be multiplied by the number of lanes available to get the full link transfer rate.

Note that the useful transfer rate is actually less than that because data is packetized similar to ethernet protocol layer packetization. A more detailed explanation can be found in this Xilinx white paper.