Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
TwojePC.pl © 2001 - 2024
RECENZJE | Test Pentium4 3,06 GHz Hyper-Threading
    

 

Test Pentium4 3,06 GHz Hyper-Threading


 Autor: Lancer | Data: 03/12/02

Test Pentium4 3,06 GHz Hyper-ThreadingNiemal dwa tygodnie temu jeden z dwu wielkich dostawców mikroprocesorów architektury x86 - firma Intel, zaprezentowała najszybszy z dotychczas znanych układów. Debiutujący, najnowszy Pentium4 jest prawdziwą "bestią" strasząca swą innowacyjną mocą. Ma nie tylko ostre, bo 3,06 GHz-owe pazury, ale także niezwykłe kły, zwane Hyper-Threading. Dzięki krajowemu oddziałowi firmy Intel, miałem pełną wrażeń przyjemność przetestować system oparty o ten niezwykły układ. Przyjrzyjmy się nowemu stworowi, który przybył od mnie wraz płytą główną Intel D850EMVR oraz dwoma modułami pamięci 256MB PC1066-32 Samsunga.

Hyper-Threading - z czym to się je?

Najszybszy procesor Intela oparty jest o to samo 0,13um jądro Northwood co opisywany jakiś czas temu układ taktowany zegarem 2,8GHz. Zastosowano ten sam stepping jądra C1. Fizycznie w stosunku do poprzednika jedyną różnicą jest wzrost taktowania osiągnięty podniesieniem mnożnika z 21 do 23x. Wzrost to nieznaczny, bo zaledwie 9 procentowy. Procesor nadal pracuje z magistralą FSB 133MHz (QDR) i zasilany jest napięciem 1,525V. Wzrost częstotliwości pociągnął za sobą zwiększenie ilości wydzielanej mocy. Teraz procesor grzeje się bardziej, gdyż oddać musi aż 83W ciepła. Dla porównania parametr ten w przypadku wcześniejszego układu 2,8GHz wynosił ledwie 68,5W (mowa jednak o mocy typowej, a nie szczytowej). W związku z tym pamiętacie zapewne, iż Intel jakiś czas temu zapowiedział konieczność podniesienia jakości zasilaczy na płytach głównych (nie przewidziany wcześniej w specyfikacji gniazda s478), aby te bez problemów potrafiły obsłużyć szybsze ale i bardziej pazerne na prąd procesory. Podstawę wyróżniającą dotychczasowe układy P4, a najnowszy zapewne już znacie. Jest nią aktywacja Hyper-Threading czyli współbieżności wielowątkowej.


Nowe logo procesorów P4 z Hyper-Threading

Współczesne układy zbudowane są w architekturze superskalarnej tzn. procesor wyposażony jest w kilka równolegle pracujących jednostek wykonawczych (tego samego typu). Poszczególne instrukcje trafiają do jednostek równoległych tylko pod warunkiem, że zależności między zadaniami pozwalają na to. Nie da się wykonać różnych operacji na równoległych jednostkach (np. zmiennoprzecinkowych) jeśli wynik jednego zadania jest bezpośrednio powiązany z tym wykonywanym w równoległej jednostce. Należy je wykonywać w odpowiedniej kolejności. W ten sposób część mocy leży odłogiem ponieważ np. tylko jedna instrukcja zadania jest wykonywana w jednostce zmiennoprzecinkowej, a kolejna wynikająca z niej musi czekać na wynik. Procesor Pentium4 posiada 6 jednostek wykonawczych z tym, że średni stopień ich wykorzystania wynosi 4,4 mikrooperacji/Hz.

Klasycznie procesor wykonuje jednocześnie wiele programów, które są uruchomione równolegle, ale każdy z nich składać się może z kilku wątków. Procesor musi dzielić czas między programy. Większość domowych maszyn wyposażonych jest w jeden procesor. Typowy przydział zasobów komputera powoduje wydzielenie określonego obszaru pamięci operacyjnej i czasu procesora dla każdego zadania. Każdy proces ma więc przydzielany określony czas w działaniu procesora (tu należy zwrócić uwagę, że obsługa samego systemu operacyjnego też zabiera czas). Po zakończeniu jednego zadania następuje przełączenie na kolejny. Nie odbywa się to jednak w sposób automatyczny. Zarządza tym system operacyjny. Samo przestawienie na inny tor też wymaga czasu. Im bardziej niemrawo to się odbywa, tym większa strata czasu pracy procesora, który czeka bezczynnie na nowe zadanie. W najbardziej niekorzystnym wypadku zajmie to nawet kilkaset taktów zegara! Do tego należy zwrócić uwagę, że nie zawsze jedno zadanie całkowicie zajmuje moc wszystkich jednostek wykonawczych CPU. Czas leci, a układ nie jest wykorzystany w 100%. Bardzo niekorzystnie więc to wygląda w przypadku pojedynczego układu. Zachodzi tu analogia do naszego sposobu myślenia. Nie skupiamy się na wielu rzeczach. Chcąc rozwiązać kilka problemów myślimy najpierw o jednym, potem zastanawiamy się nad kolejną czynnością, ewentualnie błądzimy myślami między kilkoma innymi. Przełączenie się między "zagwozdkami" też chwilę nam zajmie z uwagi na konieczność skojarzenia pewnych rzeczy.

