Hyper-Threading w Pentium 4

Wraz z procesorem Pentium 4 3,06 GHz Intel chce rozpocząć nową erę w segmencie komputerów biurkowych. Hyper-Threading ma wyposażyć komputery powszechnego użytku w technologię wieloprocesową, zarezerwowaną dotychczas dla droższych produktów - a w każdym razie ma wyposażyć co najmniej wirtualnie.

Wraz z procesorem Pentium 4 3,06 GHz Intel chce rozpocząć nową erę w segmencie komputerów biurkowych. Hyper-Threading ma wyposażyć komputery powszechnego użytku w technologię wieloprocesową, zarezerwowaną dotychczas dla droższych produktów - a w każdym razie ma wyposażyć co najmniej wirtualnie.

Nowy procesor Intela jest widziany przez system jako dwa niezależne procesory. Znacząca poprawa wydajności ma być widoczna przede wszystkim w aplikacjach obsługujących wielowątkowość i wielozadaniowość. Jak pokazuje nasz test, konieczne jest do tego spełnienie pewnych warunków wyjściowych.

Hyper-Threading to najbardziej rewolucyjna zmiana architektury, wprowadzona przez Intela od czasu pierwszych procesorów Pentium. W przyszłości wszystkie procesory Intela będą obsługiwać wirtualną koncepcję dwóch w jednym. Wprowadzając nowe procesory Pentium 4, Intel stoi jednak przed trudnym problemem marketingowym - Hyper-Threading to ze strategicznego punktu widzenia ważna technologia, której AMD nie może przeciwstawić niczego porównywalnego. Z drugiej strony, trudno "sprzedać" potencjalnym klientom istotę i sens Hyper-Threading.

Jest jeszcze jeden problem - stosowane dotychczas benchmarki tylko częściowo nadają się do testowania procesorów z technologią Hyper-Threading. W środowisku prawdziwie wielozadaniowym nie dają wyników przydatnych w praktyce. Na następnych stronach zamieszczamy krótki opis technologii Hyper-Threading, wymagań, jakie powinien spełniać odpowiedni benchmark, a na koniec - jak wypada Hyper-Threading Intela w naszych nowych benchmarkach.

1. Szczegóły zmian w Pentium 4 HT

Przepływ danych - dwa strumienie danych w procesorze z technologią Hyper-Threading zaznaczono kolorem jasnym i ciemnym. W miejscach zaznaczonych I trapezami oba wątki są rozdzielane i kierowane do odpowiednich jednostek.

Przepływ danych - dwa strumienie danych w procesorze z technologią Hyper-Threading zaznaczono kolorem jasnym i ciemnym. W miejscach zaznaczonych I trapezami oba wątki są rozdzielane i kierowane do odpowiednich jednostek.

Pentium 4 z technologią Hyper-Threading oferowany jest przez Intela w wersji od 3,06 GHz. W 2003 r. mają też pojawić się nieco wolniejsze jednostki z technologią HT. Rdzeń Pentium 4 HT opiera się w dalszym ciągu na Northwoodzie i stosuje stepping C1.

Podstawowa funkcja Hyper-Threading była zaimplementowana już we wcześniejszych procesorach Pentium 4. W Pentium 4 HT Intel musiał wprowadzić tylko nieznaczne zmiany w rdzeniu. Przede wszystkim dostosowano strategię pamięci cache do "dwuprocesorowości" - śledzenie jest teraz ośmiokrotne, zamiast wcześniejszego czterokrotnego. Poza tym pamięć śledzącą cache procesora Pentium 4 HT wyposażono w mechanizm "fill buffers" oraz wskaźniki następnej instrukcji. W starszych modelach procesorów Pentium 4 nie da się aktywować funkcji Hyper-Threading. Jej włączanie i wyłączanie musi się odbywać w trakcie uruchamiania komputera, poprzez zmianę odpowiedniego ustawienia BIOS-u. Późniejsze programowe przełączanie nie jest możliwe.

Wykonane w technologii 0,13 µm Pentium 4 3,06 GHz pracuje z typowym napięciem rdzenia 1,385 V. Maksymalny pobór prądu to 65,4 A. Intel podaje, że moc cieplna projektowa (TDP) Pentium 4 3,06 GHz wynosi 81,8 W. Dla porównania: taktowany z częstotliwością 2,8 GHz Pentium 4 ma TDP 68,4 W - o 16,4 procent mniej przy częstotliwości taktowania niższej tylko o 8,7 procent. Płyty główne do Pentium 4 3,06 GHz muszą więc być przystosowane do odpowiednio dużych prądów. Również chipset płyty głównej musi obsługiwać technologię Hyper-Threading, na przykład wysyłać dwa polecenia zatrzymania do procesora i czekać na dwa potwierdzenia.

