Intela (r)ewolucja czerwcowa Autor: Lancer | Data: 14/07/04
|
|
PCI Express
Chipsety rodziny i915/925 jako pierwsze ogólnie dostępne oferują wsparcie dla standardu mającego wyprzeć wiekową już szynę PCI oraz dedykowane kartom graficznym złącze AGP.
Magistrala PCI liczy już sobie 11 lat. Znajduje zastosowanie nie tylko jako biały slot w każdej płycie głównej, ale także jako mostek komunikacyjny łączący wiele kontrolerów na powierzchni samej płyty głównej. Jeszcze do niedawna stosowane było wręcz jako kanał służący komunikacji chipsetów mostka północnego z południowym.
Rosnące możliwości sprzętu wymagają ogromnych przepustowości. Równoległa 32-bitowa szyna PCI taktowana zegarem 33MHz z czasem przestała te potrzeby spełniać. By w jakiś sposób zaspokoić wysokie wymagania, tworzono kolejne mutacje modyfikując oryginalną specyfikację. W swej szczytowej formie rev2.3 szyna ma przepustowość 133MB/s, jednak z uwagi na swój charakter, parametr ten dzieli między wszelkie urządzenia doń podłączone. Żadne z nich nie ma wyłącznego dostępu do całego pasma. Sytuację próbowano ratować wypuszczając choćby wersję 64-bitową PCI, ale znalazła ona zastosowanie niemal wyłącznie w serwerach.
Jednym z głównych motorów postępu pożerających ogromne przepustowości najróżniejszych złącz jest karta graficzna. Potrzeba szybkiego przesyłania dużych ilości danych spowodowała konieczność porzucenia PCI jako rozwiązania obsługującego nowe karty graficzne. Powstało dedykowane rozwiązanie nazwane AGP (Accelerated Graphics Port) w swych dalekich korzeniach sięgające szyny PCI. Kontroler złącza przeniesiono z mostka południowego do północnego. Ruch ten podyktowany był koniecznością bezpośredniej wymiany danych karty graficznej z pamięcią RAM komputera. Znacząco przyspieszało to przepływ danych, a wyjątkową cechą miało być tzw. teksturowanie przez port AGP - czyli możliwość przechowywania dużych tekstur, nie mieszczących się w małej pamięci lokalnej karty bezpośrednio w operacyjnej pamięci RAM komputera.
Szeregowy standard graficzny doczekał się trzech wersji. Specyfikacja AGP1.0 określa taktowanie na 66MHz przy szerokości 64bit dla AGP 1x i 66MHz w trybie DDR dla AGP 2x. Obie dostarczały przepustowości odpowiednio 266 i 512MB/s. Następna specyfikacja AGP2.0 wprowadza tryb pracy QDR (4 przesłania na takt), co przy niezmienionym taktowaniu 66MHz pozwalało uzyskać przepływność 1GB/s, a tryb szybkich wpisów (FastWrites) pozwalał teraz na bezpośrednią komunikację procesora z kartą graficzną. Najnowszą i zapewne ostatnią jest specyfikacją AGP3.0, tym razem podnosząca przepustowość do 2GB/s dzięki możliwości dokonania ośmiu przesłań na takt.
AGP do dziś współistnieje z PCI, ale ta ostatnia przestała już definitywnie spełniać stawiane przed nią wymagania. Podpięte pod nią dziesiątki urządzeń w związku z jej ograniczeniami powodują powstanie zatorów i konieczność kolejkowania dostępu. Oczywiście takie przestoje nie mogą nie wpływać na wydajność. Wystarczy spojrzeć na płytę główną. Podpięte pod nią są nie tylko same porty PCI, ale i zintegrowane kontrolery ATA, FireWire, a często również LAN. Z magistrali PCI nie korzysta dziś już co prawda karta graficzna, a i komunikacja wewnątrz chipsetów odbywa się przy pomocy dedykowanych złącz. To nie rozwiązało sprawy.
By znaleźć sposobność na ta nieprzyjemną sytuację powstały dwa konsorcja. Jedno z nich zaprojektowało złącze PCI-X, które występując w trzech wersjach dostarcza w szczytowym modelu przepustowość 4GB/s przy parametrach: 133MHz (QDR), 64bit. Te jednak nie trafiło do komputerów biurkowych i spotkał je los 64bitowego PCI - znaleźć można niemal jedynie w rozwiązaniach serwerowych.
Drugie konsorcjum rozpoczęło pracę nad specyfikacją szyny 3GIO (3rd Generation I/O), które zaowocowało powstaniem czegoś, co dziś znamy jako PCI Express (w skrócie PCIe).
Złącze PCI Express. 1x. Zwraca uwagę mała ilość pinów kontaktowych. (kliknij, aby powiększyć)
Główną różnicą dającą proste podstawy do dalszych przyspieszeń nowej magistrali jest zmiana sposobu przesyłania danych z równoległego na szeregowe - pakietowe. W swej podstawowej wersji szyna oznaczona jako PCIe 1x używa tylko jednej pary połączeń sygnałowych działając w trybie FullDuplex osiągając przepustowość jednostronną 266MB/s (512MB/s dwustronnie) przy szerokości 8bitów. By jednak osiągnąć takie parametry, szyna szeregowa musi być taktowana bardzo wysokim zegarem. Ta wartość dla PCI Express wynosi aż 2,5GHz! Jednak prostota połączeń jest jedną z podstawowych zalet tego rozwiązania. Dodając kolejne linie sygnałowe można stosunkowo łatwo podnieść to pasmo, bowiem w szczytowej wersji PCIe 32x można osiągnąć przepływność jednostronną na poziomie 8GB/s dzięki obecności 32 linii.
Kolejną ważną cechą jest metoda komunikacji z kontrolerem. Każda szyna PCIe działa niezależnie, i nie jest dzielona między inne urządzenia, więc nie zachodzi przypadek znany z tradycyjnego PCI - możliwość występowania konfliktów i konieczność dzielenia przepustowości. Szeregowa szyna PCIe działa bowiem na zasadzie połączenia "punkt do punktu". Prosta konstrukcja szeregowa jest łatwa do implementacji i znacząco ułatwia projektowanie płyt głównych, które mogą być pozbawione dużej liczby połączeń sygnałowych. Do tego dochodzi jeszcze możliwość ujednolicenia magistral na płycie. Przestanie być potrzebny podział na PCI, AGP czy też dedykowane rozwiązania w stylu chociaż intelowskiego CSA. Duża przepustowość i łatwa skalowalność znacząco ułatwiają sprawę.
Na początek na rynku zadebiutowały dwa standardy- PCI Express 1x i PCI Express 16x. Pierwsza wersja ma zastąpić stare PCI i obsługiwać podstawowy sprzęt, taki jak kontrolery napędów, kontrolery sieciowe. Dla tych urządzeń na początek 266MB/s w jedną stronę bez konieczności dzielenia złącza są wystarczające. Co więcej urządzenia mogą teraz pobierać z płyty 25W mocy, a nie 10W jak było wcześniej. Dużo bardziej wymagające rozwiązania graficzne otrzymają PCI Express 16x, które mają zastąpić port AGP. Nazwa wskazuje na obecność 16 par sygnałowych, co skutkuje przepustowością na poziomie 8GB/s (4GB/s jednostronnie z pracą w trybie FullDuplex, przy sumarycznych 2GB/s dla AGP8x). Złącze PCIe 16x jako rozwiązanie graficzne ma też inne zalety - z 45 do 75W podniesiono dopuszczalną ilość mocy jaką karta może pobierać bezpośrednio przez port, a także dopuszczalny ciężar samego adaptera może sięgnąć 450 wobec 260g dla AGP.
Złącza PCI Express na płycie MSI. Dwa wąskie to PCIe 1x, szerokie - PCIe 16x. Na dole stare PCI. (kliknij, aby powiększyć)
Złącze PCIe 16x na płycie Intela. Charakteryzuje się ono mniejszą "głębokością" slotu w stosunku do AGP. Port jest po prostu niższy. (kliknij, aby powiększyć)
Co ciekawe, ale z drugiej strony oczywiste złącze PCIe 16x możemy bez problemu włożyć kartę PCIe 1x. Istnieje też inna zaleta. Do tej pory nikt nie stworzył rozwiązania opierającego się o więcej niż 1 port AGP. Z teoretycznego punktu widzenia nie stanowi przeszkody wyprodukowanie płyty z dwoma portami AGP, a taką możliwość przewidziała już specyfikacja AGP3.0. Jednak jest to zadanie bardzo trudne i wymagające dużych kosztów z uwagi na charakter tego równoległego portu (ośmiowarstwowe PCB). Konstrukcja składająca się z dwóch szybkich magistral PCIe jest znacznie prostsza w realizacji. Zalety takiego rozwiązania docenią projektanci stacji roboczych. Możliwość użycia dwóch wydajnych kart graficznych wspomagających nawzajem pracę w trzecim wymiarze jest nie do przecenienia. W takim przypadku najpowszechniej stosowanym rozwiązaniem będzie użycie dwóch slotów PCI Express 16x, jednak po obsadzeniu obu gniazd faktyczna wydajność na każdy port obniży się do równoważnika PCIe 8x wskutek konieczności użycia specjalnych kontrolerów krzyżowych.
Złącze PCI Express 16x po stronie karty graficznej. (kliknij, aby powiększyć)
Do naszego laboratorium dotarły dwa graficzne rozwiązania PCI Express prezentujące różne podejście do implementacji tej szyny.
ATI w swej serii karty PCI Express zintegrowało kontroler tejże szyny z jądrem. Zaprezentowana seria kart Radeon X600 posiada interfejs wewnątrz struktury krzemowej. Nie jest do końca jasne, czy jest to prosty tłumacz PCIe-AGP, czy też natywne rozwiązanie. Na pierwszy przypadek wskazuje sama struktura jądra. Chip o nazwie kodowej RV380 jest bowiem naprawdę niemal tym samym co RV360, tyle tylko że z dodaną szyną PCIe. W grę może więc wchodzić zintegrowanie mostka z resztą niezmienionego jądra. Z kolei sama ATI napomina o natywnej obsłudze bez jakichkolwiek uproszczeń.
Karta która do nas dotarła to model MSI Radeon X600XT będący w rzeczywistości doskonale znanym Radeonem 9600XT. Jedyne różnice jakie istnieją między tymi kartami to podniesiony zegar pamięci do 365MHz i obsługa nowego złącza. W samym jądrze zmiany nie zaszły, a nawet jego taktowanie nie uległo zmianom.
Karta MSI Radeon X600XT ze złączem PCI Express 16x. (kliknij, aby powiększyć)
Inne podejście do obsługi szyny prezentuje NVIDIA. Żadna z dotychczasowej linii kart nie obsługuje natywnie nowego protokołu. Wszystkie chipy wspierają tylko standard AGP. By umożliwić pracę ze złączem PCIe inżynierowie zaproponowali rozwiązanie HSI (Hi-Speed Interconnect). Jest to chip tłumaczący sygnały dwukierunkowo. Potrafi bowiem zarówno przetłumaczyć polecenia PCIe=>AGP jak i AGP=>PCIe. Taka konstrukcja wydaje się mieć główną wadę - czas. Potrzeba bowiem nieco pracy włożyć, by przetłumaczyć dwa zupełnie inne sygnały tak by były one zrozumiane. HSI może więc wpływać negatywnie na wydajność.
Dodatkowo po drodze ginie główna zaleta szyny PCI Espress, czyli wysoka przepustowość. Co bowiem z tego, że PCIe oferuje 8GB/s, skoro wewnętrzny interfejs graficzny chipu to nadal AGP8x ze swymi 2GB/s? Ano właśnie tu - dochodzimy do sedna HSI. Inżynierowie NV odpowiadają na pierwsze pytanie stwierdzeniem, że opóźnienia generowane przez kontroler są na poziomie identycznym z tym jakie istnieje przy zwykłej komunikacji karta AGP - mostek północny. Praca HSI nie powinna więc mieć wpływu na szybkość przesyłania danych do samego układu graficznego i być niewidoczna dla systemu. Z kolei odpowiedź na drugie "anty HSI" jest jeszcze donioślejsza. Dzięki skróceniu linii sygnałowych AGP (faktycznie jest to ledwie kilkanaście milimetrów między HSI a GPU) można przejść na inny poziom tolerancji na błędy i gwałtownie podnieść przepustowość szyny AGP nawet do 4GB/s (czyli AGP 16x)! Wobec tych słów faktycznie więc szybkość wymiany danych mimo użycia translatora tylko w niewielkim wypadku spada, choć ciągle jest to tylko półśrodek w drodze do natywnej obsługi PCIe.
MSI GeForce PCX 5750. Poniżej coolera chipsetu graficznego widać radiator pod którym się skrywa translator HSI. (kliknij, aby powiększyć)
Takie właśnie rozwiązanie zastosowano w serii kart GeForce PCX, a także w dopiero nadchodzącym NV45 (tu mostek HSI zintegrowano z obudową PGA). Testom poddaliśmy kartę MSI GeForce PCX5750 będącą w rzeczywistości GeForceFX 5700 z dodanym HSI. Nic więcej nie zmieniło się. Pozostawiono nawet stare zegary taktujące.
Karta w całej okazałości. (kliknij, aby powiększyć)
Popatrzmy teraz jak wygląda sprawa wydajności. Czy PCI Express 16x daje przyrost wydajności względem AGP8x?
|