In the continuing series on the PCIe / PCI Express bus, we’ve found out what it is, terminology, and bandwidth. Now let’s look at how things are connected to the bus.
The number of lanes provided by the CPU is mapped into a number of physical connectors (and at times to chips for peripherals). Let’s look at the standard connectors.
Seen above are some of the PCIe connectors: x4, x16, x1, and another x16 (and an older PCI slot which is not compatible). There is a x8 connector not shown.
Now you might think that a x4 sized connector would have 4 PCIe lanes. Often this is true, with x1 having one lane, x16 having 16 lanes. BUT THIS IS NOT ALWAYS THE CASE.
Famously in some older Intel i7 motherboards, one x16 slot (top) would have 16 lanes while the other slot had four or maybe 8 lanes (bottom) as the CPU did not have enough for all the peripherals. So using two x16 graphics cards would not give the optimal bandwidth as one card is throttled by having fewer lanes.
The card and motherboard negotiate the available PCIe lanes and if all is programmed correctly, devices usually afforded multiple PCIe lanes can work with fewer, albeit at reduced bandwidth.
The connectors allow for smaller cards to fit larger slots. In rarer cases, a smaller slot may physically accept a larger card, as above (compare this to the x1 connectors above which have a closed footprint not allowing larger cards as there is no slot to accommodate it.
If you are looking at a computer with limited resources, such as the new Raspberry Pi 5, keep in mind how the PCIe connection might be made. Installing a x1 connector will limit to x1 cards unless an open back connector is used.
And always be aware of the bandwidth available vs. what the add-on card might want. If your add-on is running slow, it’s likely due to limited PCIe lanes.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!
Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: Open Hardware is In, New CircuitPython and Pi 5 16GB, and much more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey