После установки Windows XPс пакетом обновления 2 (SP2) размер оперативной памяти, указанный в диалоговом окне «Свойства системы» или средством «Сведения о системе», меньше ожидаемого
Проблема
После установки Microsoft Windows XP Service Pack 2 (SP2) изменился объем памяти, отображаемый диалоговым окном Свойства системы или утилитой «Сведения о системе» (Msinfo32.exe). Подобная ситуация наблюдается в случае выполнения следующих условий:
• На компьютере, работающем под управлением Windows XP, установлено более 4 ГБ оперативной памяти.
• На компьютере, работающем под управлением Windows XP, используется режим расширения физических адресов (PAE).
Примечание. Режим PAE включается добавлением параметра/pae в файл Boot.ini, хранящийся в корневом каталоге системного диска.
Например, перед установкой Windows XPс пакетом обновления 2 (SP2), в диалоговом окне Свойства системы отображалось, что объем оперативной памяти составляет 3,87 ГБ. Средство «Сведения о системе» могло указывать, что размер физической памяти составляет примерно 3540,00 мегабайт (МБ). После установки Windows XP с пакетом обновления 2 (SP2) в диалоговом окне Свойства системы может отображаться приблизительно 3,12 ГБ оперативной памяти, а средство «Сведения о системе» может указывать, что размер физической памяти составляет примерно 2770,00 МБ.
Примечание. Если на компьютере, работающем под управлением Windows XP и имеющем 4 ГБ оперативной памяти, отключить режим PAE, диалоговое окно Свойства Системы может отображать приблизительно 3,12 ГБ оперативной памяти, а средство «Сведения о системе» может указывать, что размер физической памяти составляет примерно 2710,00 МБ. Те же значения указываются после установки Windows XP с пакетом обновления 2 (SP2)
Перейти к началу страницы
Причина
Данная проблема возникает из-за изменения устройства Windows XP с пакетом обновления 2 (SP2). В режиме PAE для улучшения совместимости драйверов были сделаны изменения.
Для устранения проблем совместимости в Windows XP с пакетом обновления 2 (SP2) внесены изменения в аппаратно-зависимый уровень (HAL) с целью имитации поведения 32-разрядного HAL в отношении функции DMA. При этом в режиме РАЕ измененный HAL выделяет неограниченное число регистров отображения, а диспетчер памяти ядра игнорирует физические адреса за пределами диапазона 4 ГБ. Любая системная оперативная память, размер которой превышает 4 ГБ, не сможет быть адресована Windows и использована системой. Из-за ограничения адресного пространства до 4 ГБ устройства с 32-битной шиной DMA не будут распознавать транзакции с адресами, лежащими за пределами 4Гб. Так как эти изменения ликвидируют необходимость в транзакциях с двойной буферизацией, они помогают исключить появление целого класса ошибок, относящихся к правильности реализации двойной буферизации в некторых драйверах.
Перейти к началу страницы
Дополнительная информация
Проблемы совместимости драйверов, вызываемые режимом PAE
Проблемы совместимости драйверов DEP в основном возникают из-за режима PAE.
Примечание. PAE необходим только на компьютерах, поддерживающих DEP на аппаратном уровне.
Функция DEP может быть несовместима с драйверами, которые динамически создают программный код или используют другие методы для создания программного кода в режиме реального времени. Многие драйверы с таким поведением исправлены, так как для драйверов, работающих в 64-битных версиях Windows, DEP включен всегда. Таким образом, нет гарантии, что все драйверы обновлены. С другой стороны, поскольку только небольшое число драйверов выполняет такие действия, маловероятно, что сама функция 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-битной архитектурой процессоров выяснилось, что большинство драйверов с поддержкой прямого доступа к памяти используют неограниченные регистры отображения.
Дополнительные сведения об изменениях в функциях Windows XP с пакетом обновления 2 (SP2) см. на веб-узле корпорации Майкрософт по следующему адресу:
http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2mempr.mspx