Architektura x64, a pamięć systemowa

Architektura x64, a pamięć systemowa

Autor: Dawid Długosz

Opublikowano: 8/3/2007, 12:00 AM

Liczba odsłon: 39653

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.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia