Bought 4 Gigs of RAM and only 3.37 show up?

DAM

Diamond Member
Jan 10, 2000
6,102
1
76
So, I know that 1 gig of anything doesn't really mean 1 gig exactly, however I was disappointed to find that 4 gigs = 3.37 gigs. I have a dfi lanparty with 4 gigs (4x1 gig) of the same RAM (PC3200) and I was hoping for something closer to 4. Is it possible to have a bad stick? Would playing around with the mobo settings yield a higher result?


Thanks,


dam
 

Fullmetal Chocobo

Moderator<br>Distributed Computing
Moderator
May 13, 2003
13,704
7
81
That is normal when using a 32-bit windows operating system.

EDIT: Removed paaraphrasing.
 

Tristor

Senior member
Jul 25, 2007
314
0
71
actually, the difference in calculation of size 1000MB or 1024MB has nothing to do with it (it's 1024MB per GB when speaking about RAM, btw). For reasons I don't really want to expound upon, you can't use more than 3GB of memory with 32bit Windows. If you run any other OS, or using 64bit Windows, all 4GB will show up and be usable. That's just the way it is.
 

Tristor

Senior member
Jul 25, 2007
314
0
71
Originally posted by: Fullmetal Chocobo
That is normal when using a 32-bit operating system. It can't address the full 4gb.

Actually, that's not technically correct, although the reality is so. 32bits is exactly how much is necessary to address 4GB. The problem is the way that 32bit Windows does virtual memory management and addressing. As I said above, I don't really want to write an essay, but suffice to say it can't use 4GB, but not because of lack of addresses (more like lack of addresses available, since it's stealing some physical addresses to map for virtual memory). It's also specific to 32bit Windows, not 32bit OS in general.
 

DAM

Diamond Member
Jan 10, 2000
6,102
1
76
Actually guys I'm using Windows XP 64 bit on a 64 bit AMD proc. Any ideas?


dam
 

MarcVenice

Moderator Emeritus <br>
Apr 2, 2007
5,664
0
0
My bios has some kind of memory mapping setting, can't recall the exact name. It might have to be enabled for your mobo/pc to see all 4gig of ram.
 

masteraleph

Senior member
Oct 20, 2002
363
0
71
1) There are BIOS settings that will help, IF you're running a 64 bit OS.

2) To clear up the conversation between Fullmetal Chocobo and Tristor: 32-bit OSs are capable of workarounds for the 4GB wall. That said, consumer versions of Windows (i.e. anything that's not Windows 2k3) disable this ability to increase stability, since certain things (like nVidia drivers, for example) will crash hard when there's more than 4GB total address space.

In summary: if you want to use Windows with 4GB and want to use all 4GB, move to an x64 platform.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: Tristor
Originally posted by: Fullmetal Chocobo
That is normal when using a 32-bit operating system. It can't address the full 4gb.

Actually, that's not technically correct, although the reality is so. 32bits is exactly how much is necessary to address 4GB. The problem is the way that 32bit Windows does virtual memory management and addressing. As I said above, I don't really want to write an essay, but suffice to say it can't use 4GB, but not because of lack of addresses (more like lack of addresses available, since it's stealing some physical addresses to map for virtual memory). It's also specific to 32bit Windows, not 32bit OS in general.

It is technically correct on chipsets with 32bit addressing. If your chipset supports 36bit (or more) addressing some OS's will allow memory remapping to occur.
 

tcsenter

Lifer
Sep 7, 2001
18,711
430
126
Originally posted by: DAM
Saw this link that says to disable memory hole:
Actually, memory remapping should be enabled to utilize the entire 4GB. Your system (w/XP 64-bit) can't utilize all 4GB because memory remapping is disabled, not supported, or just plain broken.

The problem is the way that 32bit Windows does virtual memory management and addressing. As I said above, I don't really want to write an essay, but suffice to say it can't use 4GB, but not because of lack of addresses (more like lack of addresses available, since it's stealing some physical addresses to map for virtual memory).
I'd be interested in reading your essay, since you can't even get the 'synopsis' right. This has nothing to do with virtual memory and is indeed all about a lack of physical addresses (i.e. 32-bit x86 architecture).

In order for the processor to address 4GB RAM, it would need 4,294,967,296 unique address combinations (one address per byte), which also happens to exactly be the total number of unique addresses possible in a 32-bit processor address space.

PCI, AGP, IDE/SATA, BIOS (ACPI), video cards, and all that stuff, require processor address space to function so the processor can access (i.e. "see") them, else you would have an expensive doorstop. The BIOS reserves ranges of the 32-bit address space for the hardware to function, then passes the resulting memory map (e820) to the operating system - ANY operating system - telling the OS which memory address ranges are available to it and which are not.

It's also specific to 32bit Windows, not 32bit OS in general.
Huh? I guess you haven't seen the numerous dozens of cases reported in various forums and newsgroups by 32-bit Linux users having the exact same problem. Using ANY standard 32-bit Linux kernel, the same limitation exists. A small sampling:

4GB RAM not showing

Maximum memory reported

meminfo is only showing 3.5GB

LinuxRamLimits

Memory Management in Linux (.pdf)

Memory Hole in x86 Based Systems (.pdf)

Of course, 32-bit Linux distros can work-around this limitation by using PAE (or SMP in some) kernel, which exploits the 36-bit PAE addressing extension capability designed into all 32-bit x86 Intel and AMD processors for about 10 years now. But hey, so can 32-bit enterprise and server class Microsoft operating systems. And this only extends physical address space to 36-bit, enabling the processor to address (i.e. "see") up to 64GB theoretical/48GB practical RAM (subject also to OS limitation).

Microsoft limited the kernel of its 32-bit desktop operating systems to 32-bit MAX (i.e. 4GB) addressing because 36-bit addressing mode exposes not-uncommon driver and application bugs, due to developers becoming lazy or inattentive from many years of not having to worry about how their pointers, buffers, and mallocs would get along in a system where address space > 32-bit (4GB boundary).
 

DAM

Diamond Member
Jan 10, 2000
6,102
1
76
tc: you're right it was disabled and i enabled it, but then the rig would not boot up. I will try to clear the cmos and try it again. Any idea why it would not boot up with it enabled? Once i disabled it again everythin was back to it 3.25 gig self.


dam