Windows Vista não entende os 4GB de Memória RAM do meu PC!

De fato é muito comum chegar este tipo de afirmativa ou questionamento até a minha caixa de e-mails. Poxa, se eu tenho 4GB de memória RAM, devidamente instalados e “entendidos” pela BIOS do meu equipamento, por que o Windows só reconhece “3GB e alguma coisa”???

A pedidos do Jairo, amigo e visitante aqui do website, resolvi fazer um post específico debatendo esse problema. Na prática não é o Windows (XP, Vista, etc…) que possuí um problema com o reconhecimento de 4GB ou mais no PC, esse é um problema de incompatibilidade entre a arquitetura de hardware x86 e basicamente todos os sistemas operacionais de 32 bits. Para explicar melhor a problemática e, as prováveis “solucionáticas”, tomarei emprestadas aqui as palavras/conceitos explicitados pelo participante do Fórum Baboo, E-Ponto, que explica o tema com bastante propriedade (não há porque reinventar a roda, certo?) 🙂

Não é o Vista é o chipset que faz isso, o address space logo abaixo dos 4G fica reservado pelo chipset para endereçamento dos outros hardwares e acessórios da motherboard e independe se você tem 1, 2 3 ou 4 GB, como o endereçamento está reservado para outros dispositivos, as porções de memória física que possuem o mesmo endereço nesse espaço não serão utilizadas para evitar conflitos. (é preciso não confundir address space com memory space e notar que o conflito só ira ocorrer se você usar mais que 3 GB de memória)

De uma forma gráfica veja como é a coisa nesse artigo: Why can’t I see all of the 4GB of RAM in my machine?

E uma explicação detalhada do problema nesse outro artigo: Quantidade máxima de memória RAM para o Windows Vista

Uma maneira de visualizar como é usado o address space na sua máquina é ir no Gerenciador de dispositivos, clicar em Exibir e escolher Recursos por Tipo e expandir a seção Memória, observe os endereços alocados para hardware na faixa de 3 a 4 GB (converta os números hexadecimais para decimal pela própria calculadora do Vista). Note que independente da quantidade de memória física que possui sua máquina (vai depender apenas da capacidade do chipset), o sistema usa o address space até 4 Giga e reserva a parte logo abaixo dos 4G para endereçamento dos dispositivos hardware, o remapeamento desses endereços é possível mas depende do tipo de chipset e pode ser feito quando se usa um sistema operacional de 64 bits.

Infelizmente para se entender exatamente o problema é necessário um pouco de conhecimento de eletrônica digital, saber sobre barramento de endereços, barramento de dados e I/O trigger, espero que as explicações acima possam ter exclarecido o problema de uma forma mais simplificada.

Existem 3 questões a serem feitas a respeito da máxima memória RAM que o Windows Vista pode acessar:

1. Qual SKU/Edição você instalou?
a. Vista 32-bits tem um limite máximo de 4GB e não consegue “enxergar” acima de 4GB.
b. Vista 64-bits pode utilizar pelo menos entre 8GB a 128GB dependendo da versão.
2. Qual o “address range” que o seu processador realmente acessa?
a. Tipicamente é de 40-bit para os x64 (Intel EM64T/AMD64), mas processadores antigos são limitados a 36-bit (conhecido como “PAE”) ou até mesmo 32-bit.
3. O Chipset consegue mapear memória acima de 4GB?
a. A maioria dos chipsets para desktop/notebooks à venda atualmente não suportam – mas alguns mais novos conseguem – a última geração da Intel suporta até 8GB;
b. Workstations (que utilizam chipsets desenvolvidos para servidores) em geral suportam

Quantidades significativas de endereçamento abaixo de 4GB (o máximo suportado via 32-bit – veja questões 1 e 2 acima) são reservados para o uso do hardware:

* BIOS – incluindo ACPI e suporte a vídeo legado;
* Bus PCI incluindo bridges, etc…;
* Suporte a PCI Express que reservará pelo menos 256MB;

Se você possui uma placa de vídeo com 256MB ou 512MB de memória de vídeo, são mais 256 ou 512MB de endereçamento abaixo de 4GB que o Vista não poderá utilizar. Isso tudo significa que em um sistema padrão você terá entre ~512MB a 1.5GB de espaço de endereçamento abaixo de 4GB reservado para o uso do hardware que o Windows não pode acessar (ou qualquer outro Sistema Operacional).

O que você pode fazer?

Windows pode remapear memória abaixo de 4GB para acima de 4GB e utilizá-la. Entretanto, isso baseia-se nos seguintes pontos:

1. Sua Edição do Vista pode acessar memória acima de 4GB?
Se for 32-bit, a resposta é Não. Neste ponto, o Vista 64-bit pode ajudá-lo.
2. Seu processador pode acessar memória acima de 4GB?
Se for recente, a chance é grande. Se for AMD64 ou EM64T, é quase garantido.
3. Seu chipset permite remapeamento acima de 4GB?
Muito provavelmente não – e é esse ponto que atinge a maioria dos usuários que instalam o Vista 64-bit e mesmo assim não conseguem acessar acima de 4GB.

Com a crescente popularização do Windows 64-bit e a disponibilidade de sistemas com memórias acima de 3GB, esse problema deverá ser rapidamente resolvido pelos fabricantes. Porém, até lá, você deverá pesquisar bastante antes de adquirir um novo computador.

Fontes:

http://www.babooforum.com.br/idealbb/view.asp?topicID=567781
O que fazer?
http://blogs.msdn.com/oldnewthing/archive/2006/08/14/699521.aspx

Saiba mais: http://www.guiadohardware.net/artigos/barreira-dos-gb/