Os endereços fornecidos aqui estão em hexa, mas você pode usar a própria calculadora do Windows para convertê-los em números decimais. No caso, por exemplo, tenho a placa de vídeo utilizando os endereços C8000000 a CFFFFFFF, que correspondem aos bytes de 3.355.443.200 a 3.489.660.927 e uma série de dispositivos a partir do "Recursos da placa mãe" que ocupam praticamente todos os endereços do byte 3.758.096.384 ao 4.294.967.295 (que corresponde justamente ao final da área de 4 GB endereçada pelo sistema). Se instalasse uma placa 3D offboard, com 256 MB, ela ocuparia os bytes de 3.221.225.472 a 3.489.660.927, que correspondem justamente aos 256 MB da placa.
Se você se contentar em utilizar uma placa de vídeo low-end, pode ficar com até 3.5 GB de endereços disponíveis, dependendo do sistema operacional usado. No caso das versões de 32 bits do Vista, por exemplo, o limite máximo (segundo o
http://support.microsoft.com/kb/929605) é de 3.12 GB. Ou seja, na maioria dos casos, não vale à pena pagar por mais 4 GB de memória, já que apenas uma pequena parte do último GB seria utilizado. Melhor se contentar com 3 GB.
Mesmo ao utilizar um processador de 64 bits, combinado com um sistema operacional de 64 bits, um grande volume de endereços entre os 3 e 4 GB de memória continuam reservados, de forma a manter compatibilidade com os programas de 32 bits, fazendo com que, novamente, pelo menos 512 MB entre os 3 e 4 GB da memória não sejam usados. A vantagem neste caso é que você pode instalar mais de 4 GB de memória. Com 8 GB, por exemplo, você ficaria com de 7 a 7.5 GB utilizáveis.
Algumas placas de 64 bits oferecem a opção "Memory Hole Remapping" (ou similar) no setup. Ao ativar esta opção, as áreas de memória reservadas aos dispositivos é movida para uma área mais alta do Virtual Address Space (que nos processadores de 64 bits é muito maior), liberando a maior parte da memória antes inacessível por causa eles.
Outras placas suportam o Memory Hoisting, um recurso que segue outro princípio, deixando os endereços dos dispositivos onde estão e remapeando os trechos de memória subscritos por eles para áreas mais altas do espectro de endereços, permitindo que o sistema tenha acesso a elas.
Uma observação é que estas duas opções causam muitos problemas de compatibilidade com aplicativos, por isso você só deve utilizá-las caso realmente faça questão de ter acesso à toda a memória instalada.
Além destas limitações relacionadas ao Virtual Address Space, existem outros limites de memória, impostos pelo chipset ou por limitações do sistema operacional usado.
A maioria dos chipsets antigos, para placas soquete 7, por exemplo, eram capazes de endereçar apenas 128 ou 256 MB de memória RAM. O chipset Intel i815, usado em uma grande parte das placas para processadores Pentium III e Celeron era capaz de endereçar apenas 512 MB, enquanto o 915GL (para o Pentium 4) era capaz de endereçar 2 GB. Até pouco tempo atrás, o suporte a 4 GB ou mais de memória estava restrito a alguns chipsets destinados a servidores.
O Windows 95/98/SE é capaz de endereçar até 512 MB de memória RAM. Programas como o cacheman permitem utilizar estas versões antigas do Windows em PCs com mais de 512 MB de RAM, mas o desempenho acaba sendo pior do que com apenas 512.
O Windows XP e as versões de 32 bits do Vista são capazes de endereçar 4 GB, de forma que o limite fica por conta do Virtual Address Space. O maior problema são as versões "populares" do Windows, onde o limite é artificialmente limitado, de forma a limitar seu uso aos PCs de baixo custo. O XP Starter possui um limite de 256 MB, enquanto o Vista Starter está limitado a 1 GB.
Nas versões de 64 bits do Vista, os limites são estendidos, mas ainda existem limitações. O Vista Home Basic esta limitado a 8 GB, o Home Premium a 16 GB e as demais versões (Business, Enterprise e Ultimate) a 128 GB.
A memória swap não entra na conta pois ela é acessada através de um componente especializado incluído no processador, chamado de MMU (Memory Management Unit) que permite justamente que dados armazenados na memória RAM física sejam movidos para a memória swap (que é na verdade um arquivo ou partição no HD), conforme necessário.
Graças ao MMU é possível complementar os 3 ou 3.5 GB de memória RAM física com uma quantidade indefinida de memória swap, limitada apenas ao máximo suportado pelo sistema operacional. A principal questão é que o uso da memória swap é muito limitado em um PC atual, já que ela é muito lenta.
Uma dúvida comum é com relação ao uso do PAE (Physical Address Extension), uma extensão para processadores de 32 bits, presente desde o Pentium Pro, que adiciona 4 bits adicionais ao endereçamento da memória permitindo que o processador seja capaz de acessar até 16 páginas de 4 GB cada, totalizando 64 GB. Cada programa continua restrito a um máximo de 4 GB, mas o sistema pode alocar diferentes páginas para aplicativos diferentes, utilizando assim toda a memória disponível.