3 ГБ ОЗУ установлено и обнаружено BIOS, Windows Vista только 32 ГБ видит 2 ГБ

3646
Nathan Taylor

Я пытаюсь установить больше ОЗУ на 32-битной машине Windows Vista, которая использует материнскую плату X6DAL-XG, и объем ОЗУ, указанный в BIOS, составляет 3 ГБ +, но Windows сообщает только об установке 2 ГБ. Материнская плата имеет 6 отсеков для ОЗУ, которые я заполнил различными комбинациями из 4 стоек по 1 ГБ и 2 по 512 Мб, но как бы я их ни настраивал, Windows не видит больше 2 ГБ. Я понимаю, конечно, что 32-битная Windows имеет ограничение в 3 ГБ памяти, но это не объясняет, почему она будет сообщать только о 2 ГБ, когда фактически (в настоящее время) установлено 5 ГБ. Я должен думать, что смог бы увидеть по крайней мере 3 ГБ.

Согласно спецификации для материнской платы минимальные требования к оперативной памяти составляют DDR333 / 266 МГц, установленные попарно. Я сделал это точно, и BIOS не сообщает о каких-либо проблем на POST.

Конфигурация ОЗУ (в соответствии с CPU-Z)

  • Слот № 1: PQI MD6412ROE - 512 МБ PC2700 (166 МГц)
  • Слот № 2: PQI MD6412ROE - 512 МБ PC2700 (166 МГц)
  • Слот № 3: Kingston 128mx72D266C25 - 1024 МБ PC2100 (133 МГц)
  • Слот № 4: Kingston KVR266X72RC25 / 1024 - 1024 МБ PC2100 (133 МГц)
  • Слот № 5: Kingston 128mx72D266C25 - 1024 МБ PC2100 (133 МГц)
  • Слот № 6: Kingston KVR266X72RC25 / 1024 - 1024 МБ PC2100 (133 МГц)

Я не уверен, конфликтуют ли спецификации памяти выше с этим утверждением в руководстве по материнской плате или нет:

Поддержка памяти

X6DAL-XG поддерживает до 12 ГБ / 24 ГБ зарегистрированной памяти ECC DDR333 / 266 (PC2700 / PC2100). Материнская плата была разработана для поддержки модулей 4 ГБ (PC2100) в каждом слоте, но были протестированы только модули 2 ГБ. При использовании зарегистрированной памяти ECC DDR333 (PC2700) поддерживается установка четырех блоков памяти с двумя банками или шести блоков памяти с одним банком.

Итак, я делаю что-то не так с ОЗУ, которое у меня сейчас, или есть какая-то проблема с совместимостью, которую мне не хватает?

Спасибо!


Немного подробнее

  • CPU-Z отчет для машины
  • Я выполнил несколько дополнительных тестов с этой проблемой в Ubuntu и Windows Server 2008, и они также сообщают только о 2 ГБ.
  • Я попытался поиграться с функцией Memory Remap (включить / отключить) в конфигурации северного моста на моей материнской плате, но не увидел результатов.
  • В дополнение к вышеперечисленному аппаратному обеспечению у меня есть одна видеокарта PCI Express 256 Мб, и все для периферии. Я не думаю, что отображение ввода / вывода с памятью является проблемой здесь.
  • Я удалил 2 512 МБ флешки и у меня осталось только 4 1 ГБ флешки
  • Я прошил BIOS материнской платы до последней версии производителя

Еще одно обновление

Мне удалось протестировать эту аппаратную конфигурацию на 64-битной копии Ubuntu, и ОЗУ полностью определяется при установленной 4 ГБ, но независимо от конфигурации ОЗУ я не могу найти ни одну 32-разрядную ОС, которая будет читать более 2 ГБ. Таким образом, остается вопрос: почему 64-разрядная ОС может видеть более 2 ГБ ОЗУ, в то время как 32-разрядная ОС, установленная на той же машине, достигает 2 ГБ?


После мыслей

Я высоко ценю вклад всех, однако, я все еще не чувствую, что был правильный ответ на эту проблему, несмотря на все ваши усилия. Благодаря @Goyuix я узнал, что использую 64-битный процессор, и даже не осознавал этого, и теперь, по крайней мере, у меня есть приемлемый обходной путь.

За исключением неожиданного поворота событий, похоже, что вознаграждение будет автоматически зачислено на @Mark Booth из-за истечения срока действия вознаграждения, что я не обязательно возражаю, потому что его ответ хорош ; это просто не решение этой конкретной проблемы. (Абсолютно без обид, Марк, я действительно ценю ваш качественный ответ!)

