Używam Windows 7 64-bitów w notebooku Lenovo 530 z 4 GB pamięci RAM.
Jednak mój menedżer zadań pokazuje, że ilość pamięci RAM wynosi tylko 2,6 GB, a monitor zasobów pokazuje, że 1,4 GB jest „używane przez sprzęt”:
Oczywiście chciałbym użyć trochę więcej mojej pamięci RAM (w tej chwili nie można uruchomić VirtualBox VM na przykład za pomocą 2 GB pamięci RAM).
Poszedłem więc na poszukiwania, które urządzenie może być powodem, dla którego mam tak mało dostępnej pamięci RAM i czy mogę zaktualizować sterowniki lub wyłączyć je ...
Najpierw próbowałem 64-bitowego systemu Linux Live ISO (grml64), aby wykluczyć jakiekolwiek problemy ze sterownikami, a sytuacja pamięci jest taka sama (również tylko 2,6 GB w /proc/meminfo
). Inni sugerują msconfig
mógł ustawić limit pamięci, ale nie został ustawiony (a jeśli ustawię na przykład 3,5 GB, dostępna pamięć zmniejsza się o 0,5 GB).
Potem spróbowałem meminfo -r
które to wyświetla:
MemInfo v2.10 - Show PFN database information
C:\Users\Michi\Desktop>meminfo -r
Copyright (C) 2007-2009 Alex Ionescu
www.alex-ionescu.com
Physical Memory Range: 0000000000001000 to 000000000009D000 (156 pages, 624 KB)
Physical Memory Range: 0000000000100000 to 0000000020000000 (130816 pages, 523264 KB)
Physical Memory Range: 0000000020200000 to 0000000040004000 (130564 pages, 522256 KB)
Physical Memory Range: 0000000040005000 to 00000000871F2000 (291309 pages, 1165236 KB)
Physical Memory Range: 0000000100000000 to 000000011F600000 (128512 pages, 514048 KB)
MmHighestPhysicalPage: 1177088
Dlatego pamięć od 0x871F2000 do 0x100000000 jest bezużyteczna, czyli około 1,8 GB, ale zakres użytecznej pamięci powyżej 4G to tylko około 500 MB, różnica polega na tym, że 1,4 GB „poluję”.
Zwykle moim oczekiwaniem (ze starych komputerów również z czasów DOS) jest to, że gdy sprzęt „mapuje” pewien zakres pamięci, mapuje go swoją własną (wirtualną lub rzeczywistą) pamięcią, a ilość pamięci „pojawi się” zakresu pamięci (jak to ma miejsce w przypadku około 500 MB powyżej 4 GB).
Mapa pamięci w menedżerze urządzeń wygląda tak, nic o 0x871F ... albo:
[00000000000A0000 - 00000000000BFFFF] Intel(R) HD Graphics 4000
[00000000000A0000 - 00000000000BFFFF] PCI bus
[00000000DFA00000 - 00000000FEAFFFFF] PCI bus
[00000000E0000000 - 00000000EFFFFFFF] Intel(R) HD Graphics 4000
[00000000F0000000 - 00000000F03FFFFF] Intel(R) HD Graphics 4000
[00000000F0400000 - 00000000F0BFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
[00000000F0C00000 - 00000000F13FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
[00000000F1400000 - 00000000F1403FFF] Realtek PCIe GBE Family Controller
[00000000F1400000 - 00000000F14FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 4 - 1E16
[00000000F1404000 - 00000000F1404FFF] Realtek PCIe GBE Family Controller
[00000000F1500000 - 00000000F1CFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
[00000000F1D00000 - 00000000F1D03FFF] 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
[00000000F1D00000 - 00000000F1DFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 2 - 1E12
[00000000F1E00000 - 00000000F25FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
[00000000F2600000 - 00000000F260FFFF] Intel(R) USB 3.0 eXtensible-Hostcontroller
[00000000F2610000 - 00000000F2613FFF] High Definition Audio-Controller
[00000000F2614000 - 00000000F26140FF] Intel(R) 7 Series/C216 Chipset Family SMBus Host Controller - 1E22
[00000000F2615000 - 00000000F261500F] Intel(R) Management Engine Interface
[00000000F2618000 - 00000000F26187FF] Intel(R) 7 Series Chipset Family SATA AHCI Controller
[00000000F2619000 - 00000000F26193FF] Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E26
[00000000F261A000 - 00000000F261A3FF] Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E2D
[00000000F8000000 - 00000000FBFFFFFF] Hauptplatinenressourcen
[00000000FE800000 - 00000000FE80FFFF] Hauptplatinenressourcen
[00000000FED00000 - 00000000FED003FF] Hochpräzisionsereigniszeitgeber
[00000000FED10000 - 00000000FED17FFF] Hauptplatinenressourcen
[00000000FED18000 - 00000000FED18FFF] Hauptplatinenressourcen
[00000000FED19000 - 00000000FED19FFF] Hauptplatinenressourcen
[00000000FED1C000 - 00000000FED1FFFF] Hauptplatinenressourcen
[00000000FED20000 - 00000000FED3FFFF] Hauptplatinenressourcen
[00000000FED40000 - 00000000FED44FFF] Trusted Platform Module 1.2
[00000000FED45000 - 00000000FED8FFFF] Hauptplatinenressourcen
[00000000FED90000 - 00000000FED93FFF] Hauptplatinenressourcen
[00000000FEE00000 - 00000000FEEFFFFF] Hauptplatinenressourcen
[00000000FF000000 - 00000000FFFFFFFF] Hauptplatinenressourcen
[00000000FF000000 - 00000000FFFFFFFF] Intel(R) 82802 Firmwarehub
[00000000FFFFF000 - 00000000FFFFFFFF] Hauptplatinenressourcen
A ponieważ Intel HD Graphics korzysta z pamięci współdzielonej, sprawdziłem i używa tylko 83 MB w tej chwili:
Jakieś pomysły, jak odzyskać pamięć?
EDYTOWAĆ:
Notebook został wyposażony w tę konfigurację pamięci RAM (1 bank o pojemności 4 GB), a także z systemem Windows 7. Ponownie zainstalowałem Windows 7 pół roku temu (i zainstalowałem wszystkie sterowniki za pomocą Lenovo Update Wizard), w którym to czasie zainstalowałem aktualizację BIOS / firmware, ale nigdy nie sprawdzałem monitora zasobów, ponieważ w ogóle nie potrzebowałem dodatkowej pamięci RAM, więc nie mogę stwierdzić, czy ten efekt już tam był, kiedy go dostałem.
EDIT2:
Najwyraźniej @ A32167 ma rację. Znalazłem mały przykład ładowania tekstur w WebGL, zmodyfikowałem go, aby załadować teksturę 8192x8192 (patrz http://jsfiddle.net/q4SAS/ ), otworzył go w Google Chrome i podczas gdy „Pamięć grafiki w użyciu” wzrosła do 918 MB, zarezerwowana pamięć sprzętowa nie zmieniła się
Chociaż odpowiada to moje pytanie, pozostaje oczywiście pytanie, dlaczego Lenovo reklamuje się z dynamicznym przydzielaniem pamięci graficznej i czy istnieje sposób na zmniejszenie przydzielonej pamięci ...
EDIT3:
Niestety, to nie koniec historii - patrz tutaj: Jakie urządzenie sprzętowe zużywało 1,4 GB mojej 4 GB pamięci RAM, a teraz nagle po tym, jak żadne zmiany sprzętu nie zjadły 2,2 GB?
verwendung
iGeandert
oznaczać?Odpowiedzi:
Czy nie jest możliwe, że na powyższym ekranie, gdzie masz konfigurację karty graficznej, jest 1138 „maksimum” pamięci zarezerwowany na kartę, chociaż w tej chwili używa tylko 83?
źródło
Czy to możliwe, że nie jest to obsługiwana konfiguracja? Sugerowany przez ten post, prawdopodobnie duplikat:
Dlaczego cała moja dodatkowa pamięć RAM jest oznaczona jako „zarezerwowana sprzętowo” w systemie Windows 7?
źródło
Możliwe, że BIOS ma na to poprawkę. Wyszukaj ustawienia podnoszenia pamięci lub otworu pamięci.
Robią to, modyfikując mapy pamięci, tak aby rzeczywista pamięć RAM była mapowana powyżej 4 GB, pozostawiając pusty otwór na mapie pamięci RAM dla urządzeń, które będą używane.
Powodem tego ustawienia jest to, że umieszczenie pamięci RAM powyżej 4 GB uniemożliwia dostęp do 32-bitowych systemów operacyjnych.
źródło
W końcu znalazłem poprawną odpowiedź i odzyskałem pamięć.
Jak wyszczególniono w https://superuser.com/a/762821/1724 (odpowiedź na pytanie uzupełniające w tym pytaniu), cechą implementacji UEFI jest aktualizacja mapy pamięci (przechowywanej stale w zmiennych UEFI) przed każdym uruchomieniem w przypadku jakichkolwiek zmian. Najwyraźniej nie bierze się pod uwagę, że przed uruchomieniem inny wpis rozruchowy UEFI mógł się nie udać i nie oczyścić wykorzystanej pamięci (w zależności od programu ładującego), co spowodowało zmniejszenie dostępnej pamięci po każdym niepowodzeniu rozruchu UEFI.
Ręczne ustalanie mapy pamięci (przechowywane w zmiennej UEFI
MemoryTypeInformation
) rozwiązuje problem - podczas gdy implementacja referencyjna TianoCore sugeruje, że usunięcie zmiennej powinno również działać, nie chciałem ryzykować.źródło