Słów kilka o pamięci...
Pamięć operacyjna komputera składa się z pamięci fizycznej, którą stanowią moduły RAM (Random Access Memory) oraz tak zwanej pamięci wirtualnej znajdującej się na dysku twardym, która jest rozszerzeniem tej pierwszej. W pamięci fizycznej przechowywane są informacje oraz dane, które w danym momencie wykorzystuje procesor komputera.
Głównym aspektem, tak często podkreślanym, przemawiającym za wykorzystywaniem architektury 64 bitowej są zwiększone możliwości adresowania. Maksymalny obszar pamięci operacyjnej, jaki możemy wykorzystać w systemach 32 bitowych wynosi 4 gigabajty. Rozmiar ten można co prawda zwiększyć stosując różnego rodzaju zabiegi offsetowe (segmentacji), jednakże nie bez straty na wydajności. W dzisiejszych czasach jest to już bardzo niewielka ilość, sprzedawane są moduły pamięci o pojemności 2 x 2 GB, więc kres sposobności został wyczerpany. Systemy bazujące na architekturze x64 posiadają wielokrotnie większe możliwości, które dzisiaj wydają się być nawet wręcz olbrzymie. Ilość wariacji 64 bitowego adresu wynosi 264, czyli 18446744073709551616 (16 eksabajtów). Poniższa tabela przedstawia porównanie możności w tym zakresie systemów Windows 64 bitowych z 32 bitowymi.
Porównanie podsystemu pamięci w Windows x64 z architekturą x86 (obecna implementacja)
Komponent | x64 (64 bity) | x86 (32 bity) |
---|---|---|
Virtual memory | 16 terabajtów | 4 GB |
Paging file size | 512 terabajtów | 16 terabajtów |
Hyperspace | 8 GB | 4 MB |
Paged pool | 128 GB | 470 MB |
Non-paged pool | 128 GB | 256 MB |
System cache | 1 terabajt | 1 GB |
System PTEs | 128 GB | 660 MB |
Przyjrzyjmy się bliżej poszczególnym komponentom wchodzącym w skład pamięci i dowiedzmy sie nieco więcej na ich temat.
- Virtual memory - pamięć wirtualna komputera. Jest to metoda zwiększania fizycznej ilości pamięci operacyjnej poprzez plik stronicowania lub swapa. W 32 bitowych Windows jest to tylko 4 GB. W porównaniu z 16 terabajtami dostępnymi w systemach x64 jest to bardzo niewiele.
- Paging File - plik stronicowania, który system operacyjny wykorzystuje do zwiększania pamięci na potrzeby funkcji pamięci wirtualnej.
- Hyperspace - specjalna przestrzeń używana do mapowania oraz używana podczas tworzenia nowych procesów.
- Paged pool - region pamięci wirtualnej w systemie, który może być stronicowany.
- Non-paged pool - region pamięci wirtualnej, który nie może być stronicowany
- System cache - obszar wykorzystywany do mapowania otwartych plików w systemowym buforze.
- System PTEs - region PTEs (Page Table Entries) używany do mapowania przestrzeni I/O, stosu jądra oraz list deskryptora pamięci.
Obsługa pamięci w Windows Vista
Poniższa tabela przedstawia możliwości poszczególnych edycji Windows Vista w zakresie obsługi pamięci.
Obsługa pamięci w Windows Vista
Edycja Windows Vista | x64 | x86 |
---|---|---|
Home Basic | 8 GB | 4 GB |
Home Premium | 16 GB | |
Business | 128 GB | |
Enterprise | ||
Ultimate |
Jak widzimy możliwości systemu 32 bitowego, niezależnie od edycji, kończą się oczywiście na 4 gigabajtach. Wersje 64 bitowe, zależnie od wersji, dysponują zwiększonymi możliwościami. Home Basic oraz Premium, przeznaczone do użytku domowego, mają niewiele poszerzony rozmiar obsługi pamięci (odpowiednio 8 i 16 GB), lecz w wersjach biznesowych wartości te już są naprawdę imponujące i wynoszą tyle samo co w przypadku Windows XP Professional x64, czyli 128 gigabajtów.
Po co tak dużo tej pamięci?
Zastanówmy się jednakże co dają możliwości większego zaadresowania pamięci i zobaczmy jaki aspekt praktyczny daje architektura x64. W wielu zastosowaniach wspomniane 4 gigabajty są już poważną granicą, która dziś staje się poważnym problemem. Systemy bazujące na 64 bitowej architekturze umożliwiają pokonanie tej poprzeczki. W niedługim czasie programy opierające się na x64 staną się chlebem powszednim. Spowodowane jest to tym, iż aplikacje stają się coraz bardziej rozbudowane, wzrastają ich możliwości, ale co za tym idzie, rosną także wymagania. W 32 bitowych systemach Windows jeden proces może otrzymać na swoje potrzeby maksymalnie tylko połowę pamięci, czyli w tym wypadku będą to dwa gigabajty. Biorąc pod uwagę takie aplikacje, jak programy do tworzenia grafiki 3D jest to stosunkowo mało. Na szczęście bardziej wyspecjalizowane narzędzia są już udostępniane przez ich producentów w wersjach 64 bitowych. Dzięki temu możemy zwiększyć wydajność i wykorzystać potrzebną moc. Jakby tego było mało - w systemach x64 z rodziny Windows maksymalny rozmiar pamięci wirtualnej wynosi 16 terabajtów, jest to jednakże implementacja tymczasowa, gdyż w przyszłości może to być aż 16 eksabajtów!
Podsumowanie
Dzięki implementacji x64 otrzymujemy wielką przestrzeń adresową, która w już niedługim czasie zapewne zostanie dobrze wykorzystana. Na jak długo jednak architektura ta wystarczy? Komputerowa historia zna podobne przypadki, przykładem mogą tu być, już sławne, słowa Billa Gates'a, które wypowiedział w 1981 roku, mianowicie, że każdemu użytkownikowi 640 KB pamięci operacyjnej powinno, aż nadto, wystarczyć. Jak bardzo się mylił? To już chyba wiemy dzisiaj wszyscy...
Zapewne podobna sytuacja będzie miała miejsce za kilkanaście lat, kiedy to możliwości architektury x64 zostaną wyczerpane, więc nie pozostaje nam nic innego, jak tylko zaprosić już dzisiaj wszystkich do lektury kolejnego cyklu artykułów, tym razem poświęconych specyfikacji... 128 bitowej.