przystajnik

Lament nad dobrobytem, czyli 32bit vs 64bit

Postęp depcze opieszałych. Jednak w obliczu trzeciej dekady XXI wieku nadal wielu użytkowników nie może przejść do porządku dziennego nad faktem, że wiele dystrybucji zaprzestaje rozpowszechniania 32bitowych obrazów instalacyjnych. A przecież w repozytoriach nadal znajdziemy paczki budowane dla zakorzenionego w naszej kulturze i386. Czy jednak słusznie rozpaczamy nad ekspansją 64bitowej architektury?

Jak sama nazwa sugeruje – z 64bitami wszystkiego powinno być dwa razy więcej. Oczywiście tylko w przypadku kiedy wybierzemy taki system dla naszego procesora i który sobie z tym poradzi:

#$ lscpu
Architektura: x86_64
Tryb(y) pracy CPU: 32-bit, 64-bit
Kolejność bajtów: Little Endian
CPU: 8
(…)

Czyli jeżeli z jakichś powodów nadal posiadamy konstrukcję która hołduje 32bitom, to tytułowym problemem nie musimy zaśmiecać sobie głowy. Jednak posiadacze 64bitowych procesorów jak powyższy nadal mogą rozważać system 32bitowy – zachowana jest kompatybilność wsteczna (przy spełnieniu pewnych warunków).

Bo co tak naprawdę dla naszego komputera oznacza, że ma taki a nie inny procesor? To proste. Projekt procesora 32bitowego przewidywał obsługę do 4 GiB pamięci RAM. Architektura 64bitowa potrafi zaadresować i odwołać się do odpowiednio większego obszaru pamięci – 16 EiB. Przeciwnicy tego argumentu wykazują, że stosując Physical Address Extension (PAE) można w systemie 32bitowym wykorzystać więcej niż 4 GiB pamięci. Jest to prawda, jednak pojedyncza aplikacja nadal będzie ograniczona do wspomnianej wartość, podczas gdy w 64bitach tego limitu nie ma.

Kolejno. Z racji tego, że procesor nowocześniejszy może więcej, tym samym uruchomimy na nim programy 64bitowe i 32bitowe. W starszym rozwiązaniu nie jest to możliwe. Z powyższego wyłamują się sterowniki do urządzeń, którą muszą być w wersji dla naszego systemu.

Jak na razie same plusy. Jest i kolejny. Programy 64bitowe działają szybciej. Nie zawsze jest to tak oczywiste i jednoznaczne, jednak pojemniejsze rejestry to mniej przerzucanych danych i w efekcie szybsze wykonywanie się niektórych popularnych zabiegów programistycznych (np. pętle). Z racji ograniczeń na 32bitach również trudniej jest zrealizować cache w pamięci RAM przetrzymujący aktywne pliki (Memory mapped files). A dostęp do takich danych jest najszybszy. Można się zżymać, że dawniej 640 kB wystarczało każdemu, ale popatrzmy na ilość danych które muszą przetworzyć nasze obecne systemy operacyjny. Pliki graficzne RAW o objętości przeciętnie 20 MiB, klipy wideo w okolica 1 GiB, wyświetlacze o rozdzielczości 4K, itp. To już nie są megabajty danych zalegających w pamięci RAM, a dziesiątki gigabajty.

Wszystko powyższe wydaje się jednoznacznie wskazywać kto jest oczywistym zwycięzcą. Na obronę starej technologii można przytoczyć argument, że programy 64bitowe wykorzystują zwykle więcej pamięci RAM (maksymalnie do 20% więcej). Jednak podobne dylematy przeżywaliśmy podczas przesiadek z architektury 8bitowej na 16bitową, z 16bitowej na 32bitową… Rozwiązaniem była tańsza i powszechniej dostępna pamięć RAM.

Trudno oprzeć się wrażeniu, że 64bit to przyszłość a w zasadzie teraźniejszość. Niektóre przypadki mogą wymagać użycia 32bitowego oprogramowania czy systemu, ale nie są to raczej typowe rozwiązania na desktopie przeciętnego użytkownika. Taki jest już myślami przy tym, co przyniesie mu architektura 128bitowa.
 

Post navigation

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »