There are several reasons regarding the 3GB detection. The most prevalent is
that either the MotherBoard/BIOS combination needs updating and can be run with
a PAE enabled kernel, and the BIOS has not been updated nor the kernel, or the
MB/BIOS is one that does not support memory re-mapping/hoisting which is now
usually a feature in the newer MBs/BIOSes.
There is a thread at Ubuntu Forums entitled: PAE kernel does not see all 4GB of
RAM to which sanderj
[url=ubuntuforums.org/showthread.php?t=1399216&page=3]replied in post
#21[/url] and listed a python script at:
http://wattcher.015.info/check-my-hardware.py which will tell you what memory is
usable and some hints about what to do.
I recommend you download or copy/paste it and run it (as root req'd):
# python check-my-hardware.py