Ограничение на объем памяти в операционках (4Гб лимит и др.)

Второй раз за последние полгода перечитываю полезный документ: Intel Chipset 4 GB System Memory Support, в котором описывается природа ограничений на память, доступную в операционных системах.

Пытаюсь привести все знания в систему.:)
Вот основные тезисы.
Поправьте и дополните если что.:)

Ограничения на доступный операционке объем ОЗУ накладывают следующие компоненты:

  1. Процессор. В 32-х битном режиме процы могут адресовать лишь 4 Гб. Но начиная с PentiumPro появилась 36-ти битная адресная шина -> теоретически стали доступны 64Гб оперативы.

  2. Операционка. 32-х бинтые операционки поддерживают 4Гб памяти. Те из них, в которых есть поддержка процов c PAE, могут поддерживать больше (в зависимости от реализации и позиционирования на рынке).
    Microsoft Windows       Maximum Physical 
    Operating System        Memory Supported
    =================       ================
    Server 2003 Web Edition.........2 GB
    
    2000 Professional...............4 GB
    2000 Server.....................4 GB
    XP Pro & Home Edition...........4 GB
    Server 2003 Standard Edition....4 GB
    
    2000 Advanced Server.....................8 GB
    2000 Datacenter Server..................32 GB
    Server 2003 Enterprise Edition..........32 GB
    Server 2003 Datacenter Edition..........64 GB
    
    XP 64 bit Edition.......................32 GB
    Server 2003 Enterprise 64-bit Edition...64 GB
    Server 2003 Datacenter 64-bit Edition..512 GB

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

  3. Чипсет. Тут не все до конца ясно. Вроде как чипсеты на i975 поддерживают 8Gb, на 865-м - 4Гб. Но все же нужно проверить. И по остальным чипсетам статистику собрать.

  4. Особенности архитектуры компьютера. Не все из первых 4-х гигов оперативной памяти доступны операционке для размещения в них данных и программ. Часть из этого адресного пространства отводится для работы с железом (PCI/PCI-E/FirmWare/VGA mem/etc), т.е. затеняется им. В зависимости от конфигурации компьютера объем затеняемого таким образом (железом) адресного пространства может варьироваться.

    Но "перекрываемая" железом часть оперативной памяти может быть перенесена и размещена выше границы 4Гб. В биосах материнок для этого обычно есть соответствующие настройки (remap).

Что в итоге получаем в случае установки 4Гб ОЗУ ?

  • Для 64-х битных операционок будет доступна вся установленная оперативка. *)

  • Для 32-х битных операционок с поддержкой PAE так же будет доступна вся память. *)

  • Для 32-х битных операционок без поддержки PAE (у которых доступное адресное пространство ограничено четырьмя гигами) доступным будет от 2,8 до 3,5 Гб оперативки, т.к. та часть оперативной памяти, что переброшена выше границы 4Гб (заремэплена), таким операционкам доступна не будет и пропадет зазря.

  • Для Server 2003 Web Edition в любом случае доступным будет только 2 Гб (ограничение самой операционки).

*) Для п1 и п2 те же самые выводы справедливы и для объемов памяти больших 4Gb, но меньших официально допустимых для данной операционки ограничений (см .таблицу). Не забываем так же про ограничения чипсетов.

Остаются невыясненными еще несколько вопросов.
Один из них: в чем различия между hardware и software remap в биосах некоторых материнок на nForce'вских чипсетах ?

Наверняка что-то переврал, поправьте, плиз.:)

[/][/]
Аватар пользователя rgt

xKVtor Специально сейчас облазил БИОС ASUS M2N32 WS pro
Никаких слов про REMAP не нашел, что с ключем PAE, что без оного XP говорит про 3.5G и PAE, а CPU-z видет все 4G, равно как и Debian 4.0 Etch AMD64 edition

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

rgt

rgt писал(-а):
xKVtor Специально сейчас облазил БИОС ASUS M2N32 WS pro
Никаких слов про REMAP не нашел,

Я точно помню, что видел подобную настройку в биосе какой-то асусовской мамки со встроенным видео на н-форсовском чипсете (то ли 6100, то ли 6150), когда впервые столкнулся с описываемой проблемой. В настройках северного моста.
rgt писал(-а):
что с ключем PAE, что без оного XP говорит про 3.5G и PAE

Тут получается одно из двух.

Либо, чтобы включить PAE нужно еще что-то подкрутить, кроме ключа в boot.ini.

Либо, что более вероятно, в WinXP PAE не работает должным образом. Вполне возможно введено ограничение на адресуемую операционкой физическую память (из коммерческих соображений).

Выходит, в приведенной выше таблице операционок указанана максимально адресуемая память.
Поскольку для винXP значится максимально адресуемая память 4Гб (включая адресное пространство ПЦИ), то все что выше границы 4Gb (в том числе заремэпленый кусок, выведенный из "тени") экспе недоступно. Потому и получается доступная системная память меньше 4 гигов.

rgt писал(-а):
, а CPU-z видет все 4G,

CPUz берет инфу о памяти непосредственно из SPD модулей.
Даже если винду запустить с ключем, насильно ограничивающим занимаемую память, эта прога все равно 4Гб покажет.
rgt писал(-а):
равно как и Debian 4.0 Etch AMD64 edition

А 64-х битные операционки просто обязаны видеть всю установленную память. Вот и этот дебиан видит все 4Гб.:)

PS: а PAE лучше тестить вот на этой четверке:

2000 Advanced Server.....................8 GB 
2000 Datacenter Server..................32 GB 
Server 2003 Enterprise Edition..........32 GB 
Server 2003 Datacenter Edition..........64 GB 

PPS: На хоботе кто-то пишет, что PAE в XP работает, но только с SP1. Надо будет проверить:)
Кстати: support.microsoft.com/kb/888137/en-us

PPPS: по мотивам той же ветки с ixbt:

* PAE в XPSP2 и в Vista32bit все же есть, но используется операционкой не для расширенной адресации, а для каких то своих спецефических нужд (какой-то DEP);

* на системе с ОЗУ>2Гб, при включении remap'а в биосе 2 Гига остаются в адресном пространстве ниже 4Гб (от 0 до 2 Гб), а все остальное располагатеся от 4Гб и выше.

Аватар пользователя DanZer

Цитата:
какой-то DEP
Data Execution Protection - защита от выполнения кода из областей памяти, помеченных, как данные. По идее - должно защищать от эксплоитов на основе переполнения буфера

Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте.
Что-то ищем? Google в помощь

В 32 разрядной висте видно только 3 гигабайта, сколько не ставь. То есть никакой ремап не помогает. 64 разрядная показывает сколько поставишь.

Это из практики, документацию по висте не читал.

попадались мне как то сервера Инкомовские / Prime 1700 ( такая вроде модель)
проц - 2 хеон 2,8 ггц / 64-bit
материнская плата SUPER X6DHE-G2 / X6DHE-G2
OS windows 2000 Server +sp4

озу - 4 ггб - в биосе виделись вся память

а вот в самой ос - где то 3 гига только
пробовали ставить на этот сервер 2000 Advanced Server
только тогда виделась вся память ( все 4 гига)

Продолжение темы тут.


Админ.

Ленты новостей