Dlatego powstały platformy wieloprocesorowe. Wątki dzielone są przez system operacyjny między poszczególne układy (tak jak grupa kolegów myśląca jednocześnie skąd wziąć kasę na wieczorną imprezkę). Tu również wkracza wspomniany czas potrzebny na przełączanie zadań, ale procesory dzielą swój czas między zadania i zyskują dodatkowo na skróceniu liczby niezbędnych przełączeń na kolejne (może odbywać się to równocześnie z uwagi na podział zadań). W tym miejscu nie do podważenia jest rola systemu operacyjnego. Powinien on być w stanie sprawnie rozdzielać zadania między procesory, pilnować wyznaczonych przedziałów czasowych. Na dodatek musi dbać o podział zadań koniecznych do wykonania przez samego siebie! To potrafią jedynie systemy rodziny Windows NT (także 2000 i XP) i Unixowe. Niestety systemy z rodziny 9x oparte są o pojedynczą maszynę wirtualną, która jest wspólna dla wszystkich operacji wykonywanych przez system, a co z za tym idzie nie potrafi dzielić zadań między kilka procesorów. Ogranicza się tylko do przydziału czasu.

Aby jednak jeden program mógł skorzystać z dobrodziejstw maszyny wieloprocesorowej musi być napisany w odpowiedni sposób. Każdy program jest bowiem ciągiem instrukcji wykonywanych w odpowiedniej kolejności. Aby przyspieszyć jego działanie należy podzielić go na odpowiednie fragmenty możliwe do wykonywania równolegle. Jest to o tyle trudne, że wymaga dokładnej analizy kodu programu i wydzielenia odpowiednich informacji, tak by w dalszej kolejności możliwe było podzielenie tego samego programu na wiele wątków możliwych do wykonania przez wiele procesorów, ale także by działając na jednym procesorze można było wykonywać klasyczną metodą podziału czasu między wątki. Pewne kroki należy przewidywać, by wykonywane zadania nie zależały w tej samej fazie obliczeń od siebie.

Jak już wspomniałem - jeden procesor nie ma zawsze do końca wykorzystanych wszystkich jednostek wykonawczych, to czemu nie użyć marnującej się mocy do wykonywania kilku wątków jednocześnie - tak jak to czynią systemy wieloprocesorowe, ale z tą różnicą, że wątki liczone są nie na równoległych CPU, a na nieużywanych jednostkach tego samego mikroprocesora? Można. Należy jednak tak rozłożyć kilka wątków, aby korzystały z tych samych potoków jednostek wykonawczych jednego CPU jak to jest czynione przez jednostki wykonawcze wielu równoległych procesorów.

Umiejętność rozłożenia obliczeń z różnych zadań na kilka jednostek wykonawczych sprawi, że stopień ich wykorzystania w tym samym CPU wzrośnie. Tym samym można wręcz rzec, że wzrośnie sprawność pojedynczego procesora. Tym właśnie jest technika Hyper-Threading. Możliwością wykonywania kilku równoległych zadań metodą rozdzielenia wątków między poszczególne, niewykorzystane jednostki tego samego procesora, a uściślając - metoda działania Hyper-Threading daje możliwość jednoczesnego wykonywania dwóch wątków równocześnie (nie trzech, ani czterech!).