В любом случае, обсуждение этого вопроса было для меня чрезвычайно информативным (и должно послужить отличным справочным материалом для будущих искателей). Первоначальная проблема была успешно смягчена за счет использования 64-битной ОС, но она до сих пор не решена . К сожалению (для меня), я никогда не буду по-настоящему доволен, пока не смогу точно определить точную проблему, поэтому, если в какой-то момент в будущем кому-то удастся придумать решение, которое не было упомянуто, пожалуйста, опубликуйте его.

Всем спасибо.

9
Если бы у вас была доступна Windows 7, я бы очень хотел посмотреть, как работает этот патч: http://superuser.com/questions/67444/is-there-way-to-enable-4gb-ram-in-32-bit- окна-OS / 95311 # 95311 Breakthrough 14 лет назад 0
Кроме того, что происходит, когда вы удаляете две палочки по 512 Мб? Breakthrough 14 лет назад 0
@ Прорыв Я попытался удалить 512 Мб флешки, но, похоже, это не имело никакого значения. Я испробовал все возможные комбинации сопряжения с одной и той же моделью с 6 доступными мне палками ОЗУ. Nathan Taylor 14 лет назад 0
Проверьте системный журнал событий, запустив eventvwr.msc и выполнив поиск связанных сообщений. Mark Allen 14 лет назад 0
@Mark. Он не изолирован только для Windows - встречается и в Ubuntu. Журнал событий не имеет никаких признаков аппаратной проблемы. Nathan Taylor 14 лет назад 0
так как вы видите только 2 ГБ в 32-разрядных системах и видите все 4 ГБ в 64-разрядных системах, я бы посоветовал перейти к приведенному ниже ответу Марка Бута и попытаться выяснить, какой другой IO сопоставлен с памятью, который вы установили. Я знаю, что вы сказали, что у вас есть только видеокарта на 256 МБ - но вы пытались удалить / отключить другие вещи? А как насчет встроенного видео на материнской плате (даже если карта установлена, она все еще может быть «активной»)? Что касается Windows, «ограниченной 3 ГБ» - моя 32-разрядная установка сообщает о 3,5 ГБ системной памяти (карта 512 МБ) HorusKol 13 лет назад 0
@HorusKol Как я уже указывал в этом вопросе в нескольких местах, у машины нет других периферийных устройств, кроме 256-мегабайтной видеокарты и встроенной * звуковой * карты. Нет встроенного видео и ничего больше не прикреплено к плате. Я действительно, очень сомневаюсь, что это проблема ввода-вывода с отображением в память - и если это так, то что-то определенно не так, потому что у меня ничего не установлено, что должно привести к расхождению в 1 Гб. Nathan Taylor 13 лет назад 0
по моим подсчетам, это расхождение в 2 ГБ, но это ни здесь, ни там. Один вопрос - если вы получаете все 4 ГБ в 64-битной ОС, то почему вы все еще пытаетесь запустить 32-битную? HorusKol 13 лет назад 0
@HorusKol Я собираюсь перейти на 64-битную версию на следующей неделе, но мне все равно очень хотелось бы знать, почему он так себя ведет. Nathan Taylor 13 лет назад 0

6 ответов на вопрос

9
Mark Booth

Принимая во внимание приведенные выше доказательства, следует учитывать две наиболее вероятные причины:

  • Аппаратное обеспечение, отображаемое в памяти, ограничивает объем памяти, доступной для 32-битной операционной системы.

  • Windows искусственно ограничивает объем памяти, доступной операционной системе.

Аппаратное ограничение

С 32-битной ОС у вас есть 4 ГБ адресного пространства. Любые периферийные устройства с подключенным к памяти вводом-выводом (порты ввода-вывода, сетевые карты, графические карты, другие материнские платы или карты расширения) будут занимать часть (обычно довольно небольшую) этого адресного пространства. Любая память, используемая для ввода-вывода с отображенной памятью, не может использоваться для основной памяти.

Хуже всего в IO с отображением памяти являются видеокарты. Если у вас есть две видеокарты, каждая с 1 ГБ или памятью, 2 ГБ вашего адресного пространства будет израсходовано, в результате чего у вас останется только 2 ГБ основной памяти, сколько бы физической памяти вы не установили.

