PCI Express — narodziny nowego standardu

Liczba odsłon: 654

Gdy w 1997 roku firma Intel zaprezentowała nowy standard złącza służącego wyłącznie do obsługi kart graficznych, zostało ono przyjęte nieco ozięble. Dopiero co udało się tak naprawdę wypromować magistralę PCI (ang. Peripheral Component Interconnect), zlikwidować różnorodność magistral lokalnych i zwalczyć konkurencję VESA LocalBus, a tu Intel wprowadzał zupełnie nową platformę sprzętową składającą się z nowego zestawu układów sterujących pracą płyty głównej (Intel i430VX), nowej magistrali graficznej (AGP) oraz nowego typu pamięci (SDRAM) montowanego w niezbyt popularnych gniazdach DIMM.

Początki nie były łatwe. Jako że magistrala AGP (ang. Accelerated Graphics Port) była prostym rozwinięciem standardu PCI 2.1 uproszczonym w sposób wykluczający podłączenie więcej niż jednego urządzenia, pierwsze karty graficzne AGP nie różniły się praktycznie od ich odpowiedników PCI tak funkcjonalnością, jak i wydajnością. Również przewidywany spadek cen kart spowodowany możliwością rezygnacji z kosztownych układów pamięci dużej pojemności (przechowujących bufor ramki oraz dane tekstur) na rzecz współpracy z główną pamięcią operacyjną komputera (właśnie ta funkcja odróżniała AGP od PCI) nie nastąpił — magistrala AGP była w pierwszych wcieleniach zbyt wolna, by takie ograniczanie kosztów nie odbiło się tragicznie na szybkości generowania złożonych scen trójwymiarowych.

Jednak, jak wiele innych technologii, AGP z czasem ewoluowało. Po niezbyt udanym AGP 1.0 pojawiła się specyfikacja w wersji 2.0, dająca możliwość transmisji z szybkością do ośmiu razy większą, niż w przypadku zwykłego PCI (w przypadku AGP 1.0 transmisja przebiegała od dwóch – tryb ×1 – do czterech – tryb ×2 – razy szybciej, niż w przypadku PCI). Niedawno wprowadzona ostatnia wersja, 3.0, uprościła nieco protokół transmisyjny i wprowadziła jeszcze szybszy tryb ×8 o teoretycznej przepustowości maksymalnej rzędu 2 GiB/s (PCI jedynie w serwerach przekracza próg 132 MiB/s). Choć rezygnacja z lokalnej pamięci karty graficznej na rzecz wspólnej pamięci operacyjnej nigdy w pełni nie nastąpiła (jedynie najtańsze, najmniej wydajne modele kart sprzedawane są z pamięcią o ograniczonej pojemności), to olbrzymia szybkość najwyższych trybów pracy AGP umożliwiła nowoczesnym systemom operacyjnym sprawne żonglowanie obrazami okien i elementów graficznych między pamięcią główną i graficzną, traktując okna jako tekstury nakładane na prostokątne obszary i łączone sprzętowo w jeden obraz przez procesor graficzny, zwalniając jednostkę centralną z przykrego obowiązku żmudnego obliczania wartości poszczególnych pikseli obrazu. I choć wyścig producentów kart graficznych nie traci na szybkości, magistrala AGP wciąż jest zbyt wydajna, by jej przepustowości mogło zabraknąć dla kolejnej generacji układów graficznych.

Tymczasem firma Intel ponownie zaskoczyła świat, rezygnując w najnowszej generacji swoich zestawów układów sterujących z obsługi standardu AGP (przy okazji zmieniając też rodzaj obsługiwanych pamięci oraz złącz dysków twardych; historia lubi się powtarzać). Następcą wysłużonego, niedługo obchodzącego swoje dziesiąte urodziny gniazda jest standard PCI Express (w skrócie: PCIe).

Podstawową zaletą PCI Express jest szybkość. Dzięki rezygnacji z klasycznej równoległej magistrali danych na rzecz transmisji szeregowej możliwe stało się znaczne zwiększenie częstotliwości zegara taktującego. Obecnie magistrala PCIe taktowana jest zegarem 2.5 GHz, w przyszłości jednak być może wartość ta zostanie jeszcze zwiększona. Choć ze względu na kodowanie 8/10 zwiększające pewność przesyłu danych realna przepustowość użyteczna warstwy fizycznej wynosi nie 2.5 Gb/s, a 2.0 Gb/s (238 MiB/s), i tak jest to dwukrotnie więcej, niż w przypadku klasycznego PCI.

