Dude, Where's My 4 Gigabytes of RAM?

so in other words like i have bought and installed 1,5 gig in my pc 512 is gone becausee my pc use it for other stuff becausee i only see 1,00 at properties of my computer?

also this might help people running SLI in windows xp and they have nvidia cards. the last forceware driver that will work both of your video cards in windows xp is 169.21. any new nvidia driver after this and SLI will not work in windows xp! WEAK

martin i would recommend ditching vista and downgrading to xp. because vista takes way too much ram and eats up way too many resources. trust me. go back to xp for now. xp is way better for games, in fact most games specs recommend that you run windows xp. soldier of fortune payback is one game that recommends xp. your computer will run AWESOME on xp. the ONLY advantage to vista that i seen is nvidia doesnt support SLI for windows xp anymore, only vista. i am running dual sli cards and i have to use old drivers for xp. also that compatibility mode and this confirming every action you do is enough to make anyone insane.

my lower class xp gaming system
jetway 939gt4-SLI-G-VC mother board
amd athlon 64 4000+ san diego 2mb l2 cache
2 gigs heat shielded kingston ram dual channel ddr1 400
dual SLI gigabyte geforce 7600gs 512mb each
i can run pretty much any game out there for now, but its getting hard with the newer games, since i rarely meet the minumum requirements, but still am able to play very well despite cpu,ram,video etc. still if you have 4 gigs of ram you should run XP. between video ram and SLI, there should be a performance INCREASE over vista.

oops don’t want to give my computer too much credit, the processor has 1mb l2 cache! man, time for an upgrade!

Hi,
I just bought 2*2GB RAM modules and installed them on my Laptop, though in BIOS, i can see the 4096 MB as RAM, in Windows Vista (32 bit), i see only 3.1 GB and in Linux (Kubuntu), i see only around 3 GB too. Can anyone help me out!!!
Gavin

because that is the maximum amount of memory your 32-bit system can detect and utilise from that particular stock of RAM

even though it says only 3.2 gigs or whatever the extra ram from your 4 gigs is still being used by the other components on the motherboard. its no big deal. but 4 gigs is the max with xp.

I’m curious, many server boards support multiple processors… If I had 2 32 bit cpus each addressing their own dimms. would I still be limited to the 4 gig limit of the 32-bit os?

Wow…this blog is almost two years old and there’s STILL a lot of confusion over x86 RAM support?

The easy explanation is this:

32-bit can only support 4 GB of RAM. Period. Add my previous mosh pit explanation from last year to figure out why you’re seeing less.

However, there are two things that filibust this explanation:

  1. Windows NT-based OSes that don’t have crippled PAE support (2000, Server 2003), assuming you’re using the proper SKU for the amount of RAM you want (sorry, no 32 GB of RAM in Small Business Server 2003).

  2. Mac and various Linux distros that have uncrippled PAE support out of the box.

I guess the best way to (try to) sum it up is:

[[32-bit XP SP2/SP3, 32-bit Vista]]
[Addressable: 2 GB (3 GB w. /3GB switch in boot.ini or BCD and with applications that know what the hell this is)]
[Total: 4 GB minus whatever your hardware snatches up]

They have crippled PAE in these OSes because of sloppy drivers that don’t use it properly. Note that I said crippled, not disabled. It’s enabled because of DEP support, but crippled because sloppy drivers see too much rammerz and bluescreenz out.

So the resident Linux zealot that’s commented a few times is only half-right. It is a Windows problem, but it was a result of a solution to crappy drivers not written for too much rammerz.

[[32-bit Windows 2000 Professional, 2000 Server, XP SP0/SP1, Server 2003]]
[Addressable: 2 GB (3 GB w. /3GB switch in boot.ini or BCD and with applications that know what the hell this is)]
[Total: 4 GB with no PAE switch (no hardware snatching up rammerz), 32 GB with PAE switch, as long as your Windows SKU doesn’t cap this artificially]

2000 Pro, XP SP0/SP1, Small Business Server 2000/2003, 2000 Server, Server 2003 Standard are limited to 4 GB of RAM (and will see all of it). 2000 Advanced Server and Server 2003 Premium will see 32 GB with the PAE switch. I’m not including the Datacenter versions because they run Itanium 64-bit. Of course if you are running non-PAE aware drivers = epic BSODz.

