3 GB pamięci RAM zainstalowanej i wykrytej przez system BIOS, w systemie Windows Vista 32-bitowym wyświetlana jest tylko 2 GB


9

Próbuję zainstalować więcej pamięci RAM na 32 -bitowym komputerze z systemem Windows Vista, który używa płyty głównej X6DAL-XG, a ilość pamięci RAM zgłoszona w systemie BIOS wynosi 3 GB +, ale system Windows zgłasza tylko 2 GB zainstalowanej. Płyta główna ma 6 wnęk RAM, które zapełniłem różnymi kombinacjami 4 drążków 1GB i 2 drążków 512mb, ale bez względu na to, jak je skonfiguruję, Windows nie widzi więcej niż 2GB. Zdaję sobie sprawę, oczywiście, że 32-bitowy system Windows ma 3 GB pamięci, ale to nie tłumaczy, dlaczego zgłasza tylko 2 GB, gdy faktycznie (obecnie) zainstalowano 5 GB. Powinienem pomyśleć, że będę w stanie zobaczyć co najmniej 3 GB.

Zgodnie z listą specyfikacji płyty głównej minimalne wymagania pamięci RAM to DDR333 / 266 MHz zainstalowane w parach. Zrobiłem to dokładnie, a BIOS nie zgłasza żadnych problemów w POST.

Konfiguracja pamięci RAM (zgodnie z CPU-Z)

  • Slot nr 1: PQI MD6412ROE - 512 MB PC2700 (166 MHz)
  • Slot nr 2: PQI MD6412ROE - 512 MB PC2700 (166 MHz)
  • Slot nr 3: Kingston 128mx72D266C25 - 1024mb PC2100 (133mhz)
  • Slot # 4: Kingston KVR266X72RC25 / 1024 - 1024mb PC2100 (133 MHz)
  • Slot nr 5: Kingston 128mx72D266C25 - 1024mb PC2100 (133mhz)
  • Slot nr 6: Kingston KVR266X72RC25 / 1024 - 1024mb PC2100 (133 MHz)

Nie jestem pewien, czy powyższe specyfikacje pamięci kolidują z tym stwierdzeniem w instrukcji płyty głównej, czy nie:

Obsługa pamięci

X6DAL-XG obsługuje do 12 GB / 24 GB zarejestrowanej pamięci ECC DDR333 / 266 (PC2700 / PC2100). Płyta główna została zaprojektowana do obsługi modułów 4 GB (PC2100) w każdym gnieździe, ale przetestowano tylko moduły 2 GB. W przypadku korzystania z zarejestrowanej pamięci ECC DDR333 (PC2700) obsługiwane jest instalowanie czterech elementów pamięci podwójnej lub sześciu części pamięci pojedynczej.

Czy robię coś złego z pamięcią RAM, którą mam teraz, czy jest jakiś problem ze zgodnością, którego mi brakuje?

Dzięki!


Kilka więcej szczegółów

  • Raport CPU-Z dla maszyny
  • Przeprowadziłem kilka dodatkowych testów z tym problemem zarówno w systemie Ubuntu, jak i Windows Server 2008 i oba raportują również tylko 2 GB.
  • Próbowałem bawić się z funkcją Remap pamięci (Włącz / Wyłącz) w konfiguracji mostka północnego mojej płyty głównej, ale nie widziałem żadnych wyników.
  • Oprócz powyższego sprzętu mam jedną kartę graficzną PCI Express 256 MB i to wszystko na urządzenia peryferyjne. Nie wydaje mi się, żeby problemem było we / wy mapowane na pamięć.
  • Usunąłem 2 karty 512 MB i sprowadzam się do 4 kart 1 GB
  • Zaktualizowałem BIOS płyty głównej do najnowszej wersji producenta

Kolejna aktualizacja

Udało mi się przetestować tę konfigurację sprzętową na 64-bitowej kopii Ubuntu, a pamięć RAM jest w pełni wykrywana przy zainstalowanym 4 GB, ale bez względu na konfigurację RAM nie mogę znaleźć żadnego 32-bitowego systemu operacyjnego, który odczytałby więcej niż 2 GB. Pozostaje więc pytanie: dlaczego 64-bitowy system operacyjny może zobaczyć więcej niż 2 GB pamięci RAM, podczas gdy 32-bitowy system operacyjny zainstalowany na tym samym komputerze ma limit 2 GB?


Po przemyśleniach

Bardzo doceniam wkład wszystkich, jednak nadal nie uważam, że pomimo wszystkich waszych wysiłków odpowiedź na ten problem była prawidłowa. Dzięki @Goyuix dowiedziałem się, że korzystam z 64-bitowego procesora i nawet nie zdawałem sobie z tego sprawy, więc przynajmniej mam do obejrzenia.

Pomijając nieoczekiwany obrót wydarzeń, wygląda na to, że nagroda zostanie automatycznie przypisana do @Mark Booth z powodu wygaśnięcia nagrody, co niekoniecznie mam na myśli, ponieważ jego odpowiedź jest dobra ; to po prostu nie jest rozwiązanie tego konkretnego problemu. (Absolutnie bez obrazy, Mark, naprawdę doceniam twoją wysoką jakość odpowiedzi!)

W każdym razie dyskusja wygenerowana przez to pytanie była dla mnie niezwykle pouczająca (i powinna stanowić świetny materiał referencyjny dla przyszłych poszukiwaczy). Pierwotny problem został pomyślnie złagodzony dzięki zastosowaniu 64-bitowego systemu operacyjnego, ale nadal nie został rozwiązany . Niestety (dla mnie) nigdy nie będę naprawdę zadowolony, dopóki nie będę w stanie wskazać dokładnego problemu, więc jeśli w przyszłości ktoś zdoła wymyślić rozwiązanie, o którym nie wspomniano, proszę, opublikuj je.

Dziękuje wszystkim.


Jeśli masz dostępny system Windows 7, bardzo chciałbym zobaczyć, jak działa ta poprawka: superuser.com/questions/67444/…
Przełom

Co się stanie, gdy usuniesz dwa drążki 512 MB?
Przełom

@Breakthrough Próbowałem usunąć pendrive 512 MB, ale nie miało to żadnego znaczenia. Próbowałem każdej możliwej kombinacji parowania tego samego modelu z 6 dostępnymi pamięciami RAM.
Nathan Taylor,

Sprawdź dziennik zdarzeń systemowych, uruchamiając eventvwr.msc i szukając powiązanych komunikatów.
Mark Allen

@ Mark To nie jest izolowane tylko dla Windows - występuje również w Ubuntu. Dziennik zdarzeń nie wskazuje na problem sprzętowy.
Nathan Taylor,

Odpowiedzi:


3

Ponieważ w komentarzu wspomniano, że Server 2008 zgłasza tylko 2 GB, coś jest bardzo nie tak z twoją konfiguracją.

  1. Co zgłasza twój BIOS dla zainstalowanej pamięci RAM? Czy widzi 4 GB?
  2. Zgodnie z instrukcją:
    • Zmiana pamięci musi być włączona
    • Mirroring pamięci musi być wyłączony
  3. Jak są zainstalowane twoje moduły? Instrukcja określa, że ​​muszą być instalowane parami i że sparowane gniazda przylegają do siebie. Zgodnie z Twoim postem wygląda na to, że nie masz sparowanego barana zainstalowanego w sąsiednich gniazdach. Sprawdź fizyczną instalację modułów w stosunku do instrukcji płyty głównej / nadruku płyty głównej.
  4. Czy wypróbowałeś każdą parę modułów 1 GB osobno?
    • Jeśli tak, przetestuj każdą parę za pomocą Memtest86 +, aby upewnić się, że każda para działa poprawnie.
    • Jeśli każda para się wyewidencjonuje, spróbuj zmienić kolejność, w której są zainstalowane.

