warcraft 3 TFT + ROC, warcraft III,

Replaysowa strzałka Polskie Centrum Replayów - top
Replay Tygodnia / Best Replay
Nie ma żadnych replayów spełniających te wymogi.

RAM w nowoczesnym komputerze gracza - prognoza pogody dla 64-bitowych systemów operacyjnych

Popularne powiedzenie, przypisywane Billowi Gatesowi (który oczywiście się do niego nie przyznaje) „640KB pamięci powinno wystarczyć każdemu” dzisiaj zmieniło tylko cyferki na 4GB i pojawia się coraz częściej. Niedługo zostanie złamana kolejna granica w domowych komputerach: 4GB płaskiej wirtualnej przestrzeni adresowej. Ponieważ ostatnio pojawił się wątek na forum na temat kupowania nowego komputera dla gracza, postanowiłem napisać ten artykuł. Zbliżają się święta, więc pewnie będzie takich pytań coraz więcej, ale tutaj skupię się tylko na aspekcie pamięci i 64-bitowych systemów.
 
Ile powinno jej właściwie być?
Pytanie oczywiście pojawia się na początku, ale argumenty i właściwa odpowiedź jest dopiero na końcu. Uważam, że minimum w komputerze gracza to 4GB, bo tyle co najmniej będą wykorzystywać nowe gry. Zakładam, że komputer jest składany pod najnowsze tytuły, a nawet pod takie, których jeszcze nie ma. Rozpatrzę także możliwość późniejszej rozbudowy i postaram się to wszystko w artykule uzasadnić i wyjaśnić.
 
Co to jest pamięć wirtualna?
Pierwsze procesory x86 nie posiadały takiego mechanizmu, chociaż programy mogły korzystać z segmentów pamięci, co można uznać za namiastkę. Wymagało to kooperacji programów i ich pełnej bezbłędności. Po raz pierwszy w tradycyjnych PC wprowadzono prawdziwą wirtualną pamięć w formie „protected mode” w 80286, pozwalając na korzystanie z 16MB pamięci fizycznej i 1GB wirtualnej (16GB razem z segmentami). Taki sprzęcik kiedyś miałem, tylko z 4MB pamięci. Ponieważ każdy program otrzymuje własną pamięć wirtualną, w pewnym sensie chronioną przed zewnętrznym wpływem (to się zmieniało i ulepszało wraz z kolejnymi generacjami procesorów), uzyskuje się lepszą stabilność, a nawet wydajność. Nieużywana pamięć może być zrzucana na dysk i przywoływana na żądanie bez ingerencji w programie, co pozwala korzystać z większej ilości fizycznej pamięci „aktywnej”.
 
Wracając do pamięci wirtualnej – dlaczego było i jest jej tak drastycznie więcej niż fizycznej? Oczywiście ze względów rozwojowych, ale jednocześnie wynika to z samej zasady działania. Wygląda to w uproszczeniu tak:
  1. Program odwołuje się do komórki pamięci wirtualnej.
  2. Procesor określa jaki adres pamięci fizycznej odpowiada danemu adresowi pamięci wirtualnej.
  3. Program otrzymuje dane z pamięci fizycznej, lub innych źródeł (najczęściej dysk – tzw. plik wymiany/swap file)
 
Po co takie komplikacje? Dlaczego nie można po prostu pobierać bezpośrednio? Daje to trzy ważne korzyści:
  1. Pisanie programów staje się prostsze, sprzęt zamienia adresy wirtualne na fizyczne (duża prędkość w porównaniu z robieniem tego wewnątrz programu).
  2. Można korzystać teoretycznie z większej ilości pamięci, niż jest fizycznie zainstalowana (tzw. pamięć wirtualna – może być nawet oddzielna dla każdego programu)
  3. Można odwoływać się przez procesor bezpośrednio do pamięci różnych urządzeń, jeśli została ona mapowana do pamięci wirtualnej (zazwyczaj obszar pamięci wirtualnej jest ogromny w porównaniu do pamięci fizycznej i można tam upychać co się chce).
 
Może się wydawać, że to dość błahe powody. Dysk i tak jest dużo wolniejszy, więc zyskujemy maksymalnie dwukrotnie więcej pamięci, a najlepiej by było wydajnościowo bez „swapa”. Na szczęście dyski są tanie i ogromne w porównaniu z RAM, czyli ma to sens. Nie wdając się w szczegóły, okazało się to po prostu lepsze, wydajniejsze i bezpieczniejsze, niż zarządzanie „ręczne”. Do dzisiaj mechanizmy zamiany adresów wirtualnych na fizyczne się rozwijają i wyznaczają częściowo nowoczesność procesora, znacznie wpływając na wydajność. Są także trudne i skomplikowane, na co wskazuje słynny błąd TLB Phenomów AMD i błąd(niekompatybilność) w TLB Conroe Intela.
 
