Почему 32-битные клиентские ОС видят до 4Гб.
Каждая ячейка ОЗУ (1 байт) имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа.
2^32=4294967296 байт = 4 ГБ. То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться. Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616.
Почему тогда объем доступной памяти меньше 4Гб (3-3,5Гб)
Это происходит из-за того, что существенная часть адресного пространства используется в нуждах установленных периферийных устройств (основной потребитель – видеокарты), при этом сама оперативная память никоим образом ими не используется. Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей BIOS и конфигурации конкретного ПК (например, эта величина зависит от интерфейса и количества видеокарт, но никоим образом не зависит от того, каким количеством модулей и какого объёма у вас получен такой общий объём памяти.)
Каждая ячейка ОЗУ (1 байт) имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа.
2^32=4294967296 байт = 4 ГБ. То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться. Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616.
Почему тогда объем доступной памяти меньше 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), иначе возможны проблемы в работе карт расширения, видеокарты (например, зависание или резкое падение производительности в трехмерных играх).
*Memory Remapping Feature - Если в системе установлено 4 и более Гбайта оперативной памяти, включение этой опции (Enabled) переносит блоки адресов, используемые картами расширения, в адресное пространство за 4-м Гбайтом. Для полноценной поддержки такого объема необходимо использование 64-х разрядных процессоров и 64-х разрядных версий операционных систем (либо серверных версий 32-х разрядных операционных систем, допускающих расширение физических адресов — PAE). При меньшем объеме оперативной памяти обязательно выключите эту опцию (Disabled), иначе возможны проблемы в работе карт расширения, видеокарты (например, зависание или резкое падение производительности в трехмерных играх).
Цитата:
Появление PCI-E принципиальных изменений не принесло - изменился физический интерфейс, а организация использования видеопамяти осталась той же. Чтобы наглядно показать, как количество доступного объема ОЗУ связано с использованием физического адресного пространства устройствами, приведем две картинки - окно свойств компьютера и окно диспетчера устройств с распределением ресурсов памяти. Использовался видеоадаптер со 128 Мб ОЗУ. Операционная система использует 3,25 Гб ОЗУ из четырех установленных, и эта величина в точности соответствует нижней границе адресного пространства, используемого видеоадаптером (портом PCI-E): шестнадцатеричное значение d0000000. Обратите внимание, что отведены для видеоадаптера адреса с d000000 по dfffffff, то есть 256 Мб. Проверим, как влияет на доступный объем ОЗУ размер памяти видеоадаптера. Заменим плату со 128 Мб на такую же модель, но с 512 Мб. Как видим, ничего не изменилось. Размер используемого адресного пространства задается не самим адаптером, а оборудованием шины AGP или PCI-E.в IBM PC/386 и во всех последующих совместимых компьютерах ОЗУ в адресном пространстве занимало нижние области, а остальное оборудование - от верхней границы 4 Гб вниз. Причем долгое время никто всерьез не беспокоился об этом четвертом гигабайте - единицы или десятки килобайт буферов сетевого адаптера и контроллера дисков и считанные мегабайты памяти видеоадаптера погоды не делали. Первый серьезный скачок в «отжирании» у ОЗУ адресного пространства сделала технология AGP. С появлением видеоадаптеров с аппаратными ускорителями вывода трехмерных изображений резко увеличилась потребность в объеме оперативной памяти такого адаптера. Технология AGP дала возможность в случае необходимости (нехватки собственной памяти) использовать для нужд видеоадаптера часть основной памяти компьютера. Необходимость быстрой работы с памятью видеоускорителя диктовала размещение всего объема этой памяти в физическом адресном пространстве. Поэтому оборудование AGP резервирует для своих нужд адресное пространство, которое до недавних пор было гораздо больше, чем размер видеоОЗУ. Обычно резервируется 256 Мб, причем не имеет значения, сколько памяти установлено в видеоадаптере. Для ограничения доступного для ОЗУ адресного пространства достаточно физического присутствия устройства на шине, и не имеет значения, используется оно или нет. Вывод: Хотя 32-разрядные версии Windows XP/Windows Vista/Windows 7 могут использовать четыре гигабайта ОЗУ, из-за ограничений, накладываемых архитектурой используемого оборудования, эта величина обычно оказывается в пределах 3-3,5 Гб. |
Почему 32-битные серверные ОС видят более 4Гб.
В серверных ОС задействован режим расширенной физической адресации (Physical Address Extension (PAE)).
В клиентских версиях Windows, начиная с WinXP Service Pack 2 данный режим реализован лишь частично, дабы избежать проблем с софтом и драйверами, которые не поддерживают PAE или 64-битную адресацию.
В серверных ОС задействован режим расширенной физической адресации (Physical Address Extension (PAE)).
В клиентских версиях Windows, начиная с WinXP Service Pack 2 данный режим реализован лишь частично, дабы избежать проблем с софтом и драйверами, которые не поддерживают PAE или 64-битную адресацию.
Цитата:
Windows XP SP2 в данном случае по умолчанию включила режим PAE для обеспечения поддержки DEP. Но, в отличие от Windows Server 2003, в Windows XP расширение физических адресов реализовано лишь частично. Эта система не поддерживает 36-разрядную адресацию памяти, Даже с включенным PAE она имеет то же самое 32-разрядное адресное пространство, что и без этого режима. |
Вывод: Windows XP/Windows Vista/Windows 7 увидеть все четыре гигабайта ОЗУ (если они установлены) просто не в состоянии, и изменить это нельзя. Тем, кто уже потратил свои кровные денежки остается либо смириться, что часть памяти окажется неиспользованной, либо переходить на 64-разрядные версии ОС.