Как сделать из 4 гигов 8 гигов

Добавил пользователь Владимир З.
Обновлено: 07.10.2024

win 7 x64 максимальная. После того как поставил еще 2 гига оперативки, система пишет: 4ГБ (доступно 2 ГБ) . Оперативка DDR3-1066 SAMSUNG обе планки. Что это такое и как сделать доступными все 4 гига?

1. Что делать если память более 4 Гб не видна?
Память состоит из ячеек, где каждая ячейка хранит 1 байт информации. У каждой такой ячейки есть адрес, который записывается в виде двоичного кода. Например ячейка №3 записывается как 11 (два разряда) . Ячейка №10 записывается как 1010 (4 разряда) . Если Windows 32-х разрядная, то такой адрес записывается как 32-разрядный ряд:

00000000 00000000 00000000 0000000 = 0 в десятичной системе.
11111111 11111111 11111111 1111111 = 4294967296 в десятичной системе.

Таким образом, максимальный адрес в 32-разрядной системе будет 4294967296.

Сколько 4294967296 байт в гигабайтах? Переводим:

4294967296 байт / 1024 = 4194304 килобайт
4194304 килобайт / 1024 = 4096 мегабайт
4096 мегабайт / 1024 = 4 гигабайта.

Вот и ответ. Максимальный объем памяти в 32-разрядной операционной системе составляет 4 Гб. Поэтому если вы установите 8 Гб памяти, у вас все равно система будет видеть только 4 Гб. Для того чтобы система видела больше 4 Гб памяти, нужно утанавливать 64-разрядную операционную систему.

2. Почему тогда 32-разрядная система не видит все 4 Гб из установленных 4 Гб, ведь согласно расчетам выше так и должно быть?
Дело в том, что значительная часть ячеек (адресного пространства) используется в нуждах установленных периферийных устройств. Большую часть этих ресурсов "съедает" видеокарта. Поэтому в каждом конкретном случае доступная память будет зависить от конфигурации компьютера (какие периферийные устройства установлены) , особенностей BIOS и чипсета (набора микросхем системной логики) . Но в любом случае, от потери части памяти никуда не деться.

3. Если в системе установлено более 4 Гб оперативной памяти нужно, установить 64-разраядную операционную систему, и если в BIOS есть опция "Memory Remap Feature" или "H/W Mem Remap", ее нужно включить (Enabled). Эта опция позволяет перенести блоки адресов, используемые периферийными устройствами, в пространство за пределами 4 Гб.

егор солоницын Мудрец (14788) Ты можешь прочитать всё от начала и до конца внимательно,а не только первую строку

Включи в BIOS опцию "Memory Remap Feature" (может еще называться "Memory Hole Remapping", "H/W Mem Remap", "H/W memory hole Remapping" и т. п. )

Пуск -> Выполнить -> msconfig -> Загрузка -> Дополнительные параметры -> Максимум памяти -> Снять галку если стоит.

Тоже стоят 2 плажки по 2 гб каждая, сделал так как вы посоветовали, где написано "максимум памяти" все равно выдает 2048

нажимаеш вин + R. пишешь msconfig. окей. загрузка. дополнительные параметры. если стоит галачка максимум памяти убираем. число процессов галочка. ставим максимум число процессов. ок. применить. ок. и перезагружаем комп.

Производителям смартфонов большой объем памяти выгоден с нескольких точек зрения. Во-первых, он позволяет впечатлить пользователя и продать устройство подороже; а во-вторых, с объемом памяти в 8, 12 или 16 ГБ можно легко отказаться от оптимизации программного обеспечения. Но означает ли это, что смартфон с 2-4 ГБ ОЗУ уже устарел, и как задействовать оперативку по максимуму?

Android

Почему на Андроиде ОЗУ используется не полностью

Оперативная память смартфона задействуется для работы с открытыми приложениями. По логике, чем ее больше, тем больше приложений можно использовать. На деле же все не так просто.

В момент включения устройства запускаются:

  • файлы, содержащие данные о скорости процессора и уровне заряда батареи;
  • зарезервированный сжатый файл с ядром, его драйверами и модулями;
  • встроенный графический процессор;
  • энергонезависимый файл с данными о IMEI пользователя и настройками связи.

Всем им необходима ОЗУ.

Только после запуска всех этих процессов, оставшаяся оперативная память может использоваться на усмотрение владельца гаджета.

Кроме того, сама система Андроид может резервировать место для дополнительных процессов. Это объясняет, почему объем доступной оперативки не совпадает с теми цифрами, которые заявляет сам производитель.

Человечки Android объемом в 1, 2, 3 и 4 Gb

Как проверить расход памяти

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

Для этого:

Раздел

Раздел

Как сделать, чтобы оперативка использовалась по максимуму

Сделать это можно двумя способами:

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

Первый вариант позволяет избавиться от неиспользуемых или устаревших приложений, резервных копий фото и видео файлов, перебросить данные со смартфона в облако или на ПК и, наконец, обнулить память до заводских настроек.

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

Например, SWAPit RAM EXPANDER. Оно поможет управлять скоростью и стабильностью системы, будет отображать информацию об использовании памяти, а также создаст файл подкачки объемом до 2,5 ГБ. Благодаря виджету на рабочем столе, управлять таким приложением будет просто и удобно.

Активация Swap

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

Некоторое время назад я поставил на один из своих компьютеров 16 ГБ памяти. На нём стоит материнка Foxconn P55MX с Core i5 750. Можно было бы и заменить этот старый CPU, но он пока нормально работает и делает всё, что мне нужно.

Вот что интересно. Материнская плата официально не поддерживает 16 ГБ RAM. Спецификации на вышеупомянутой странице указывают, что поддерживается максимум 8 ГБ. На плате только два слота, поэтому у меня возникло подозрение, что планки 8 ГБ просто были редкостью в то время, когда вышла материнская плата. Я всё равно решил попробовать. Во многих случаях материнские платы поддерживают больше RAM, чем официально заявляет производитель.

Я убедился, что установлена последняя версия BIOS (версия 946F1P06) и вставил две своих планки по 8 гигабайт. Затем загрузил Ubuntu 16.04, и всё работало отлично. Я решил, что моя теория о том, что плата поддерживает больше памяти, чем заявлено в документации, оказалась правильной, и забыл об этом. Мне нравилось работать с дополнительной RAM и я был счастлив, что игра окупилась.

Но несколько месяцев спустя я попытался загрузить Windows 10. В основном, компьютер работает под Linux. Лишь иногда нужно загрузить Windows, чтобы что-то проверить. Тогда-то и началось самое интересное.

Когда появился GRUB, я выбрал в меню Windows 10 и нажал Enter. Экран загрузки Windows ненадолго появился, а затем меня сразу приветствовал синий экран смерти.


Стоп-код: ACPI_BIOS_ERROR. Я много погуглил и выяснил, что суть в какой-то проблеме с ACPI-таблицами в BIOS. Среди прочего, таблицы ACPI сообщают операционной системе, как настроить оборудование. Попытка загрузки с установочного USB-накопителя Windows привела к той же ошибке. Так что, думаю, Foxconn не врал. Этот компьютер действительно не поддерживает 16 ГБ оперативной памяти. Возврат к 8 ГБ привёл к успешной загрузке. Тесты RAM тоже прошли отлично, так что дело не в плохой планке памяти.

Я попытался связаться с поддержкой Foxconn насчёт исправления BIOS, но не получил ответа. Адрес электронной почты указан на их сайте, но он не работает. Возможно, Foxconn больше не занимается материнскими платами. Похоже, они также не оказывают поддержки.

В этот момент обычный человек просто сдался бы, смирившись с 8 ГБ памяти или купив новый компьютер. Но я не хотел так легко сдаваться. Я знал, что теоретически компьютер может использовать 16 ГБ, потому что он отлично работал в Linux. Поэтому я начал изучать ACPI и экспериментировать с настройками BIOS.

В Ubuntu то же самое. С отключённой функцией переназначения памяти она ограничила меня менее чем 4 ГБ RAM. На данный момент я был уверен, что происходит какая-то проблема с отображением памяти. Я решил подробнее изучить ошибку ACPI_BIOS_ERROR и её причины — и наткнулся на этот отличный документ для отладки драйверов Microsoft, который объясняет проверку ошибок ACPI_BIOS_ERROR.

После соответствующей правки реестра я снова включил функцию переназначения памяти в BIOS и загрузил Windows. BSOD теперь показал четыре дополнительных кода в верхнем левом углу:


Прекрасно! Таким образом, параметр 1 равен 0x0000000000000002. В документации Microsoft написано, что параметр 1, равный 0x02, означает проблему с обработкой списка ресурсов для корневых шин PCI. Поскольку параметры 2, 3 и 4 выглядят как сумасшедшие значения, это, наверное, указатели. И если тут одни указатели, Microsoft говорит, что проблема в том, что область декодирования PCI перекрывается со списком областей памяти, возвращаемых интерфейсом BIOS E820.