Dlaczego pamięć płaska?
Typowy system 32-bitowy korzysta z adresowania pamięci wirtualnej za pomocą liczby 32-bitowej. Logiczne i najszybsze na takich architekturach podejście. Ogranicza to jednak liczbę możliwych do zaadresowania komórek pamięci do 2^32=4GB i tym samym określa maksimum pamięci fizycznej. Jest to tzw. tryb płaski (flat mode). Istnieją jeszcze możliwości korzystania z segmentów (po ludzku – użycia dodatkowej liczby do opisania adresu), co znacznie poszerza pamięć wirtualną, kosztem konieczności modyfikacji programów.
Ponieważ zabawy w segmentację wystąpiły masowo w czasach DOSa, przy dzisiejszej powszechności 64-bitowego sprzętu nie ma sensu na to liczyć. Obecnie nazywa się to PAE (rozszerzenia adresu fizycznego). Dla przypomnienia historii, DOS słynął z wielu różnych sterowników pamięci. Takie rzeczy były dostępne:
 
  1. Conventional memory – zwykła pamięć, tzw. konwencjonalna, 640KB. Akurat tyle, bo 8086 miał 1MB, z czego 384KB zarezerwowane dla kart rozszerzeń. Dla kompatybilności programów utrzymano więc tą dziwaczną granicę, która do dziś ostała się w historycznym „powiedzeniu Billa Gatesa”.
  2. 80286 pozwolił adresować dalej – 1GB. Ale nie tak po prostu – trzeba było przełączyć procesor w tryb chroniony (protected mode). W międzyczasie ktoś zauważył, że można wycisnąć dodatkowe 64KB RAMu (tak, ktoś uważał, że warto).
  3. High Memory Area – 64KB ekstra pamięci, wystrugane przez jakiegoś mistrza, który zauważył, że chociaż starsze procesory (8086) adresują 2^20 bajtów pamięci, to nowsze pozwalają poszerzyć tą wartość o dodatkowe 64KB, tuż ponad 1024KB, bez specjalnego trybu procesora. Oczywiście można było skorzystać od razu z trybu oferującego 1GB, ale to wymagało przepisania programów. Ten trick doprowadził do wprowadzenia powszechnej jeszcze do niedawna w zupełnie nowoczesnych komputerach opcji w biosie A20 handler. Ponieważ niektóre starsze programy polegały na tym, że adresy wyższe niż 1024KB się „zawijają” do 0 (na 80286 był bug – stąd „dodatkowa” pamięć), to jednak trzeba było doprowadzić do kompatybilności. W kontrolerze klawiatury (nie zmyślam tego – sprawdzcie sami tutaj) znalazł się wolny pin, więc użyto go do sterowania tą funkcją. Dopiero później zauważono, że ten kontroler jest wolny. Stąd opcja „fast A20 gate”, która korzysta z innego sprzętu do przełączenia bramki AND odpowiadającej za zawijanie adresu na 20 bicie (stąd nazwa: A20 gate).
  4. Extended Memory Specification (XMS) – pamięć rozszerzona. Dostępna w 80286, pamięć powyżej 1MB. Ponieważ 8088 rezerwował 384KB powyżej 640KB, to powstała „dziura”. 384KB nie jest więc dostępne w normalnych warunkach, chociaż leży w samym środku i teoretycznie nie potrzebuje przełączenia trybu pracy procesora. Całkiem głupie, skoro jak można się domyślić, nikt nie używał większości sprzętu zgodnego z 8088 na 80286. Naprawdę głupie było to, że z pamięci XMS nie można było uruchamiać programów – nadawała się tylko do przechowywania danych.
  5. Upper Memory Blocks (UMB) – ktoś pomyślał o brakujących 384KB i odzyskał część z nich. I można było stąd uruchamiać programy! Wadą tej pamięci było to, że adresy nie były w jednej kolejności, tylko nadal „podziurawione” zarezerwowanymi obszarami.
  6. Expanded Memory Specification (EMS) – zawsze mnie zastanawiało, dlaczego expanded i extended tak podobnie się nazywają. W gruncie rzeczy istnieje podobieństwo, jest to ten sam obszar pamięci, ale EMS pozwala na uruchamianie kodu. Programy i tak wymagały zmian w kodzie.
 
Ponieważ XMS i EMS konkurowały o te same obszary, to wszystko było jednym wielkim bajzlem. Żeby uruchomić programy, trzeba było mieć utworzone kilka konfiguracji, z których jedna dawała więcej tej pamięci, inna tamtej itd. Ponieważ praktycznie tylko w konwencjonalnej było można uruchamiać programy (a przynajmniej większość), to trzeba było jeszcze żonglować sterownikami, żeby był w HMA albo UMB (a nie wszystkie wchodziły wszędzie, bo tez miały swoje wymagania). To była dość trudna łamigłówka, niejeden użytkownik zobaczył „not enough memory”, chociażby w Cannon Fodder, mimo posiadania 16MB („to ILE ta gra potrzebuje pamięci?” Na pewno przyciągała uwagę - Doom 1, ówczesny hicior chodził bez problemu na 4MB).
 
Przykładowy opis plików konfiguracyjnych dos:
„Umożliwienie załadowania sterownika 'SPECIAL.SYS' do  pamięci
zarezerwowanej, dzięki wcześniejszemu załadowaniu sterownika
'EMM386.SYS' do obsługi tej pamięci, z zażądaniem  emulowania
512 KB z dostępnej pamięci rozszerzonej. Zauważ,  że
koniecznym  było  jeszcze  wcześniej,  załadować   sterownik
'HIMEM.SYS' zarządzający pamięcią rozszerzoną”
To ile jest której pamięci? Do całego zamieszania dokłada się trudność przetłumaczenia na język polski słów extended i expanded, bo przyjęło się nazywanie obu rozszerzoną. Podobnie zresztą było z upper i high – wysoka. Mało? Istniały specjalne programy do optymalizacji, które przestawiały wszystko w plikach konfiguracyjnych, aby uzyskać maksimum wolnej pamięci w najczęściej używanych obszarach: MEMMAKER. Oczywiście nie działał tak świetnie, bo nie obsługiwał modyfikowania menu startowego, które wtedy było bardzo popularną metodą na ustawienie wielu konfiguracji jednocześnie. Większość ludzi używała memmakera, a rzeczy, które nie chodziły, po prostu wyrzucała. Jak widać Windows 3.0 z dzisiejszej perspektywy jest kompletnie nieużywalny, ale z pewnością oferował prostszą konfigurację niż DOS.
 
Cała ta wiedza, razem z niezliczonymi parametrami sterowników himem.sys, emm386.exe, sterowników myszki, klawiatury (niezbyt proste ówcześnie zadanie – uzyskanie polskich liter… i granie w gierki jednocześnie) jest dzisiaj na szczęście bezużyteczna. Od czasów 386 pamięć jest wirtualna i płaska, czyli tym wszystkim, czym zajmowało się te kilka sterowników, zajmuje się dzisiaj sprzęt, uwalniając użytkownika od konieczności ich konfigurowania. Odwrotu od pamięci płaskiej nie przewiduję, a to oznacza, że po przekroczeniu bariery 4GB jedynym wyjściem jest adresowanie 64-bitowe. To jest po prostu zbyt wielka trudność dla programistów, a nauczenie doświadczeniami z DOS będzie trzymało większość wydawców gier z daleka od wynalazków takich jak PAE (które i tak ma limit 4GB w Windows XP i raczej to się nie zmieni – dobra decyzja ze strony Microsoftu).
 
System operacyjny XP 64 bit Edition, czy Vista 64 bit? Czy gry tego będą wymagać?
System 32-bitowy nie jest jednak w stanie skorzystać nawet z pełnych 4GB. Nadal część wirtualnej przestrzeni adresowej jest zajęta, mimo, że każdy program posiada swoją własną. Jest to wynik konieczności zarezerwowania fragmentów pamięci przez płytę główną i różne urządzenia. Na szczęście programista nie musi się już tym praktycznie przejmować. Ważniejsze jest, że cała pamięć wirtualna jest podzielona na dwa obszary – pamięć użytkownika (dla programów) i pamięć jądra systemu (dla wewnętrznych danych systemu operacyjnego, sterowników). Typowo jest to 2GB/2GB, ale można zmienić to przez modyfikację pliku boot.ini na 3GB/1GB, dając programom więcej kosztem systemu. Niestety są to tylko półśrodki, które niebezpiecznie przypominają zamęt z DOS. Nie jest proste przewidzieć, czy nie będzie potrzebne ponad 1GB systemowi, co może sprawić, że część programów będzie wymagać tego przełącznika, a inne nie. System rezerwuje pamięć dla siebie według bieżących potrzeb, na bufory do przesyłania danych po sieci, z/do dysku – ograniczenie pamięci do niestandardowego rozmiaru może powodować problemy, i tak się dzieje w grze Wiedźmin. Stabilność systemu może być naruszona przy takiej konfiguracji.
 
Jest to kolejny argument za 64-bitowym systemem – bo warstwa emulacji systemu WoW64 (Windows-On-Windows 64), która pozwala na kompatybilność starych programów z nowym systemem (i tu muszę powiedzieć, że działa bardzo dobrze) oferuje starym programom 32-bitowym pełne 4GB pamięci wirtualnej. System operacyjny nie jest zmuszony do trzymania swoich danych w 32-bitowej przestrzeni adresowej, bo sterowniki są 64-bitowe, przez co starym programom zostaje więcej – praktycznie maksymalny obszar pamięci, bez żadnych złych efektów ubocznych. Nie trzeba wykonywać resetu z /3GB w boot.ini, wydajność jest praktycznie identyczna, czasem większa a czasem mniejsza. Różnice są zbyt małe, żeby je zaobserwować.
 
Należy tu zauważyć, że są wprowadzone sztuczne limity obsługiwanej pamięci fizycznej, nawet w wersjach 64-bitowych systemów. Dla Vista Home Basic jest to 8GB, Vista Home Premium 16GB. Dopiero Vista Business/Ultimate/Enterprise/XP 64 bit obsługują 128GB. Dla przyszłościowego zestawu gracza trzeba wziąć to pod uwagę, bo kolejny system wyjdzie prawdopodobnie za dwa lata i nie wiadomo dokładnie z jakim spotka się przyjęciem, co może opóźnić przejście o kolejny rok. Polecam Vistę zamiast XP 64 bit Edition, bo jednak ta wersja XP została zapomniana i jest na niej więcej problemów z grami (które prawdopodobnie nie będą rozwiązane w takim niszowym systemie). Po prostu są większe szanse na uzyskanie późniejszego wsparcia na Windows Vista. XP 64 bit Edition jest bazowane na wspólnym kodzie z Windows 2003 Server, a nie Windows XP. Cykl service packów nie pokrywa się i nie jest zachowana jakaś szczególnie większa kompatybilność z zwykłym XP (w porównaniu do Visty).
 
Stare programy są bezpieczne, ale każdy z pewnością oczekuje innych usprawnień, w szczególności lepszej wydajności. Ważne nowości to:
  1. Większa wirtualna przestrzeń adresowa i obsługa większej pamięci fizycznej.
  2. Większa liczba rejestrów procesora (może minimalnie przyspieszyć, pozwala procesorowi wykonywać mniej pobierania/zapisywania danych do pamięci w trakcie obliczeń)
  3. Rejestry są 64-bitowe (to raczej nie ma wpływu na wydajność, ale ułatwia wiele spraw wewnątrz programów, może wpłynąć na mniejszą liczbę błędów)
  4. Każdy procesor operujący w trybie 64-bitowym ma dostępne instrukcje SSE i SSE2. Mała rzecz, a cieszy – oczywiście gry korzystają z tego już teraz w XP. Daje to jednak pewne ujednolicenie minimalnego poziomu sprzętowego platformy. Zmniejsza koszt późniejszego wsparcia gry dla wydawcy. Dodatkowo w trybie 64-bitowym rejestrów SSE jest dwukrotnie więcej, co ma taki efekt jak podwojenie liczby rejestrów ogólnych.
  5. Kilka naprawdę niskopoziomowych trików zwiększających wydajność i porzucenie kompatybilności z naprawdę starymi fragmentami systemu operacyjnego. Więcej można poczytać o tym na tej prezentacji.
 
Procesory 64-bitowe nie są więc automatycznie ogromnie szybsze. Jest więcej miejsca na optymalizację programów (dodatkowe rejestry, SSE2), ale nie daje to dwukrotnego wzrostu prędkości, jak może się wydawać na podstawie intuicyjnego 64=32*2. To jest bardziej wewnętrzna zmiana, niż „skok” technologiczny. Skoro tak, to jaki jest cel posiadania 64-bitowego systemu, gdy w 32-bitowym „wszystko działa”? Taki, że oczywiście „wszystko” nie działa. W ostatnich miesiącach obserwuje się znaczny wzrost dynamiki sprzedaży 64-bitowych systemów, jednocześnie przy coraz częstszym uderzaniu o granicę 2GB przez dzisiejsze programy. Ponieważ chciałem poruszyć temat komputera dla gracza, to przyjrzyjmy się fragmentowi wcześniej wspomnianej prezentacji Gamefest, gdzie zostały omówione dwie gry: Crysis i Hellgate: London.
 
Jak widać Crysis przekroczył granicę 2GB w edytorze. Oczywiście można było wsadzić mniej zawartości, ale jednak producenci zawsze próbują wykorzystać maksimum, czy to jest płyta CD, DVD, czy też RAM. Edycja map do gry była stabilna dopiero na edytorze 64-bitowym. Daje to pewne pojęcie na temat możliwości dzisiejszego topowego sprzętu, który jest w rzeczywistości gotowy do obsłużenia dodatkowej zawartości. Nie trzeba więc czekać aż producenci „nadążą”, bo już mają co wsadzić do dodatkowego RAMu. Dodatkowym spostrzeżeniem jest tutaj brak wyraźnego przyspieszenia wersji 64-bitowej, przy stwierdzeniu, że jednak nie zostały wykonane specjalne kroki w tym celu. Jest to logiczne, bo prawdopodobne zyski wydajności nie są warte obecnie dedykowanej optymalizacji dla niszowego (w momencie wydania gry) systemu operacyjnego.
 
Hellgate: London jest przykładem porażki wydawcy. Gra okazała się zabugowana i nastąpiły problemy z jej testowaniem, ponieważ były oddzielne pliki .exe dla wersji x86, x86-64, DirectX 9 i 10, oraz single player i multiplayer (łącznie osiem różnych programów). Jest to dość interesujące, bo oznacza to, że producenci gier niechętnie będą podchodzić do wypuszczania wersji 32-bitowych, gdy tylko rynek 64-bitowych systemów operacyjnych będzie wystarczająco duży. Po prostu w pewnym momencie przestanie się opłacać publikować gry na starszy system. Kiedy się to stanie - nie wiem, ale rozsądną granicą śmierci 32-bitowych gier jest 50% komputerów z 64-bitowym systemem. Obecnie jest ich około 5% na całym rynku, czyli dość daleka droga. Jednak już teraz ponad 20% nowych komputerów w USA(w Polsce te liczby są oczywiście bez znaczenia, dla gier liczy się głównie rynek amerykański) jest sprzedawanych z preinstalowaną Vistą 64 bit. Można oczekiwać, że ten trend będzie się zwiększał, bo nowe komputery posiadają ponad 4GB pamięci i jedyną drogą do jej wykorzystania jest nowy system operacyjny. Trzeba też pamiętać, że producenci gier celują w nowsze sprzęty, a nie stare, czyli punkt uznania 32-bitowych procesorów za przestarzałe może nastąpić dużo wcześniej. Nie ma takiej pojemności, której nie udałoby się zapełnić – to jedno w czym przemysł gier jest na pewno dobry. Nie wiadomo dokładnie także, ile z tych komputerów posiadają gracze.
 
Osobiście uważam, że pełne przejście nastąpi w okolicy uzyskania 20% rynku przez Vistę 64 bit. Przypomina mi to czasy wejścia 386, gdy wydawało się pozornie, że wszyscy będą się jeszcze bardzo długo trzymać 16-bitowych programów, podczas gdy w rzeczywistości przejście nastąpiło bardzo gwałtownie. Mimo powstania wielu protez rozszerzających wirtualną przestrzeń adresową 286 padło praktycznie od razu, zanim jeszcze gry zaczęły używać ponad 16MB pamięci (maksimum dla 286). Dzisiaj jest trochę inna sytuacja, być może nawet korzystniejsza dla prędkości przejścia. Konkretnie chodzi mi o to, że większość ludzi posiada procesor 64-bitowy (dzięki AMD64 – pierwszy procesor już w 2003), a nie posiada odpowiedniego systemu operacyjnego. To oznacza, że gdy tylko przekroczony zostanie punkt krytyczny, nastąpi lawinowe przejście wszystkich graczy na 64-bity. Podejrzewam, że wystarczy jedna popularna gra dedykowana dla 64-bitowego systemu operacyjnego. Wzrost rynku jest wystarczająco duży, żeby spodziewać się takiej gry w ciągu roku.
 
