Parece haver grande confusão no que é conhecido como "limite de 4GB de memória do Windows", a maior parte das pessoas normalmente dizem que um aplicativo de 32-bit do Windows pode acessar apenas 4GB de memória, mas não é bem assim, na verdade, é mais ou menos…
Por definição, um processador de 32-bit usa 32 bits para referenciar cada byte da memória. O espaço de endereçamento de 32 bits pode referenciar no máximo 4.2 bilhões de pontos únicos (2^32=4.2 bilhões, 4GB). Se o Windows usa um espaço de 32 bits e se o processador da máquina é de 32 bits, por que então ele não reconhece 4GB?
Vários dispositivos em um computador requerem acesso à memória para poderem ser comunicar com o Windows. Isso é conhecido como "Memory-Mapped I/O" ou MMIO. Devido a uma decisão tomada há um bom tempo, durante a elaboração da arquitetura do sistema, para que o espaço de endereçamento do MMIO esteja disponível aos aplicativos, ele precisa estar contido dentro dos 4GB de espaço endereçável, o que é conhecido como "Memory Mapped I/O Reservations".
Por exemplo, se você tem uma placa de vídeo com 256MB de memória onboard, essa memória precisa estar mapeada dentro dos 4GB disponíveis para endereçamento. Se o computador possui 4GB de memória instalada, parte desse espaço não poderá ser acessado por já ter sido reservado para o mapeamento da memória da placa de vídeo. O Windows não usará a memória RAM para armazenar as texturas e os objetos tridimensionais, ele usará a memória onboard da placa, o MMIO é só a forma que o Windows tem de se comunicar com o hardware. O mapeamento da memória da placa de vídeo e de outros componentes do hardware (placa de captura de TV, portas USB, placas de som…) precedem o mapeamento da memória RAM instalada, sendo assim, tais condições reduzem a quantidade total de memória que fica disponível para o sistema operacional.
A redução da quantidade de memória disponível depende dos dispositivos instalados, entretanto, para evitar possíveis problemas de incompatibilidade de hardware, as versões de 32-bit do Windows Vista limitam o total de memória disponível em 3.12GB.
Contudo, se o computador em questão possuir muitos dispositivos instalados a quantidade de memória disponível pode ser reduzida para 3GB ou menos.
Para explicar melhor o problema é necessário saber o que é e como funciona a virtualização de memória.
No Windows de 32bits, cada programa tem 4GB de memória "virtual". Isso significa que do ponto de vista do processo, ele possui 4GB de memória plana e limpa para usar e o "Memory Management Unit" (Unidade de Gerenciamento de Memória) ou MMU reserva a memória instalada conforme os aplicativos forem necessitando, gerencia que aplicativo está usando qual parte da memória e o arquivo de paginação. Quando um processo referencia um ponto na memória virtual, tal ponto precisa ser "traduzido" para a memória real para que então o processador realize a operação desejada. Tal processo é conhecido como "Page translations".
Dentro do espaço de 4GB de cada processo, 2GB são dedicados para uso do Kernel e os 2GB restantes são para uso do aplicativo. Cada processo recebe 2GB só para si, mas todos compartilham os mesmos 2GB reservados para o Kernel.
Não se confunda: Adicionar mais de 4GB não muda o fato de ser um sistema de 32 bits acessando um espaço de memória de 32 bits. Mesmo que mais de 4GB de memória estejam presentes, cada processo continuará a receber seus 2GB privados e seus 2GB compartilhados com o Kernel, como em todo sistema que não suporte a extensão do espaço de endereçamento físico.
Para que o Windows Vista utilize 4GB de memória em um computador com 4GB de memória instalada, a primeira coisa que é necessário fazer é trocar a versão do sistema de 32-bit para 64-bit, por que como foi dito antes, não importa o que você faça, as versões de 32-bit do Windows Vista não reconhecerão mais que 3.12GB.
Se o Windows Vista 64-bit já estiver sendo usado, então o problema não está no sistema operacional e sim no hardware.
O seu processador precisa suportar o conjunto de instruções x64, incluído nos processadores Intel EM64T e AMD64. Esse novo conjunto conta com um espaço de endereçamento de 40 bits, que é muita coisa comparado com os conjuntos anteriores, que limitavam seus espaços de endereçamento à 36 ou até 32 bits.
Outro ponto decisivo é a capacidade que o seu chipset possui de mapear memória acima de 4GB. A grande maioria dos chipsets feitos para desktops e portatéis a venda hoje no país aparentemente não oferecem esse suporte (o que com certeza mudará com o tempo). Alguns chipsets que oferecem suporte são: Intel 975X, P965, 955X (com soquete 755) ou os que suportam processadores da AMD que usam os soquetes 940, 939 ou AM2.
http://support.microsoft.com/kb/929605/en-us
http://www.brianmadden.com/content/article/The-4GB-Windows-Memory-Limit-What-does-it-really-mean-
http://blogs.msdn.com/hiltonl/archive/2007/04/13/the-3gb-not-4gb-ram-problem.aspx
Última Atualização