Thank you for the various suggestions. They have helped in researching this
problem further and increasing my knowledge about what's going on. It is
certainly not a problem of malfunctioning hardware.
The basic problem is that of limited address space on a 32-bit computer.
In terms of the memory mapping - 2^32 = 4GB is the number of addresses
available. The system resources (System ROM, APIC(s), Integrated PCI devices
- such as network connectors and SCSI controllers, Graphics card and more)
have priority and get their addresses assigned first (otherwise they wont be
accessible) and the rest - Less than 4GB- is left for the user RAM.
Now its not that the remainder is used for anything\eaten up and so on - it
simply not mapped, which means that these memory locations have no addresses
that can be used to refer to them for read\write operations.
My calculation is approximately as follows:
For a start Windows XP always allocates around 750MB of the high end
addresses for non-memory use. If you have a lot of extra devices installed,
XP takes more.
In particular graphics cards are greedy. As I have two cards each with 512MB
of memory, 1G goes away right there. Given that I have many devices
installed, it is quite possible that all of my addresses above 2GB have been
taken.
I cannot be entirely sure of this though. I still cannot satifactorily
explain why XP reports *exactly* the same amount of user memory (2096172KB)
irrespective of installing 2GB or 4GB of physical memory. I should wish there
was a tool that could give me a complete memory map of XP. Anyone who knows
such a tool?
I need my graphics cards, so I shall just have to live with the limitation
of 2GB. That is not bad either
I also decided to keep all of my new
memory memory kit, even if only half is used, because this is faster memory
than I had before. I could have installed only one stick of 2GB, but the
benefit of dual channel is significant. As measured by PC Wizard, dual
channel gives 40% better memory performance and 6% global overall performance.
Again, thanks for the help!