Czy programy na pewno są w stanie przekroczyć barierę 2GB już teraz? Nie gram w Hellgate ani Crysis.
Oczywiście. Są jeszcze dwa ważne problemy z zarządzaniem pamięcią, które mogą spowodować jej zapełnienie aż do poziomu utraty stabilności. Pierwszy duży problem to fragmentacja pamięci. Większość programów jest ładowana do pamięci w dość małych fragmentach i posiada możliwość dynamicznego przydzielenia do miejsca w pamięci (da się załadować do dowolnego miejsca w przestrzeni adresowej). Niestety, niektóre programy posiadają stałe adresy bazowe (fixed base address). Żeby daleko nie szukać – gry firmy Blizzard. Dlaczego tak zrobili, nie będę tłumaczył. Ważne jest to, że istnieją takie programy i niektóre są popularne. Ich istnienie tworzy podobne „dziury” w wirtualnej pamięci jak dawne zarezerwowane 384KB na PC XT. Ponieważ mogą one wypadać w środku, oznacza to, że nie pozwalają utworzyć dużego, ciągłego obszaru pamięci. Szanse na zajęcie trzech obszarów po 1GB są więc niewielkie, jeśli istnieje taka DLL w systemie.
 
Sprawa wygląda jeszcze gorzej, jeśli uświadomimy sobie, że pamięć jest zajmowana i zwalniana na żądanie w dość losowy sposób. Nie wiadomo jak dokładnie ustawić zajmowane regiony pamięci, aby uzyskać minimum dziur i maksimum wydajności. Czyli nawet bez stałych adresów bazowych programów, może nastąpić zużycie pamięci, aż do momentu braku wymaganego ciągłego obszaru – przykładem takiego przypadku jest brak 1MB pamięci przy jednoczesnym istnieniu 20MB w fragmentach po 500KB. Takie rzeczy się zdarzają, oczywiście w innej skali. Jest to niedopuszczalne w szczególności w grach online, bo o ile istnieją mechanizmy zabezpieczające przed brakiem pamięci (przez łączenie pustych miejsc), to nie da się zabezpieczyć przed zużytym na ich działanie czasem, co dokłada się do „ścinek” gry.
 
Kolejny problem, to przestrzeń adresowa zajęta przez RAM karty graficznej (tzw. VRAM). Przy dzisiejszych kartach osiągających 1GB pamięci jest to połowa pamięci wirtualnej przeznaczonej dla programów. Przy SLI mapowanie wszystkich adresów jest niemożliwe, bo przecież jest dostępne tylko 2GB! Jednak wszystko działa, bo producenci kart graficznych używają „okna” (dla AGP dodatkowy rozmiar okna wyznaczała opcja bios: AGP aperture size, ale wtedy nawet suma tych pamięci nie była większa niż 1GB), mapując tylko część VRAM do pamięci wirtualnej procesora. To oczywiście zmniejsza wydajność, bo aby dostać się do innych regionów trzeba „przesunąć” okno. Oczywiście ginie to w tle innych problemów wydajnościowych kart graficznych, ale nie do końca. Wraz z powiększaniem się VRAM trzeba będzie coraz więcej czasu poświęcać na mapowanie odpowiednich fragmentów, aż do poziomu gdy stanie się to niepraktyczne. Dodatkowo, obsługiwanie przełączania zadań z aplikacji DirectX (właściwie dowolnych graficznych programów) znacznie zużywa zasoby przestrzeni adresowej i fizycznego RAMu.
Więcej w tych artykułach:
  1. Problem występuje przy pewnej kombinacji kart graficznych i programów. Przykładowy artykuł na ten temat: Supreme Commander na Anandtech druga część, i pierwsza część, ogólniejsza.
  2. Zmiany w Windows Vista powodujące większe zużycie wirtualnych adresów (jednocześnie pozwalające na dzielenie zasobów GPU pomiędzy różne aplikacje), poprawione później w celu lepszej kompatybilności ze starymi programami (32-bitowymi). Jako ciekawostkę tylko napiszę, że DirectX 10 nie dotyczy problem kopii w pamięci systemowej (XP oczywiście także nie).
  3. Główne problemy z grami na Windows (od strony programisty) – „Top issues for Windows Titles”, o fragmentacji pamięci wirtualnej i o obniżaniu detali przy dysproporcji VRAM <–> RAM.
  4. Dlaczego twoja gra pod Windows nie będzie działać w 2,147,352,576 bajtach - "Why Your Windows Game Won't Run In 2,147,352,576 bytes" - więcej na temat DirectX 9 w odniesieniu do DirectX 10 i obrazki zajętej pamięci virtualnej przez współczesne karty graficzne.
 
