Как использовать всю оперативку. Оперативная память: разрушаем мифы

Приветствую, дорогие читатели! К нашей огромной радости цены на комплектующие неуклонно ползут вниз, и сегодня 8 Гб оперативки на домашнем компе – не что‐то из ряда вон выходящее, а «программа‐минимум» для продвинутого геймера.

Однако пользователя может ожидать неприятный сюрприз: независимо от объема установленной ОЗУ и количества планок на компьютере, операционная система видит не всю оперативку.

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

32‐битные ОС

Для понимания сути проблемы следует немного вспомнить историю развития компьютерной техники. Не буду слишком сильно углубляться в детали и постараюсь дать краткую выжимку. На ПК, созданном еще в бородатом 1981 году, команды периферическим устройствам и обращение к оперативной памяти были совмещены. Соотношение объема адресного пространства, отводимого под ОЗУ и BIOS, было принято 5:3.

С появлением в 1985 году процессора 80386 разделение адресов осталось неизменным в целях совместимости с компьютерами‐предшественниками. Устройствам, использующим адресное пространство, выделили целый четвертый гигабайт. Тогда такая величина казалась заоблачной цифрой: сам Билл Гейтс, создатель Windows, заявлял, что 640 килобайт оперативки достаточно для каждого.

Такая архитектура на 32bit стала стандартом, по которому в течение последующих 20 лет развивалась оргтехника. В 32 битной Винде, независимо от объема установленной памяти, пользователю доступно только 3,25 Гб – все остальное отжирают системные ресурсы. Это наблюдается и на устаревшей, но кое‐где еще используемой «Хрюше», и на windows 7, и на windows 10.

То, что юзер может задействовать не весь объем памяти под свои нужды, устранено на 64bit версии Винды. Узнать версию Windows можно, найдя пункт «Компьютер» в меню «Пуск», кликнув по нему правой кнопкой мыши и выбрав «Свойства».

При этом учитывайте, что из‐за разницы в архитектуре, апгрейд с 32‐разрядной версии до 64‐разрядной невозможен: потребуется полная переустановка операционной системы. Драйвера для всех устройств также придется найти 64‐битные.

Аппаратная проблема

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

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

Настройки конфигурации

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

  • Ввести в строке поиска msconfig и запустить найденный файл;
  • В открывшемся окне перейти во вкладку «Загрузка» и выбрать пункт «Дополнительные параметры»;
  • В следующем окне убрать флажок «Максимум памяти».

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

И я в очередной раз акцентирую ваше внимание на том, что при самостоятельной сборке компьютера ориентируйтесь на стандарт DDR4. О том, как и , вы можете узнать перейдя по ссылке.

В этой статье мы разберемся, как убрать ограничение 4 Гб памяти на 32 битных версиях Windows 8 и Windows 8.1, и задействовать всю доступную на компьютере оперативную память.

Большинство пользователей Windows убеждены, что 32 битные ОС Microsoft не поддерживают более 4 Гб оперативной памяти . Таким образом, максимум памяти, доступной в Windows 8/ 8.1 x86 — 4 Гб. А с учетом того, что Windows резервирует часть памяти под свои нужды и нужды периферийных устройств) чаще всего для видеокарты), конечному пользователю для использования доступны обычно около 3-3,5 Гбайт памяти.

На первый взгляд все логично – пределом адресации для 32 разрядной адресной шины являются те самые 4 Гб. Во всех официальных документах Microsoft указывает именно этот максимальный размер памяти, поддерживаемый во всех клиентских версиях x86-системе. Хотя на самом деле Microsoft немного вводит всех в заблуждение.

Что такое PAE и зачем он нужен

PAE (Physical Address Extension - расширение физической адресации) – эта опция x86 процессора, позволяющая ему получить доступ более чем к 4 Гб физической памяти . Не будем углубляться в технические подробности технологии PAE, просто отметим, что это технология поддерживается всеми процессорами и непосредственно в OC Windows уже довольно давно.

Так, например, 32 битная версия Windows Server, запущенная на процессоре x86, может использовать PAE для доступа ко всей оперативной памяти системы (до 64 Гб или до 128 Гб в зависимости от поколения процессора).

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

