FAQ: PCI Express
Via de snelle interface PCIe kun je niet alleen grafische kaarten en ssd’s in je pc aansluiten, maar PCIe is flexibeler inzetbaar. Dat zorgt soms voor verwarring.
PCIE-GENERATIES EN LANES
? Bij PCI Express komt je begrippen tegen als 3.0 en 4.0, en daarnaast x4 en x16. Wat betekenen die?
! Je kunt uit die verkorte aanduidingen voor de PCI-Express-slots (PCIe-slots) afleiden wat de maximale overdrachtssnelheid is. Dat is bijvoorbeeld belangrijk als je een snelle ssd optimaal wilt benutten. Die moet daarvoor in een geschikt slot worden geplaatst.
PCIe is een seriële interface, waarbij meerdere zogeheten lanes (Engels voor rijbanen) gebundeld kunnen worden om de overdrachtssnelheid te vergroten. Bij elke PCIe-generatie is bovendien de snelheid per lane toegenomen. Het getal achter PCIe staat voor de generatie, het getal achter de kleine letter x voor het aantal lanes.
PCIe 2.0 kan per lane 5 miljard datapakketten per seconde (Gigatransfers/s, GT/s) overbrengen, wat in het ideale geval leidt tot bijna 500 MB aan data per seconde (MB/s). Dat betekent dat met PCIe 2.0 x4 in totaal bijna 2 GB/s mogelijk is, en bij PCIe 3.0 x4 is dat ongeveer 3,9 GB/s.
Niet elk PCIe-slot is met evenveel lanes verbonden. Zo zijn veel PCIe-x16-slots maar met 8 lanes (x8) aangesloten, waardoor de maximale doorvoersnelheid maar half zo hoog is als bij 16 lanes.
SLOTS MET MINDER LANES
? Op mijn moederbord zit een PCIex16-slot, maar daarvan zijn maar acht lanes (x8) bruikbaar. Waarom is dat en heeft dat nadelen?
! De processors van veel desktoppc’s hebben een PCI Express Root Complex dat maximaal 16 lanes biedt voor grafische kaarten en nog eens 4 lanes voor de verbinding met de chipset (oftewel de Platform Controller Hub/PCH). Als je behalve een grafische x16-kaart nog een andere uitbreidingskaart direct met de cpu wilt verbinden (en niet via de PCH-omweg), schakelt de cpu van een enkel x16-slot om naar twee x8-slots. Daarvoor wordt vaak de Engelse term bifurcation gebruikt. Kleine schakelchips in de buurt van de PEG-slots verbinden dan automatisch 8 lanes van het eerste slot met het tweede slot.
Je kunt dan wel twee kaarten via de 16 lanes verbinden, maar elke kaart kan daarbij maximaal de x8-overdrachtssnelheid halen. Dat merk je bij de meeste PCIe-kaarten in de praktijk echter nauwelijks. Alleen extreem krachtige kaarten kunnen daar door worden afgeremd.
PCI EXPRESS VOOR GRAPHICS
? Bij een PEG-slot is PEG een afkorting voor PCI Express voor Graphics, maar wat houdt dat in?
! PCI Express for Graphics (PEG) specificeert een PCIe-slot voor grafische kaarten met maximaal 16 PCIe-lanes. Een PEG-slot kan maximaal 75 watt leveren, terwijl andere PCIe-slots hooguit 25 watt kunnen leveren. Niet elk PEG-slot is met de maximale 16 PCIe-lanes aangesloten.
LANES WISSELEN
?
Kan ik een PCIe-x1-kaart ook in een x4- of een x16-slot stoppen? En omgekeerd een x16-kaart in een x8-slot?
!
Bijna elke PCIe-kaart kan in principe ook met slechts één enkele PCIe-lane werken, alleen gaat dat dan natuurlijk niet met de maximale snelheid. Sowieso werkt een x1-kaart bijna altijd in een x4-, x8- of x16-slot.
Er zijn wel enkele mogelijke problemen, vooral omdat PCIe zo flexibel te gebruiken is. Zo schakelen veel moederborden met twee PEG-slots beide slots automatisch om naar acht lanes als er in het tweede slot een kaart wordt geplaatst (zie vorige vraag), ook al heeft die kaart helemaal geen acht lanes nodig.
Een kaart met een langere aansluiting past verder alleen in een korter slot, als dat een ‘open achterkant’ heeft, zodat de langere connector eruit kan steken. Een PEGkaart die 75 watt nodig heeft, zal bovendien niet werken in een gewoon slot, dat maximaal 25 watt levert.
Problematisch zijn daarbij de uitbreidingskaarten met meerdere onafhankelijke
PCIe-controllers. Vaak werken die niet als een slot minder lanes biedt dan bij de fysieke connector hoort, bijvoorbeeld als een x4slot maar een lane beschikbaar heeft.
Om dat soort situaties te vermijden, moet je vooraf de handleiding van het moederbord goed doornemen. Er kunnen ook bijzondere bugs optreden, bijvoorbeeld omdat het BIOS het door de uitbreidingskaart verlangde aantal lanes niet goed toewijst. Bij een oudere Intel-chipset was er nog een specifiek probleem met x2-kaarten, die chipset kon alleen overweg met x1, x4, x8 en x16.
PCIE 4.0-KAART IN PCIE 3.0-SLOT
? Ik heb een moederbord met PCIe 3.0. Kan ik daarmee ook een grafische kaart gebruiken of een ssd met PCIe 4.0?
! Ja. Bijna alle PCIe-kaarten zijn neerwaarts compatibel, oftewel werken ook met een oudere PCIe-generatie. Omgekeerd werken PCIe 1.0-kaarten ook in PCIe 4.0-slots. De maximaal haalbare overdrachtssnelheid wordt echter bepaald door het hostsysteem: een processor met PCIe 3.0 kan niet werken op PCIe 4.0-snelheid. Een PCIe 4.0-x4-sdd haalt in een M.2-slot met PCIe 3.0 x4 dan ook niet zijn maximale snelheid.
Om PCIe optimaal te benutten, moet ook het RAM snel genoeg zijn, want het gaat daarbij ook om Direct Memory Access (DMA). PCIe 4.0 x16 haalt wel tot 30 GB/s, maar een geheugenkanaal met DDR4-3200 komt tot hooguit 25,6 GB/s (3,2 Gigatransfers met elk 8 bytes). Voor PCIe 4.0 x16 is dus dual-channel RAM zinvol: daarbij is het al genoeg om per kanaal een module van het type DDR4-2133 (17 GB/s) te plaatsen.
NVME EN PCIE
? Wat hebben de begrippen NVMe en PCIe met elkaar te maken?
! Het overdrachtsprotocol NonVolatile Memory Express (NVMe) gebruikt PCI Express (PCIe) als fysieke verbindingslaag. De meeste PCIe-ssd’s gebruiken NVMe. Om een pc of laptop te kunnen opstarten van een NVMe-ssd, heeft het BIOS een ingebouwde NVMe-driver nodig. Dat is tegenwoordig meestal wel het geval. Ook de huidige versies van alle gangbare besturingssystemen bevatten NVMedrivers.
THEORETISCHE EN PRAKTISCHE SNELHEID
? Hoe verhoudt de praktisch haalbare snelheid zich tot de theoretische?
! Tot en met generatie 2.0 gebruikte PCIe nog een 8-bit-10-bit-codering (8b/10b), vanaf PCIe 3.0 een efficiëntere 128b/130b-codering. Daarmee gaan in 1000 PCIe 2.0-transfers 800 bits, terwijl er 984 bits in gaan voor PCIe 3.0. Daar gaat nog een deel vanaf voor het overdrachtsprotocol en afhankelijk van de grootte van de verzonden pakketten haalt PCI Express ook niet het maximale dat qua overdracht mogelijk is.
De praktisch haalbare datatransfersnelheid is nog afhankelijk van andere factoren, zoals bij een PCIe-ssd bijvoorbeeld de snelheid van de controller en de gebruikte flashchips. Veel van de nieuwe PCIe 4.0-ssd’s benutten in de praktijk bijvoorbeeld maar een fractie van de PCIe-overdrachtssnelheid.
Een PCIe-lane heeft aparte lijnparen voor het versturen en ontvangen en kan data in beide richtingen tegelijk overdragen. Veel fabrikanten noemen daarom de dubbele overdrachtssnelheid per lane, bij PCIe 3.0 bijvoorbeeld 16 GT/s in plaats van de 8 GT/s per richting. Maar in de praktijk is die waarde niet relevant voor het gebruik van de pc.
M.2 EN PCIE
? Wat is het verband tussen het ssdtype M.2 en PCI Express?
! De M.2-specificatie beschrijft een compact uitbreidingsslot met tot vier PCIe-lanes en compatibele modules met verschillende lengtes. Veel M.2-ssd’s zijn 8 centimeter lang (M.2 2280), maar er zijn er ook van 3, 4,2 en 11 centimeter (2230, 2242, 22110). Al naargelang het moederbord passen alleen bepaalde typen, omdat de bevestigingsschroeven op de bijbehorende posities moeten zitten. M.2-ssd’s met een PCIe-controller kunnen via adapterkaarten ook in PCIe-slots worden gebruikt.
Veel goedkope M.2-ssd’s gebruiken slechts 2 in plaats van 4 PCIe-lanes en zijn daardoor langzamer. Omgekeerd hebben sommige moederborden M.2-slots met een PCIe 2.0-aansluiting, waardoor ssd’s met PCIe 3.0 of 4.0 niet op volledige snelheid kunnen werken.
Nog een mogelijk probleem: er zijn ssd’s in M.2-formaat die geen PCIe-controller hebben, maar een SATA-controller. Die werken alleen in M.2-slots waarvoor het systeem kan schakelen tussen PCIe en SATA.
SATA EN PCIE
? Ik heb een moederbord met zes SATA-poorten en een M.2-slot. Als ik een ssd in het M.2-slot plaats, kan ik nog maar vier SATA-poorten gebruiken. Hoe komt dat?
! Moderne pc-chipsets kunnen een aantal high-speed lanes flexibel inzetten voor PCI Express, SATA of USB – maar niet tegelijkertijd, het is het een of het ander. Intel noemt dat Flexible I/O. Die optie biedt moederbordfabrikanten aan de ene kant meer vrijheid in de lay-out van hun moederbord en lost tevens het probleem op dat er zowel M.2-sdd’s zijn met PCIeals met SATA-controllers. Al naargelang de bezetting van het M.2-slot schakelt de chipset automatisch om, waardoor minder elektronische componenten nodig zijn.
Het nadeel is echter dat de chipset maar een beperkt aantal high-speed lanes heeft, die door moederbordfabrikanten vaak zowel met SATA-poorten als met een M.2-slot worden verbonden. Die kunnen daarom niet gelijktijdig worden gebruikt. Om dat verwarrende probleem te vermijden, zijn sommige moederborden met slechts vier SATA-poorten uitgerust of hebben ze M.2slots waarin uitsluitend PCIe-(NVMe)-ssd’s kunnen, die dus niet kunnen overschakelen naar SATA.