Windows xp не видит всю оперативную память
Главная • Каталог статей • Операционные системы • Windows • Почему Windows не видит всю память объёмом 4Гб или более
32-битные версии операционных систем Windows XP SP2, Windows Vista и Windows Server 2003 Standard Edition принципиально не могут использовать более 4 Гб оперативной памяти в силу внутренних архитектурных ограничений.
Однако на практике при установке одной из этих ОС на компьютер с 4Гб оперативной памяти доступный ей объём оперативной памяти (Его можно посмотреть, кликнув правой кнопкой на значке «Мой компьютер» и выбрав «Свойства») оказывается существенно меньшим – обычно от 2.7 до 3.75Гб.
Это происходит из-за того, что существенная часть адресного пространства используется в нуждах установленных периферийных устройств (основной потребитель – видеокарты), при этом сама оперативная память никоим образом ими не используется. Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей BIOS и конфигурации конкретного ПК (например, эта величина зависит от интерфейса и количества видеокарт, но никоим образом не зависит от того, каким количеством модулей и какого объёма у вас получен такой общий объём памяти.)
Радикальное решение данной проблемы существует только одно – замена ОС на 64-битную и включение в BIOS материнской платы опции «Memory Remap Feature» (или «H/W Mem Remap», обычно находится в разделе «Chipset Settings» или «NorthBridge Settings», некоторые современные платы включают эту функцию автоматически). Только при соблюдении обоих этих условий вы сделаете доступным для ОС весь объём установленной памяти. Предупреждение - не все чипсеты поддерживают аппаратный ремаппинг, в первую очередь это касается чипсетов cемейства Intel 915/945, на системе с таким чипсетом сделать доступными все 4Гб установленной памяти нельзя в принципе. Со всеми серверными чипсетами, более новыми десктопными (965/P35 и выше) и системами на базе 64-битных процессоров AMD такой проблемы нет. Если вы включите Memory Remap с 32-битной ОС, то доступный ей объём оперативной памяти будет ограничен 2Гб, поэтому такого делать не надо.
Помните, что максимальное количество оперативной памяти, которое 32-битная версия Windows может выделить приложению составляет 2Гб по умолчанию и 2,7Гб, если ОС запущена с ключами /PAE и /3GB в boot.ini, а приложение откомпилировано с поддержкой такой возможности. Поэтому использование более 3Гб оперативной памяти совместно с 32-битными «десктопными» (не серверными!) ОС в подавляющем большинстве случаев совершенно не оправдано.
Вопрос от пользователя
Здравствуйте.
У меня на ноутбуке установлено 8 ГБ ОЗУ, но почему-то используется системой только 3,25 ГБ (про остальную в диспетчере задач написано просто "Зарезервировано аппаратно"). Подскажите, почему система не видит всю мою оперативную память и как все настроить должным образом?
Анастасия, Минск.
Логично, что, прежде чем увеличивать ОЗУ, необходимо начать использовать на 100% ту, что имеется 👌. Причин, из-за которых система может не использовать всю память - достаточно много (ниже я выделю те, которые покрывают ~90% случаев). Отмечу, что большинство из них легко решаются даже начинающими пользователями ПК.
Какие еще могут быть проблемы с определением оперативной памяти?
Если у вас проблемы с материнской платой или самой оперативкой, это может вызывать те же последствия, Windows не будет видеть всей оперативки. Что бы выявить проблемы стоит сделать диагностику материнки и оперативки.
Иногда помогает просто перевтыкание планок оперативки в материнку. Так же помогает установка планок оперативку в режим двойного канала.
Те кто делал разгон, рекомендую отключить его и вернуть тайминги и частоты памяти в нормальный или автоматический режим.
Те у кого установлены не оригинальные версии Windows (сборки), так же испытывают проблемы с определением всей оперативки. Используйте оригинальные дистрибутивы Windows и таких проблем у вас не возникнет.
Здравствуйте, в данной статье я затрону интересную тему, касающейся оперативной памяти. Некоторые пользователи продолжают задавать вопрос, почему у них стоит, к примеру 8 Гб оперативки, но система видит только 4 Гб, а может быть даже меньше. Ответ на вопрос очень прост – такое происходит только с 32-х битными системами. Будь у вас Windows XP, Windows 7 или нынешняя «десятка», но с архитектурой 32 бита, то больше 4 Гб она не увидит.
При просмотре свойств системы можно увидеть даже меньший доступный объем ОЗУ, почему это происходит? Ответ прост, часть так называемого адресного пространства уходит обслуживание подключенных периферийных устройств. Наиболее потребительной оказалась видеокарта. Хотя некоторыми устройствами оперативка даже не используется. Количество адресного пространства зависит от чипсета и других параметров, например, BIOS, конфигурации компьютера.
Вариант решения номер №2
Бывает, что устройства к конфигурации компьютера забирают часть памяти, но не очень много. Поэтому волноваться по этому поводу не стоит.
Еще вариант – стоит убедиться в том, какой максимальный объем оперативной памяти поддерживается системной платой. Но это больше относится к старым технологиям.
Еще нужно включить в BIOS функцию Memory Remap Feature (также имеет названия: Memory Hole Remapping, H/W Mem Remap и H/W memory hole Remapping). После этого ставим 64-х битную систему. Иногда эти параметры уже включены автоматически на современных платах, поэтому можете только убедиться.
Если у вас на 64-х битной системе в действительности стоит менее 4 Гб оперативной памяти, то параметр Memory Remap Feature нужно отключить в любом случае. Мало того, что доступный объем из-за этого может стать еще меньше, так еще и некоторые устройства будут зависать, что особо сказывается при моделировании и игровом процессе.
Бывает, что и BIOS не видит необходимый объем оперативки, тогда его стоит обновить. Дело это рискованное и стоит подходить внимательно и осторожно. Инструкцию по обновлению всегда можно отыскать на официальном сайте системной платы.
Если в BIOS установленные модули определяются, а в Windows нет, тогда стоит проверить руководство к материнской плате. Там обычно сказано о подключении конкретных модулей оперативной памяти, например, какой режим лучше – одноканальный или двухканальный. На официальном сайте можно узнать о моделях, которые могут вам подойти и варианте подключения.
Если система не видит оперативную память, то это может быть в следствие неправильно установленного значения питания, а также из-за неисправных модулей. Тем более, если одна из планок отказала, то система может вообще не запуститься, тогда от неё нужно избавиться.
Ограничение ОС Windows
Разные версии Windows могут "видеть" и использовать разное количество ОЗУ.
- если у вас 32-х битная ОС — то макс. количество памяти, которое в ней будет доступно - 3,25 ГБ (чтобы задействовать большое количество памяти - ОС необходимо переустановить на 64 битную) . Это актуально для любых ОС Windows XP/7/8/10;
- если используется Windows 7 starter (64 bit) - то у нее ограничение в 2 ГБ, у версии Windows 7 Home (64 bit) - 8 ГБ. У Windows 8/10 (64 bit) - ограничение в 128+ГБ (даже для домашних версий).
Для того, чтобы точно узнать свою версию ОС:
-
нажмите Win+R и введите команду dxdiag ;
Какая у меня Windows, 32-64 bit
Система не видит часть оперативной памяти
Единственный способ избавиться от данной проблемы переустановить ОС на 64-х битную версию. Тогда вам будет доступно больше 4 Гб.
Также есть одна фишка системе. Нажимаем Win+R и вводим команду msconfig . Далее открывается окно «Конфигурация системы». Переходим на вкладку «Загрузка» и жмём там на кнопку «Дополнительные параметры».
Убираем галочку с пункта «Максимум памяти».
Подведем итоги
Итак, мы разобрались, почему компьютер не видит оперативную память, а также какой-то определенный её объем. По пунктам распишу, что нужно сделать, если это случилось:
- Переустановить ОС на 64-битную версию;
- В Конфигурации системы убрать галочку с пункта «Максимум памяти»;
- Проверить максимальный объем оперативной памяти на материнской плате;
- Проверить исправность модулей оперативной памяти;
- Переставить планки ОЗУ местами; – инструкция на официальных сайтах системных плат; .
Также вы можете почистить компьютер от пыли и грязи. Протереть контакты на модулях оперативки, и прочистить слоты. Надеюсь данная статья вам поможет!
Отключите настройку Максимум памяти в MSCONFIG
Тут все просто если вы пытались увеличить производительность вашего ПК, то могли включить настройку "Максимум памяти". Отключить ее просто, идем в Панель управления --> Администрирование --> Конфигурация системы --> вкладка Загрузка --> Дополнительные параметры --> уберите галочку Максимум памяти!
Почему системе может быть не доступна вся память
Резервирование памяти под системные нужды в БИОСе / UEFI
В настройках БИОСа есть различные ограничения на использование оперативной памяти и частенько именно из-за них Windows не видит всю оперативную память. Поищите в БИОСе / UEFI такие настройки и измените их:
- HPET Mode (если есть такая функция) должно быть значение 64-bit;
- Memory Hole должно быть в состоянии Disabled;
- Memory Remapping;
- DRAM Over 4G Remapping;
- H/W DRAM Over 4GB Remapping;
- H/W Memory Hole Remapping;
- Hardware Memory Hole;
- Memory Hole Remapping;
- Memory Remap Feature - все эти значения должны быть в состоянии Enabled.
Если вы не нашли у себя таких значений, то придется воспользоваться гуглом и найти данные настройки для своего БИОСа / UEFI. Очень часто, в этом случае помогает просто сброс настроек БИОСа, пробуйте сделать это и вы.
Иногда эти значения нельзя найти из-за того что БИОС устарел и тогда его не мешало бы обновить. Как это сделать я показывал в одном из видео.
Неактуальные параметры загрузки
С целью ускорения компьютера, некоторые пользователи (иногда через спец. ПО) меняют параметры загрузки и сами того не подозревая, ограничивают использование ОЗУ. Поэтому, если у вас система видит, скажем, 8 ГБ, а использует только 4-5 ГБ — обязательно проверьте эти параметры.
- сначала нужно нажать сочетание Win+R , чтобы появилось окно "Выполнить";
- далее ввести команду msconfig и нажать Enter;
Загрузка - дополнительные параметры
Все галочки сняты!
Материнская плата или ЦП не поддерживает нужный объем памяти
У каждой материнской платы и ЦП есть "свое" ограничение как по объему, так и по типу памяти, с которой они могут работать. Разумеется, обойти это ограничение нельзя*.
Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?
Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.
Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.
Поиски привели на этот сайт: Patch Vista’s Kernel to Address more than 4 GB of Memory
Статья посвящена разблокировке Windows Vista, зато в комментариях, пара человек описывает аналогичный способ для Windows XP. Я решил последовать их советам и опробовать эту методику на практике.
Для начала нужен дистрибутив Windows XP SP1. Возможно, подойдёт и просто первый сервиспак, не знаю, у меня его нет. В общем-то, там нужен только один файл. А именно файл библиотеки Hardware Abstraction Layer. Начиная со второго сервиспака эта библиотека работает с PAE «фиктивно», т.е. даже если режим расширенной трансляции адресов включён – он ничего не делает и не выходит за пределы четырёх гигабайт. А вот библиотека от первого сервиспака работает полноценно и может адресоваться ко всей доступной памяти, аналогично тому, как работает с памятью 32-битный Windows Server. В установленной Windows XP данный файл называется hal.dll, но в дистрибутиве имеется несколько HAL-файлов, и только один из них инсталлируется в систему под именем hal.dll в процессе установки. Необходимо было узнать, какой из файлов нужно использовать на моём конкретном оборудовании. Делается это просто, надо вызвать Свойства в контекстном меню проводника на файле hal.dll в установленной Windows. Файл находится в папке %systemroot%\system32, и вот что я увидел:
В дистрибутиве Windows XP SP1 в папке I386, я взял файл HALMACPI.DL_. Это архив, в котором находится один файл, искомый мной halmacpi.dll. Я его извлёк WinRAR’ом, но можно обойтись и командной строкой:
expand HALMACPI.DL_ HALMACPI.DLL
Полученный файл надо поместить в папку %systemroot%\system32, что я и сделал. Хочу ещё раз обратить внимание, что если кто-то захочет повторить мои шаги, файл надо брать с именем, указанном в свойстве «Исходное имя файла» в свойствах hal.dll из установленной Windows XP.
- ntoskrnl.exe — однопроцессорное ядро Windows.
- ntkrnlmp.exe— многопроцессорное ядро Windows.
- ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
- ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
- BB 00 00 10 00 33 FF 6A 07 8B F0 и заменить её на
- BB 00 00 40 00 33 FF 6A 07 8B F0
Теперь осталось отредактировать boot.ini. Нужно скопировать имеющуюся строчку и дописать пару параметров. У меня была строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN
Я добавил в неё /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE и в результате получилось:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU 16Gb» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE
Теперь есть возможность загружаться как в стандартный Windows с присущим ему ограничением на память, так и в пропатченный, так как я не заменял ни одного системного файла, а только добавил два, которые включаются в работу с помощью вышеописанных параметров boot.ini
Ребут!
И… BSOD.
В принципе, такое может быть. Как следует из обзора истории проблемы на ixbt причиной, по которой Microsoft отключила адресацию верхней памяти, было существование кривых драйверов под различное оборудование, кривизна которых, впрочем, проявлялась только в полноценном режиме PAE. Вполне вероятно, у меня сбоит один из них, за 6 лет в системе накопилось много всего, но какой? Пробую запуститься в безопасном режиме, и УРА! Вот они, мои гигабайты:
Такая проблема может возникнуть на любой Windows. Давайте разберемся почему вся память на компьютере - не доступна.
Память не определяется в BIOS
Если в диспетчере задач (или свойствах системы, см. скрин ниже) отображается общее количество установленной памяти меньше, чем физический имеющейся на ПК (например, у должно быть 8 ГБ, т.к. установлено 2 планки по 4 ГБ, но отображается в Windows только 4 ГБ) — возможно, что какая-то планка просто не определилась в BIOS.
Установленная память - 12 ГБ
Разумеется, в этом случае необходимо перезагрузить компьютер, войти в BIOS и посмотреть, определилась ли память там, какой ее общий объем.
Total memory - общая память - UEFI
Кстати, также узнать с каким планками памяти Windows может работать — можно с помощью утилиты AIDA64 (вкладка "Системная плата/SPD" ).
AIDA64 - системная плата
Почему может не определяться память в BIOS:
Чистка контактов памяти резинкой и кисточкой
Выделение памяти на интегрированную видеокарту
У тех у кого есть интегрированная видеокарта оперативная память может резервироваться под нее. Что бы отключить резервацию памяти на интегрированную видеокарту, нужно зайти в БИОС и там выключить данную настройку.
Ищите в БИОСе такие значения:
- Display Cache Window Size
- Frame Buffer Size
- Int. Gfx Memory Size Select
- Internal Graphic Mode Select
- Internal Graphics Mode Select
- On-Chip Frame Buffer Size
- On-Chip Video Window Size
- Onboard VGA Frame Buffer
- Share Memory Size
- System Share Memory Size
- UMA Frame Buffer Size
- VGA Share Memory Size
- Onboard Video Memory Size
И отключайте резервацию памяти - DISABLE, NONE или ставьте минимальное значение какое есть. Если вы не нашли у себя таких значений, то придется воспользоваться гуглом и найти данные настройки для своего БИОСа / UEFI.
Встроенная видеокарта отнимает часть ОЗУ
Этот подраздел актуален для тех ноутбуков и ПК, на которых есть встроенная видеокарта (ее еще называются интегрированной, например, Intel HD, AMD Vega). Сейчас таких, в общем-то, большинство.
Начинать разбираться с вопросом нужно с диспетчера задач (для его вызова нажмите Ctrl+Shift+Esc).
Во вкладке "Производительность" вы можете увидеть два значения: сколько всего установлено памяти, и сколько из нее используется (в моем случае 12 ГБ всего, и 10,9 ГБ из них используется Windows — т.е. получается, что у меня куда-то пропал ~1 ГБ?!) .
Память - использование памяти (зарезервировано аппаратно 1,1 ГБ) / Windows 10
Кстати, если вы зайдите в панель управления и откроете вкладку "Система и безопасность/Система" — то вы также сможете узнать о том сколько памяти установлено и сколько доступно.
Установленная память - 12 ГБ, доступно 10,9 ГБ
Обратите внимание, что в диспетчере задач (если у вас ОС Windows 10) - можно также просмотреть, сколько памяти отнимает встроенная видеокарта (графический процессор). В моем случае использует она как раз этот самый 1 ГБ.
Использование выделенной памяти
Кстати, узнать о том, сколько памяти установлено на ПК и сколько из них использует встроенный видеоадаптер можно с помощью утилиты CPU-Z. Для этого, после ее установки и запуска используйте разделы Memory и Graphics . См. скриншот ниже.
CPU-Z - оперативная память, видеокарта
Если вас не устраивает, что строенная видеокарта отнимает такое большое количество памяти — то в ряде случаев, используя настройки BIOS (UEFI), можно изменить это значение. Разумеется, на каждом компьютере/ноутбуке (в зависимости от железа) значения "регулировки" могут быть разными (см. скрин ниже).
Кстати, стоит отметить, что количество выделенной памяти для интегрированной карты — может влиять на ее производительность.
Как может называться искомый параметр : Share Memory Size, Internal Graphic Mode Select, Onboard Video Memory Size и др.
Share Memory Size - выделение памяти видеосистеме
Разрядность / битность и редакции ОС Windows могут иметь ограничения
Из-за разрядности Windows могут быть проблемы с определением всей оперативной памяти. Все Windows которые имеют разрядность 32 (x86) не могут задействовать для работы более 3,2ГБ оперативной памяти. То есть, даже если у вас установлено, например, 8ГБ оперативки, Windows 32 битка сможет использовать только 3,2ГБ памяти из-за ограничений. Так же, некоторые редакции операционных систем могут иметь ограничения. К примеру, Windows 7 домашняя базовая (home basic) может использовать только 4ГБ оперативки!
Читайте также: