Показать полную графическую версию : Vista x64 не видет 4Gb памяти
Может попробовать переставить висту и ещё в биосе найди где встроеная графика и отключи если стоит на авто то ждрёт память на моём рабочем таже ситуация правда там ХР и оперы 1.5 гб так если не отключить то гдето 300-400мб исчезает мать не помню точно, какая то гигабитовская.
Дело в том,что БИОС для встроенной графики нет режима desabled
ura1961
Вы так и не прочитали статью http://www.ixbt.com/soft/windows-4gb.shtml
Вот выдержка
...
Проверим, как влияет на доступный объем ОЗУ размер памяти видеоадаптера. Заменим плату со 128 Мб на такую же модель, но с 512 Мб.
...
Как видим, ничего не изменилось. Размер используемого адресного пространства задается не самим адаптером, а оборудованием шины AGP или PCI-E.
...
Например, установка четырех видеоадаптеров может заметно ограничить размер используемого ОЗУ (показанная таблица распределения ресурсов была приведена на форуме 3Dnews участником HarfulL).
...
Как видно, видеоадаптеры заняли четыре области адресного пространства по 256 Мб каждая, начинающиеся на границах 2,5, 2,75, 3,0 и 3,25 Гб. (В данном примере был установлен только один гигабайт ОЗУ).
...
У любопытного читателя уже наготове вопросы: а каким образом адреса распределяются между устройствами? Можно ли каким-нибудь способом «сдвинуть» все адреса в одну сплошную кучу и освободить для ОЗУ дополнительно десятки или даже сотни мегабайт адресного пространства?
...
И задача конфигурирования компьютера с несколькими дополнительными устройствами была не слишком простым делом. Поэтому была предложена технология plug-and-play. В то время она была у всех на слуху, а сейчас стала совершенно обыденным явлением. Суть этой технологии в том, что используемые устройством адреса памяти, порты ввода-вывода и линии прерываний могут конфигурироваться программно. Это делает либо BIOS на этапе подготовки компьютера к загрузке, либо операционная система в ходе своей загрузки. Программа конфигурирования опрашивает устройства, определяет, какие ресурсы могут использоваться каждым из них, а затем распределяет эти ресурсы между устройствами.
Границы конфигурирования каждого устройства задает его изготовитель. Причем для упрощения дешифраторов адресов ступени конфигурирования обычно кратны размеру ресурсов, используемых устройством. Например, если некая «железка» имеет ОЗУ размером 32 Кб, то и начальный адрес, как правило, можно установить только кратным этому размеру или даже большей величине.
В результате сдвигать адреса разных устройств «вплотную» не оказывается возможным, хотя теоретически эта задача и реализуема.
Вывод 1. Хотя 32-разрядные версии Windows XP и Windows Vista могут использовать четыре гигабайта ОЗУ, из-за ограничений, накладываемых архитектурой используемого оборудования, эта величина обычно оказывается в пределах 3-3,5 Гб.
Вывод 2. Добавление устройств, использующих шины PCI или PCI-E, может уменьшить количество доступного системе ОЗУ.
...
Вот адрес интернет переводчика http://www.translate.ru/text_Translation.aspx?prmtlang=ru
И обратите внимание в данном случае согласно скрина - эта память "съелась" именно GeForce 9800
Эту статью,я прочитал и у меня возник вопрос. Так все же можно изменить границу для устройств?
Я вчера обновил БИОС.
Для сведения я приведу полную конфигурацию компьютера.
Процессор:Intel Core2 Quard Q9400 2.66
Память: 2*2Gb в двухканальном режиме
Материнская плата : Foxconn G31MX-K Биос последний,используется Award bios
Видеокарта:GeForce 9800GT 512Mb
Жест диск SATA 500Gb
DVDRW SATA
Еще в материнскую плату впаян разъем и он пределяется как внут IK порт
Еще не знаю,полностью ли отключен внутр. видеочип.
У меня есть другой комп,у которого установлен WinXP,правда там P4 и 1Gb памяти и видеокарта AGP и там вся память видна
В том и факт что распределение памяти зависит от материнки и от установленных дров (т.е. их способность в адресоваться в адресное пространство выше 4Gb)
На вашем втором при уст.1Gb видео для AGP возможно лежит в диапазоне второго Gb. У меня например на 2Gb озу видео от Geforce лежит в диапазоне от E3000000 h ( от 3,6Gb)
При обновлении bios получается нечего не изменилось, так и функций новых не добавилось.
И последнее, а случайно vista 64 не ставилась поверх Vista 32, и драйвера все установлены последнее (может в каком то проблема с выделением места в "адресном пространстве" ), и ставилась сразу на 4Gb.
Может еще попробовать команду, хотя в Vista 64 ее применение не надо, она сама должна знать.
BCDEdit /set PAE forceenable
Через Винду обновление BIOS,она обновляет только код процессора,судя по описанию,и прога почему то 2 раз предлагает установить тот же БИОС.
Она Версию Award не обновляет. Просто в этом БИОС,все запутано,может и функ типа Memary Remar подругому наз,просто я не знаю как. Опер систему я всегда делую Формат диска,поверх хуже работает,а вообще не поддерж обновление с 32бит до 64бит. С дровами я ставил драйвера произ,т.е. Видеокарты Palit 512Mb Geforce 9800GT, версия у них ниже,чем у Nvidia. Так же с интегр звуком- версия 1,96, а в интернете уже 2,12
Все 4GB были установлены сразу.
BCDEdit /set PAE forceenable
Все вроде то же самое. А может действительно это только для 32бит системы ?
Просто если не получается добиться через железо, то можно "пошаманить" програмно.
Как понять пошаманить програмно?
Вы это уже пытались
BCDEdit /set PAE forceenable
BCDEdit /set nolowmem on
и дрйверами под видюху.
Интересно было бы еще проверить возможность по работе с виртуальной более 4Gb ну например с 5Gb (32bit это не сможет поддержать), а у вас?
Без опции PAE размер файла подкачки для 32-разрядных операционных систем не может быть больше 4 Гбайт (это максимальный размер общего виртуального пространства). Опция PAE позволяет адресовать до 64 Гбайт виртуального пространства для 32-разрядных систем, и до 1024 Гбайт для 64-разрядных операционных систем.
Опция PAE является функцией диспетчера памяти и позволяет расширить максимальный доступный объем виртуальной памяти.
Далее все что написано, непроверенно так как нет исходного "материала" , если что то придется форматировать и устанавливать заново. Я бы попробовал, но решать вам.
Так как вся загрузка идет теперь из файла расположенного в каталоге \BOOT\bcd. После загрузки ПК формируется ветка реестра HKLM\BCD00000000 куда записываются данные из этого файла.
Использовался материал regedit ветка у меня идентификатор
HKEY_LOCAL_MACHINE\BCD00000000\Objects\{2a0cb476-f6dc-11dc-9f6c-9c626ce0cd6d}
HKEY_LOCAL_MACHINE\BCD00000000\Objects\{2a0cb476-f6dc-11dc-9f6c-9c626ce0cd6d}\Elements\15000007
Параметр Element REG_BINARY 00 00 00 80 00 00 00 00
(15000007 содержит /MAXMEM, 0x80000000 = 2048Gb кол-во памяти ОЗУ )
Сверка с командой bcdedit.exe /enum /v
Сылка на описание команд bcdedit
http://msdn.microsoft.com/en-us/library/aa906217.aspx
http://msdn.microsoft.com/en-us/library/ms791501.aspx
http://msdn.microsoft.com/en-us/library/aa906211.aspx
Можно так же использовать VistaBootPRO, для сохранения и восстановления bcd.
Есть еще один механизм, но он требует понимания работы примерное вот что зная что у вас Vista зарезервировала например один из блоков область памяти из последнего скрина ~256MB
D0000000 - DFFFFFFF (c 3328MB - 3584MB) - Intel G33/G31 .... Express Chipset PCI Express ...
D0000000 - DFFFFFFF (c 3328MB - 3584MB) - NVidia Geforce 9800
и т.д. ниже
можно попытаться сказать системе, что данная память повреждена или ее просто нет (т.е. через bcdedit.exe сказать что часть с 3328MB сбойная - D0000000) ключ truncatememory, сначала бэкап системы bcd в файл C:\BCDBackup на всякий случай, потом на экран данные
bcdedit /export "C:\BCDBackup"
bcdedit.exe /enum /v
Определить идентификатор записи в загрузке , секция "Загрузка Windows" в {.............} например, у вас цифры другие будут
Загрузка Windows
------------------------
идентификатор {2a0cb476-f6dc-11dc-9f6c-9c626ce0cd6d}
device partition=C:
....
truncatememory 0x80000000
Как данное число перевести в нормальный вид, данное число 0х..... надо перевести в десятичное, просто в windows калькуляторе в режиме "Hex" набрать данное число и потом нажать на "Dec" получим десятичное число, делим его два раза на 1024 получаем MB. Например нажать "Hex" набрать D0000000, выбрать "Dec" = 3489660928, ну или делим на /1024/1024 = 3328MB
Команда
bcdedit.exe /set truncatememory [адрес памяти]. Он позволяет указать адрес памяти, расположенная за которым часть памяти будет игнорироваться Windows.
Далее говорим системе, не ошибитесь в идентификаторе у вас он другой
C:\Windows\system32>bcdedit.exe /set {идентификатор-какой-у-вас} truncatememory 3489660928
Проверяем
bcdedit.exe /enum /v
Кол-во памяти изменилось.
Команда блокировки PCI.
bcdedit.exe /set usefirmwarepcisettings [yes | no]
Она позволяет разрешить или запретить PCI-устройствам динамического назначения IRQ и других ресурсов ввода-вывода.
bcdedit.exe /set usefirmwarepcisettings no
Перегрузить. Переставить драйвера на видео, на материнку.
Далее вернуть память на место
bcdedit.exe /removevalue {идентификатор-какой-у-вас} truncatememory
Проверить наличие
bcdedit.exe /enum /v
Снять блокировку с PCI
bcdedit.exe /set usefirmwarepcisettings yes
Может и изменится.
Все делаете на свой страх и риск.
У меня эти ветки выглядят так
http://s61.radikal.ru/i171/0901/2f/562485bc3617.jpg
http://s50.radikal.ru/i130/0901/6f/1a484d65e64e.jpg
И с чего начинать по первому варианту ?
У вас идентификатор {6db89a72-de7f-11dd-9393-e78b4ec9bfb8}
Есть два варианта
1-попробовать (но есть немаловажный факт данная материнская плата у вас поддерживает только до 4Gb и не байтом больше, следовательно думаю Vista 64 по команде которую делали выше и не смогла переадресовать драйвера выше 4Gb освободив основную)
2-оставить как есть и смириться
Все что здесь написано - теория, мной не проверялась.
Странно, что в ветке {6db89a72-de7f-11dd-9393-e78b4ec9bfb8} вообще нет "ни слова" о доступной памяти, truncatememory, ни слова о numproc 2, ну да ладно.
А для информации это выглядит так:
1. bcdedit /export "C:\BCDBackup"
(сохранить)
2. bcdedit.exe /set {6db89a72-de7f-11dd-9393-e78b4ec9bfb8} truncatememory 3489660928
(установим видимую до десятичной 3489660928 байт или 0xD0000000 )
3. bcdedit.exe /enum /v
(проверяем, что есть ключ truncatememory и он будет равен 0хD0000000)
4. bcdedit.exe /set usefirmwarepcisettings no
(запрещаем изменение PCI, по моему данный параметр можно отключать через bios)
-------------------------------------
5. перегрузиться
(как поведет не знаю, все таки видео, при перезагрузке найдет изменения что-то должна будет сделать)
6. переустановить драйвера на материнку тоже
-------------------------------------
7. bcdedit.exe /removevalue {6db89a72-de7f-11dd-9393-e78b4ec9bfb8} truncatememory
(вернуть всю доступную на место)
8. bcdedit.exe /set usefirmwarepcisettings yes
(снять блокировку с PCI если надо, по моему данный параметр можно отключать через bios)
9. bcdedit.exe /enum /v
(проверить)
Посмотреть изменения по распределению памяти. Скорей всего не чего не изменится т.к. см. выше не мало важный факт. Для воcтановления BCD прежнего.
bcdedit /import "C:\BCDBackup"
bcdedit.exe /set {6db89a72-de7f-11dd-9393-e78b4ec9bfb8} truncatememory 3489660928
Сразу здесь выдает ошибку. А может у Висты защита какая то стоит?
В настройках BIOS распределением ресурсов заведует OS или BIOS?
Должно стоять на OS.
В моем Биос нет настройки,кто распределяет ресурсы.
Нашел тут одну команду BCDEdit /set PAE ForceEnable
и сразу вкл аппаратная поддержка DEP процессором
Может есть и для памяти команда ?
ura1961,
у меня все команды запускаются, нужно под administratorom
DMGarikk
11-01-2009, 14:05
imho явно проблема с железом, у меня 4гигабайта на висте 64, увиделись с первого раза без всяких ковыряний в реестре и плясок с бубном
P.S. мамка у меня другая
DMGarikk
просьба к вам
1. материнка поддерживает более 4Gb
2. видео карточка в каких адресах села
Более 4 не знаю,у меня сразу было установлено в компьютере 4GB памяти типа DDRII. Памяти вместе с виртуальной 8GB. Еще одна странность одно 16 прерывание занмают 4 устройства SMbus control,PCI Epress Root port,USB Host control,Express chipset PCI Express Root port, Nvidia GeForce 9800GT
Вот скрин на адреса
http://s54.radikal.ru/i146/0901/78/1ca8995f0542.jpg
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.