Это не проблема на машине с 64-битной ОС, так как эти 2 ГБ могут отображаться достаточно далеко от вашей основной памяти, но на 32-битной ОС вы ограничены всего 4 ГБ (без использования трюков, которые Microsoft отключила в своих сервер 32-битных ОС).

Искусственное ограничение

Другой вариант заключается в том, что некоторые аппаратные или программные средства устанавливают ограничение на объем памяти, доступной для Windows, когда она была установлена, и этот искусственный лимит сохраняется, даже после установки дополнительной памяти.

Я никогда не делал этого под Vista, но под XP вы запускаете msconfig и смотрите «Дополнительные параметры» на вкладке «BOOT.INI». Если был установлен «/ MAXMEM», то XP игнорировал всю память выше этого.

Поиск в Интернете, похоже, вы используете bcdedit под Vista. Хорошее описание того, как его использовать, можно найти здесь . Однако, как всегда, убедитесь, что вы понимаете, что делаете, прежде чем связываться с этими вещами.

Другие возможности, специфичные для систем сервера / рабочей станции

Просматривая X6DAL-XG руководство, интересно, «Зеркальная память и Sparing» включена в Bios:

Выберите Enabled, чтобы включить Memory RAS (-Mirroring and Sparing), чтобы позволить системе создавать зеркальную копию данных, записанных в память, для обеспечения безопасности данных. Возможные варианты: «Отключено» и «Включено».

Я предполагаю, что в режиме зеркалирования памяти используются только 4 банка, что объясняет, почему удаление 512MB Dimms не имеет значения для памяти, видимой для Windows.

В настоящее время я использую GeForce 7800GTX с 256 МБ видеопамяти в этой системе, поэтому я не подозреваю, что она будет сильно врезаться в физическую память. Nathan Taylor 14 лет назад 1
Это отличный ответ, но, насколько я могу судить, ни одна из них не является проблемой, с которой я сталкиваюсь, в зависимости от конфигурации оборудования и того факта, что проблема распространяется и на другие операционные системы. Nathan Taylor 14 лет назад 0
На основании моего открытия, что ОЗУ полностью обнаружена в 64-битной ОС, я думаю, что можно с уверенностью сказать, что этот ответ не имеет значения. Спасибо, все же, хотя! Nathan Taylor 13 лет назад 0
так как вы видите всю оперативную память на 64-битной ОС, я бы сказал, что этот ответ очень актуален HorusKol 13 лет назад 0
@Mark У меня в настоящее время зеркалирование памяти и резервирование установлены по умолчанию «Отключено». Nathan Taylor 13 лет назад 0
@ Натан, Могу ли я предложить включить его, перезагрузить, чтобы увидеть, изменит ли он что-либо в BIOS или Windows, а затем вернуть его обратно. Иногда, просто изменив его, а затем вернув его назад, можно решить проблему. Особенно, если BIOS был обновлен в какой-то момент без установки BIOS на их значения по умолчанию и сброса настроек на те, которые вы хотите впоследствии. Mark Booth 13 лет назад 0
@ Марк К сожалению, это не работает, поскольку я пробовал это несколько раз сейчас. Nathan Taylor 13 лет назад 0
@ Натан, жаль это слышать, но рад, что ты нашел обходной путь. Я бы не стал возвращаться к 32-битной операционной системе, поскольку наличие 12 ГБ оперативной памяти просто делает работу нескольких виртуальных машин очень гладкой. Mark Booth 13 лет назад 0
@ Марк, я согласен. Я, конечно, не планирую возвращаться, мне просто безумно любопытно, в чем проблема. Nathan Taylor 13 лет назад 0
3
afrazier

Поскольку вы упомянули в комментарии, что Server 2008 сообщает только о 2 ГБ, то с вашей конфигурацией что-то не так.

  1. Что ваш BIOS сообщает об установленной оперативной памяти? Это видит 4 гб?
  2. Согласно инструкции:
    • Память Remap должна быть включена
    • Зеркалирование памяти должно быть отключено
  3. Как устанавливаются ваши модули? В руководстве указано, что они должны устанавливаться парами и что парные слоты расположены рядом друг с другом. Согласно вашему сообщению, похоже, что вы не установили свой парный баран в соседние слоты. Проверьте физическую установку ваших модулей в соответствии с руководством по материнской плате / запечатлением материнской платы.
  4. Вы пробовали каждую пару модулей по 1 ГБ в отдельности?
    • Если это так, проверьте каждую пару с Memtest86 +, чтобы убедиться, что каждая пара работает правильно.
    • Если каждая пара проверяет, попробуйте изменить порядок, в котором они установлены.