Ponadto, szeregowe ścieżki PCIe można grupować w wiązki po dwie, cztery, osiem lub szesnaście sztuk, zwielokratniając odpowiednio przepustowość dostępną w jednym gnieździe dla jednej karty rozszerzającej. Właśnie „najszersza”, szesnastobitowa wersja złącza oferująca teoretyczną maksymalną przepustowość rzędu 4 GiB/s (dwukrotnie więcej, niż AGP 3.0 w trybie ×8) przeznaczona jest do obsługi kart graficznych, spośród wszystkich urządzeń wymagających najszerszego pasma transmisyjnego. Warto też podkreślić, że o ile w przypadku PCI przepustowość magistrali jest współdzielona między wszystkie urządzenia (wprowadzenie AGP pozwoliło uniknąć tego problemu, jako że karta graficzna otrzymała swoją własną magistralę), to w PCIe każde urządzenie dysponuje własną, niezależną, szeregową magistralą danych, a jego wydajność nie zależy w tak dużym stopniu od tego, ile innych kart zamontowanych jest w systemie i jak intensywnie są one wykorzystywane.

Rodzaje gniazd PCIe
Cztery odmiany gniazd PCI Express, przystosowane do obsługi jednej (×1), czterech (×4), ośmiu (×8) i szesnastu (×16) szeregowych ścieżek danych

Pisałem już jednak wcześniej, że olbrzymia przepustowość nie gra tak naprawdę wielkiej roli i nawet najnowsze karty graficzne doskonale radzą sobie dysponując pasmem o szerokości tylko 1 GiB/s, oferowanym przez tryb ×4 magistrali AGP. Praktyka to potwierdza: odmiana tego samego modelu układu graficznego przystosowana do łącza PCIe jest tylko nieznacznie szybsza od wersji AGP. Skoro zatem PCIe w rzeczywistych zastosowaniach nie jest wyraźnie szybsze od swego poprzednika, jakie inne zalety przemawiają na jego korzyść?

Najważniejszą jest unifikacja. Tak, jak kilkanaście lat temu magistrala PCI zastąpiła wreszcie na rynku mieszankę ISA, EISA, MCA i różnych wersji magistral lokalnych, tak dzisiaj PCIe kończy z podziałem na PCI, PCI-X i AGP w różnych wersjach i wprowadza jednorodny sposób podłączania kart rozszerzających do komputera. Jednorodność jest tak dalece posunięta, że w gniazdo PCIe ×16 przeznaczone dla karty graficznej może zostać włożona karta interfejsu dyskowego z funkcją macierzowania, otrzymując do swojej dyspozycji pasmo o szerokości 4 GiB/s. Do „szerokich” gniazd można też wkładać (mimo krótszego łącza krawędziowego) karty o mniejszych wymaganiach — na przykład do gniazda ×4 można włożyć kartę pracującą w trybie ×1. Choć teoretycznie możliwa jest również praca karty o większych wymaganiach w „krótszym” gnieździe, ze względów mechanicznych nie zawsze jest to do zrealizowania (karta nie mieści się w gnieździe); jeśli jednak do gniazda o wymiarach gniazda ×16 doprowadzonych jest mniej ścieżek danych (na przykład 8), karta ×16 będzie pracowała najzupełniej poprawnie (choć teoretycznie nieco wolniej).

Drugą zaletą jest możliwość zrównoleglania pracy. Weterani grafiki pseudotrójwymiarowej pamiętają zapewne karty akceleratora 3Dfx Voodoo II, które można było łączyć w pary uzyskując prawie dwukrotny wzrost wydajności w każdej grze. Magistrala AGP może obsługiwać tylko jedno urządzenie i choć teoretycznie możliwe było zbudowanie zestawu układów scalonych obsługującego dwie niezależne magistrale, rozwiązanie takie nie przyjęło się. Tymczasem w świecie PCIe każde gniazdo jest równorzędne pozostałym i dysponuje zawsze własnym, nie współdzielonym z innymi kartami pasmem, nie jest zatem problemem zamontowanie na płycie dwóch gniazd PCIe ×16 i równoległe korzystanie z dwóch kart graficznych, wspomagających się nawzajem w zadaniu przetwarzania opisu sceny 3D. Takie rozwiązania – nVidia SLI, ATI CrossFire – już stają się popularne, choć wciąż w większości przypadków obsługa dwóch gniazd pociąga za sobą rozdzielenie 16 ścieżek danych PCIe pomiędzy oba gniazda, przez co efektywnie stają się one gniazdami ×8. Na szczęście osiągana w ten sposób przepustowość równa około 2 GiB/s w każdą stronę (odpowiadająca mniej więcej AGP 3.0 w trybie ×8), jak już wspominałem, jest aż nadto wystarczająca dla obecnej generacji układów graficznych.

PCI Express niesie ze sobą również zalety może nieco mniej widoczne, jednak nie nieistotne. Przede wszystkim gniazda PCIe wyposażone są w znacznie większą liczbę wyprowadzeń masy i zasilających, a standard przewiduje wyższe poziomy mocy konsumowanej przez poszczególne urządzenia, dzięki czemu w przyszłości powinniśmy zobaczyć mniej kart graficznych wymagających dodatkowego, bezpośredniego zasilania. Mniejsze jest też niebezpieczeństwo pojawienia się znów „dziwolągów” w postaci AGP Pro, które nigdy nie miały szansy na szerokie przyjęcie, wprowadzając tylko zamieszanie i źródło potencjalnego braku zgodności urządzeń.

PCIe obsługuje również standardowo mechanizm hot-plug umożliwiający usuwanie i dodawanie kart rozszerzających w czasie pracy komputera. I choć pewnie minie trochę czasu zanim funkcja ta będzie powszechnie obsługiwana przez płyty główne i systemy operacyjne, to miło jest widzieć kolejny krok likwidujący różnorodność rozwiązań hot-plug stosowanych w stosunku do magistrali PCI przez producentów serwerów.

Szeregowy charakter łącz PCIe oznacza też, że gniazda połączeniowe będą mniejsze i mniej podatne na uszkodzenia, a urządzenia nie będą pracowały w trybach o najwyższej wydajności tak kapryśnie, jak w przypadku AGP.

Karta rozszerzająca PCIe
Karta rozszerzająca PCI Express ×1: karta interfejsu Serial ATA; niewielkie rozmiary gniazda i złącza krawędziowego upraszczają montaż i ograniczają koszty produkcji

Nawet gdyby PCI Express dysponowało bardziej niesamowitymi możliwościami, niż wymienione powyżej, lecz wymagało od producentów poważnych inwestycji w badanie i implementowanie nowego standardu i protokołu transmisji, byłoby skazane na powolne zdobywanie rynku aż do momentu, w którym ceny płyt głównych i układów graficznych spadłyby do akceptowalnego poziomu. Firma Intel nie popełniła jednak tak poważnego błędu. Zamiast tworzyć całkiem nowy standard przesyłu danych, zmodyfikowano tylko najniższą, fizyczną warstwę protokołu ISO/OSI, zachowując wyższe warstwy bez większych zmian. Oznacza to, że karta PCIe komunikuje się z mostkiem północnym płyty głównej w taki sam sposób, w jaki robią to karty PCI — jedyna różnica polega na tym, że na obu końcach połączenia muszą znajdować się moduły tłumaczące równoległe paczki danych na ich szeregowy strumień o odpowiedniej szerokości (i w drugą stronę). Zgodność została posunięta tak dalece, że możliwe stało się nawet opracowanie osobnego układu „przerabiającego” procesor graficzny zaprojektowany z myślą o magistrali AGP na wersję PCIe i vice versa. Wbrew przewidywaniom taka translacja szeregowo-równoległa nie wprowadza nawet zauważalnego pogorszenia wydajności. Oczywiście, wraz z zanikaniem AGP należy spodziewać się rezygnacji z takich rozwiązań tymczasowych i pojawiania się układów od razu przystosowanych do szeregowej transmisji danych.

Co być może ważniejsze, PCI Express jest również „przezroczyste” dla oprogramowania. Dotychczasowe systemy operacyjne rozpoznają grupę gniazd PCIe jako kolejną magistralę PCI i mogą obsługiwać ją od razu, bez konieczności instalowania dodatkowych sterowników; jest to fascynujące, gdyż nawet AGP wymagało specyficznej obsługi ze strony systemu operacyjnego! Oczywiście, aby wykorzystać dodatkowe funkcje PCI Express (na przykład mechanizm hot-plug) wymagane już jest od systemu odróżnianie nowej magistrali od zwykłego PCI.

Podstawową wadą nowego rozwiązania dla przeciętnego użytkownika jest nagłość, z jaką je wprowadzono. W ciągu kilku miesięcy z rynku zniknęły praktycznie wszystkie płyty główne wyposażone w gniazda AGP, a wybór kart graficznych starego standardu znacznie się skurczył. Choć producenci kart graficznych szybko dostrzegli, że istniejąca baza sprzętu zgodnego z AGP jest zbyt szeroka, by wymuszać migrację do nowego standardu (w efekcie pojawiły się między innymi opisywane wcześniej układy mostkujące PCI Express i AGP, umożliwiające w prosty i tani sposób oferowanie kart graficznych w wersjach dla obu magistral), to osoby wymieniające płytę główną są praktycznie zmuszone do zmiany karty graficznej, gdyż – poza wyjątkami, niezgodnymi zresztą często w pełni z AGP – nie istnieją płyty główne wyposażone zarówno w gniazdo AGP, jak i PCIe ×16.

Trzeba jednak podkreślić, że wada ta traci stopniowo na znaczeniu. Obfitość wciąż pojawiających się nowych technologii powoduje, że praktycznie każda aktualizacja komputera pociąga za sobą konieczność wymiany większości jego elementów składowych. Oczywiście, karta graficzna jest często jednym z najdroższych urządzeń i użytkownikowi zadowolonemu z jej wydajności może zależeć, by nie musiała być wymieniana; można jednak próbować tak zsynchronizować zakupy, aby za jednym zamachem kupić nową płytę główną, nowy procesor i nową kartę graficzną. Poza tym, zabawa w gry komputerowe nigdy nie była tania i trzeba się liczyć ze słonymi wydatkami, jeżeli pragnie się pokonywać kolejnych przeciwników wyłaniających się z realistycznej i doskonale płynnie animowanej scenerii.

Przed PCI Express nie ma odwrotu. Rynek z otwartymi ramionami przyjmuje standard unifikujący rozwiązania domowe i serwerowe, służący grafice i połączeniom sieciowym, łączący opcjonalne karty rozszerzeń oraz urządzenia zintegrowane na płycie głównej. Użytkownicy – gdy miną już pierwsze zawirowania cenowe – również powinni radośnie przyjąć niższe ceny i większy wybór spowodowane możliwością rezygnacji z różnych niezgodnych ze sobą standardów połączeń urządzeń zintegrowanych – obecnie wymuszonych koniecznością ominięcia wąskiego gardła przepustowości magistarali PCI – na rzecz uniwersalnego połączenia PCIe, pasującego do układów sterujących Intela, VIA, nVidii i innych firm. A jako że rynek IT wychodzi wyraźnie z „ery częstotliwości zegara” i wkracza powoli w „erę przepustowości magistral”, to zwiększona przepustowość PCI Express dostępna dla kart sieciowych, mostków Serial ATA czy tunerów telewizyjnych na pewno przełoży się na wzrost wydajności naszych komputerów i szybsze wprowadzanie nowych, multimedialnych zastosowań komputerów — jeśli nie dziś, to w ciągu najbliższych miesięcy.


Zawsze, jakaś nowość się przyda, ale czy na pewno?
Czy przypadkiem zdjęcie opatrzone podpisem Karta rozszerzająca PCI Express ×1: kontroler magistrali USB 2.0; nie jest w rzeczywistości kontrolerem SerialATA? Wskazywałby na to typ dwóch złącz u góry karty.
Zgadza się — nie wiem jak zrobiłem ten błąd. Tekst jest już poprawiony.
Nie bylbym taki wesoly w tego powodu, wystarczylo podkrecic 2 lub 4 lub 8 x zegar na pci, zgorib agp 4.0 16x potem agp 5.0 32x i wszystko swietnie by chodzilo. Niestety chodzi o pieniadze. i dojenie biednych konsumentow. Podobnie zmiana pata na ata nie dala zupelnie nic. PRzeciez sie dalo dac 2x wiekszy zegar.
Nie wystarczyło. Nie dałoby się podnieść zegarów tak wysoko. Poza tym, zamiast rozwijać kilka starych standardów, warto czasem zamienić je jednym lepszym.