Это ограничение вашего чипсета / видеокарты / драйвера устройства. Windows(или в некоторых случаях BIOS) отображает память на видеокарту, чтобы использовать ее, потому что у нее нет собственной памяти. Windows не может просто использовать его, когда хочет, потому что это будет нарушением разумных принципов. Microsoft думала о том, чтобы отобразить и переназначить эту память выше 4 ГБ в зависимости от использования. Проблема заключалась в том, что это вызвало бы ОГРОМНУЮ нестабильность в потребительских системах. Обратите внимание, что Windows Server НЕ страдает от ограничения в 4 ГБ, даже на компьютерах с архитектурой x86 ...
http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx#physical_memory_limits_windows_server_2003
Причина была, опять же, в драйверах устройств. Рынок серверов, как правило, имеет меньший рынок драйверов устройств и разработчиков DD, поэтому можно было тестировать и поддерживать большие адресные пространства. Для потребителя это кошмар. Технически операционные системы XP SP2 и выше x86 МОГУТ использовать адрес памяти более 4 ГБ. Хотя не все драйверы устройств поддерживают это, поскольку превышение 4 ГБ означает, что ваши указатели длиннее. Таким образом, DD часто выдает ошибку и, таким образом, вызывает синий экран или даже не загружается.
Еще одно последствие переназначения видеопамяти заключается в том, что видеокарта чувствительна к задержкам. Восстановление памяти обратно на карту включает в себя следующее:
- Перемещение всего, что было там, в файл подкачки. , , (спин спин)
- Запись в базу данных карты памяти ОС, куда вы положили файл
- Если для этого нужна заразная память. , , повторите 1 и 2
- Затем видеокарта должна ждать выделения памяти. (большой палец)
- Загрузка текстур для видеокарты. (спин спин)
- Запись в базу данных карты памяти, куда вы положили текстуры
- Затем постоянно опрашивайте видеокарту: «Вы уже закончили? Вы уже сделали ?? Да уж! Да уж!? Потому что Джонни мальчик на панели задач действительно очень плохо!"
- Затем графическая карта решает, основываясь на каком-то алгоритме, что она должна и не должна сохранять.
- Затем сообщите ОС, какую часть памяти она не использует.
- Все это вовремя, чтобы дать вам 60 кадров в секунду (ну, не технически, но вы видите смысл)
Это также повлияет на все остальные драйверы, которыми управляет ОС, которые чувствительны к задержке, например, аудио драйвер (пропустить пропуск) и сетевые драйверы (Эй, как этот парень телепортировался через дверь !?)
Как вы можете решить это? Поощрение более высокого качества разработчиков драйверов устройств. Они очень недооценены и недооценены. Идеи включают в себя отправку местных пакетов помощи разработчикам DD, наборов Lego Robotics, больших мониторов и, конечно же, женщин.