BIOS сообщает о 4 ГБ, как и CPU-Z. Перераспределение памяти включено и зеркалирование отключено. Я сделаю еще один снимок, но, насколько я помню, соединение ОЗУ не так, как сейчас, заставляет BIOS его не распознавать. Я попробую memtest на отдельных парах и посмотрю, что произойдет. Nathan Taylor 14 лет назад 0
Любое слово о тестировании отдельных пар? afrazier 13 лет назад 0
Как это было принято? Я не выбрал его, что означает, что за него проголосовал самый высокий рейтинг, не так ли? Nathan Taylor 13 лет назад 0
«Ответ с наибольшим количеством голосов, созданный * после того, как начался выигрыш *, по крайней мере, с 2 ответами, будет автоматически принят». (выделение мое) Тем не менее, у вас все еще есть проблема, если 32-битный Server 2008 не видит все 4 ГБ. Если это рабочий сервер, это то, что вы действительно должны разобраться. afrazier 13 лет назад 0
2
Goyuix

Хотя это и не решает вашу проблему напрямую, это может помочь в ее диагностике. Вы пробовали запустить Linux Live CD, такой как Ubuntu ? В идеале вы должны попытаться загрузить как 32-битную, так и 64-битную версию - 64-битная должна видеть дополнительную оперативную память без проблем, и если она видит только две, то у вас почти наверняка есть проблема, связанная с аппаратным обеспечением. Если 32-разрядная версия Linux также видит только 2 ГБ ОЗУ, то, как отметил Марк Бут, вы, вероятно, подключили память для ввода-вывода, занимающего остальное.

Видеокарты, как правило, являются худшими нарушителями в использовании доступной оперативной памяти, у вас случайно не установлено две карты емкостью 1 Гб?

Восстановление памяти

Многие современные BIOS будут иметь возможность перераспределить пространство памяти, чтобы избежать проблем MMIO - хотя это работает только для 64-битных операционных систем или систем с поддержкой PAE. Проверьте свой BIOS для этой настройки.

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

В настоящее время система работает на одном 7800GTX (256 МБ), поэтому я не подозреваю, что это является источником проблемы Nathan Taylor 14 лет назад 0
@ Натан - ты пробовал один из вариантов Linux? Также обратите внимание: независимо от того, сколько оперативной памяти вы установили и видите, один процесс никогда не сможет использовать более 2 ГБ под 32-битной настольной ОС Windows. Где вы видите 2 ГБ? BIOS? Системные свойства? Что произойдет, если вы потянете две палочки по 512 МБ? Goyuix 14 лет назад 0
@Goyuix У меня сложилось впечатление, что 32-битная Windows может адресовать до 3 ГБ, даже если она будет выделять только 2 ГБ процессам. BIOS сообщает о 4 ГБ ОЗУ, а операционная система сообщает только о 2 ГБ. Я не пробовал Linux, однако я попытался изменить палки вокруг, включая удаление 512 МБ DIMM. Nathan Taylor 14 лет назад 0
@ Натан теоретически Win32 может адресовать все 4 ГБ памяти, проблема в том, что архитектура x86 использует отображение ввода-вывода с отображением памяти для многих устройств - как правило, самым большим нарушителем являются видеокарты из-за их большого объема памяти. Карта 512 МБ уменьшит максимальный общий объем адресуемой оперативной памяти до 3,5 ГБ. Поместите две видеокарты 1 ГБ в компьютер, и Win32 не сможет увидеть даже более 2 ГБ ОЗУ. Другие устройства также используют ввод-вывод с отображением в памяти, хотя обычно их диапазон адресов составляет не более нескольких мегабайт и остается в основном незамеченным. Goyuix 14 лет назад 0
Как я упоминал в другом комментарии, единственным большим компонентом адресации была бы видеокарта 256 Мб. Кроме этого, в системе нет ничего, что могло бы потреблять оперативную память. Nathan Taylor 14 лет назад 0
@Nathan: It's not just the video card. The system chipset, add-in and integrated devices, and BIOS configuration all come into play, because so many things use MMIO. Also, 32-bit Windows *clients* can only use memory *addresses* up to 4 GiB. Server 2003 Std 32-bit can address up to 4 GiB of RAM, no matter what addresses are in use. Enterprise & DataCenter can address much, much more. The whole "32-bit Windows 4 GiB limit" is a licencing limitation, nothing more. The amount of virtual address space available to an individual process is a completely separate issue. afrazier 14 лет назад 1
@Goyuix Я дополнительно проверил эту проблему в Ubuntu и Windows Server 2008, и они также сообщают о 2 ГБ. Как я уже говорил, кажется маловероятным, что это проблема ввода-вывода с отображением в памяти, потому что единственное периферийное устройство, которое у меня есть, - это одна видеокарта на 256 Мб. Nathan Taylor 14 лет назад 0
@ Натан, ты пробовал 64-битную ОС? Если 64-разрядная ОС видит все 4 ГБ, это почти наверняка связано с ошибкой / настройкой в ​​BIOS. Goyuix 14 лет назад 0
@Goyuix Система не имеет 64-битного чипсета. Nathan Taylor 14 лет назад 0
@ Натан: Это не чипсет, который должен поддерживать 64-битный, а процессор. И ваш процессор поддерживает его (EM64T - это поддержка Intel x86-64). Стоит попробовать посмотреть, что думает 64-битная Windows. afrazier 14 лет назад 0
@Nathan X6DAL-XG, безусловно, поддерживает 64-битную систему, как и каждый процессор Xeon, который вы можете установить там. Пожалуйста, сообщите, как только вы попробовали 64-битную ОС, так как это поможет в дальнейшей диагностике проблемы. Если вы не можете запустить 64-битную ОС на аппаратном обеспечении, то у вас, вероятно, гораздо большие проблемы, чем исчезновение 2 ГБ ОЗУ. Goyuix 14 лет назад 0
@Goyuix Возможно, я ошибаюсь, но разве мне не нужен 64-битный процессор для запуска 64-битной ОС? Nathan Taylor 14 лет назад 0
@ Натан согласно отчету CPU-Z, который вы перечислили выше, у вас есть Xeon, основанный на ядре «Nocona», которое на самом деле является 64-битным процессором. Goyuix 14 лет назад 0
@Goyuix .. Черт, да? Я не строил и не купил ни одну из этих частей; Если бы я понял, что с самого начала я бы не стал беспокоиться о 32-битной установке. Nathan Taylor 14 лет назад 0
@ Натан Тейлор: 64-битные не может быть решением. Смотрите также мой ответ. harrymc 13 лет назад 0
1
harrymc