Примечание . PAE может использоваться только на 32 битных версиях Windows, запущенных на совместимых с этим режимом x86 процессорах.

Ограничения режима PAE

  • PAE не расширяет виртуальное адресное пространство каждого процесса. Каждый процесс, запущенный на 32 битной системе все так же ограничен 4 Гб адресного пространства.

    Совет . PAE не поможет увеличить количество памяти, доступной для ресурсоемкого приложения (например, графического или видеоредактора). Если такая необходимость имеется, лучше перейти на 64 разрядную ОС.

  • При использовании PAE следует отметить небольшое снижение производительности системы за счет уменьшения скорости доступа к памяти, вызванное накладными расходами на переключение отображаемых страниц в памяти
  • Драйвера некоторых устройств не могут корректно работать в 36 битном адресном пространстве.

Итак, можно сделать вывод, что верхний предел доступной физической памяти в 32 битных версиях Windows ограничен программно на уровне ядра ОС. А если есть программное ограничение, это означает, что его можно обойти! Каким же образом включить режим PAE в 32 битной Windows 8.1 и задействовать всю доступную оперативную память.

Патч, включающий PAE и позволяющий задействовать всю оперативную память на Windows 8 / 8.1 x86

Включить режим PAE в Windows 8 (Windows 8.1) штатными средствами не получится (для этого придется вручную в HEX редакторе править файл ядра ntoskrnl.exe и переподписывать его). Проще всего воспользоваться готовым патчем PatchPae2 , который написан энтузиастом Wen Jia Liu. Скачать патч PatchPae2 можно . (архив содержит сам патчер — PatchPae2.exe, его исходные коды и необходимые инструкции).

Патч представляет собой небольшую утилиту командной строки, которая позволяет модифицировать файлы ядра 32 битных версий Windows с целью активация режима PAE, позволяющего использовать более 4 Гб оперативной памяти (до 128 Гб памяти).

Патч PatchPae2 будет работать со следующими ОС:

  • Windows Vista SP2
  • Windows 7 / Windows 7 SP1
  • Windows 8 / Windows 8.1

Примечание . Перед установкой необходимо патча с целью предотвращения конфликтов рекомендуется отключить оптимизаторы и драйверы оперативной памяти. Их можно будет активировать после применения патча и загрузки системы в режиме PAE.

Установка PAE — патча в Windows 8 / 8.1

Внимание . Данную инструкцию можно использовать только для 32 битных версий Windows 8 и Windows 8.1, для предыдущих ОС Microsoft процедура немного отличается! Будьте внимательны!


Примечание. В любой момент времени пользователь, перезагрузившись, может в загрузочном меню переключиться с режима PAE на обычный, или обратно.

Важно! После установки патча необходимо быть особенно внимательными при установке обновлений безопасности Windows. Т.к. некоторые обновлений Windows иногда содержат и обновления для ядра, после их установки необходимо обновить и ядро PAE: PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe

Кроме того, могут возникнуть проблемы, описанные и .

Удаление патча PAE

Чтобы удалить патч PAE из системы, необходимо:

  1. Удалить соответствующую запись из загрузочного меню (проще всего это сделать с помощью msconfig )
  2. Удалите файлы ntoskrnx.exe и winloadp.exe в каталоге %Windir%\System32 .

Никаких других изменений в систему патч не вносит.

Всем доброго времени суток. Пять лет назад я написал статью с заголовком readyboost на windows xp и когда я писал эту статью я думал, что информация будет не актуальной, так как уже была Windows 7 в которой readyboost работает из коробки, да и вышла оперативная память ddr3 которая продавалась дешевле предыдущих плат памяти. Но к моему удивлению и сейчас человек 10 в день переходят из поисковых систем на страницу, за данный момент статью просматривали примерно 80000 раз, а это получается в среднем 42 раза в сутки – что для моего скромного сайта достаточно много.

Спрашивается, почему я начал с ностальгии и заговорил про readyboost на xp? Все просто, сегодня мы будем рассматривать ситуацию обратную т.е. readyboost используют когда оперативной памяти не хватает для комфортной работы, а мы рассмотрим как заставить работать больше 3,5 гигабайт оперативной памяти в windows xp . Четно признаться мне сложно смоделировать и логически объяснить ситуацию в которой это умение вам может пригодится (и да сегодня будет много комментариев от автора и лирических отступлений, если вам не интересно моё «бла бла бла» можете сразу смотреть скриншоты.). Но пригодилось оно мне когда на работе у меня был старый системник dell с oem’ мной windows xp которую нельзя было переустанавливать, ну и ладно было у меня 2Гб оперативной памяти, что для xp вполне достаточно, но тут я пошарился по складу пораздербанивал старые системники и вуаля у меня уже 6Гб оперативной памяти. Ну и как известно система увидела из них всего 3,5Гб и все получается у меня в простаивает 2,5Гб оперативной памяти что есть – плохо, эта мысль начала мне проедать мозг и однажды более опытный коллега мне посоветовал как это реализовать (по этому на авторство не претендую) и поможет нам в этом технология RAM disk . Что такое RAM disk? Все достаточно просто – это технология позволяющая создать раздел в оперативной памяти (RAM). И как нам это поможет задействовать остальную оперативную память? Мы в созданном разделе создадим файл подкачки! Еще немного справки, когда система распределяет всю оперативную память, то не приоритетные процессы могут быть перемещены в менее быстро действенную паять (файл подкачки) в подавляющем большинстве создаётся на жестких дисках скорость которых значительно медленнее чем оперативной памяти.

Для того чтобы показать вам реализацию данной функции я установил Windows XP в виртуальную машину (Virtual Box, возможно я когда–нибудь напишу статью как пользоваться этой программой) и очень переживал, что может не заработать, но все заработало нормально). Остро стал вопрос с выбором программы (нужно было чтобы и просто и бесплатно) нашел программку VSuite Ram disk (Free Edition) функционала бесплатной версии нам вполне хватит.

Ну и стразу пойдем по пунктам, а то я что-то увлекся со своим «бла бла бла»

– Для начала нам нужно скачать инсталятор и установить, в установке нет ничего сложного, жмем далее и все готово.

– Запускаем программу, видим основное окно программы, в поле «Disk Size» указываете объём памяти который не задействовала система (я выделил для виртуальной машины 4710Мб, а система задействовала 3,5Гб в результате у меня получилось ровно 1024Мб или 1Гб собственно это число я и укажу. P.s. Оставляйте хотябы 2Мб не задействованными (на всякий случай), и владельцы ПК с интегрированными видеокартами память которых выделяется из оперативной памяти пожалуйста учитывайте это!).

В поле «Drive Letter» указывается буква создаваемого диска, Я выбрал чтобы не путаться букву «R», а автоматическом режиме он задаст первую свободную в алфавитном порядке.

В поле «Volume Label» задаем название для раздела.

Жмем кнопку «Add» - готово! Для того чтобы проверить результат переходим в «Мой компьютер» и смотрим что такой раздел появился.

Если все получилось, то задаем файл подкачки на созданный раздел, при этом удаляя файл на других разделах. (Для тех кто не знает или не помнит где задается файл подкачки «Свойства системы\ Дополнительно\ Параметры быстродействия\ Дополнительно»). И после перезагрузки все должно заработать.

Такая проблема может возникнуть на любой Windows. Давайте разберемся почему вся память на компьютере - не доступна.

Разрядность / битность и редакции ОС Windows могут иметь ограничения

Из-за разрядности Windows могут быть проблемы с определением всей оперативной памяти. Все Windows которые имеют разрядность 32 (x86) не могут задействовать для работы более 3,2ГБ оперативной памяти. То есть, даже если у вас установлено, например, 8ГБ оперативки, Windows 32 битка сможет использовать только 3,2ГБ памяти из-за ограничений. Так же, некоторые редакции операционных систем могут иметь ограничения. К примеру, Windows 7 домашняя базовая (home basic) может использовать только 4ГБ оперативки!

Отключите настройку Максимум памяти в MSCONFIG

Тут все просто если вы пытались увеличить производительность вашего ПК, то могли включить настройку "Максимум памяти". Отключить ее просто, идем в Панель управления --> Администрирование --> Конфигурация системы --> вкладка Загрузка --> Дополнительные параметры --> уберите галочку Максимум памяти!

Выделение памяти на интегрированную видеокарту

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

Ищите в БИОСе такие значения:

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

Резервирование памяти под системные нужды в БИОСе / 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. Очень часто, в этом случае помогает просто сброс настроек БИОСа, пробуйте сделать это и вы.

Иногда эти значения нельзя найти из-за того что БИОС устарел и тогда его не мешало бы обновить. Как это сделать я показывал в одном из видео .


Какие еще могут быть проблемы с определением оперативной памяти?

Если у вас проблемы с материнской платой или самой оперативкой, это может вызывать те же последствия, Windows не будет видеть всей оперативки. Что бы выявить проблемы стоит сделать диагностику материнки и оперативки .

Иногда помогает просто перевтыкание планок оперативки в материнку. Так же помогает установка планок оперативку в режим двойного канала.

Те у кого установлены не оригинальные версии Windows (сборки), так же испытывают проблемы с определением всей оперативки. Используйте оригинальные дистрибутивы Windows и таких проблем у вас не возникнет.

Понятно.
Посмотрел спецификацию процессора своего старого компьютера на сайте intel — про него там написано:
Instruction Set 32-bit
http://ark.intel.com/products/27438/Intel-Pentium-4-Processor-2_40-GHz-512K-Cache-533-MHz-FSB

А вообще, почитал в инете ещё по этой теме — пришёл к выводу, что для того, чтобы Windows увидела и начала использовать 4 Гб оперативной памяти — недостаточно одного только софта. То есть даже серверные версии Windows, в которых есть полноценный PAE (и хоть какие патчи туда устанавливай) — всё равно не смогут взаимодействовать со всей памятью, если чипсет в материнской плате не имеет дополнительных линий для взаимодействия с памятью. Т.е. для того, чтобы всё это заработало — помимо программной поддержки необходима ещё и аппаратная. Вот опять же на примере своего старого компа — там мат.плата на чипсете i945 — в инструкции к материнке заявлено, что памяти можно поставить до 4-х Гб. Но на деле — чего не придумывай, всё равно использовать все 4 Гб полностью там невозможно. Можно сказать, чипсет 32-х битный и он никак не сможет воспринимать адреса более 2^32 (это 4 Гб), т.е. физически в микросхеме нету столько ячеек для записи адреса или чего там, нет столько линий на плате… А поскольку всё общее адресное пространство (32-битное получается) уходит не только на оперативную память, но также и на все устройства — видео, звук там, контроллеры всякие и т.п. — то определённая часть оперативки остаётся без адресов и система не может с ними взаимодействовать. Получается, чтобы задействовать все 4 Гб памяти на 32 бит чипсете — нужно, чтобы на плате больше не было ничего кроме процессора, памяти и чипсета — никакого другого оборудования. Но зачем тогда такая система может быть нужна? :-)
А вот, к примеру, уже на чипе G31 (вроде) есть дополнительные 4 линии для работы с памятью, адресное пространство увеличивается до 2^(32+4) = 2^36, то есть до 64-х Гб (хотя тут тоже на самом деле получится не 64, а 64 минус объём адресного пространства, которое займёт оборудование).

В общем в итоге получается, что для того, чтобы Windows взаимодействовала со всей памятью нужно, чтобы
1. Набор микросхем мат. платы физически позволял использовать адресное пространство больше 32-х бит.
2. Набор микросхем мат. платы умел делать «переадресацию памяти» (memory mapping) — это когда ячейкам памяти с адресами, которые заняты оборудованием — присваиваются другие свободные адреса из пространства выше первых 32 бит
3. Операционная система умела использовать эту фичу мат. платы (на сколько я понял, умение ОС использовать эту фичу мат. плат — называется PAE — Physical Address Extensions).

Ну и вывод (почему у многих не работает) — вывод мой и, возможно, я ошибаюсь.
Этот патч, описанный в статье — это только третий пункт из перечисленных выше — программный. Но если физически плата не имеет дополнительных линий и не умеет делать переадресацию памяти — то ничего и не может заработать.