Почему при использовании AMD64 не распознается более 3 ГБ ОЗУ?

Почему Ubuntu 10.10 amd64 (Maverick Meerkat) не использует более 3 ГБ ОЗУ?

Моя машина представляет собой 64-разрядный процессор Intel Centrino Duo Toshiba P205-S6287 и 4 ГБ ОЗУ на 667 МГц .

Согласно подробным спецификациям , ноутбук работает на 64-битном процессоре Core 2 Duo T5300 и имеет набор микросхем 945GM Express.

8
задан 1 October 2018 в 08:32

4 ответа

Псуси прав.

У меня такая же ситуация:

Хотя они называют его «64-битным процессором», вы часто не можете адресовать 4 ГБ памяти +.

Большинство старых материнских плат имеют только 32-битные адреса, и из этого пула видеокарте тоже нужно получать свои адреса.

= 4 ГБ - память графической карты (1 ГБ) = 3 ГБ.

Боюсь, что нет возможности исправить это путем исправления или обновления прошивки чего-либо.

Если вас интересуют подробности, я рекомендую: Расширение физического адреса

.
0
ответ дан 1 October 2018 в 08:32

Есть несколько возможных причин.

Во-первых, вы на самом деле не используете сборку amd64. Другая причина заключается в том, что ваша материнская плата и / или BIOS повреждены и не сообщают правильный объем ОЗУ.

Другая причина заключается в том, что у вас есть видеопамять и другие аппаратные ресурсы, занимающие место в области памяти размером 3-4 ГБ, а ваша материнская плата / BIOS не в состоянии поднять затененную ОЗУ на более высокие адреса, чтобы к ней можно было получить доступ.

Выяснение того, что требует рассмотрения вашего dmesg выхода.

0
ответ дан 1 October 2018 в 08:32

Это связано с Mobile 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 / mp / 2730

Существует теоретическая возможность разработки переключения банка памяти. Тем не менее, ядро ​​не поддерживает его и не имеет смысла для архитектуры x86. Контроллер памяти i810 945GM, вероятно, слишком ленив, чтобы это имело смысл.

0
ответ дан 1 October 2018 в 08:32

Мой короткий ответ: скорее всего, потому что дизайнер BIOS был небрежным.

Длинный ответ:

Несмотря на то, что у вас установлено 4 ГБ ОЗУ, вы не можете рассчитывать на 4 ГБ оперативной памяти, доступной с набором микросхем Intel 945GM. Это ограничение чипсета. Об этом можно узнать из спецификации чипсета:

http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express- chipset-datasheet.html

Цитата из раздела 9.2: « M emory C контроллер H ubs обеспечивает Максимальное пространство декодирования адреса DRAM 4 ГБ. MCH не перераспределяет пространство памяти 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 для выделения диапазонов адресов для ресурсов, чтобы они не конфликтовали с любым другим диапазоном адресов.

0
ответ дан 1 October 2018 в 08:32

Другие вопросы по тегам:

Похожие вопросы: