Wszystko, co chciałeś wiedzieć o PCI Express

Wydawać by się mogło, że poza nowymi procesorami w naszych komputerach nie zachodzą większe zmiany. Jednak jest to błędne wrażenie. Od czasu wynalezienia układu scalonego prędkości przetwarzania danych podwajają się co 18 miesięcy zgodnie z prawem Moora. Od lat trwa swoista symbioza pomiędzy twórcami oprogramowania, a dostawcami sprzętu.

Dziś przyjrzymy się standardowi PCIe, który towarzyszy nam już od wielu lat. Ostatnio jednak poznaliśmy wstępną specyfikację już 7 generacji tego interfejsu. Omówmy zatem czym jest PCI expres, oraz jaki wyglądał rozwój tej niezwykle popularnej technologii.

Trochę historii

Przez lata w naszych komputerach osobistych korzystaliśmy z różnych interfejsów. Najpopularniejsze wydają się standardy ISA, PCI czy przeznaczony wyłącznie dla kart graficznych AGP. Rozwiązania te posiadały jednak sporo ograniczeń. Zaczynając od braku wzajemnej kompatybilności, a kończąc na ograniczonej przepustowości złącza. Dodatkowo większość korzystała ze współdzielonej magistrali, co potrafiło powodować dodatkowe problemy, czy jeszcze bardziej ograniczać wydajność.

Za opracowanie nowego standardu odpowiadał Intel, który to w 2002 roku zaprezentował autorskie rozwiązanie. To kryło się pod nazwą PCI Express bądź skrócie PCIe. Nowy interfejs nie tylko był szybszy od swoich poprzedników. Miało być również bardziej uniwersalny i w stanie całkowicie zastąpić przestarzałe magistrale, takie jak AGP, PCI i PCI-X.

Standard PCIe 1.0

Jak wspomniałem PCI Express został wprowadzony, aby przezwyciężyć ograniczenia oryginalnej magistrali PCI. Ta działała z częstotliwością 33 MHz, komunikacja odbywała się poprzez 32-bitową szynę i szczytowa teoretyczna przepustowość wynosiła zaledwie 132 MB/s.  Najważniejszym punktem, na jaki zdecydowano się w przypadku nowego interfejsu była rezygnacja ze współdzielonej magistrali.

Wszystkie połączenia w przypadku PCIe odbywają w topologi punkt-punkt. To właśnie dzięki temu rozwiązaniu każde urządzenie korzystające z PCI express ma własny bezpośredni dostęp do magistrali. Dane są przesyłane szeregowo w pakietach przez pary sygnałów nadawczych i odbiorczych zwanych liniami. Każda z nich zapewniała przepustowość 250 MB/s i to w każdym kierunku. Największą zaletą jednak PCie była możliwość grupowania linii w pary. Na pewno kojarzycie zapisy x1, x2, x4, x8 czy x16. To właśnie dzięki temu rozwiązaniu już pierwsza generacja interfejsu była w stanie zapewnić przepustowość sięgająca 4 GB/s (dwa razy  więcej niż AGP 8x). Dodatkowo standard PCIe był bardziej uniwersalny i umożliwiał i podłączenie poza kartami graficznymi takich urządzeń jak karty sieciowe, karty dźwiękowe, dyski SSD, moduły WiFi i wiele innych. Jednocześnie dowolne urządzenie PCI Express może działać w dowolnym gnieździe, jeśli ma ono taką samą lub więcej linii. Pozwala to na zainstalowanie karty PCI Express ze slotem x1 w gnieździe x16 na płycie głównej.

Za rozwój i opracowywanie nowych iteracji PCIe odpowiada grupa PCI-SIG (Peripheral Component Interconnect Special Interest Group), zrzeszająca wszystkich większych producentów podzespołów.

Zmiany w kolejnych odsłonach 

Ostatnie lata przyniosły sporo zmian w naszych komputerach. W 2019 roku AMD, jako pierwsze zaprezentowało platformę na rynek konsumenci zapewniającą obsługę standardu 4.0. Nim ten zdążył się zadomowić na stałe, w naszych komputerach Intel w 2021 postawił już na nowszą wersję – 5.0. Jednak te cyfry tak naprawdę nic nie znaczą, o ile nie będzie urządzeń, które będą w stanie wykorzystać większą przepustowość. Choć różnice w osiąganych transferach najnowszych standardów są imponujące, to te towarzyszyły PCIe od początku.

Główną różnicą między wersjami PCIe jest schemat kodowania danych. Te przed przesłaniem są konwertowane na bloki, a każdemu bajtowi danych źródłowych towarzyszą dodatkowe dwa bity. Pozwala to nadajnikowi i odbiornikowi działać w synchronizacji i bez zakłóceń.

Tak więc w wersjach PCIe 1.0 i PCIe 2.0 kodowanie odbywa się zgodnie ze schematem 8b/10b (kod liniowy), aby ograniczyć długość powtarzających się zer lub jedynek  i zapobiec utracie danych. W tym schemacie kodowania każde osiem (niekodowanych) bitów ładunku danych jest zastępowanych przez 10 (zakodowanych) bitów przesyłanych danych, co zwiększa ruch o 20%. Od wersji 3.0 zamiast 8b/10b stosowana jest metoda 128b/130b z szyfrowaniem, która jest bardziej wydajna.

Co przyniesie przyszłość

W opracowaniu obecnie przez grupę PCI-SIG są dwie kolejne wersje PCI express – 6.0 oraz 7.0. Pierwszej finalną specyfikację mamy poznać do marca 2024 roku. Natomiast na PCIe 7.0 będziemy musieli poczekać do 2025.

Oczywiście nowe wersje będą w pełni wstecznie kompatybilne ze starszymi interfejsami (aż do PCI Express 1.0). Jak łatwo można przewidzieć, po raz kolejny doświadczymy dwukrotnego wzrostu przepustowości. Oznacza to, że teoretyczna maksymalna prędkość transmisji PCIe 6.0 wyniesie 128 Gb/s, a w przypadku 7.0 256 Gb/s. Jednak to nie są jedyne zmiany.  Algorytm sprawdzania integralności CRC został uzupełniony o mechanizm wyprzedzającej korekcji błędów ( FEC ). Wykrywa i koryguje błędy wynikające z wprowadzenia nadmiarowych informacji serwisowych. Inżynierowie PCI-SIG zmienili także sposób kodowania danych. Zamiast mechanizmu NRZ (bez powrotu do zera – 1 bit na puls) zaimplementowali schemat transmisji Pulse Amplitude Modulation (PAM4). Jest to wielopoziomowy format modulacji, w którym każdy puls przesyła dwa bity informacji. Z tego rozwiązania korzystają urządzenie sieciowe w standardzie Fast Ethernet czy pamięci GDDR6x stosowane na kartach graficznych NVIDIA.

I choć specyfikacja jak i obiecywane parametry nowych standardów PCI Express są imponujące to musimy zrozumieć, że głównym odbiorcą magistrali PCIe 6.0 czy 7.0 będą twórcy platform AI, systemów uczenia maszynowego czy serwerowych usług w chmurze. To właśnie w tych środowiskach przepływ danych jest stale zwielokrotniany i zapotrzebowanie stale rośnie. Dodatkowo w tym przypadku nikt nie przejmuje się ceną wprowadzanie nowego standardu. Nowe wersje magistrali PCIe pojawią się także w naszych zwykłych komputerach, choć zapewne na ten moment trzeba będzie poczekać jeszcze kilka lat. Pamiętajmy, że nawet obecnie najmocniejsze karty graficzne pokroju RTX 4090 wciąż korzystają z standardu PCIe 4.0.