DDR2 czy DDR3?
Wybór platformy sprzętowej jest dość prosty. Jeśli zamierzasz modyfikować swój sprzęt, to najprostszym, wykonalnym przez najmniej zaawansowanych użytkowników ulepszeniem, jest dodanie pamięci. Oczywiście trzeba zwrócić uwagę na wybór pamięci zgodnych z płytą, ale sama instalacja jest później banalna.
 
Obecnie pamięci DDR2 są około dwukrotnie tańsze niż DDR3. To stawia je na znacznie lepszej pozycji, szczególnie biorąc pod uwagę, że nie ma jeszcze na DDR3 dużego zapotrzebowania. Wszystkie dzisiejsze procesory współpracują z DDR2. Konieczności przesiadki nie ma. Przyglądając się różnicom pomiędzy tymi technologiami, widać duże podobieństwo do przejścia z DDR1 na DDR2. Również wtedy prorokowano, że nowy rodzaj pamięci się nie przyjmie. Oczywiście okazało się to mitem. Można powiedzieć, że razem z „XP next Windows Me”, „Vista next Windows Me”, „DDR2 next RAMBUS”, „DDR3 next RAMBUS”, „2000/2001/(…)/2012 końcem świata” tworzy to pewną grupę: bajki na dobranoc.
 
Przyjęcie DDR3 jest przesądzone, podobnie jak było DDR2, ponieważ nie widać na horyzoncie kolejnej technologii zdolnej zaoferować coś lepszego. Jednocześnie DDR2 jest zbyt słabe, aby zaoferować szybsze konfiguracje niż obecne 533MHz powyżej 16GB. Łącząc to z faktem opracowania przez Intel kolejnej generacji procesorów ze zintegrowanym kontrolerem pamięci, nie będzie obecnie chęci wśród producentów sprzętu do promowania kolejnej platformy (AMD nadal używa DDR2 i raczej nie jest w kondycji do wprowadzenia innego standardu).
 
Ponieważ wydajność jest bezsprzecznie lepsza na DDR3 (chociaż nie na tyle znacząco, żeby usprawiedliwić cenę), to pozostaje tylko jedna rzecz do przewidzenia – przyszła cena i przewidywany rozmiar pamięci w nowych komputerach. Jak pokazuje przykład gier Crysis, Hellgate: London, Supreme Commander i wielu innych, obecne gry bardzo mocno uderzają w 32-bitową granicę przestrzeni adresowej. Oznacza to, że przyszłe gry, w ciągu roku, będą znacznie powyżej 4GB (przewiduję to na podstawie historycznych przypadków - wejścia 386, zamiany dyskietek na płyty CD, CD na DVD itd.). Być może nie jako bezpośrednie wymaganie, ale żeby cieszyć się pełną zawartością nowej gry (albo chociaż większością tego, co fajne i nowe) trzeba będzie posiadać co najmniej 8GB pamięci. To razem z wejściem procesora Intela i7 (Nehalem), który będzie korzystał z trójkanałowej pamięci (trzy moduły, aby uzyskać maksymalną przepustowość), sprowadzi ceny DDR3 w okolice dzisiejszych cen DDR2, powoli przejmując cały rynek.
 
Producenci pamięci utrzymują produkcję starych modułów zawsze w taki sposób, że ceny znacznie wzrastają. Tak się stanie jednak pewnie dopiero już w trakcie pełnej dominacji DDR3, czyli nie będzie łatwo wypatrzeć dobrego momentu sprzedaży DDR2 w celu zamiany. Przy takiej sytuacji też może się liczyć chęć sprzedania i wymiany procesora/płyty głównej, które tanieją swoim rytmem. Późniejsze przejście na i7 najprawdopodobniej okaże się nieopłacalne w każdym przypadku, tak jak dawniej przechodzenie z DDR1 na DDR2 z procesorami Conroe.
 
Z tych wszystkich powodów optymalny jest zakup dzisiaj 4GB DDR3, jeśli w planach jest PC na dwa lub trzy lata. 4GB DDR2 jest optymalne, jeśli sprzęt ma być kompletnie zmieniony w ciągu jednego roku, maksymalnie półtora. Rozbudowa zestawu na DDR2 może być problematyczna, bo większe moduły mogą nie tanieć. Z mniejszych może być ciężko złożyć zestaw o dobrej wydajności. Im więcej modułów, większy ich rozmiar oraz wyższe taktowanie, tym większe wydzielanie ciepła i wymagane napięcie (nie na wszystkich płytach dostępne w wymaganym zakresie – tanie nie posiadają takiej opcji w ogóle!), aby wszystko chodziło stabilnie. Przy DDR2 uzyskanie 8GB+ RAMu może być na tyle problematyczne, że trzeba będzie stosować aktywne chłodzenie lub niższe częstotliwości pracy i słabsze timingi. Doprowadzi to do znacznych różnic w wydajności pomiędzy DDR2 i DDR3.
 