Окей. Информации много, но можно с чего-то начать исследование. Я нашёл информацию, как вызов E820 BIOS предоставляет информацию об областях памяти. Затем вернулся в Linux и просмотрел всю информацию о запуске ядра с помощью команды dmesg, уделяя особое внимание E820 и ACPI. Вот что нашлось:


Позже я увидел это:

В этот момент я не был уверен, стоит ли продолжать. Последние 768 МБ памяти с 0x400000000 до 0x42fffffffff сопоставлены с началом огромной области пространства памяти, которую материнская плата использует для PCI. Ясно, что если материнская плата ожидает там PCI, может произойти что-то действительно плохое. Таким образом, материнская плата поддерживает только 15,25 ГБ RAM, правильно?

Но… в Linux всё работает просто отлично, без поддержки этой дополнительной области сопоставления PCI! Что, если как-то изменить таблицы ACPI, чтобы большой диапазон PCI начинался с 0x430000000 вместо 0x400000000, то есть сразу после окончания физической RAM. Тогда конфликт бы исчез, а большая часть окна сопоставления PCI по-прежнему осталась доступной.

Я начал копаться в таблицах ACPI. К счастью, Linux позволяет очень легко делать дампы. Есть специальные инструменты для этого, но таблицы можно легко найти в sysfs:


Вот они все. Меня также обрадовало, что в GRUB есть возможность заменить ваши таблицы ACPI новыми версиями. Поэтому если выяснить, какая таблица задействована, можно установить новую версию этой таблицы с помощью GRUB. Теоретически, Windows будет счастлива этим.

Среди других инструментов, я использовал iasl, чтобы разобрать различные таблицы ACPI и найти значение 0x400000000 для замены. Скорее всего, это значение с обратным порядком байтов (little-endian) и размером 64 бита, так что я запустил binwalk для поиска по всем файлам таблиц:

Я сделал копию таблицы OEMB, заменив байт 0x00 непосредственно перед байтом 0x04 на 0x30, чтобы изменить значение на 0x430000000 (помните, что это обратный порядок). Эту изменённую копию я поместил в файл /boot/oemb.dat. Затем использовал GRUB для замены таблицы OEMB моей копией, временно вставив следующую команду в список команд загрузки (ввод буквы 'e' в GRUB после выбора Ubuntu):


Идея в том, что она говорит GRUB загрузить все таблицы ACPI, кроме таблицы OEMB, а затем загрузить содержимое /boot/oemb.dat и добавить его в качестве дополнительной таблицы. Это эффективно заменит старую таблицу OEMB новой таблицей OEMB.

Хорошо, я загрузил Linux и…


Проклятая ошибка никуда не делась. WTF? Я предположил, что диапазон PCI фактически определён где-то ещё, но я нигде не видел, чтобы определялось конкретное значение. Я убедился, что исправленная таблица OEMB действительно загрузилась, и вернулся к исследованию.

На этот раз я решил использовать iasl для декомпиляции таблицы DSDT. Отслеживание показало, что таблица DSDT должна содержать метод под названием _CRS , который отвечает за создание этой таблицы.


В файле .dsl я действительно нашёл метод _CRS, связанный с шиной PCI, и он выглядел довольно сложным. Таблица DSDT содержит фактический код, поэтому значения таблицы искать непросто. В моем случае метод _CRS оказался довольно сложным. Я интерпретировал код насколько смог и понял, что метод _CRS загружает информацию из другой таблицы в памяти, начиная с 0xCF78E064. Я снова посмотрел лог загрузки Linux в dmesg и нашёл это:


Ага! Он загружает информацию из таблицы OEMB. Моя догадка была верна с самого начала. Так почему же не сработала замена таблицы OEMB?

Я снова посмотрел на лог dmesg после замены таблицы OEMB. Чего я не понимал, так это того, что если вы пытаетесь изменить таблицы, то GRUB перемещает большинство из них, включая OEMB, в другую область памяти. Проблема в том, что таблица DSDT жёстко закодирована на просмотр адреса 0xCF78E064 для таблицы OEMB. Поэтому-то новая таблица не видна системе, она по-прежнему смотрит на исходную таблицу. Ух.

Первым порывом было изменить DSDT, чтобы перевести её на новое расположение таблицы OEMB, но я чувствовал, что в перспективе это плохая идея, потому что новые версии GRUB могут изменить местоположение в памяти, где хранится пользовательская таблица OEMB.

