9

Я пытаюсь установить больше ОЗУ на 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-битной ОС, но она до сих пор не решена. К сожалению (для меня), я никогда не буду по-настоящему доволен, пока не смогу точно определить точную проблему, поэтому, если в какой-то момент в будущем кому-то удастся придумать решение, которое не было упомянуто, пожалуйста, опубликуйте его.

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

6 ответов6

9

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

  • Аппаратное обеспечение, отображаемое в памяти, ограничивает объем памяти, доступной для 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.

3

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

  1. Что ваш BIOS сообщает об установленной оперативной памяти? Это видит 4 гб?
  2. Согласно инструкции:
    • Память Remap должна быть включена
    • Зеркалирование памяти должно быть отключено
  3. Как устанавливаются ваши модули? В руководстве указано, что они должны устанавливаться парами и что парные слоты расположены рядом друг с другом. Согласно вашему сообщению, похоже, что вы не установили свой парный баран в соседние слоты. Проверьте физическую установку ваших модулей в соответствии с руководством по материнской плате / запечатлением материнской платы.
  4. Вы пробовали каждую пару модулей по 1 ГБ в отдельности?
    • Если это так, проверьте каждую пару с Memtest86+, чтобы убедиться, что каждая пара работает правильно.
    • Если каждая пара проверяет, попробуйте изменить порядок, в котором они установлены.
2

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

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

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

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

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

1

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

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

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

0

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .