Какой максимальный объем оперативной памяти я могу использовать на конкретном оборудовании

26

У меня ноутбук Asus U31SD с процессором i5-2430M . На сайте Asus говорится, что максимальный объем оперативной памяти составляет 8 ГБ, а в Intel говорят, что мой процессор поддерживает 16 ГБ. Какой максимальный объем оперативной памяти я могу использовать в этой системе под Ubuntu?

crond
источник
3
Подводя итог, что все говорят, ваш ноутбук может использовать только 8 ГБ оперативной памяти, из-за ограничений вашей материнской платы. Вы можете убедиться в этом, посмотрев на этот вопрос: askubuntu.com/questions/140322/...
reverendj1
всем хотелось бы отметить, что компания по производству памяти "corsair" имеет локатор памяти, который может рассказать вам, каков максимальный объем оперативной памяти, который может использовать ваша система. Вы также можете прочитать технические листы для вашей модели системы, выполнив их поиск в Интернете, и там будет указано максимальное количество ОЗУ, которое вы можете использовать.
Томас Уорд
@ Повелитель времени: есть ссылка?
0xC0000022L
Corsair Memory Finder / Configurator для системы, указанной в вопросе: www2.corsair.com/configurator/… || Corsair Memory Finder (стартовая страница): corsair.com/us/learn_n_explore (Они будут рекламировать свои продукты, но я могу использовать это как общую базу для поиска полуточных спецификаций для максимальной памяти
Томас Уорд

Ответы:

29

На самом деле это ограничение между вашим оборудованием (поддержка памяти материнской платы и количеством слотов в ней) и версией Ubuntu (32-битная, 32-битная + PAE, x32ABI, 64-битная)

Если у вас есть материнская плата, которая поддерживает максимум 4 ГБ, не имеет значения, используете ли вы 32-битную, 32-битную PAE или 64-битную версию, поскольку аппаратный лимит будет равен 4 ГБ.

Но если вы покупаете материнскую плату, которая поддерживает больший объем памяти, вы можете поиграть с версиями Ubuntu, которые имеют следующий максимальный поддерживаемый объем памяти:

Ubuntu 32 Bit - 4 ГБ оперативной памяти

Ubuntu 32-битная + PAE (расширение физического адреса) - 64 ГБ ОЗУ

Ubuntu x32ABI - 4 ГБ ОЗУ (это для 32-битной архитектуры, модифицированной с помощью 64-битных улучшений, работающих на 64-битном оборудовании. Пока недоступно.)

Ubuntu 64 Bit - много! (Фактически 2 ^ 64), но из-за аппаратных ограничений и компьютеров реального мира ограничение составляет около 1 ТБ (1024 ГБ ОЗУ)

Поэтому вопрос об ограничении памяти следует использовать, когда вы используете более 4 ГБ ОЗУ. В этом случае вам понадобится либо 32-битная PAE, либо 64-битная поддержка больших объемов памяти.

Также обратите внимание, что если у вас есть, например, 4 ГБ прямо сейчас, и вы покупаете 16 ГБ оперативной памяти, нет необходимости переустанавливать Ubuntu или вносить какие-либо изменения. Просто измените воспоминания, и Ubuntu должен читать и работать с ними из коробки. Нет необходимости в настройке. Если у вас 32-битная с 4 ГБ ОЗУ и вы устанавливаете 16 ГБ или ОЗУ, Ubuntu автоматически изменится с 32-битной на 32-битную PAE. Я могу ручаться за это, так как я перешел с 4 ГБ до 16 ГБ в начале этого года.

Вот ссылка на очень хорошее объяснение Ubuntu о памяти в 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

ОБНОВЛЕНИЕ - Забыл добавить, что некоторые материнские платы имеют обновления BIOS, которые позволяют, исправляют или увеличивают максимальный поддерживаемый объем памяти. Например, у некоторых материнских плат Intel в прошлом были проблемы с максимальным поддерживаемым значением. Обновление BIOS исправило это. Другие материнские платы имели поддержку 4 ГБ из-за проблемы с BIOS, после обновления они поддерживали более 4 ГБ.

Кроме того, сравнивая максимальную поддерживаемую память для процессора и материнской платы, вы можете получить максимум, как минимум, любой из них. Так, например:

ПРИМЕР 1
Максимально поддерживаемая память ЦП - 16 ГБ
Максимальная поддерживаемая память материнской платы - 8 ГБ
Максимальная поддерживаемая память - 8 ГБ (поскольку это самое низкое значение между ЦП и материнской платой)

CASE 2
Максимальная поддерживаемая память ЦП - 16 ГБ
Максимальная поддерживаемая память материнской платы - 32 ГБ
Максимальная поддерживаемая память - 16 ГБ (поскольку это самое низкое значение между ЦП и материнской платой)

CASE 3
Максимальная поддерживаемая память ЦП - 16 ГБ
Максимальная поддерживаемая память материнской платы - 64 ГБ
Максимальная поддерживаемая память - 16 ГБ (поскольку это самое низкое значение между ЦП и материнской платой)

Причиной этого отношения ограничения памяти к процессору является техническая модификация Intel с последними процессорами Core.

Так что в вашем случае у вас есть материнская плата с поддержкой 8 ГБ и процессор с поддержкой 16 ГБ. Это означает, что вы можете использовать максимум 8 ГБ, в зависимости от количества слотов на материнской плате. В этом Asus у вас есть 2 слота, что означает, что у вас может быть два 4 ГБ оперативной памяти, чтобы заполнить максимум 8 ГБ.

Больше информации о x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (рекомендую прочитать комментарии, чтобы легко узнать объяснения об ограничении памяти)

Google - http://sites.google.com/site/x32abi/

Наконец, начиная с Ubuntu 12.04, все 32-битные версии Ubuntu поставляются с активированной по умолчанию PAE, поэтому все 32-битные будут поддерживать максимум 64 ГБ ОЗУ. Если вы используете 12.04+ и хотите знать, какую архитектуру использовать, вы теперь знаете, что можете использовать любую из них, если будете следовать некоторым рекомендациям:

  • Если у вас 512 МБ ОЗУ или меньше, настоятельно рекомендуется использовать 32-разрядный

  • Если у вас меньше 4 ГБ ОЗУ, но больше 512 МБ, рекомендуется использовать 32-битную (но вы все равно можете использовать 64-битную)

  • Если у вас 4 ГБ ОЗУ, рекомендуется использовать 32-битную (но вы все равно можете использовать 64-битную)

  • Если у вас от 4 ГБ ОЗУ до 64 ГБ ОЗУ, вы можете использовать 32-разрядную или 64-разрядную версию, но рекомендуется использовать 64-разрядную.

  • Если у вас более 64 ГБ оперативной памяти, вам нужно использовать 64-битную

Луис Альварадо
источник
Луис, ты уверен в пределе 4 ГБ в x32? Это было бы грустно. Я прочитал в статье (немецкий журнал), что x32 поддерживает более 4 ГБ. А как насчет PAE?
турбо
@turbo - Это очень хороший вопрос, который мне понадобилось некоторое время, чтобы найти. Я отвечаю с 4 ГБ из-за этой части объяснения «Что такое x32abi?»: X32 ABI позволяет запускать программы в 64-битном режиме с 32-битными указателями. Поскольку он работает с 32-битными указателями, это означает, что максимальная память, которую он может использовать для работы, составляет 4 ГБ. Конечно, я не знаю, существует ли режим x32abi PAE, но так как это способ выполнения 32-битных программ, чтобы использовать некоторые из преимуществ 64-битной версии без использования двойной памяти, для задач я пришел к выводу, что она ограничена 32-битной до 4 ГБ оперативной памяти.
Луис Альварадо
1
На самом деле ограничение для 64 битов составляет 2 ^ 48 байт, а x32 - то же самое, только 4 ГБ на процесс , для процессов x32. В x32 работает 64-битное ядро, поэтому он может запускать некоторые полные 64-битные программы, но x32 создает большинство программ, использующих только 32-битные.
Псуси
6

Для 32-битной системы теоретический предел составляет 2 ^ 32 = 4096 МБ, но в Ubuntu 12.04 для PAE (расширение физического адреса) по умолчанию включен предел с 2 ^ 36 = 64 ГБ.

Для 64 бит это должно быть 2 ^ 64 = 16 777 216 ТБ (да, это терабайт) теоретически. На самом деле объем оперативной памяти ограничен 2 ^ 48 или 256 ТБ оперативной памяти.

Поскольку теоретические пределы не могут быть достигнуты на обычном ноутбуке, фактическим ограничением является количество слотов памяти (обычно 1-2) в вашем ноутбуке и поддержка чипсета. 8-16 ГБ вполне реально, если вы готовы платить серьезные деньги за модули 8 ГБ.

турбо
источник
Так что я могу безопасно купить 2x 8 ГБ модулей и ожидать, что они будут работать? (У меня 64 бит, в настоящее время с 8 ГБ оперативной памяти)
crond
Хорошо, безопасно ...; P Другие ноутбуки с чипами Intel HM65 Express поддерживают 16 ГБ (Asus G74SX-TZ293V), так что да.
Турбо
6

Я только что купил дополнительные 8 ГБ, чтобы вставить в мой U31SD, всего 12 ГБ. Несмотря на то, что на странице спецификаций Asus говорится, что 8 ГБ - это предел, все работает отлично. Прошел memtest86 и виден для 64-битной Ubuntu.

У меня установлено последнее обновление BIOS, но я не уверен, что это что-то меняет.

К вашему сведению, вывод sudo dmidecode -t 16показывает Maximum Capacity: 16 GB.

user77303
источник
1

Это ограничение на материнской плате, а не на процессоре. Процессор может поддерживать до 16 ГБ, но если материнская плата может занимать только 8 ГБ, это ваш предел.

В Ubuntu, если вы используете 32-разрядную версию, тогда ваш лимит составляет 4 ГБ, а если вы используете 64-разрядную версию, она намного выше (точно не помню, но она намного выше 16 ГБ).

Но вы всегда будете ограничены вашим оборудованием. Вы всегда должны сравнивать лимит материнской платы и лимит ЦП и принимать наименьшее значение в качестве лимита ПК.

Джейкоб Томлинсон
источник
0

В вашем конкретном случае 8 ГБ связано с тем, что ваша материнская плата не поддерживает больше, чем объем оперативной памяти.

Но сама Ubuntu поддерживает максимум 4 ГБ для 32-разрядных, 64 ГБ для 32-разрядных PAE и 128 ГБ для 64-разрядных (хотя теоретически ограничение намного выше для 64-разрядных).

MuffinStateWide
источник
0

было много вопросов, что определяет размер указателя. в основном, как правило, вы можете сказать, что это архитектура процессора,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Для адресации 8 ГБ ОЗУ необходимо 8 589 934 592 сопоставлений, а указатель размером 4 байта не может адресовать все возможные значения. вот почему я не могу иметь более 4 ГБ ОЗУ на архитектуре x86.

Есть и другие возможности:

Объем оперативной памяти не ограничен архитектурой (32 или 64 бита). Архитектура определяет только то, какой объем памяти может быть адресован одновременно ОС и выполняемыми на ней программами. На 32-разрядном компьютере, то есть на компьютере с 32-разрядной шиной памяти, ОС и программы могут «видеть» только 4 ГБ памяти. Но это не значит, что оперативной памяти всего 4 ГБ. Если производитель предоставил это, у вас может быть 16 ГБ или 4x4 ГБ оперативной памяти. В этом случае будет еще 2 «скрытых» адресных строки, а также будет жестко заданная логика для определения уровней этих 2 строк, таким образом, выбрав любую из доступных 4 ГБ ОЗУ - 00 01 10 11. Эти «скрытые» биты адреса не используются программными уровнями, поэтому для этих уровней они могут использовать только 4-байтовый указатель. Количество этих «скрытых»

Это только один пример. Это зависит от поставщика, как они решают предоставить дополнительную оперативную память.

смотрите также:

В обычном случае указатель достаточно велик, чтобы вместить больше адресов, чем имеется в системе единиц памяти. Это открывает возможность того, что программа может пытаться получить доступ к адресу, который не соответствует ни одной единице памяти, либо потому, что установлено недостаточно памяти (т.е. за пределами диапазона доступной памяти), либо архитектура не поддерживает такие адреса. Первый случай в некоторых платформах, таких как архитектура Intel x86, можно назвать ошибкой сегментации (segfault). Второй случай возможен в текущей реализации AMD64, где указатели имеют длину 64 бита, а адреса расширяются только до 48 бит. Там указатели должны соответствовать определенным правилам (каноническим адресам), поэтому, если разыменовывается неканонический указатель, процессор вызывает общую ошибку защиты.

С другой стороны, некоторые системы имеют больше единиц памяти, чем адресов. В этом случае более сложная схема, такая как сегментация памяти или разбиение по страницам, используется для использования разных частей памяти в разное время. Последние воплощения архитектуры x86 поддерживают до 36 битов адресов физической памяти, которые были сопоставлены с 32-битным линейным адресным пространством посредством механизма пейджинга PAE. Таким образом, только 1/16 возможного общего объема памяти могут быть доступны одновременно. Другим примером в том же семействе компьютеров был 16-разрядный защищенный режим процессора 80286, который, хотя и поддерживал только 16 МБ физической памяти, мог получить доступ к 1 ГБ виртуальной памяти, но сочетал 16-разрядный адрес и сегмент регистры делали доступ к более чем 64 КиБ в одной структуре данных громоздким.

Чтобы обеспечить согласованный интерфейс, некоторые архитектуры предоставляют ввод-вывод с отображением в памяти, который позволяет некоторым адресам ссылаться на единицы памяти, в то время как другие ссылаются на регистры устройств других устройств в компьютере. Существуют аналогичные понятия, такие как смещения файлов, индексы массивов и ссылки на удаленные объекты, которые служат тем же целям, что и адреса для других типов объектов.

(подробнее здесь )

4pie0
источник