[[32-bit versions of Mac and Linux]]
[Same as above OSes with proper, not crippled PAE support]

Bottom line:

In this order:

  1. Hardware issue (4 GB without PAE, 32 GB with it, no way around it)
  2. Driver issue (LOLz, nobody need more than 4 GB RAM, I gotta get some tonight…I ain’t writin no support fo PeeAayEee!!)
  3. Windows issue (Damn slacker coders that want to get some on a Friday night…just cap PAE and cut losses, LOLz, nobody need more than 4 GB of RAM yet…if they do, make em git sixty-fo’ bitz!)

Any questions?

Hm, my new laptop reports all 4 gb on vista 32, but a friend told me windows just plain lies :slight_smile:

Oh well seems to be fast enough so far

Quote from a MSDN article written in 1992 about the NT memmory manager (yes 32-bit xp still uses it).

each process can address up to 4 GB of memory using 32-bit linear addresses … If only we had PCs with similar memory capacities

http://msdn.microsoft.com/en-us/library/ms810616.aspx

I just installed 4GB (2x2GB) Transcend DDR2 800 MHz SODIMMs on my new aluminum iMac (20) and my Windows Vista SP1 (32-bit) detects and shows a full 4.00GB of RAM. Just thought I’d drop a note…

It’s worth remember that the IBM Power 950-series, what Apple called the G5, and the entire PowerPC microarchitecture was able to allow a 32-bit kernel to launch and run 64-bit apps, the problems in the x86_64 world is the fact that AMD basically messed up in their design. The i386 could run a 16-bit kernel and use all 32-bits worth of registers, so AMD’s goof of 32-bit kernels cannot use 64-bits or registers.

The fact we hit the 32-bit memory ceiling on installable memory about the same time that 64-bit processors launched was a real coincidence, though it’s my understanding we hit the 16-bit ceiling of 64KB in the 1970s if not the 1960s on mainframes. (Though IBM mainframes to this day use an oddball 31-bit architecture.)

Woah, epic thread is epic. I now know a cartload more about Windows/x86 memory architecture and addressing, and I only wasted two hours reading all the posts… :slight_smile:

Seconding an earlier post: I decided I wanted the doubled bandwidth of dual-channel more than I cared about 0.5GB of potentially wasted space (and I didn’t have two identical 512MB sticks for the second channel) so I bit the bullet and shelled out a HUGE AU$38 for another 1GB stick.

Then I fried my northbridge by overclocking the FSB and not uprating the cooling enough… shit, back to my old 2GB single-channel mobo.

:slight_smile:

Thanks to Jeff and all who commented (with the exception of the time-wasters who lack a basic grasp of the English language…)

Cheers,
CJ.

why not just get a quad core?

As the article current stands (Jan '09) the math for the 2^64 doesn’t make sense. As previously mentioned, the division by 8 is not needed (which is presumably why it wasn’t used in working out 2^32, where the correct answer is given). Also, 18,446,744,073,709,551,616 / (1,024 x 1,024) / 8 = 2 is not correct (punch it into a calculator - it will give 2199023255552). I can see what you have done - (ignoring the division by 8) you are dividing by 1024s to change units. But dividing by 1024 twice changes to megabytes, not exabytes as you have given your final answer in.

I’m sorry to cound nit-picky, but am posting in the hopes you will update this (either just tell us that 18,446,744,073,709,551,616 is 16 exabytes without showing the math, or add in the correct number of divisions by 1024 so that the answer given is actually what happens when you follow the formula provided). I was actually very confused for a little while as I tried to figure out what you had done. And correcting the wrong answer about how much memory is addressable in a 64-bit system (16 exabytes, not 2) would be helpful given how popular your blog is.

please remove this outdated content. its crap like this that fill up the web with bullshit. really with vista and windows 7 just around the corner any fool that is not using a i7 or quad core with a 64 bit operating system should just kill themselves. welcome to the 21st century, oh and mac’s suck and linux sucks worse.

Hmm, probably waayyy overlate, but…

x86 architectures use byte-addressable memory. Hence, it’s not bits in your very first line.

http://webster.cs.ucr.edu/AoA/Windows/HTML/SystemOrganizationa2.html