Warto tu wspomnieć, że nazwa Hyper-Threading jest w zasadzie tylko marketingową nazwą czegoś, co się fachowo nazywa SMT-Simulation MultiTreading. Pentium4 jest pierwszym konsumenckim procesorem potrafiącym korzystać z tej innowacyjnej technologii, która jak już nawiązałem, swą podstawę bierze z systemów wieloprocesorowych (SMP-Symmetrical MultiProcessing). Początki technologii HT sięgają 1996r kiedy to inżynierowie Intela zaczęli myśleć o implementacji technologii SMT w swych procesorach. Jak wiemy udało im się to, ale warto wspomnieć że pierwszymi, którzy niemal tego dokonali byli ludzie pracujący nad procesorem Alpha EV8 zdolnym do jednoczesnego wykonywania aż czterech wątków. Technologia HT przez jakiś czas była znana jako Jackson's Technology i została pierwszy raz zaprezentowana na IDF rok temu. Początkowo trafiła do serwerowych procesorów Pentium4 Xeon z jądrem o kodowej nazwie Foster. Co ciekawe jądro tego CPU jest oparte o tym samym projekcie Willamette co pierwsze Pentium4. Wraz z doniesieniami o braku większych konstrukcyjnych różnic między "Wilmą" a Northwoodem, oraz obecności sporej liczby nadmiarowych tranzystorów, które ciężko przypisać do poszczególnych jednostek wykonawczych, wielu zaczęło snuć wnioski, że od samego początku istnienia Pentium4 na rynku mamy styczność z mechanizmem SMT. Tyle tylko, że do tej pory był on w stanie uśpienia.

Ponieważ HT daje możliwość wykonywania dwóch wątków jednocześnie więc system rozpoznaje jeden procesor jako dwa równoległe układy logiczne. Dzieje się tak, ponieważ klasyczny, pojedynczy procesor pracuje równocześnie nad jednym tylko wątkiem. W przypadku P4 3,06GHz z HT mamy więc jeden procesor fizycznie, ale logicznie już dwa. Pośród obecnych systemów operacyjnych technologię SMT obsługują wspomniane już systemy Unixowe i rodziny NT (2000 i XP). Zasadniczo do pracy z procesorami obsługującymi HT poleca się WinXP i to niezależnie od wydania - Prof. czy Home Edition (mimo że ten ostatni nie wspiera platform SMP, to działa w trybie SMT). Jak więc widzimy system rozpoznał dwa procesory z możliwością wykonywania jednoczesnego dwóch wątków.


Aby powiększyć fotkę, kliknij!

Niezmiernie mało programów jest napisanych tak, że mogą być wykonywane niezależnymi wątkami jednocześnie. Jak zauważyłem, już wynik jednego nie może bowiem zależeć od innego, bo inaczej nie będzie to działać. Jak więc inaczej wykorzystać możliwość wykonania dwóch zadań równocześnie? Bardzo często mamy z tym do czynienia każdego dnia - uruchamiając kilka niezależnych aplikacji. Odpowiedni system operacyjny rozdzieli wówczas czas niezbędny na wykonanie dwóch procesów między dwa równoległe, logiczne procesory (a faktycznie rozdzielone zostaną jednostki wykonawcze CPU między poszczególne procesy). Zdaje to egzamin doskonale szczególnie w przypadku całkowicie odmiennych aplikacji. Inaczej z CPU korzystać będzie bowiem np. Word, a inaczej działający jednocześnie program do liczenia rozproszonego. Warto jednak zauważyć, że użycie HT powoduje spadek wydajności procesora w poszczególnych zadaniach, ale podnosi sumaryczną wydajność dzięki możliwości wykorzystania większej ilości jednostek wykonawczych (z uwagi na podział mocy procesora między dwa, a nie jeden wątek). Zastosowanie HT nie przyspiesza wcale działania aplikacji o 100%. Procesor pozostaje wciąż jeden, ilość jednostek wykonawczych nie zmienia się, a na dodatek trzeba je dzielić między dwa zadania. Jeśli do tego dodamy fakt, że mało która popularna aplikacja potrafi skorzystać z systemów wielowątkowych, okaże się że wzrost wydajności może nie być wcale taki wielki. Intel określa go jako okolice 30%. A jak jest w rzeczywistości? Przekonamy się o tym za chwilę.


zestaw: płytka, procesor, cooler i ram


główny bohater: Pentium 4 3.06 GHz Hyper-Threading


płyta główna Intel D850EMVR


panel wyjść i wejść na płycie


gniazda z D850EMVR


osadzony procesor


...i pamięci Samsunga 2 x 256 MB PC1066-32 RIMM


poprzednia strona (Hyper-Threading - z czym to się je?)    -   następna strona (Testy Pentium4 3,6 GHz)








Polub TwojePC.pl na Facebooku

Rozdziały: Test Pentium4 3,06 GHz Hyper-Threading
 
 » Hyper-Threading - z czym to się je?
 » Testy Pentium4 3,6 GHz
 » Testy Wielowątkowości
 » Garść wniosków na koniec
 » Kliknij, aby zobaczyć cały artykuł na jednej stronie
Wyświetl komentarze do artykułu »