Autostrada danych

Magistrala - ta nazwa pojawia w specyfikacjach wielu komputerowych komponentów, takich jak procesory, płyty główne, karty graficzne, pamięci flash czy urządzenia sieciowe. Czym jest, do czego służy i jakie jej typy wykorzystujemy współcześnie?


Magistrala - ta nazwa pojawia w specyfikacjach wielu komputerowych komponentów, takich jak procesory, płyty główne, karty graficzne, pamięci flash czy urządzenia sieciowe. Czym jest, do czego służy i jakie jej typy wykorzystujemy współcześnie?

Najprościej rzecz ujmując, ma-gistrala (bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego. Zwykle składa się z kilku linii (nazywanych też szynami) różnego rodzaju w zależności od typu informacji, które przekazuje. Na przykład szyna danych i szyna adresowa mogą być częściami tej samej magistrali, łączącej procesor z pamięcią. Często ten podział jest powiązany z fizycznie występującymi ścieżkami lub z przewodami łączącymi, ale nie musi tak być - jedna linia może wykorzystywać nawet kilkanaście par przewodów, a równie dobrze kilku liniom wystarcza jedna ścieżka. Są też połączenia bezprzewodowe, takie jak Bluetooth, w którym każda linia ma swoją częstotliwość.

Transmisja szeregowa i równoległa

Analizując jakikolwiek schemat funkcjonalny nowoczesnego chipsetu (tu NVIDIA nForce 680i SLI), widzimy wyraźnie hierarchiczną strukturę poszczególnych  magistrali – wszystkie podrzędne podłączone są do nadrzędnej szyny systemowej. Za mostkowanie połączenia odpowiada chipset płyty głównej.

Analizując jakikolwiek schemat funkcjonalny nowoczesnego chipsetu (tu NVIDIA nForce 680i SLI), widzimy wyraźnie hierarchiczną strukturę poszczególnych magistrali – wszystkie podrzędne podłączone są do nadrzędnej szyny systemowej. Za mostkowanie połączenia odpowiada chipset płyty głównej.

Wszystkie informacje przesyłane są albo jednocześnie (transmisja równoległa), albo jedna za drugą (transmisja szeregowa). Wydaje się, że znacznie szybsza powinna być transmisja równoległa, zwłaszcza że wysyła się naraz wiele, nawet do 512 bitów. Liczba jednocześnie transmitowanych bitów nazywana jest bardzo często szerokością magistrali, stąd mamy magistrale o szerokości np. 64 lub 128 bitów. Jednak przyspieszanie taktowa-nia może spowodować wzajemne oddziaływanie na siebie poszczególnych połączeń magistrali równoległej na skutek interferencji związanych z fizyczną propagacją sygnałów w przewodach elektrycznych. Skutkiem są błędy transmisji i dane muszą być powtórnie wy-syłane. Jeżeli błędów jest dużo, to szybkość transmisji dramatycznie spada.

Drugą przyczyną kłopotów z równoległą transmisją danych są opóźnienia spowodowane na przykład różnymi długościami poszczególnych połączeń. To, co nie ma znaczenia przy niskiej częstotliwości taktowania przy wyższej może spowodować wzajemne przesunięcie sygnałów i rozsynchronizowanie się bitów pochodzących z tego samego bajtu. Aby temu zapobiec, stosuje się w kontrolerach magistrali bufory, które zatrzymują przesyłane informacje, przywracając w nich porządek, w jakim zostały wysłane. Jednakże to rozwiązanie znacząco zwiększa koszty produkcji, a jednocześnie zmniejsza wydajność magistrali.

W transmisji szeregowej wyżej opisanych problemów nie ma. Jedna linia danych i jedna linia adresowa nie mają z czym interferować, a bit wysłany później nie może wyprzedzić nadanego wcześniej. Ograniczenie liczby linii w równoległych magistralach szeregowe nadrabia-ją wielokrotnie wyższą częstotli-wością taktowania. W rezultacie nowoczesne rozwiązania szeregowe, takie jak Serial ATA 2 (3000 MHz; 300 MB/s), mogą być znacznie szybsze od swoich równoległych odpowiedników, takich jak EIDE Ultra ATA/133 (33 MHz; 133 MB/s). Niemniej jednak najbardziej wydajne połączenie, między procesorem a RAM-em oparło się tej modzie i da-lej pozostaje równoległe.

Rodzaje magistrali

Karty HTX, korzystające z magistrali HyperTransport, nie są jeszcze standardowym wyposażeniem pecetów. Obecnie ze złącza HTX korzystają zwykle nietypowe akceleratory do bardzo specjalistycznych obliczeń. Na zdjęciu karta akceleratora obliczeń medycznych i ' nansowych RCHTX-V4 ' rmy Celoxica.

Karty HTX, korzystające z magistrali HyperTransport, nie są jeszcze standardowym wyposażeniem pecetów. Obecnie ze złącza HTX korzystają zwykle nietypowe akceleratory do bardzo specjalistycznych obliczeń. Na zdjęciu karta akceleratora obliczeń medycznych i ' nansowych RCHTX-V4 ' rmy Celoxica.

W pecetach wykorzystuje się magistrale różnego rodzaju. Najszybsza w systemie jest magistrala procesora, który za jej pośrednictwem przesyła lub pobiera dane z pamięci operacyjnej RAM. Wszystkie magistrale są ze sobą połączone hierarchicznie, a hierarchia ta wiąże się przede wszystkim z szybkością ich pracy. Wolniejsza zawsze podłączana jest do szybszej tak, aby nie spowalniała jej pracy.

Kolejne w hierarchii są magistrale lokalne, łączące system z kartami rozszerzeń. Do tej grupy zaliczają się m.in. magistrale PCI, AGP i PCI Express. Jeszcze niżej znajdują się magistrale wejścia-wyjścia, nazywane również peryferyjnymi (peripheral bus) lub magistralami I/O. Służą, podobnie jak lokalne, do podłączania urządzeń peryferyjnych, ale wymagających wolniejszej komunikacji, takich jak interfejsy napędów, porty USB, szeregowe, równoległe oraz PS/2, wykorzystywany do podłączania klawiatury i myszy.

Ostatnie w hierarchii są magistrale zewnętrzne (external bus), wyprowadzone poza obudowę i łączące wiele innych, zwykle niezależnych urządzeń. Granica między magistralą wejścia-wyjścia a zewnętrzną nie jest ostra i w zależności od źródła niektóre zaliczane są do jednej bądź drugiej grupy. Przykładem magistrali zewnętrznej jest IEEE 1394, zwana inaczej FireWire, która może dzia-łać bez udziału komputera. Innym przykładem magistrali zewnętrznej jest sieć LAN.

Kilka słów o chipsecie

Z pojęciem magistrali ściśle zwią-zany jest chipset płyty głównej, czyli układ sterujący ruchem między magistralami, a właściwie między kontrolerami odpowiedzial-nymi za obsługę poszczególnych magistrali w pececie. W pierwszych pecetach na chipset składało się kilka (zwykle od sześciu do dziewięciu) układów, z których główny był przełącznikiem, a pozostałe kontrolerami sprawującymi nadzór nad poszczególnymi magistralami. Wraz z powiększaniem integracji układów scalonych do chipsetu włączano coraz więcej: kontrolery pamięci, twardych dysków, magistrale PCI Express, moduły sieciowe, kontrolery USB, kla-wiatury, a nawet zintegrowane układy graficzne i dźwiękowe. W niektórych chipsetach wyróżniamy mostek północny, przeznaczony do obsługi szybszych magistral i południowy do wolniejszych, inne chipsety mają wszystkie funkcje zintegrowane w jednym scalaku.

Staruszek FSB

W nowych pecetach spotkać można dwie magistrale procesora: w maszynach z procesorami Intela szynę FSB (Front Side Bus) i HyperTransport w systemach z układami AMD. FSB jest klasyczną szyną systemową łączącą procesor z pamięcią RAM oraz jednocześnie zapewniającą komunikację między jednostką centralną a mostkiem północnym chipsetu.

Żadna z organizacji odpowiedzialnych za opracowywanie magistrali nie zasypia gruszek w popiele. Na rysunku pokazujemy, jak przebiegała ewolucja tego standardu.

Żadna z organizacji odpowiedzialnych za opracowywanie magistrali nie zasypia gruszek w popiele. Na rysunku pokazujemy, jak przebiegała ewolucja tego standardu.

Protoplasta szyny FSB towarzyszy pecetom od ich narodzin. Procesory z serii Intel 8086 wykorzystywały magistralę systemową składającą się z szyny sterującej, 16-bitowej magistrali danych (wersja 8088 stosowana w komputerach IBM XT miała 8-bitową) i 20-bitowej magistrali adresowej, która pozwalała zaadresować 1 MB pamięci. Szyna systemowa i sam procesor taktowane były z często-tliwością 4,77, 8 lub 10 MHz. Nazwa FSB stała się potrzebna od czasu, kiedy pamięć podręczną przeniesiono do procesora i magistrala prowadząca do zwyczajnego RAM-u pozostała bezimienna. W ciągu tych lat FSB przyspieszał na dwa sposoby, przez powiększanie taktowania i mnoże-nie liczby danych przesyłanych w pojedynczym cyklu. Wprowadzono technologię QPB (Quad Pumped Bus), przesyłania czterech danych w jednym takcie, i powiększono częstotliwość do 133, 166, 200, 266 lub 333 MHz. W dokumentach technicznych CPU lub płyt głównych po-daje się zazwyczaj częstotliwość transferu danych przez tę magistralę, czterokrotnie większą od tempa taktowania (533, 667, 800, 1066 lub 1333 MHz).

Dzisiejsze magistrale FSB są 64-bitowe, podobnie jak procesory. Dostosowano je też do współpra-cy z układami dwu- i czterordzeniowymi, takimi jak np. Intel Core 2 Duo, Core 2 Quad czy serwerowe Xeony z serii E5000. Niemniej jednak historia szyny FSB dobie-ga powoli końca. W planowanych na 2008 rok procesorach o roboczej nazwie Nehalem pojawi się no-wy interfejs komunikacyjny, oparty na połączeniach punkt-punkt, podobnie jak obecnie w magistrali HyperTransport.