Por que mais de 3 GB de RAM não são reconhecidos ao usar o AMD64?

8

Por que o Ubuntu 10.10 amd64 (Maverick Meerkat) não trata mais de 3 GB de RAM?

Minha máquina é um processador Toshiba P205-S6287 Intel Centrino Duo de 64 bits e 4 GB de RAM a 667 MHz.

De acordo com as especificações detalhadas , o notebook roda um processador Core 2 Duo T5300 de 64 bits e possui um chipset 945GM Express.

Peter Mortensen
fonte
3
É um mistério, você pode relatar a saída de uname -a, a saída de free -me também confirmar que você tem mais de 3 GB de RAM ativo olhando para o seu código de dmid.
precisa saber é o seguinte
11
E você tem certeza que possui a versão de 64 bits do Ubuntu. O que uname -adiz?
Vojtech Trefny
mesmo problema, optiplex gx620 Ram de 5 GB

Respostas:

16

Isso se deve ao Mobile Intel 945GM Express no seu laptop.

Eu possuo um Thinkpad T60, que usa o mesmo chipset. Foi uma das primeiras pontes do norte da intel para as CPUs Core2Duo de 64 bits. Eles falharam em projetá-lo.

Teoricamente, o chipset pode endereçar apenas 4 GB de RAM, mas também precisa endereçar outro hardware (memória de E / S). Ele reserva o intervalo de memória superior de 1 GB para isso. O suporte ao endereço de memória lógica de 64 bits no kernel Linux não ajuda, porque a placa principal e a northbridge fornecem apenas um barramento de endereço físico de 32 bits para a CPU. E não há solução alternativa.
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

Existe uma opção teórica para planejar a troca de banco de memória. No entanto, o kernel não o suporta, nem faria sentido na arquitetura x86. O controlador de memória i810 do 945GM provavelmente é muito preguiçoso para que isso faça sentido.

mario
fonte
1

Minha resposta curta é: provavelmente porque o designer do BIOS era desleixado.

A resposta longa é:

Embora você tenha 4 GB de RAM instalada, não é possível ter 4 GB de RAM utilizável disponível com o chipset Intel 945GM. Essa é uma limitação do chipset. Você pode dizer isso na especificação do chipset:

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

Citar a secção 9.2: " O H Emory C ontroller H . Ubs fornece um máximo DRAM espaço de endereço de descodificação de 4 GB A MCH não APIC remapeamento ou espaço de memória PCI Express Isto significa que, a quantidade de memória física preenchidos nos atinge sistema. 4 GB, haverá memória física que ainda existe, não é endereçável e, portanto, inutilizável pelo sistema " .

O BIOS deve reservar intervalos de endereços para vários recursos, ou seja, o próprio BIOS, espaço mapeado para memória PCI e PCI Express, gráficos internos, espaço de memória APIC e outras janelas de memória para acesso de E / S. Todos esses intervalos de endereços devem estar dentro do espaço de 4 GB e, como tal, ocupam intervalos de endereços que não estão mais disponíveis na memória do sistema. Você poderia dizer que esses recursos "roubam" o espaço físico da memória RAM.

Dito isto, se você tem 4 GB instalados, pode esperar ter mais de 3 GB de memória do sistema disponível .

A quantidade de memória física disponível para o sistema depende de quanto esforço o designer do BIOS coloca na organização desses intervalos de endereços. Por exemplo, o BIOS pode alocar a menor quantidade necessária para cada recurso. Ou pode permitir desabilitar ou limitar a alocação de endereços para o PCI Express, dependendo do uso do sistema de dispositivos PCI Express.

O designer do BIOS do seu sistema provavelmente configurou o limite superior da RAM utilizável para um máximo estático de 3 GB, mesmo que você tenha instalado 4 GB. Essa abordagem fornece uma janela de endereço estático de 1 GB para o designer do BIOS e, como tal, simplifica a tarefa de projetar o BIOS para alocar intervalos de endereços para os recursos, para que não entrem em conflito com nenhum outro intervalo de endereços.

Daniel K.
fonte
1

Existem várias razões possíveis.

Uma é que, de fato, você não está executando a compilação amd64. Outra é que sua placa-mãe e / ou BIOS estão quebradas e não relatam a quantidade correta de RAM.

Outra é que você tem memória de vídeo e outros recursos de hardware ocupando espaço na área de 3-4 GB de memória e sua placa-mãe / BIOS é incapaz de elevar a RAM sombreada a endereços mais altos para que possa ser acessada.

Descobrir o que requer olhar para a sua dmesgsaída.

psusi
fonte
0

psusi está certo.

Eu tenho a mesma situação aqui:

Embora eles o chamem de "CPU de 64 bits", geralmente não é possível endereçar 4 GB + de memória.

A maioria das placas-mãe antigas possui apenas 32 bits para os endereços e, desse conjunto, a placa gráfica também precisa obter seus endereços.

= 4 GB - memória da placa gráfica (1 GB) = 3 GB.

Receio que não haja possibilidade de corrigir isso corrigindo ou atualizando o firmware de qualquer coisa.

Se você estiver interessado em detalhes, eu recomendo: Extensão de endereço físico

aatdark
fonte
Além disso: Se possível, o instalador normal de 32 bits ativará automaticamente o kernel da Extensão de Endereço Físico, se necessário, permitindo que você use toda a sua memória.
Stefano Palazzo
Como foi notificado por @StefanoPalazzo e outros que instalam o kernel do PAE, resolve o problema Basta procurar o kernel do PAE no gerenciador de pacotes sinápticos e instalar: hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey
11
@ wisemonkey: nenhum kernel PAE não me deu os 4 GB completos. Porque eu já uso um kernel de 64 bits e até os relatórios da BIOS: total de 4 GB - utilizável> 3.2 GB.
aatdark
@aatdark: A configuração do seu BIOS possui o campo "Memória de vídeo compartilhada"? Se sim, você pode desativá-lo (recomendado apenas se você tiver uma placa gráfica discreta), mas novamente como você disse, se o computador antigo estiver completo, a memória completa não é endereçável.
wisemonkey
11
"Os chipsets Intel Intel® 945 bases fornecem um espaço de endereço máximo de 4 GB e não suportam remapeamento de memória. Como partes desse endereço precisam ser reservadas para outros dispositivos, você não poderá usar mais de 3,2 GB de memória do sistema com sua configuração atual do sistema. Nenhuma atualização do BIOS ou sistema operacional de 64 bits jamais mudará isso. Este é um chipset em vez de uma limitação da placa ou do BIOS. "
precisa saber é