Niagara razy dwa

Sun ujawnił niedawno szczegóły dotyczące następcy 8-rdzeniowego procesora UltraSparc T1. Nowości będzie sporo, choć liczba rdzeni nie zmieni się.

Sun ujawnił niedawno szczegóły dotyczące następcy 8-rdzeniowego procesora UltraSparc T1. Nowości będzie sporo, choć liczba rdzeni nie zmieni się.

Gdy na przestrzeni 2004 i 2005 r. przedstawiciele Sun Microsystems opowiadali "niesamowite historie" o wydajności kolejnej wersji procesorów UltraSparc o kodowej nazwie Niagara, trudno było oprzeć się wrażeniu, że jest to optymizm na wyrost. Sunowi udało się jednak spełnić obietnice. W ciągu dwóch kwartałów ich bytności na rynku wygenerowały one 200 mln USD przychodów, zabierając udziały w rynku serwerowym IBM-owi i Dellowi.

Wygląda na to, że Sun wciąż wie o serwerach coś więcej niż przeciętny składacz komponentów z Dalekiego Wschodu. Firma chce teraz iść za ciosem i na połowę 2007 r. szykuje serwery, które będą zawierać następcę UltraSparc T1. O nowych układach na razie mówi się Niagara 2 - ich pierwsze testowe egzemplarze już istnieją, a nawet działa na nich Solaris 10. Czym różnią się od poprzedników i do jakich zastosowań będą się nadawać?

Wydajność ze statystyki

Na pierwszy rzut oka zmiany są kosmetyczne. Oprócz 8 rdzeni Sparc na płytce procesora znajdzie się 4 MB pamięci podręcznej L2 (w T1 jest 3 MB), osiem (w miejsce czterech) kontrolerów pamięci (tym razem z obsługą układów FB-DIMM). Nowością jest obecność dwóch kontrolerów 10G Ethernet, kontrolera PCI Express 8x oraz rozbudowanego koprocesora kryptograficznego, który w T1 jest znacznie prostszy.

Gdy przyjrzeć się bliżej, można dostrzec zmiany jakościowe, które wskazują na możliwości nowych układów. Liczba rdzeni się nie zmienia, lecz liczba wątków możliwych do obsłużenia zwiększa się dwukrotnie - zmniejszenie rozmiaru elementów procesora pozwoliło umieścić w ramach jednego rdzenia dwie jednostki wykonawcze. To oznacza, że w jednym cyklu zegara Niagara 2 wykonuje nie 4 (jak T1), lecz 8 wątków (łącznie 64 wątki - dwa razy więcej niż T1). Sun wprowadził też kilka dodatkowych trików usprawniających przetwarzanie wielowątkowe, a więc zwiększających jego "przepustowość" (throughput).

Operacja wybierania instrukcji do pobrania z pamięci podręcznej została oddzielona od samego pobierania, co pozwala na lepsze statystyczne wykorzystanie zasobów. Samo pobieranie zostało usprawnione przez kojarzenie z jednym wątkiem do 8 instrukcji i podwojenie liczby buforów (do 128) do translacji danych z pamięci podręcznej. Każdy rdzeń komunikuje się przez przełącznicę bezpośrednio z każdą jednostką L2. O ile w T1 pamięć L2 składała się z 4 jednostek, w Niagara 2 pamięć L2 została podzielona na 8 jednostek, przy czym każda jednostka może komunikować się z pamięcią RAM dwoma niezależnymi kanałami.

Niagara 2 ma oferować zasadniczo lepsze parametry pracy dla aplikacji wykorzystujących obliczenia zmiennoprzecinkowe. Każdy z ośmiu rdzeni Niagara 2 ma własną jednostkę zmiennoprzecinkową - to coś, na co czekali producenci aplikacji bazodanowych, bowiem jedna współdzielona przez 8 rdzeni jednostka to za mało dla wielu aplikacji biznesowych. W jednym cyklu z jednostki zmiennoprzecinkowej może korzystać jeden z dwóch aktywnych wątków, ale ponieważ jednostek jest osiem, nie ma mowy o opóźnieniach w obliczeniach.

Tylko fakty

Niagara 2 w liczbach

8 rdzeni obliczeniowych, z których każdy zawiera dwie jednostki wykonawcze i może jednocześnie obsłużyć 8 wątków (64 wątki jednocześnie na procesor)

8 jednostek zmiennoprzecinkowych

8 akceleratorów kryptograficznych

8 jednostek pamięci L2 o łącznej pojemności 4 MB, komunikujących się z pamięcią RAM przez łącznie 16 kanałów

2 porty 10G Ethernet

1 port PCI Express 8x

Sieć i I/O w procesorze

Bardzo interesującą częścią nowych procesorów jest zintegrowany na procesorze dwuportowy kontroler 10G Ethernet (z dwoma niezależnymi serializatorami, a więc w pełni wydajny), obsługujący też łącza Gigabit Ethernet. Bezpośrednia komunikacja poprzez wewnętrzną przełącznicę ze wszystkimi rdzeniami procesora i pamięcią RAM pozwala znacząco przyspieszyć wszelkie operacje sieciowe. Dodatkowo brak konieczności translacji między protokołami I/O, która jest konieczna, gdy komunikuje się z kartą sieciową, wywoła jeszcze większe przyspieszenie.

Wsparcie równolegle dla 16 strumieni komunikacji do i z pamięci RAM do kontrolera mówi samo za siebie. Pod względem sieciowym Niagara 2 będzie prawdopodobnie najwydajniejszym, generalnie dostępnym procesorem. Tę wydajność można oczywiście wykorzystać na różne sposoby. Sun umieścił na procesorze sprzętowy klasyfikator pakietów i sprzętowy filtr pakietów, dzięki którym komunikacja z siecią będzie tyleż wydajna, co dostosowana do różnych klas usług (w domyśle: działających na jednej z 8 oddzielnych maszyn wirtualnych możliwych do uruchomienia na wbudowanym hypervisorze), a także bezpieczna.

A propos bezpieczeństwa - każdy z 8 rdzeni Niagara 2 zawiera własny akcelerator kryptograficzny, który dzieli się na trzy niezależne jednostki przetwarzające. Pierwsza obsługuje funkcje skrótów jednokierunkowych (MD5, SHA-1, SHA-256), druga zaś algorytmy szyfrujące (RSA, RC4, DES/3DES, AES-128/192/256). Trzecia zapewnia generowanie liczb pseudolosowych we współpracy z jednostką zmiennoprzecinkową.

Uzupełnieniem kontrolera 10G Ethernet w dziedzinie I/O jest 8-kanałowy (8x) kontroler PCI Express 1.0. Według inżynierów Suna, kontroler zapewnia efektywną przepływność rzędu 3, 4 gigabajtów (nie gigabitów) na sekundę.

Jeśli więc do serwera podłączony zostanie system pamięci masowej dowolnej wielkości, wysycenie jego przepływności będzie problemem. Dla zastosowań typu NAS jest to rozwiązanie potencjalnie bardzo atrakcyjne.

Będzie wydajniej W oficjalnych prezentacjach inżynierowie Suna deklarują, że Niagara 2 będzie mieć dwukrotnie większą wydajność względem T1 - zarówno mierzoną liczbą wątków, jak i liczbą wątków na 1 W poboru energii (co przy podwojeniu liczby wątków nie jest oczywiste, jak się to na pozór wydaje). Wydajność wielowątkowych operacji zmiennoprzecinkowych ma wzrosnąć aż 10-krotnie, zaś jednowątkowych 5-krotnie. Nieznacznie, bo tylko o 1,4x zwiększy się wydajność jednowątkowych operacji na liczbach całkowitych, co jednak nie było priorytetem Suna.