Qual a quantidade máxima de RAM que posso usar em um hardware específico

26

Eu tenho um notebook Asus U31SD com uma CPU i5-2430M . O site da Asus diz que a RAM máxima é de 8 GB, mas a da Intel diz que minha CPU suporta 16 GB. Qual é a RAM máxima que posso usar neste sistema no Ubuntu?

crond
fonte
3
Para resumir o que todo mundo está dizendo, seu notebook pode usar apenas 8 GB de RAM, devido às limitações da sua placa-mãe. Você pode verificar isso olhando para esta pergunta: askubuntu.com/questions/140322/…
reverendj1
para todos, gostaria de salientar que a empresa produtora de memória "corsair" possui um localizador de memória que pode dizer em geral qual é a quantidade máxima de RAM que seu sistema pode usar. Você também pode ler as fichas técnicas do seu sistema de modelos pesquisando-as on-line; ele informará o máximo de RAM que você pode usar.
Thomas Ward
@ O Senhor dos Tempos: qualquer link?
0xC0000022L
Corsair Memory Finder / Configurator para o sistema mencionado na pergunta: www2.corsair.com/configurator/… || Corsair Memory Finder (página inicial): corsair.com/us/learn_n_explore (Eles anunciarão seus produtos, mas eu posso usá-lo como uma base geral para encontrar especificações semi-precisas para memória máxima
Thomas Ward

Respostas:

29

Na verdade, o limite está entre o hardware (suporte à memória da placa-mãe e a quantidade de slots) e a versão do Ubuntu (32 bits, 32 bits + PAE, x32ABI, 64 bits)

Se você possui uma placa-mãe que suporta no máximo 4 GB, não importa se você usa 32 bits, 32 bits PAE ou 64 bits, pois você terá um limite de hardware de 4 GB.

Mas se você comprar uma placa-mãe que suporte uma quantidade maior de memória, poderá brincar com as versões do Ubuntu, que possuem a seguinte memória máxima suportada:

Ubuntu 32 bits - 4 GB de RAM

Ubuntu 32 bits + PAE (extensão de endereço físico) - 64 GB de RAM

Ubuntu x32ABI - 4GB RAM (Isso é para arquitetura de 32 bits modificada com aprimoramentos de 64 bits em execução no hardware de 64 bits. Ele ainda não está disponível.)

Ubuntu 64 Bit - MUITO! (Atualmente 2 ^ 64), mas devido aos limites de hardware e computadores do mundo real, o limite é de cerca de 1 TB (1024 GB de RAM)

Portanto, a pergunta sobre o limite de memória deve ser usada quando você estiver usando mais de 4 GB de RAM. Nesse caso, você precisaria de 32 bits PAE ou 64 bits, que suportam tamanhos de memória realmente grandes.

Observe também que, se você tem, por exemplo, 4 GB no momento e compra 16 GB de RAM, não há necessidade de reinstalar o Ubuntu ou fazer alterações. Apenas mude as memórias e o Ubuntu deve ler e trabalhar com elas imediatamente. Nenhuma configuração é necessária. Se você possui 32 bits com 4 GB de RAM e instala 16 GB ou RAM, o Ubuntu muda automaticamente de 32 bits para 32 bits PAE. Posso garantir isso desde que mudei de 4 GB para 16 GB no início deste ano.

Aqui está um link para uma explicação muito boa para o Ubuntu sobre a memória em 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

UPDATE - Esqueceu-se de acrescentar que algumas placas-mãe possuem atualizações de BIOS que permitem, corrigem ou aprimoram o máximo de memória suportada. Por exemplo, no passado, algumas placas-mãe da Intel tinham problemas em trabalhar com o máximo suportado. Uma atualização do BIOS corrigiu isso. Outras placas-mãe tinham suporte para 4 GB devido a um problema no BIOS, após a atualização, eles tinham suporte para mais de 4 GB.

Também comparando a memória máxima suportada para a CPU e a placa-mãe, o máximo que você pode ter é o mínimo de qualquer uma delas. Então, por exemplo:

CASE 1
Memória máxima suportada da CPU - placa mãe de 16 GB Memória
máxima suportada - 8 GB
Sua memória máxima suportada - 8 GB (porque é o valor mais baixo entre a CPU e a placa mãe)

CASE 2
Memória máxima suportada da CPU - placa mãe de 16 GB Memória
máxima suportada - 32 GB
Sua memória máxima suportada - 16 GB (porque é o valor mais baixo entre a CPU e a placa mãe)

CASE 3
Memória máxima suportada da CPU - placa mãe de 16 GB Memória
máxima suportada - 64 GB
Sua memória máxima suportada - 16 GB (porque é o valor mais baixo entre a CPU e a placa mãe)

A razão por trás dessa relação de limite de memória para a CPU é devido a modificações técnicas da Intel com as últimas CPUs Core.

Portanto, no seu caso, você tem uma placa-mãe que suporta 8 GB e uma CPU que suporta 16 GB. Isso significa que o máximo que você pode ter é de 8 GB, que você pode usar dependendo da quantidade de slots na placa-mãe. Nesse Asus você tem 2 slots, o que significa que você pode ter dois 4 GB de RAM para completar o máximo de 8 GB.

Mais informações sobre x32abi:

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

LWN - https://lwn.net/Articles/456731/ (Recomende a leitura de comentários para obter explicações fáceis de aprender sobre o limite de memória)

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

Por fim, desde o Ubuntu 12.04, todas as versões de 32 bits do Ubuntu vêm com o PAE ativado por padrão; portanto, todas as 32 bits suportam um máximo de 64 GB de RAM. Caso você esteja usando o 12.04+ e deseje saber qual arquitetura usar, agora você sabe que pode usá-los desde que siga algumas recomendações:

  • Se você tiver 512 MB de RAM ou menos, é altamente recomendável usar 32 bits

  • Se você tiver menos de 4 GB de RAM, mas mais de 512 MB, é recomendável usar 32 bits (mas você ainda pode usar 64 bits)

  • Se você tem 4 GB de RAM, é recomendável usar 32 bits (mas você ainda pode usar 64 bits)

  • Se você tiver entre 4 GB ou RAM e 64 GB de RAM, poderá usar 32 bits ou 64 bits, mas é recomendável usar 64 bits.

  • Se você tiver mais de 64 GB de RAM, precisará usar 64 Bit

Luis Alvarado
fonte
Luis, você tem certeza do limite de 4 GB em x32? Isso seria triste. Eu li em um artigo (revista alemã) que o x32 suporta mais de 4 GB. E o PAE?
turbo
@ turbo - Essa é uma pergunta muito boa que demorei um pouco para encontrar. Eu respondo com 4 GB por causa desta parte da explicação de "O que é x32abi?": O X32 ABI permite executar programas no modo de 64 bits com ponteiros de 32 bits. Como funciona com ponteiros de 32 bits, isso significa que a memória máxima que ele pode usar para trabalhar é de 4 GB. Claro, eu não sei se existe um modo x32abi PAE, mas como é uma maneira de executar programas de 32 bits para tirar algumas das vantagens de 64 bits sem usar o dobro da memória ram para tarefas, concluí que é limitado por 32 bits a 4 GB de RAM.
Luis Alvarado
1
Na verdade, o limite para 64 bits é 2 ^ 48 bytes e x32 é o mesmo, apenas limitado a 4 GB por processo , para processos x32. O x32 executa um kernel de 64 bits, para que ele possa executar alguns programas completos de 64 bits, mas o x32 cria a maioria dos programas para usar apenas 32 bits.
psusi
6

Para 32 bits, o limite teórico é 2 ^ 32 = 4096 MB, mas a partir do Ubuntu 12.04 no PAE (Extensão de Endereço Físico) é ativada por padrão com um limite de 2 ^ 36 = 64 GB.

Para 64 bits, deve ser 2 ^ 64 = 16.777 216 TB (sim, é Terabyte) por via térmica. Na realidade, a quantidade de RAM é limitada a 2 ^ 48 ou 256 TB de RAM.

Como os limites teóricos não podem realmente ser alcançados em um laptop normal, a limitação real é a quantidade de slots de memória (normalmente 1-2) no seu notebook e o suporte do chipset. 8-16 GB é realista aqui se você estiver disposto a pagar muito pelos módulos de 8 GB.

turbo
fonte
Para comprar com segurança módulos de 2x 8gb e esperar que funcionem? (Estou executando 64 bits, atualmente com 8
GB de
Bem com segurança ...; P Outros notebooks com os chips Intel HM65 Express suportam 16 GB (Asus G74SX-TZ293V), então sim.
turbo
6

Acabei de comprar um 8GB extra para colocar no meu U31SD, totalizando 12GB. Apesar da página de especificações da Asus dizer que 8 GB é o limite, isso funciona bem. Passou no memtest86 e é visível no Ubuntu de 64 bits.

Tenho a atualização mais recente da BIOS instalada, não tenho certeza se isso faz alguma diferença.

FYI, saída de sudo dmidecode -t 16indica Maximum Capacity: 16 GB.

user77303
fonte
1

É uma restrição na placa-mãe e não na CPU. A CPU pode suportar até 16 GB, mas se a placa-mãe suportar apenas 8 GB, esse é o seu limite.

No Ubuntu, se você estiver executando 32 bits, seu limite é de 4 GB e se estiver executando 64 bits, é muito maior (não me lembro ao certo, mas está bem acima de 16 GB.

Mas você sempre será restringido pelo seu hardware. Você sempre deve comparar o limite da placa-mãe e o limite da CPU e assumir o valor mais baixo como o limite do PC.

Jacob Tomlinson
fonte
0

No seu caso específico, 8 GB devem-se ao fato de sua placa-mãe não suportar mais do que a quantidade de RAM.

Mas o próprio Ubuntu suporta no máximo 4 GB para 32 bits, 64 GB no PAE de 32 bits e 128 GB no 64 bits (embora teoricamente o limite seja muito maior para 64 bits).

MuffinStateWide
fonte
0

havia muitas perguntas que determinam o tamanho de um ponteiro. basicamente, como regra geral, você pode dizer que essa é a arquitetura do processador,

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)

Para endereçar 8 GB de RAM, você precisa de 8.589.934.592 mapeamentos e o ponteiro de tamanho 4 bytes não pode endereçar todos os valores possíveis. Por isso, não posso ter mais de 4 GB de RAM na arquitetura x86.

Existem outras possibilidades:

A quantidade de RAM não é limitada pela arquitetura (32 ou 64 bits). A arquitetura decide apenas quanta memória pode ser endereçada por vez, pelo sistema operacional e pelos programas em execução. Em uma máquina de 32 bits, ou seja, uma máquina com barramento de memória de 32 bits, o sistema operacional e os programas podem "ver" apenas 4 GB de memória. Mas isso não significa que haja apenas 4 GB de RAM. Se o fabricante o tiver fornecido, você poderá ter 16 GB ou 4x4 GB de RAM. Nesse caso, haverá mais 2 linhas de endereço "ocultas" e também haveria lógica codificada para decidir os níveis dessas 2 linhas, selecionando assim qualquer uma das 4 GB de RAM disponíveis - 00 01 10 11. Esses bits de endereço "ocultos" não são usados ​​pelas camadas de software; portanto, para essas camadas, eles podem usar apenas um ponteiro de 4 bytes. O número desses "ocultos"

isso é apenas um exemplo. Depende do fornecedor, como eles decidem fornecer a RAM extra.

Veja também:

No caso usual, um ponteiro é grande o suficiente para armazenar mais endereços do que existem unidades de memória no sistema. Isso introduz a possibilidade de um programa tentar acessar um endereço que não corresponde a nenhuma unidade de memória, ou porque não há memória suficiente instalada (ou seja, além do intervalo de memória disponível) ou a arquitetura não suporta esses endereços. O primeiro caso pode, em certas plataformas, como a arquitetura Intel x86, ser chamado de falha de segmentação (segfault). O segundo caso é possível na implementação atual do AMD64, onde os ponteiros têm 64 bits e os endereços se estendem apenas a 48 bits. Lá, os ponteiros devem estar em conformidade com certas regras (endereços canônicos); portanto, se um ponteiro não-canônico for desreferenciado, o processador causará uma falha geral de proteção.

Por outro lado, alguns sistemas têm mais unidades de memória do que endereços. Nesse caso, um esquema mais complexo, como segmentação ou paginação de memória, é empregado para usar diferentes partes da memória em momentos diferentes. As últimas encarnações da arquitetura x86 suportam até 36 bits de endereços de memória física, que foram mapeados para o espaço de endereço linear de 32 bits por meio do mecanismo de paginação PAE. Assim, apenas 1/16 da memória total possível pode ser acessada por vez. Outro exemplo na mesma família de computadores foi o modo protegido de 16 bits do processador 80286, que, apesar de suportar apenas 16 MiB de memória física, podia acessar até 1 GiB de memória virtual, mas a combinação de endereço e segmento de 16 bits os registros dificultaram o acesso a mais de 64 KiB em uma estrutura de dados.

Para fornecer uma interface consistente, algumas arquiteturas fornecem E / S mapeadas na memória, o que permite que alguns endereços se refiram a unidades de memória, enquanto outros se referem a registros de dispositivos de outros dispositivos no computador. Existem conceitos análogos, como deslocamentos de arquivos, índices de matriz e referências a objetos remotos que servem para os mesmos propósitos que endereços para outros tipos de objetos.

(mais aqui )

4pie0
fonte