Если все операционные системы сообщают о 2 ГБ, возможно, проблема в материнской плате.

Мне не нравится тот факт, что вы используете две разные карты памяти, даже если они установлены попарно.
Я бы предложил использовать только один вид карты памяти.

Согласно ramshopping.com, для вашей материнской платы рекомендуются только карты KVR .
Я попытался бы вынуть две другие карты и посмотреть, загружается ли машина с 2 ГБ.
Если да, я бы заменил две неработающие карты на карты, идентичные тем, которые работают.

Хотя это возможно, я не считаю, что это является проблемой, потому что я пробовал 4 разных типа ОЗУ, все из которых были 1 ГБ, и из всех 4 установленных мной сейчас только 4, которые были полностью обнаружены. по BIOS. Nathan Taylor 13 лет назад 1
@ Натан Тейлор: Но вы использовали 4 одинаковых палочки? harrymc 13 лет назад 0
Нет, только 4 палки, которые вы видите выше. Nathan Taylor 13 лет назад 0
@ Натан Тейлор: Вот что я имел в виду - используя 4 палки одного типа. harrymc 13 лет назад 0
Он использует 4 Kingston - 2 KVR, 2 128mx - как это было в течение некоторого времени. Nathan Taylor 13 лет назад 0
0
th3dude

Я не знаю, решит ли это проблему, но не похоже, что вы правильно соединяете свои модули ОЗУ. В соответствии со страницей спецификаций, пары должны быть расположены рядом друг с другом в соответствии с синей и черной парами рядом друг с другом.

Ваша настройка, которую вы перечислили выше, похоже, не соответствует этому. Вполне возможно, что это бросок ОС, пытающейся читать двойные каналы.

0

Вы должны проверить свой BIOS. У многих есть функция под названием «Режим установки ОС» или похожее имя, которое ограничивает объем оперативной памяти, которую может видеть ваша операционная система. Это было необходимо, потому что некоторые установщики операционной системы потерпели бы неудачу, если бы было слишком много памяти. Отключение должно решить.

Я посмотрел вокруг в BIOS, а также в руководстве, но я не вижу никаких вариантов, похожих на это. Nathan Taylor 14 лет назад 0