Systemy operacyjne

Vista x64 – czas na 64-bity w świecie Windows?

przeczytasz w 2 min.

Oto i stało się! Windows XP nie jest już dostępny w sprzedaży i kupując system operacyjny od Microsoftu skazani jesteśmy na cieszącą się ciągle niezbyt dobrą opinią Vistę. W dzisiejszym artykule zasta

Większość sprzedawanych obecnie procesorów posiada zdolność wykonywania 64-bitowego kodu (jak również wykonuje z pełną wydajnością kod 16- i 32-bitowy). Rozszerzenie zestawu instrukcji x86 o możliwość wykonywania 64-bitowego kodu wprowadziła firma AMD w Athlonach 64. Ten dodatkowy zestaw instrukcji nazwano x86-64 lub AMD64.
Intel nie mogąc przeforsować swojej drogiej i obwarowanej patentami IA-64, musiał na szybko wyposażyć swoje procesory w zestaw instrukcji zgodnych z AMD64, któremu nadał nazwę EM64T.

Jaki jest zysk z 64-bitowego procesora, poza lepszym samopoczuciem wynikającym ze znacznej różnicy pomiędzy liczbami 64 i 32? Pierwszą i zasadniczą różnicą jest ilość pamięci, którą może wykorzystać procesor. W przypadku 32 bitów ograniczona jest ona do 4 gigabajtów (2 do potęgi 32), podczas gdy teoretyczny limit technologii 64-bitowej jest znacznie, znacznie wyższy. Przy 64-bitowym adresowaniu jest to 2 do potęgi 64, jednak należy tu zaznaczyć, że współczesne procesory nie wykorzystują pełnych 64-bitów do adresowania, gdyż nie ma takiej potrzeby.

Uważni czytelnicy zwrócą teraz uwagę, że przecież w czasach 32-bitów również istniały pecety posiadające znacznie więcej pamięci niż 4 GB. To oczywiście prawda, a sytuacja taka jest możliwa dzięki wprowadzeniu możliwości 36-bitowego adresowania pamięci już w Pentium Pro. Technologia ta nazwana została PAE (Physical Address Extension), a jej pojawienie się zostało wymuszone zapotrzebowaniem na pamięć w maszynach serwerowych i mocnych stacjach roboczych.

Jednak współczesne „biurkowe” wersje Windows (Vista x86 i XP x86 SP2/3) nie robią użytku z tej funkcjonalności w trosce o kompatybilność z niedopracowanymi (bądź starymi) sterownikami. Natomiast 32-bitowe Windowsy serwerowe mogą obsłużyć nawet 64 GB RAM. Korzystanie z PAE okupione jest pewnym pogorszeniem wydajności pamięci, na ogół mało istotnym dla zastosowań serwerowych. Szersze omówienie PAE znaleźć możemy na przykład w bazie wiedzy Microsoftu.

Następną korzyścią jest teoretycznie większa szybkość przetwarzania danych przez procesor 64-bitowy w porównaniu z 32-bitowym odpowiednikiem oraz większa precyzja obliczeń wykonywanych podczas jednego cyklu procesora. Bezpośrednio wynika ona z podwojonej liczby rejestrów procesora (miejsce przechowywania danych w CPU, dostęp do nich obarczony jest najmniejszym możliwym opóźnieniem, mniejszym niż w przypadku korzystania z cache i kilkadziesiąt razy mniejszym od czasu dostępu do RAM). 
Dodatkowo rejestry mają dwukrotnie większą pojemność w porównaniu z architekturą 32-bitową. Nie bez znaczenia pozostają również optymalizacje dokonywane przez kompilatory dzięki możliwości porzucenia części balastu kompatybilności wstecznej.

Dokładniej chodzi o częstsze wykorzystywanie jednostek SIMD (np. SSE, SSE2) zamiast jednostki zmiennoprzecinkowej (FPU). Często owocuje to znacznym przyrostem wydajności w obliczeniach naukowych, kodowaniu multimediów, kompresji i innych zastosowaniach wymagających przetworzenia dużej ilości danych. 
W tym miejscu podkreślić należy, że jednostki SIMD mogą być równie efektywnie wykorzystywane w środowisku 32-bitowym (ale często nie są, by zachować kompatybilność ze starszymi procesorami x86 nie mającymi takich rozszerzeń). Warto o tym pamiętać, by uniknąć nazbyt pochopnych wniosków podczas pomiarów wydajności i rozdzielać efekt architektury 64-bitowej od efektu wykorzystania SSE, czy 3DNow!

Wstępne analizy firmy Cakewalk (producenta profesjonalnych rozwiązań do obróbki dźwięku), wykazały 20-30% przyrost wydajności niektórych operacji w programie Sonar skompilowanym do wersji 64-bitowej. Co więcej, w żadnym z testów nie obserwowano obniżenia wydajności w stosunku do środowiska 32-bitowego. 

Podobnie zachęcające rezultaty daje przeprowadzone na Athlonie64 porównanie wydajności wielu aplikacji uruchamianych pod Ubuntu x86 i x64 – spadki wydajności przy przejściu do środowiska 64-bitowego jeśli występowały to były niewielkie, podczas gdy często obserwowano znaczący wzrost wydajności aplikacji 64-bitowych - nawet rzędu 20-30%. 
Istnieją jednak i inne testy wykonane w środowisku linuksowym, których wyniki nie nastrajają już tak optymistycznie, a wręcz sugerują pozostanie przy sprawdzonych, 32-bitowych programach, np. świeży test AMD Phenom.

Jak więc widzimy, i jeszcze zobaczymy w rozdziale dotyczącym wydajności Visty, nie zawsze rozważania teoretyczne znajdują potwierdzenie w praktyce, a ostateczny wynik benchmarków uzależniony jest od większej liczby czynników, niż tylko architektura procesora.