2. Typy magistral

2.6. PCI Express

Projekt rozwijany był początkowo pod nazwą 3GIO (ang. Third Generation I/O Architecture) przez grupę firm: Compaq, Dell, HP, IBM, Intel, Microsoft. Wstępna wersja specyfikacji została udostępniona w 2002 roku. Nazwa projektu, w trakcie realizacji procedury standaryzacyjnej, została zmieniona na PCI Express. System ten stanowi szynę lokalną typu szeregowego łączącą dwa punkty (ang. Point-to-Point). Szyna ta zastąpiła większość połączeń wewnętrznych architektury PC.
PCI Express zawiera sporo elementów architektury sieciowej. Struktura magistrali opiera się na szkielecie tworzonym przez pięć niezależnych, abstrakcyjnych warstw.
•    W warstwie fizycznej odbywa się transmisja sygnałów. Najmniejszą jednostką informacji jest pakiet. Podstawowy link magistrali PCI Express składa się z dwóch niskonapięciowych, różnicowych par sygnałów LVD: pary nadawczej i pary odbiorczej. Sygnał zegarowy jest osadzony w sygnale danych. Tak jak w wielu innych magistralach szeregowych stosowane jest wstępne przekodowywanie z ośmiu na dziesięć bitów (8b/10b), które poprawia parametry elektromagnetyczne i eliminuje składową stałą. Początkowa przepustowość to 2.5Gb/s/kierunek i przewiduje się, że wzrośnie wraz z rozwojem technologii do 10Gb/s/kierunek (maksimum dla sygnałów w przewodzie miedzianym).
•    Warstwa łącza ma za zadanie zabezpieczyć spójność transmisji. W celu zapewnienia integralności danych do transmitowanych pakietów dodawane są numery sekwencyjne oraz kody CRC.
•    Generowane przez oprogramowanie żądania zapisu i odczytu przekazywane są do warstwy transakcji. Przyjęte zgłoszenie przetwarzane jest na serię pakietów, których przesłanie powierza się warstwie łącza.
•    Dwie ostatnie warstwy programowe (tj. PCI-Drivers/Software i PCI-PnP/OS) zapewniają kompatybilność z magistralą PCI. 
Interesujący jest system przerwań, który musiał być rozwiązany inaczej niż w magistrali PCI. PCI Express jest szyną szeregową i nie ma dodatkowych linii sygnalizacyjnych. Do sygnalizacji przerwań wykorzystano system MSI (ang. Message Signaled Interrupts). System ten został już wprowadzony do specyfikacji PCI w wersji 2.2 jako funkcja dodatkowa. Żądania obsługi są przekazywane po prostu magistralą w formie wiadomości zapisywanej do wydzielonego obszaru pamięci.
Topologia PCI Express to Host Bridge i kilka punktów końcowych (urządzeń I/O) (Rys. 2). Switch może zapewniać komunikację punkt z punktem pomiędzy różnymi urządzeniami końcowymi. Przekazywanie danych, jeśli nie dotyczy transferów wymagających spójności pamięci, nie musi być kontrolowane przez Host Bridge. Switch jest tu pokazany jako odrębny element, ale często jest scalony razem z układem Host Bridge.

 
Rys. 2. Topologia magistrali PCI Express [źródło: https://en.wikipedia.org/wiki/PCI_Express]

  Pasmo przepustowe magistrali PCI Express może być łatwo liniowo skalowalne przez dodanie dodatkowych par sygnałów (Rys. 3). Warstwa fizyczna wspiera szerokości linii x1, x2, x4, x8, x16, x32, strumień bajtów jest wtedy rozdzielany na poszczególne linie.


 Rys. 3. Skalowanie pasma po magistrali PCI Express

Przepustowość magistrali PCI Express dla poszczególnych liczb par sygnałów jest podana w tabeli 1.

Tabela 1. Przepustowość magistrali PCI Express

magistrala Przepustowość szczytowa w jednym kierunku Przepustowość szczytowa w obu kierunkach (full duplex)
PCI-E x1 250 MB/s 500 MB/s
PCI-E x2  500 MB/s  1GB/s
PCI-E x4 1GB/s  2 GB/s
PCI-E x6 2 GB/s 4 GB/s
PCI-E x16 4 GB/s 8 GB/s
PCI-E x32 8 GB/s 16 GB/s