Nie są to oczywiście jakieś definitywne wnioski. Trzeba brać pod uwagę sprzęt, który się aktualnie posiada (jeśli wymiana nie jest pełna), liczbę dostępnych slotów na moduły pamięci w wybranej płycie, limity chipsetów itd.
Jedno jest pewne – przyszły komputer gracza będzie miał 64-bitowy system operacyjny i będzie to Windows Vista lub jego następca. Wprawdzie Microsoft zapowiedział nową wersję Windows również w 32-bitowej odmianie, ale pewnie jej udział w rynku nie przekroczy udziału XP 64 bit Edition. Może będzie ona skierowana do tzw. urządzeń wbudowanych lub komputerów przenośnych. PC gracza będzie posiadał sprzęt znacznie poza możliwościami takiego systemu.

Zamieścił: pyton, dnia: 18:37:38, Thursday 09. October 2008

Komentarze:

1: Gumi
[18:50:18, Thursday 09. October 2008] , Zgłoś do moderacji

[19:05:12, Thursday 09. October 2008] , Zgłoś do moderacji

3: pyton, Support
[21:28:51, Thursday 09. October 2008] , Zgłoś do moderacji

4: Duda
[22:31:12, Thursday 09. October 2008] , Zgłoś do moderacji
No niezle :)
GJ Pyton pisz wiecej.

[00:36:01, Sunday 12. October 2008] , Zgłoś do moderacji

[14:46:59, Friday 17. October 2008] , Zgłoś do moderacji
dobry art aczkolwiek ja troche w tym siedze i wszystiego dokladnie nie pojalem a co dopiero inni :D

Więcej?

Chcesz znaleźć informacje na konkretny temat? Przejrzyj hasła, których najczęściej dotyczą dodane ostatnio nowości! WC3L, TURNIEJ, WCG, NETWARS, LCW, WORLD CYBER GAMES, TERROR, DOTA, GRUBBY, MYM, PALADYN, WYWIAD, REPPACK, WARCRAFT, BLIZZARD, MOON, PORADNIK, POL-TEAM, BIOT, POLSKA, ESL, KONKURS, LIGA, WORLD ELITE, FUZJA, NGL-ONE, ENC, NGL, TOD, TDEL, SPQR, SLH, MOUZ, PGS, TOUR, GFO, WILQ, BRONZE, KODE5, WILDA, PATCH, TEAM FIGHTING, LADDER, REPREZENTACJA, SILVER, HEADSHOT, EXTREME MASTERS, HEYAH, FLY100%, VOODOO, LYN, KUJA, BIOHAZARD-TEAM, BVG, WICKED, ESWC, ALMOST, TH000, ACIS, KWAKI, CYKLOP, SHOW, KLIMO, REPLAYPACK, INCUP, CLAN BASE, HOORAI, SASE, ELIMINACJE, FINAłY, FNATIC, POLTEAM, SHOWMATCH, WCG 2006, IEST, SRS, FINAł, CYBERSPORT, WE.EU, PLD, SKY, PRAE, REMIND, JAGR, CASIN, LAN, REPLAYS.PL, CHALLENGE, ANIMATOR, 2007, BATTLENET, CARMAC, HAPPY, NATIONS, STARCRAFT, PEDAL, KONKURSIWO, W3ARENA

Copyright © Wszelkie prawa zastrzeżone,
kopiowanie tylko za zgodą właściciela.
2003/2007 by: CyklOP, Muzami, Julas [ Mapa Strony ]
Replayów w bazie: 19538 Kont użytkowników: 11428

Pomysł, oskryptowanie, administracja: CyklOP [jak kupić zagraniczne akcje] [Jak wypełnić W-8BEN] [Jak tanio wymienić walutę] [deutschtests]
Design: Muzami, art w topie strony nadesłał Z4buZa
Skrypt obsługujacy replaye: Juliusz 'Julas' Gonera [ Replay Parser ]
Wykonano w czasie 0.36727809906006 sekund