2. Potoki i robotnicy przy taśmie

Równoległe przetwarzanie - poszczególne obliczenia wykonywane są równolegle przez oba procesory.

Równoległe przetwarzanie - poszczególne obliczenia wykonywane są równolegle przez oba procesory.

Następująca analogia powinna służyć za krótkie wyjaśnienie sposobu działania Hyper-Threading i będzie podstawą poniższych analiz. Przetwarzanie polecenia przez procesor odbywa się w wielu etapach cząstkowych. Przed przystąpieniem do właściwego "obliczania" musi na przykład zażądać z pamięci odpowiednich danych lub- w przypadku adresowania pośredniego - ustalić adresy odpowiednich operandów. Jak na taśmie produkcyjnej w zakładzie przemysłowym, polecenia przechodzą przez różne stanowiska, tak zwane stopnie potoków. Pentium 4 Intela zawiera potok z dwudziestoma takimi stopniami, w których w idealnym przypadku odbywa się równoległe przetwarzanie poleceń. Jednak w przeciwieństwie do dobrze zorganizowanej linii produkcyjnej, potoki procesora nieustannie się zapychają. Dla przykładu: dopiero po kompletnym przetworzeniu jednego zadania procesor ustala, w którym miejscu kodu programu ma kontynuować pracę. Co prawda, trochę pomagają w tym prace przygotowawcze mające właściwie charakter spekulacji oraz wyprzedzający odczyt danych, jednak przy najlepszej nawet optymalizacji poszczególne stopnie potoków obciążone są, według Intela, najwyżej w 35 procentach. Zamiast próbować lepiej zorganizować potoki, jak dotychczas, Intel poszedł w koncepcji Hyper-Threading zupełnie inną drogą - słabo wykorzystane stopnie są przypisane do dwóch niezależnych potoków, a dla otoczenia zewnętrznego procesor sprawia wrażenie dwóch CPU.

3. Większe obciążenie zwiększa wydajność

Zaciemnione elementy wskazują, w których miejscach naniesione były modyfikacje, aby uaktywnić Hyper-Thrading.

Zaciemnione elementy wskazują, w których miejscach naniesione były modyfikacje, aby uaktywnić Hyper-Thrading.

W naszej analogii z taśmą produkcyjną zbudowano by drugą linię, przy której robotnicy mogliby również pracować. W optymalnym przypadku, gdy działają obie taśmy, praca odbywa się na obu na zmianę. Jeżeli na jednej z taśm zaczyna nagle brakować detali do obróbki, robotnik przechodzi do drugiej taśmy. W ten sposób wzrasta wydajność pracy robotnika i wydajność ogólna linii produkcyjnej.

Dwa potoki dają teoretyczny wzrost wydajności do 50 procent, co uzasadnia poniesione nakłady. W przyszłości procesory Intela mogłyby pracować nawet z czterema potokami logicznymi. Odpowiednie bity sterujące, choćby do obsługi przerwań APIC, Intel już dawno przewidział.

4 Wielowątkowość i wielozadaniowość

Przykład z taśmą produkcyjną ukazuje także słabość nowej koncepcji. Hyper-Threading daje korzyści tylko wtedy, gdy są dostępne zadania dla drugiego potoku. Problem ma można rozwiązać dwojako: zastosować aplikację z obsługą Hyper-Threading lub wielozadaniowość i dwa niezależne programy.

W przypadku Hyper-Threading aplikacja dzieli się na wiele niezależnych, równolegle wykonywanych ścieżek programowych. Program do renderingu może na przykład podzielić zadania na dwa wątki i przypisać każdemu różne fragmenty obrazu. W systemie wieloprocesorowym lub w systemie z procesorem z technologią Hyper-Threading jeden procesor może przetwarzać górną, a drugi - niezależnie - dolną część obrazu. W serwerach i stacjach roboczych takie programy są na porządku dziennym, a Hyper-Threading może wykazać swoje zalety, ale w komputerach biurkowych systemy wieloprocesorowe nie były dotąd stosowane.

Nie ma do nich żadnego programu, który mógłby w praktyce wykorzystać wielowątkowość poprzez wydzielenie prawdziwych wątków roboczych. Zwykle przenosi się w tło wątki niewielkich zadań ubocznych, jak wydruk czy sprawdzanie pisowni. Ponieważ jednak wątki te wymagają zwykle niewielkiej mocy obliczeniowej, najczęściej są w stanie oczekiwania. Hyper-Threading nie daje prawie żadnych korzyści w tego typu zastosowaniach.


Zobacz również