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.
64-bit
ram
architecture
Peter Mortensen
fonte
fonte
uname -a
, a saída defree -m
e também confirmar que você tem mais de 3 GB de RAM ativo olhando para o seu código de dmid.uname -a
diz?Respostas:
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
fonte
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.
fonte
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
dmesg
saída.fonte
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
fonte