Я остановился на другой идее. В GRUB есть эквиваленты команд write_byte , write_word , write_dword и read_ . Что если GRUB на лету будет изменять исходную таблицу OEMB? В наше время BIOS'ы сжатые. Вероятно, таблицы загружаются в RAM, поэтому теоретически можно изменять значения.

Так я и сделал. В качестве временного теста я добавил следующую команду в последовательность загрузки GRUB:

Она заменяет байт 0x00 непосредственно перед байтом 0x04 на значение 0x30, преобразуя 64-разрядный начальный адрес PCI этого конечного диапазона в 0x0000000430000000. Я не обновлял контрольную сумму таблицы OEMB, потому что Linux и так скулил, что контрольная сумма неверна, поэтому, очевидно, ему всё равно.

Я перезагрузился в Linux и с тревогой проверил лог dmesg для PCI.


Успех! Окно 0x430000000-0xfffffffffff появилось как новое допустимое окно в списке, и предупреждение о конфликте исчезло. После проверки, что Linux всё ещё работает нормально, я попытался загрузиться в Windows с тем же хаком.

Сработало! Теперь я могу загрузиться в Windows с 16 ГБ RAM, если использовать GRUB в качестве загрузчика с вышеупомянутой командой write_byte. Загрузчик Windows 10, очевидно, не будет работать. И если я когда-нибудь переустановлю Windows, вероятно, придётся временно вытащить одну планку RAM, чтобы загрузился установщик. Но это работает!

Чтобы навсегда добавить исправление в GRUB, я создал файл /etc/grub.d/00_patchbios следующего содержания:


Затем сделал скрипт исполняемым и запустил sudo update-grub . Теперь патч автоматически применяется при запуске GRUB.

Честно не знаю, насколько это безопасно. Действительно ли материнская плата аппаратно запрограммирована смотреть на эти адреса для PCI или что-то ещё. Знаю только, что она проходит мои тесты RAM. Поскольку Linux отлично работает с 16 гигабайтами RAM, меня эти вопросы не слишком беспокоят. Возможно, если установлено больше карт PCI/PCIe или что-то ещё, то возникнут проблемы, но в моём случае, похоже, всё в порядке. Очевидно, что ваша система может отличаться, и этот хак нельзя напрямую применить на других материнских платах, потому что таблица ACPI у каждого BIOS немного отличается.

Думаю, это был весёлый опыт, чтобы поделиться с миром! Надеюсь, вы что-то узнали из этого поста. Конечно, я и сам многому научился в процессе.

Как правильно конфигурировать оперативную память

Практически каждый начинающий пользователь, начавший апгрейд компьютера, сталкивается с вопросом конфигурирования оперативной памяти. Что лучше, одна планка на 16 Гб или две по 8 Гб? Как включить двухканальный режим? В какие слоты ставить планки памяти — ближние или дальние от процессора? Как включить XMP профиль? Какой прирост производительности дает двухканальный режим, включение XMP профиля и разгон памяти?

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


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

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

В играх требования к скорости памяти растут в первую очередь от того, что проекты становятся все реалистичнее, увеличиваются в объемах и детализации 3D-моделей. Новые игры вплотную подбираются к отметке в 100 Гб, и этот объем в первую очередь состоит из текстур высокого разрешения, которые надо переместить с накопителя и обработать.


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


Двухканальный режим работы памяти

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


Чтобы реализовать самый оптимальный режим работы памяти в двухканале, нужно установить два одинаковых модуля ОЗУ в слоты одинакового цвета. Слоты для двух модулей ОЗУ в двухканале обычно называются DIMMA1(2) и DIMMB1(2). Желательно уточнить это в инструкции к вашей материнской плате.


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

Двухканальный режим работы ОЗУ довольно гибок и позволяет установить и разные по объему модули. Например — 4 Гб и 2 Гб в канале A и 4 Гб и 2 Гб в канале B.

Как вариант, можно установить 8 Гб ОЗУ как 4 Гб в канале A и 2+2 Гб в канале B.

И даже конфигурация 4 Гб в канале A и 2 Гб в канале B будет работать в двухканальном режиме, но только для первых 2 Гб ОЗУ.


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

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

Серверных материнских плат с четырехканальным режимом работы ОЗУ мы касаться не будем из-за их малого распространения.

Сколько модулей памяти оптимально для производительности?

Теперь нам надо решить, сколько модулей памяти лучше ставить в компьютер.

Если у вас материнская плата с двумя разъемами под ОЗУ, то выбор очевиден — вам нужно ставить две планки с подходящим вам объемом.


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


Но минусы такого решения перевешивают — у вас не остается слотов под апгрейд, модули памяти меньшего объема быстрее устаревают морально и меньше ценятся на вторичном рынке.

Какого объема ОЗУ достаточно?

При выборе объема ОЗУ ориентируйтесь на 8 Гб для офисного ПК и 16 Гб для игрового.

Выбирая 32 Гб ОЗУ, вы получите еще и прирост производительности, ведь большинство модулей DDR4 на 16 Гб — двухранговые. Это значит, что контроллер памяти в процессоре может чередовать запросы к такой памяти, повышая производительность в рабочих приложениях и играх.

Популярная двухранговая память

То есть, 2х16 Гб ОЗУ будут быстрее 2х8 Гб с той же частотой. Но есть и небольшой минус — у двухранговых модулей более низкий разгонный потенциал.

Посмотреть тип памяти можно программой CPU-Z, во вкладке SPD.


В какие слоты ставить модули памяти — ближние или дальние от процессора?

Раньше ОЗУ чаще ставили в самые ближние к процессору слоты (левые), но теперь все не так однозначно. Надо смотреть инструкцию к материнской плате и ставить по указаниям производителя.

Например, ASUS почти всегда рекомендует ставить память во второй слот.


Включение XMP профилей

Память с высокой частотой недостаточно просто установить в материнскую плату, чтобы она заработала на заявленной скорости. Как правило, скорость ограничится стандартной частотой для вашего процессора и материнской платы. В моем случае это 2400 МГц.

Чтобы активировать для ОЗУ скорость работы, которая записана в XMP профиле, надо зайти в BIOS и в разделе, посвященном настройке памяти, включить нужный XMP профиль. Вот так это выглядит на материнской плате MSI B450-A PRO MAX.


Тестирование разных режимов работы памяти

А теперь давайте протестируем память в разных режимах работы. Главной целью тестов будет разница работы в одно- и двухканальных режимах и разгоне.

  • Процессор: Ryzen 5 1600 с разгоном до 4000 МГц
  • Материнская плата: MSI B450-A PRO MAX
  • Память: два двухранговых модуля CRUCIAL Ballistix Sport LT BLS16G4D30AESC, объемом по 16 Гб. XMP профиль — 2933 МГц. Разгон — 3400 МГц с настроенными таймингами и субтаймингами
  • Видеокарта: GeForce GTX 1060 6 Гб

Начнем с тестирования пропускной способности чтения ОЗУ в AIDA64, в Мб/сек.
На графиках одноканальный режим работы отмечен как (S), а двухканальный — как (D), вместе с частотой работы памяти.


ОЗУ в двухканале прилично выигрывает.


Тестирование в архиваторе WinRAR 5.40 преподносит первый сюрприз. Одна планка памяти в разгоне до 3400 МГц работает быстрее, чем две на частоте 2933 МГц.



Архиватор 7-Zip 19.0, итоговая скорость распаковки в MIPS. Опять одна планка в разгоне обошла две на 2933 МГц.



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

Из игр я выбрал Assassin’s Creed Odyssey и Shadow of the Tomb Raider. Для минимизации воздействия видеокарты на результаты я отключил сглаживание и выставил разрешение в 720p.

В Assassin’s Creed Odyssey даже при 50 % разрешения кое-где производительность упиралась в GeForce GTX 1060, ее загрузка доходила до 99 %.

Более быстрая видеокарта позволила бы еще нагляднее увидеть прирост производительности от режимов работы ОЗУ.

Assassin’s Creed Odyssey, средний FPS. Одна планка ОЗУ, работающая с разгоном, сумела обогнать две планки в двухканале, на частоте 2400 МГц.



Shadow of the Tomb Raider, DX12, средний FPS. Картина повторяется, и одна планка памяти в разгоне быстрее, чем две низкочастотные.



Демонстрация плавности геймплея в Shadow of the Tomb Raider с одним модулем ОЗУ на 3400 МГц. Надо учесть, что запись съела пару кадров результата.

Выводы

В моих тестах один двухранговый модуль памяти на 16 Гб в разгоне обогнал в архиваторах модули с частотой 2933 МГц, работающие в двухканале. А в играх обогнал модули, работающие с частотой 2400 МГц.

Это значит, что вы можете купить быстрый модуль на 16 Гб и добавить еще 16 Гб, когда его станет не хватать.

Но самый идеальный вариант компоновки памяти — два одинаковых модуля в двухканальном режиме.

И совсем хорошо, если вы потратите немного времени на ее разгон. Благо, есть много хороших гайдов на эту тему.

Читайте также: