Jakie urządzenie sprzętowe zjada 1,4 GB mojej 4 GB pamięci RAM?

5

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”:

Resource Monitor Screenhot

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:

HD Graphics Control Center

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ę

Resource Monitor and Control Center after running WebGL example

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?

mihi
źródło
Przynajmniej w dawnych czasach było całkiem normalne, że karta graficzna z laptopem używała pamięci RAM laptopa do „buforów”. Zakładam, że o to tu chodzi. Jeśli chodzi o to, czy „zarezerwowana” przestrzeń jest rzeczywiście używana (lub kiedykolwiek będzie, w żadnych okolicznościach), trudno powiedzieć.
Daniel R Hicks
Oczywiście słyszałem także o scenariuszach, w których system może „wziąć” 4 GB, ale ze względu na konkretny używany chipset, sposób, w jaki jest zorganizowana magistrala adresowa, itp., Naprawdę obsługuje tylko mniejszą liczbę.
Daniel R Hicks
Co robi verwendung i Geandert oznaczać?
Jon
@ chipperyman573: In Verwendung = "W użyciu", Geändert = "Zmieniono" - przepraszam, nie mogę zainstalować langpack w mojej wersji na Win7 :(
mihi

Odpowiedzi:

5

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?

A32167
źródło
prawdopodobnie. ale ponieważ nigdzie nie można zmienić „maksymalnej” pamięci (a Intel wszędzie ogłasza, że ​​ilość wykorzystywanej pamięci może się dynamicznie zmieniać), a także nie pojawia się w menedżerze zasobów jako użyta, zaskoczy mnie to ...
mihi
Czy ktoś zna narzędzie / grę, która działa na Intel HD Graphics, która może zużyć więcej niż kilka MB pamięci graficznej, dzięki czemu mogę go przetestować i sprawdzić, czy ilość pamięci zarezerwowanej na sprzęt wzrasta (czego można oczekiwać, gdyby dynamicznie zmienia się ilość pamięci)?
mihi
Miałeś rację. Odpowiednio zaktualizowałem opis. Dzięki, odpowiedź zaakceptowana :)
mihi
0

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?

Joshua
źródło
Notebook został wyposażony w tę konfigurację pamięci RAM (1 bank o pojemności 4 GB), a także w Windows 7. Ponownie zainstalowałem Windows 7 pół roku temu (i zainstalowałem wszystkie sterowniki za pomocą Lenovo Update Wizard), ale nigdy nie spojrzałem monitor zasobów, ponieważ w ogóle nie potrzebowałem dodatkowej pamięci RAM, więc nie mogę stwierdzić, czy była już tam, kiedy ją dostałem.
mihi
0

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.

Zan Lynx
źródło
Sprawdziłem wszystkie menu mojej konfiguracji BIOS / UEFI (a nawet znalazłem narzędzie do testowania pamięci, które przetestowało moje 4 GB i nie znalazłem błędów), ale nie znalazłem żadnych ustawień „Pamięć” lub „RAM”.
mihi
0

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ć.

mihi
źródło