I’ve got a GA-945GCM-S2C Giga-Byte motherboard whose instructions manual indicates that it is able to work properly with a memory of up to 4GB. Though this motherboard is really
working with a 4 GB memory (2 modules of 2GB DDR2 667MHZ memory size) it is indicating a capacity of up to 3,4 GB.
Let me venture a guess - you're running a 32 bit (x86) operating system, right? Thirty two bit OS can only address 4GB of physical addresses; some of your hardware (most notably, your video card) needs to 'memory map' an access area for the OS to communicate with the hardware; an area thus 'mapped' cannot also be used for storage by the OS, as it's physical addresses are excluded - thus the 3.4 GB 'visible' inside the OS; moving to a 64 bit OS, such as Vista x64, or Windows7x64 will 'cure' this problem - my OS 'sees' the whole installed 8GB...
Yeah, the problem is that you're using a 32 bit OS without PAT support. If your using XP or Vista 32-bit thos OSs can only use 4GB of addressable memory. First it has to set aside addresses for your devices, most notably the video card, so the more devices and vRam you have, the less addresses there are for your main memory. Even though you got 4GB, windows can only communicate with 3.4GB because that's all it has addresses for.
I will research further; that is an old motherboard - a whole generation of motherboards were limited to thirty-two physical address lines from their CPUs, which has the same effect as the 32 bit windows problem; there are still devices that operate through 'mapped' memory; but, in this case, the actual mapping is done in hardware, rather than in software, as is the windows case... Unfortunately, the results are the same - you will only 'see' some incremental amount less than is physically present in your board. These boards typically will not accept more than 4GB of RAM, and will not benefit from a 64 bit OS, as the devices cannot simply be 're-mapped' in software, as the actual physical locations are 'used up'!