BIOS zgłasza 4 GB, podobnie jak CPU-Z. Zmiana mapowania pamięci jest włączona, a kopia lustrzana wyłączona. Dam mu kolejny strzał, ale jak pamiętam, parowanie pamięci RAM w inny sposób niż obecnie powoduje, że BIOS nie rozpoznaje go. Spróbuję memtest na poszczególnych parach i zobaczę, co się stanie.
Nathan Taylor,

Jakieś słowo na temat testowania poszczególnych par?
afrazier

Jak to się przyjęło? Nie wybrałem go, co oznacza, że ​​najlepiej oceniona odpowiedź powinna wziąć, nie?
Nathan Taylor

„Najwyżej głosowana odpowiedź utworzona po rozpoczęciu nagrody z co najmniej 2 głosami pozytywnymi zostanie automatycznie zaakceptowana”. (moje podkreślenie) To powiedziawszy, nadal masz problem, jeśli 32-bitowy serwer 2008 nie widzi wszystkich 4 GB. Jeśli jest to serwer produkcyjny, naprawdę powinieneś to rozwiązać.
afrazier

9

Biorąc pod uwagę powyższe dowody, dwie najbardziej prawdopodobne rzeczy do rozważenia to:

  • Sprzęt mapowany na pamięć ogranicza pamięć dostępną dla 32-bitowego systemu operacyjnego.

  • Windows sztucznie ogranicza pamięć dostępną dla systemu operacyjnego.

Ograniczanie sprzętu

W 32-bitowym systemie operacyjnym masz 4 GB przestrzeni adresowej. Wszelkie urządzenia peryferyjne z IO zamapowanym w pamięci (porty IO, karty sieciowe, karty graficzne, inne płyty główne lub karty rozszerzeń) zajmą część (zwykle dość małą) tej przestrzeni adresowej. Żadna pamięć używana dla IO zamapowanego w pamięci nie może być używana do pamięci głównej.

Najgorsze światy IO zmapowane w pamięci to karty graficzne. Jeśli masz dwie karty graficzne, każda z 1 GB lub pamięcią, zużyjesz 2 GB przestrzeni adresowej, pozostawiając tylko 2 GB pamięci głównej, bez względu na to, ile pamięci fizycznej zainstalowałeś.

Nie stanowi to problemu na komputerze z 64-bitowym systemem operacyjnym, ponieważ te 2 GB można zmapować z dala od głównej pamięci, ale w 32-bitowym systemie operacyjnym masz w sumie do 4 GB (bez korzystania z trików, które Microsoft wyłączył serwer 32-bitowy).

Sztuczne ograniczenie

Inną opcją jest to, że niektóre urządzenia lub oprogramowanie ograniczają ilość pamięci dostępnej dla systemu Windows, gdy został on zainstalowany, i że sztuczny limit jest nadal obecny, nawet po zainstalowaniu większej ilości pamięci.

Nigdy nie robiłem tego pod Vistą, ale pod XP uruchomisz msconfig i spojrzysz na „Opcje zaawansowane” na zakładce „BOOT.INI”. Jeśli ustawiono „/ MAXMEM”, XP ignorowałoby całą pamięć powyżej tego.

Przeszukując Internet, wygląda na to, że używasz bcdedit pod Vistą. Miły opis tego, jak go używać, można znaleźć tutaj . Jednak, jak zawsze, upewnij się, że rozumiesz, co robisz, zanim zadzwonisz z tymi rzeczami.

Inne możliwości, specyficzne dla systemów serwerowych / stacji roboczych

Przeglądając instrukcję X6DAL-XG , zastanawiam się, czy funkcja „Mirroring i oszczędzanie pamięci” jest włączona w Bios:

Wybierz Enabled, aby włączyć Memory RAS (-Mirroring and Sparing), aby umożliwić systemowi utworzenie kopii lustrzanej danych zapisanych w pamięci dla bezpieczeństwa danych. Opcje są Wyłączone i Włączone.

Domyślam się, że w trybie dublowania pamięci używane są tylko 4 banki, co wyjaśnia, dlaczego usunięcie 512 MB Dimmów nie miało znaczenia dla pamięci widocznej dla systemu Windows.


1
Obecnie korzystam z GeForce 7800GTX z 256 MB pamięci wideo w tym systemie, więc nie podejrzewam, że byłby bardzo gryzący w pamięci fizycznej.
Nathan Taylor,

To świetna odpowiedź, ale o ile nie wiem, żaden z tych problemów nie występuje w oparciu o konfigurację sprzętu i fakt, że problem dotyczy również innych systemów operacyjnych.
Nathan Taylor

Na podstawie mojego odkrycia, że ​​pamięć RAM jest w pełni wykrywana w 64-bitowym systemie operacyjnym, myślę, że można bezpiecznie powiedzieć, że ta odpowiedź nie jest istotna. Dziękuję ci jednak tak samo!
Nathan Taylor

ponieważ widzisz całą pamięć RAM w 64-bitowym systemie operacyjnym, sugerowałbym, że ta odpowiedź jest bardzo istotna
HorusKol

@ Mark Obecnie mam Mirroring i oszczędzanie pamięci ustawione na wartość domyślną „Wyłączone”.
Nathan Taylor

2

Nie rozwiązując problemu od razu, może pomóc w zdiagnozowaniu go - Czy próbowałeś uruchomić Linux Live CD, taki jak Ubuntu ? Idealnie powinieneś spróbować uruchomić zarówno wersję 32-bitową, jak i 64-bitową - 64-bitowa powinna zobaczyć dodatkową pamięć RAM bez problemu, a jeśli widzi tylko dwie, prawie na pewno masz problem związany ze sprzętem. Jeśli 32-bitowy system Linux widzi tylko 2 GB pamięci RAM, to jak stwierdził Mark Booth , prawdopodobnie zmapowałeś pamięć we / wy zajmując resztę.

Karty graficzne wydają się być najgorszymi przestępcami w zjadaniu dostępnej pamięci RAM, nie masz zainstalowanych dwóch kart 1 GB, prawda?

Ponowne mapowanie pamięci

Wiele współczesnych systemów BIOS będzie miało opcję zmiany mapowania pamięci, aby uniknąć problemów z MMIO - chociaż działa to tylko w 64-bitowych systemach operacyjnych lub systemach obsługujących PAE. Sprawdź BIOS dla tego ustawienia.

http://support.microsoft.com/kb/929605


W systemie działa obecnie pojedynczy 7800GTX (256 MB), więc nie podejrzewam, że to jest przyczyną problemu
Nathan Taylor

@Nathan - czy próbowałeś któregoś ze smaków linuksowych? Uwaga: bez względu na to, ile zainstalowanej i widocznej pamięci RAM, pojedynczy proces nigdy nie będzie w stanie zużyć więcej niż 2 GB w 32-bitowym systemie operacyjnym Windows. Gdzie widzisz zgłoszone 2 GB? BIOS? Właściwości systemu Co się stanie, jeśli wyciągniesz dwa drążki 512 MB?
Goyuix,

@Goyuix Miałem wrażenie, że 32-bitowy system Windows może zająć do 3 GB, nawet jeśli przydzieli tylko 2 GB na procesy. BIOS zgłasza 4 GB pamięci RAM, podczas gdy system operacyjny zgłasza tylko 2 GB. Nie próbowałem Linuksa, ale próbowałem zmienić drążki, w tym usunąć moduły DIMM 512 MB.
Nathan Taylor

