Explico un poco el hilo
El limite de la RAM te viene marcado por la arquitectura del procesador y por el sistema operativo que uses. El sistema operativo, por decirlo de alguna manera, y resumiendo mucho, es el que "une" el hardware con el software. Es decir, que si tienes un procesador con una arquitectura de 64 bits, pero instalas un sistema operativo de 32 bits no vas a tener los beneficios de esa arquitectura, aunque lo vas a poder usar(luego explico esto). De otra forma si tienes un procesador con una arquitectura de 32 bits, en general, no te va a funcionar un sistema operativo de 64 bits(el procesador no puede jugar con las instrucciones de ese sistema).
Y tu te preguntaras, ¿Porque por tener una arquitectura de 32 bits solo puedo tener 3 gigas de memoria ram(si, son tres gigas)? Pues bien, las arquitecturas de intel de 32 bits(que son las que usamos todos, o amd que funcionan parecido, que cojones) tienen un bus de direcciones de 32 bits. ¿Y esto que significa? Pues significa que pueden para acceder a una posicon de memoria tienen 32 bits para escoger el número de esa posición de memoria. En la arquitectura intel cada posicion de memoria equivale a 8 bits(1 byte).
Para que se vea, imaginemos que el bus de direcciones fuese de 4 bits, tendriamos que podiamos acceder a las direcciones 0000, 0001, 0010, 0011...asi hasta 1111, en total 2 elevado a 4 direcciones.
Pues en los procesadores actuales pasa igual, solo que con 32 bits, lo que nos hace llegar a 2^32 posiciones de memoria, y como en cada posicion de memoria hay 1 byte nos salen 4 Gigas que podemos tener de memoria. Si pusiesemos mas memoria el procesador no podria "leerla", asi que sería inutil.
Pero, alto, ¿no eran 3 gigas? Si, son 3 gigas, lo que pasa que 1 giga de memoria se gasta en los perifericos, que tambien tienen que estar en la memoria(la memoria no es solo la ram).
Es posible que tambien te preguntes porque si instalas un sistema operativo de 32 bits funcione con un procesador de 64, pese a que son arquitecturas diferentes, y las "instrucciones" que le pasan el sistema operativo y los programas son otras. Esto es debido a que cuando se crearon las arquitecturas de 64 bits decidieron hacerlas compatibles con las de 32(gracias a amd por cierto).
Espero que no me haya confundido en nada y lo haya explicado mas o menos bien, pues es algo que mucha gente se pregunta y no sabe muy bien de donde viene XD
Un saludo!