Boas
Só uma correcção, a palavra de controlo não tem propiamente a ver com os 32bits/64bits. Por exemplo, o Pentium (r), ou seja, a primeira versão do pentium datada de 1993, tinha uma palavra de controlo de 36bits, sendo um processador de 32bits. Outro exemplo, Pentium II, 32bits, data bus interno de 36bits, data bus externo de 64bits. O que dita ser um CPU de 32bits é a unidade funcional.
O que torna a maquina de 32bits ou 64bits é a unidade funcional do CPU, que tem a unidade aritmética e a unidade lógica. O CPU trabalha ao nivel de registos. Se a unidade funcional é de 32bits, quando quer fazer uma transferencia entre os registos, só pode mover 32bits.
Não sei numeros, mas a nivel de acesso a memória, o vosso CPU não acede directamente aos 2GB ou aos 4GB de memória que têm na maquina, nem tão pouco usa 32bits para aceder a memória, mas sim, muito menos. Ele acede a uma tabela na memória que por sua vez tem o endereço dos dados a serem lidos. Essa tabela (que corresponde aos primeiros campos da memória) é preenchida aleatóriamente e o seu preenchimento pode ser feito com base em vários algoritmos (como por exemplo o Buddy). A memória em si não está dividida em porções menores que 8bytes (4bytes no caso dos 80486 e 2bytes no caso dos 8086). Por isso, o CPU acaba por pouco importar para a história da memória. Ele só faz operações de 32bits e por muito boa vontade que tenha, só faz operações com registos de 32bits.
O controlador de memória, esse sim é o responsavel. Um controlador de memória, no chipset, projectado para permitir 3GB de RAM:
3GB = 3072MB = 3.221.225.472bytes
dividindo por 8(bytes) temos no máximo de fragmentação, 402.653.184bytes extra para a tabela de alocação
somando os 2 valores, o controlador está feito para trabalhar com 3GB de ram e precisa de 384mb para o fazer (no pior dos casos), por isso, está preparado para identificar 3,375GB de RAM.
Depois há sempre áreas reservadas para hardware (e não estou a falar da gráfica).
Existem na maquina muitos dispositivos com suporte DMA (Direct Memory Access). Para o acesso directo, o dispositivo chega a tabela de alocação e escreve lá um codigo que permite ao controlador perceber que aquela zona de memória não está disponivel. No própio dispositivo (seja um HDD, placa rede, som, etc), há uma memória com os endereços de RAM dos seus dados. Desta forma, o dispositivo em vez de aceder a tabela e depois aceder a ram, acede directamente a ram. Tipicamente perde-se 32mb a 128mb de RAM neste tipo de dispositivos.
Está assim justificado este tipo de valor:
As gráficas são um caso a parte, ou têm memória partilhada ou então só reservam acesso directo para pequenas tarefas. Uma gráfica de 256MB de memória nativa, se não partilhar memória de sistema, apenas reserva para si 1 ou 2mb de memória de sistema. Já uma GMA950, reserva 8MB e faz uso de outros 248/216 (dependendo da bios) acedendo a tabela, ou seja, partilhando os recursos e fragmentando os seus dados. Uma GMA900 reserva integralmente 32~128MB para acesso directo (dependendo do que está definido na bios).
O meu netbook por exemplo, tem 13MB reservados para hardware, 8MB são de certeza para a GMA950, os restantes 5MB estão divididos entre DMA para o HDD, DMA para o controlador de Audio e eventualmente DMA para a placa de rede.