@Nathan teoretycznie Win32 może rozwiązać wszystkie 4 GB pamięci, problem polega na tym, że architektura x86 korzysta z mapowanych we / wy pamięci dla wielu urządzeń - zwykle największym przestępcą są karty graficzne ze względu na ich duże rozmiary pamięci. Karta 512 MB zmniejszy maksymalną całkowitą adresowalną pamięć RAM do 3,5 GB. Umieść dwie karty wideo o pojemności 1 GB w komputerze, a system Win32 nie będzie w stanie zobaczyć więcej niż 2 GB pamięci RAM ogółem. Inne urządzenia również używają mapowanych we / wy pamięci, chociaż zazwyczaj ich zakres adresów wynosi co najwyżej kilka megabajtów i pozostaje w dużej mierze niezauważony.
Goyuix

1
@Nathan: To nie tylko karta wideo. Chipset systemowy, urządzenia dodatkowe i zintegrowane oraz konfiguracja BIOS-u wchodzą w grę, ponieważ tak wiele rzeczy korzysta z MMIO. Ponadto 32-bitowi klienci Windows mogą używać adresów pamięci do 4 GiB. Server 2003 Std 32-bit może adresować do 4 GiB pamięci RAM, bez względu na używane adresy. Enterprise & DataCenter może rozwiązać wiele, wiele więcej. Cały „32-bitowy limit GiB Windows 4” jest ograniczeniem licencyjnym, niczym więcej. Ilość wirtualnej przestrzeni adresowej dostępnej dla pojedynczego procesu stanowi całkowicie odrębny problem.
afrazier

1

Jeśli wszystkie systemy operacyjne zgłaszają 2 GB, problem prawdopodobnie dotyczy płyty głównej.

Nie podoba mi się fakt, że używasz dwóch różnych kart pamięci, nawet jeśli są one zainstalowane w parach.
Sugerowałbym użycie tylko jednego rodzaju karty pamięci.

Według ramshopping.com , tylko karty KVR są zalecane dla twojej płyty głównej.
Spróbowałbym wyjąć dwie pozostałe karty i sprawdzić, czy maszyna nadal uruchamia się z 2 GB.
Jeśli tak, zastąpiłbym dwie niedziałające karty kartami identycznymi z tymi, które działają.


1
Chociaż jest to możliwe, nie sądzę, aby stanowiło to problem, ponieważ wypróbowałem 4 różne rodzaje pamięci RAM, które były wszystkie 1 GB pamięci i wszystkie z nich, 4, które zainstalowałem teraz, są jedynymi 4, które zostały w pełni wykryte przez BIOS.
Nathan Taylor

@Nathan Taylor: Ale czy użyłeś 4 identycznych patyków?
harrymc

Nie, tylko 4 patyczki, które widzisz powyżej.
Nathan Taylor

@Nathan Taylor: Właśnie to miałem na myśli - używając 4 pałeczek tego samego typu.
harrymc

Wykorzystuje 4 Kingstona - 2 KVR, 2 128mx - jak to było od jakiegoś czasu ..
Nathan Taylor

0

Nie wiem, czy to rozwiąże problem, ale nie wydaje się, żebyś poprawnie parował moduły RAM. Zgodnie ze stroną ze specyfikacją pary powinny być rozstawione obok siebie, zgodnie z parą niebieskich i czarnych obok siebie.

Twoja konfiguracja wymieniona powyżej nie wydaje się być zgodna z tym. Możliwe, że rzuca to system operacyjny próbujący odczytać dwa kanały.


0

Powinieneś sprawdzić swój BIOS. Wiele z nich ma funkcję o nazwie „Tryb instalacji systemu operacyjnego” lub podobną nazwę, która ogranicza ilość pamięci RAM, którą widzi system operacyjny. Było to wymagane, ponieważ niektóre instalatory systemu operacyjnego zawiodłyby, gdyby dostępna była zbyt duża ilość pamięci. Wyłączenie to powinno rozwiązać.


Rozejrzałem się po BIOS-ie i podręczniku, ale nie widzę żadnych opcji podobnych do tego.
Nathan Taylor,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.