HyperTransport – szczegóły


8. Polecenia i dane

Hyper-Transport jest magistralą zorientowaną na polecenia, która przesyła je wraz z danymi w pakietach stanowiących wielokrotność czterech bajtów. Jeżeli na przykład procesor chce odczytać dane z kontrolera twardego dysku, wysyła do niego zapytanie z żądaniem odczytu w postaci 8-bajtowego polecenia. Zawiera ono między innymi adres i wielkość żądanego bloku danych.

Podczas gdy procesor czeka na odpowiedź, może wysyłać kolejne polecenia. Do rozróżnienia nadchodzących później odpowiedzi służy pole SrcTag. Jego wielkość (pięć bitów) określa, że liczba oczekujących odpowiedzi na urządzenie (UnitlD) może wynosić najwyżej 32. Pola PassPW (Pass Posted Write) i SeqlD decydują, czy odpowiedzi muszą nadchodzić w określonej kolejności, czy też mogą się nawzajem wyprzedzać. Jednocześnie regulują zachowanie wobec oczekiwanych poleceń zapisu.

Jeżeli odbiornik, w tym wypadku kontroler twardego dysku, ma gotowe dane, wysyła 4-bajtowy pakiet odpowiedzi z informacją o odczycie. Bezpośrednio za nią dołączone są dane. Do rozróżnienia poleceń od danych służy własna linia kontrolna, która w wypadku poleceń ma wartość logiczną 1.

9. Odwzorowanie pamięci

HyperTransport – szczegóły

Proste - jeden procesor i jeden hub I/0 tworzą w najprostszym wypadku kompletny komputer. Oczywiście celowe jest dodanie tunelu AGP.

Hyper-Transport reguluje komunikację z urządzeniami za pomocą specjalnie przydzielonych obszarów adresowych. Dzięki temu odwzorowaniu pamięci (memory mapping) odpadają zwyczajowe, wcześniejsze linie I kontrolne l/O, za pomocą których zapisywane są na przykład dane konfiguracyjne w rejestrach podzespołów interfejsów. Nawet przerwania urządzenie wywołuje przez żądanie zapisu pod wcześniej określonym adresem.

Najmniejsza wielkość bloku danych w technologii Hyper-Transport wynosi cztery bajty. Jednak w wypadku odwołań do rejestru kontrolnego czy bufora ramek chodzi często o zmianę tylko pojedynczego bajtu. Dlatego Hyper-Transport wyposażono w możliwość zapisu i odczytu pojedynczych bajtów. Co prawda, magistrala przesyła i w tym przypadku cztery bajty, jednak w poleceniu znajduje się informacja w postaci maski, które bajty danych mają być brane pod uwagę, a które są tylko wypełniaczami.

10. Strumienie i wirtualne kanały

HyperTransport – szczegóły

Ośmioprocesorowy serwer - HyperTransport może łączyć do ośmiu procesorów Opteron. Do wolnych końców magistrali można dołączyć maksymalnie cztery łańcuchy urządzeń I/0.

Pakiety, które przemieszczają się w kierunku mostka głównego (upstream), opatrzone są jednoznacznym identyfikatorem źródła - UnitlD. Wszystkie pakiety wysyłane z mostka głównego (downstream) opatrzone są identyfikatorem UnitlD 0. Pakiety z jednego źródła określane są jako strumień. W ramach strumienia znaczniki (flags) i identyfikatory sekwencji (Seq-ID) zawarte w poleceniach określają, czy i jak pakiety są wzajemnie zależne. Ponadto polecenia są podzielone w grupy logiczne, takie jak żądanie i odpowiedź. W tych tak zwanych kanatach wirtualnych panują ściśle określone reguły ruchu, np. który pakiet może wyprzedzić inny oraz kto ma pierwszeństwo na mostku. Reguły te nie dopuszczają do powstania zatorów na magistrali.

W ramach jednej topologii fabric różne strumienie mogą być różnie traktowane, niezależnie od ich wzajemnych powiązań. Na przykład pakiety różnych strumieni w poszczególnych urządzeniach jednego łańcucha mogą się dowolnie wyprzedzać. Wyłącznie mostek główny rozpozna zależności między strumieniami, przeniesie dane z jednego strumienia do innego i ogólnie zadba o porządek.

Hyper-Transport w pigułce, czyli odpowiedzi na najczęściej zadawane pytania.

1. Co to jest Hyper-Transport?

Hyper-Transport jest to interfejs typu punkt - punkt, mogący przesyłać dane pomiędzy podzespołami różnego typu. Charakteryzuje się wysoką wydajnością (maksymalny transfer dochodzi do 12,8 GB/s) i niskimi opóźnieniami. Jego zadaniem jest zastąpienie różnego rodzaju niekompatybilnych magistral i mostków jednym, uniwersalnym rozwiązaniem.

2. W jakich zastosowaniach będzie się sprawdzał Hyper-Transport?

Hyper-Transport może być stosowany w praktycznie dowolnych komputerach, w których wymagana jest wysoka przepustowość interfejsu pomiędzy komponentami. Przykładowo, magistrala Hyper-Transport jest wykorzystywana nie tylko w najnowszych procesorach AMD (Athlon 64, Opteron), ale także w chipsecie nForce2 NVIDII, w którym układ MCP (Media and Communications) został zmuszony do przesyłania olbrzymich ilości danych, m.in podczas kodowania i dekodowania dźwięku Dolby Digital 5.1. w czasie rzeczywistym.

3. Z jakimi magistralami kompatybilne jest rozwiązanie Hyper-Transport?

Hyper-Transport jest kompatybilny ze zdecydowaną większością stosowanych dzisiaj magistral, w tym AGP (również 8x), PCI, PCI-X, IEEE-1394, USB 2.0, PL-3, SPI-4.2, gigabitowy Ethernet, jak również z przyszłymi rozwiązaniami, np. Infiniband, PCI-X 2.0, PCI-Express, 10-gigabitowy Ethernet. Co ważne, każda z tych technologii otrzymuje własny kanały wejścia/wyjścia i nie współdzieli magistrali Hyper-Transport z innymi urządzeniami. Pozwala to uniknąć efektów wąskiego gardła.

4. Czy Hyper-Transport jest kompatybilny z istniejącym oprogramowaniemi systemami operacyjnymi?

Tak, ponieważ z perspektywy systemu operacyjnego, Hyper-Transport niczym nie różni się od magistrali PCI.

5. Czy Hyper-Transport jest kompatybilny z technologią Plug&Play?

Tak, Hyper-Transport stosuje takie same techniki jak PCI podczas wykrywania urządzeń, ich uruchamiania i obsługi za pomocą sterowników. Dzięki temu z perspektywy systemu operacyjnego, Hyper-Transport jest w pełni zgodny z Plug&Play.

6. Z jakimi częstotliwościami działa Hyper-Transport?

Hyper-Transport może działać z prędkością od 200 do 800 MHz, co - uwzględniając mechanizm DDR - daje efektywne taktowanie na maksymalnym poziomie 1600 MHz. Przekłada się to transfer na poziomie 1600 MB/s. Ponieważ transfer może odbywać się w dwóch kierunkach jednocześnie, przy 16-bitowej szerokości magistrami maksymalna przepustowość wynosi 6,4 GB/s, a przy 32-bitowej szerokości - 12,8 GB/s.

7. Jaka może być szerokość magistrali Hyper-Transport?

W zależności od potrzeb: 2, 4, 8, 16 lub 32 bity w każdym kierunku. Urządzenia negocjują parametry magistrali podczas uruchamiania i później działają w ustalonym trybie.

8. Co oznacza, że Hyper-Transport to magistrala typu punkt-punkt, przesyłająca dane pakietowo?

Oznacza to, że za pomocą magistrali Hyper-Transport jeden nadajnik jest połączony z dokładnie jednym odbiornikiem. Za pomocą specjalnych rozwiązań tunelowych, dodatkowe podzespoły mogą jednak być podłączone pomiędzy nadajnikiem a odbiornikiem. Pozwala to tworzyć skomplikowane, rozgałęzione struktury połączeń. Pakietowość oznacza, że dane są przesyłane w taki sam sposób, jak to odbywa się np, w sieciach ethernetowych. Przed wysłaniem dzielone są na pakiety, które dopiero po dotarciu do celu są ponownie składane w pełną informację.