Почему Ubuntu 10.10 amd64 (Maverick Meerkat) не использует более 3 ГБ ОЗУ?
Моя машина - 64-разрядный процессор Intel Centrino Duo Toshiba P205-S6287 и 4 ГБ оперативной памяти на частоте 667 МГц.
Согласно подробным спецификациям , ноутбук оснащен 64-битным процессором Core 2 Duo T5300 и чипсетом 945GM Express.
64-bit
ram
architecture
Питер Мортенсен
источник
источник
uname -a
, о выходе,free -m
а также подтвердить, что у вас есть более 3 ГБ оперативной памяти, посмотрев на ваш dmidecode.uname -a
говорит?Ответы:
Это связано с мобильным Intel 945GM Express в вашем ноутбуке.
У меня есть Thinkpad T60, который использует тот же чипсет. Это был один из первых северных мостов Intel для 64-разрядных процессоров Core2Duo. Они потерпели неудачу в разработке этого.
Чипсет может теоретически адресовать только 4 ГБ ОЗУ, но также должен работать и с другим оборудованием (память ввода / вывода). Для этого он резервирует верхний диапазон памяти в 1 ГБ. Поддержка 64-битных адресов логической памяти в ядре Linux не помогает, потому что материнская плата и северный мост обеспечивают только 32-битную шину физических адресов к процессору. И нет обходного пути.
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad/Thinkpad-s-and-N100-sw-945PM-chipset-can-t-address-gt-3G-Ram/ Т. пл / 2730
источник
Мой короткий ответ: скорее всего, потому что дизайнер BIOS был небрежным.
Длинный ответ:
Несмотря на то, что у вас установлено 4 ГБ ОЗУ, вы не можете ожидать, что с набором микросхем Intel 945GM будет доступно 4 ГБ оперативной памяти. Это ограничение чипсета. Об этом можно узнать из спецификации чипсета:
http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express-chipset-datasheet.html
Цитата из раздела 9.2: " М Emory С ontroller H . УБС обеспечивает максимальную DRAM адрес декодирование пространства 4 ГБ МЧА не переназначить APIC или пространства памяти PCI Express Это означает , что объем физической памяти заполняется в системе достигает. 4 ГБ, будет физическая память, которая существует, но не адресуется и поэтому не может использоваться системой ".
BIOS должен зарезервировать диапазоны адресов для нескольких ресурсов, а именно для самого BIOS, отображенного пространства памяти PCI и PCI Express, внутренней графики, пространства памяти APIC и других окон памяти для доступа к вводу / выводу. Все эти диапазоны адресов должны находиться в пределах адресного пространства 4 ГБ и, как таковые, занимают диапазоны адресов, которые больше не доступны системной памяти. Вы могли бы сказать, что эти ресурсы «крадут» пространство физической оперативной памяти.
При этом, если у вас установлено 4 ГБ, вы можете ожидать, что доступно более 3 ГБ системной памяти .
Объем физической памяти, доступной системе, зависит от того, сколько усилий разработчик BIOS прилагает к настройке этих диапазонов адресов. Например, BIOS может выделить наименьшее количество, необходимое для каждого ресурса. Или это может позволить отключить или ограничить распределение адресов для PCI Express в зависимости от использования вашей системой устройств PCI Express.
Разработчик BIOS вашей системы, вероятно, установил для верхнего предела полезной памяти статический максимум 3 ГБ, даже если вы установили 4 ГБ. Этот подход обеспечивает статическое адресное окно размером 1 ГБ для разработчика BIOS и, как таковое, упрощает задачу разработчиков BIOS для выделения диапазонов адресов для ресурсов, чтобы они не конфликтовали с любым другим диапазоном адресов.
источник
Есть несколько возможных причин.
Во-первых, вы на самом деле не используете сборку amd64. Другая причина заключается в том, что ваша материнская плата и / или BIOS повреждены и не сообщают правильный объем ОЗУ.
Во-вторых, у вас есть видеопамять и другие аппаратные ресурсы, занимающие место в области памяти размером 3-4 ГБ, и ваша материнская плата / BIOS не в состоянии поднять затененную оперативную память на более высокие адреса, чтобы к ней можно было получить доступ.
Выяснить, что требует рассмотрения вашего
dmesg
вывода.источник
Псуси прав.
У меня такая же ситуация здесь:
Хотя они называют его «64-битным процессором», вы часто не можете адресовать 4 ГБ + память.
Большинство старых материнских плат имеют только 32-битные адреса, и из этого пула видеокарте также нужно получать их адреса.
= 4 ГБ - память графической карты (1 ГБ) = 3 ГБ.
Боюсь, что нет возможности исправить это путем исправления или обновления прошивки чего-либо.
Если вы заинтересованы в деталях, я рекомендую: Расширение физического адреса
источник