Клуб экспертов THG.ru

Клуб экспертов THG.ru (http://www.thg.ru/forum/index.php)
-   FAQ. Оперативная память. (http://www.thg.ru/forum/forumdisplay.php?f=310)
-   -   FAQ. Windows 32-bit и 4GB RAM (http://www.thg.ru/forum/showthread.php?t=62607)

Rikimaru 11.04.2011 17:36

FAQ. Windows 32-bit и 4GB RAM
 
1.1 Почему 32-битные клиентские ОС видят до 4Гб.
Каждая ячейка ОЗУ (1 байт) имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа.
2^32=4294967296 байт = 4 ГБ. То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться. Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616.

1.2 Почему тогда объем доступной памяти меньше 4Гб (3-3,5Гб)
Это происходит из-за того, что существенная часть адресного пространства используется в нуждах установленных периферийных устройств (основной потребитель – видеокарты), при этом сама оперативная память никоим образом ими не используется. Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей BIOS и конфигурации конкретного ПК (например, эта величина зависит от интерфейса и количества видеокарт, но никоим образом не зависит от того, каким количеством модулей и какого объёма у вас получен такой общий объём памяти.)

Радикальное решение данной проблемы существует только одно – замена ОС на 64-битную и включение в BIOS материнской платы опции «Memory Remap Feature» (или «H/W Mem Remap», обычно находится в разделе «Chipset Settings» или «NorthBridge Settings», некоторые современные платы включают эту функцию автоматически). Только при соблюдении обоих этих условий вы сделаете доступным для ОС весь объём установленной памяти. Если вы включите Memory Remap с 32-битной ОС, то доступный ей объём оперативной памяти может быть ограничен до 2Гб, поэтому такого делать не надо.
Цитата:

Memory Remapping Feature - Если в системе установлено 4 и более Гбайта оперативной памяти, включение этой опции (Enabled) переносит блоки адресов, используемые картами расширения, в адресное пространство за 4-м Гбайтом. Для полноценной поддержки такого объема необходимо использование 64-х разрядных процессоров и 64-х разрядных версий операционных систем (либо серверных версий 32-х разрядных операционных систем, допускающих расширение физических адресов — PAE). При меньшем объеме оперативной памяти обязательно выключите эту опцию (Disabled), иначе возможны проблемы в работе карт расширения, видеокарты (например, зависание или резкое падение производительности в трехмерных играх).
Чтобы наглядно показать, как количество доступного объема ОЗУ связано с использованием физического адресного пространства устройствами, приведем две картинки - окно свойств компьютера и окно диспетчера устройств с распределением ресурсов памяти. Использовался видеоадаптер со 128 Мб ОЗУ.



Операционная система использует 3,25 Гб ОЗУ из четырех установленных, и эта величина в точности соответствует нижней границе адресного пространства, используемого видеоадаптером (портом PCI-E): шестнадцатеричное значение d0000000. Обратите внимание, что отведены для видеоадаптера адреса с d000000 по dfffffff, то есть 256 Мб. Проверим, как влияет на доступный объем ОЗУ размер памяти видеоадаптера. Заменим плату со 128 Мб на такую же модель, но с 512 Мб. Как видим, ничего не изменилось. Размер используемого адресного пространства задается не самим адаптером, а оборудованием шины AGP или PCI-E.

Для ограничения доступного для ОЗУ адресного пространства достаточно физического присутствия устройства на шине, и не имеет значения, используется оно или нет.

Вывод: Хотя 32-разрядные версии Windows XP/Windows Vista/Windows 7 могут использовать четыре гигабайта ОЗУ, из-за ограничений, накладываемых архитектурой используемого оборудования, эта величина обычно оказывается в пределах 3-3,5 Гб.

2. Почему 32-битные серверные ОС видят более 4Гб.
В серверных ОС задействован режим расширенной физической адресации - PAE (Physical Address Extension).
В отличие от Windows Server 2003, в Windows XP расширение физических адресов реализовано лишь частично, дабы избежать проблем с софтом и драйверами, которые не поддерживают PAE или 64-битную адресацию. Эта система не поддерживает 36-разрядную адресацию памяти, даже с включенным PAE она имеет то же самое 32-разрядное адресное пространство, что и без этого режима.

Источник: http://www.ixbt.com/soft/windows-4gb.shtml

Доп.информация

Четыре гигабайта памяти - недостижимая цель?
Новую (для платформы PC/386) технологию назвали расширением физических адресов (PAE) и воплотили ее в процессорах Pentium Pro. Компьютеры на этих и всех последующих процессорах могут (при наличии соответствующей системной платы, конечно) использовать не 32-х, а 36-разрядную шину адреса, что дает возможность установить до 64 Гб ОЗУ.

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

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

В окне свойств XP SP2 тоже есть такая надпись. Значит, эта система тоже работает в режиме расширения физических адресов? Но почему же тогда ей доступно лишь три с небольшим гигабайта?

Да, Windows XP SP2 в данном случае по умолчанию включила режим PAE для обеспечения поддержки DEP. Но, в отличие от Windows Server 2003, в Windows XP расширение физических адресов реализовано лишь частично. Эта система не поддерживает 36-разрядную адресацию памяти, Даже с включенным PAE она имеет то же самое 32-разрядное адресное пространство, что и без этого режима.

Так что даже принудительное включение РАЕ не добавит в распоряжение системы ни одного байта.

Впрочем, если установить Windows XP с первым пакетом исправлений или исходную версию вообще без пакетов (что автор по некоторым причинам категорически не рекомендует делать на современных компьютерах), то расширение физических адресов даст системе возможность увидеть все четыре гигабайта. Но стоит только добавить SP2, как количество памяти сразу уменьшится.

Причина в том, что в 32-разрядных Windows XP SP2 (а также будущем SP3) и Windows Vista расширение физических адресов есть, но в то же время его как бы и нету. Причина проста и банальна – обеспечение совместимости с драйверами, написанными без учета возможного включения РАЕ. Остановимся на этом чуть подробнее.

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

Разработчики же драйверов, предназначенных для обычных рабочих и, тем более, домашних компьютеров могли и упростить себе работу - зачем предусматривать алгоритм работы с включенным РАЕ, если он не используется? Ведь без него и программировать меньше надо, и работы по тестированию меньше делать. Но если такой драйвер оказывался в системе с включенным расширением физических адресов, то с достаточно высокой вероятностью он мог «порушить» управление памятью системы, что привело бы в лучшем случае к неработоспособности устройства, а в худшем – повреждению данных или сбою в работе системы (синему экрану).

А ведь для повышения безопасности системы надо было включать в процессоре защиту от исполнения данных и, как следствие, режим расширения адресов. Поэтому для совместимости со всеми ранее написанными для Windows XP драйверами было принято компромиссное решение - чтобы режим РАЕ включался, добавлял третий этап в процесс транслирования адреса, но ничего на этом третьем этапе не изменял. Фактически это означает, что расширения адресного пространства не происходит и система имеет те же четыре гигабайта физических адресов. А часть этих адресов, как мы помним, заняты устройствами.

Источник: http://www.ixbt.com/soft/windows-4gb.shtml

Проблемы совместимости драйверов в режиме расширения физических адресов
Проблемы совместимости драйверов с предотвращением выполнения данных типичны для режима расширения физических адресов.

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

Функция DEP может быть несовместима с драйверами, которые динамически создают программный код или используют другие методы для создания программного кода в режиме реального времени. Многие драйверы с таким поведением необходимо было исправить, так как для тех из них, которые работают в 64-разрядных версиях Windows, предотвращение выполнения данных включено всегда. Таким образом, нет гарантии, что все драйверы обновлены. С другой стороны, поскольку только небольшое число драйверов выполняет такие действия, маловероятно, что сама функция DEP будет являться причиной несовместимости.

Основная проблема совместимости драйверов связана с использованием режима РАЕ в 32-разрядных системах. Режим PAE позволяет процессору адресовать более чем 4 ГБ памяти. Основное отличие между схемами разбиения памяти на страницы в PAE и не в PAE заключается в дополнительном уровне разделения, необходимом в режиме PAE. В режиме PAE требуются три уровня разбиения памяти на страницы вместо двух.

Если включен режим расширения физических адресов, некоторые драйверы не загружаются, поскольку устройство не поддерживает 64-разрядную адресацию или драйвер полагает, что режим расширения физических адресов требует более 4 ГБ оперативной памяти. Такой драйвер исходит из того, что в режиме расширения физических адресов будут поступать только 64-разрядные адреса, которые он (или соответствующее устройство) не в состоянии обрабатывать.

Другие драйверы загружаются в режиме РАЕ, но нарушают стабильность системы, пытаясь напрямую изменять записи в системной таблице страниц (PTE). В режиме РАЕ такие драйверы вместо ожидаемых 32-разрядных записей получают 64-разрядные записи таблицы страниц.

Наибольшая трудность связана с прямым доступом к памяти (DMA) и выделением реестров отображения. Многие устройства, которые поддерживают прямой доступ к памяти (как правило, 32-разрядные адаптеры), не могут выполнять 64-разрядную физическую адресацию. Если устройство запущено в 32-разрядном режиме, ему доступен весь диапазон физических адресов. В режиме расширения физических адресов данные могут располагаться по физическим адресам за пределами диапазона в 4 ГБ. Для включения устройств с этими ограничениями семейство Windows 2000 Server и более поздние версии Windows снабжены системой двойной буферизации транзакций DMA. Семейство Windows 2000 Server и более поздние версии Windows осуществляют это с помощью передачи 32-битного адреса, указанного в регистре отображения. Устройство выполняет операцию DMA с 32-разрядным адресом, а ядро копирует память по 64-разрядному адресу, который выделен драйверу. Если режим РАЕ выключен, драйверам 32-разрядных устройств не требуется поддержка регистров отображения со стороны реальной памяти, т. е. двойная буферизация не нужна, поскольку все устройства и драйверы располагаются в 32-разрядном диапазоне адресов. В результате тестирования драйверов 32-разрядных устройств на компьютерах с 64-битной архитектурой процессоров выяснилось, что большинство драйверов с поддержкой прямого доступа к памяти используют неограниченные регистры отображения.

Источник: http://support.microsoft.com/kb/888137

Драйверы NVIDIA и режим работы с оперативной памятью PAE
Режим работы с оперативной памятью PAE операционных систем Windows 2000 и более новых используется в следующих случаях:
—Для работы с оперативной памятью больше 4 Гб в 32-битных версиях серверных операционных системах Windows. Определить использование функции PAE можно, зайдя в свойства системы в панели управления, в сведениях о компьютере будет указано, что используется режим Physical Address Extension (расширение физических адресов). Также можно открыть скрытый файл boot.ini в корне загрузочного диска (обычно диск C: ) и посмотреть наличие в строке операционной системы ключа /PAE
—Для использования аппаратных функций NX (XD) bit процессоров AMD и Intel в технологии предотвращения выполнения данных (DEP) в операционных системах Windows XP с установленным Service Pack 2 и Windows 2003 Server с установленным Service Pack 1, и более новых. При обнаружении процессора с поддержкой функций NX/XD Bit автоматически используется режим PAE. В системах без поддержки NX/XD Bit режим PAE для работы DEP не требуется.
—В случае, если в компьютер установлена оперативная память с «горячей» заменой (встречается только в серверах) в операционных системах Windows 2003/2008 Server режим PAE включается автоматически.

Для работы в режиме PAE драйверы устройств должны обладать специальной поддержкой. Отсутствие поддержки может приводить к тому, что обмен устройства с оперативной памятью окажется невозможен или данные в оперативной памяти будут испорчены. Драйверы NVIDIA для видеокарт имеют поддержку PAE начиная с версии 56.64. К сожалению, поддержка PAE не реализована для видеокарт на базе графических процессоров Riva TNT/TNT2/Vanta и GeForce 256/2 (для GeForce 2 MX поддержка есть). В системах с такими видеокартами для надежной работы компьютера придется отключить PAE. Для этого в скрытом файле boot.ini в корне загрузочного диска нужно удалить ключ /PAE из строки операционной системы, если он есть, ключ /noexecute надо привести к виду /noexecute=alwaysoff и добавить в конец строки ключ /NOPAE. После этого объем доступной оперативной памяти будет ограничен 4 Гб, а технология предотвращения выполнения данных DEP будет отключена.

Отключение PAE также рекомендуется в случаях фатальных ошибок 3D приложения и операционной системы, если обновление драйвера NVIDIA не помогает. Следует отметить, что 64-разрядные версии операционных систем не используют режим PAE.


Источник: http://nvworld.ru/faq/pae/


Часовой пояс GMT +4, время: 20:51.

Работает на vBulletin® версия 3.6.10.
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Перевод: zCarot