Jump to content

Boost RAM Amount


The Little Guy

Recommended Posts

I'm sure the techo-babble article explains this, but I will too.

 

With 32 bits, you address 2^32-1 bits of memory.

 

So, 4GB of RAM.  But!  That means that the process can address only 4GB of memory, and not just RAM.  All memory.  (It's not quite as simple as a processor "addressing memory", but oh well.)

 

So, the amount of RAM addressable is 4GB - other memory.

 

For example, in my computer I have a memory card with 512MB memory, so that would bump me down to just under 3.5MB right away, then all the other stuff.

Link to comment
Share on other sites

32-bit Windows can use more than 4GB of RAM. It just can’t give more than 2GB (or 3GB, depending on version and configuration) to any one process. This has been true since Windows 2000.

 

Unfortunately, the client versions such as Windows 2000 Professional, Windows XP and Windows Vista are constrained to 4GB of RAM in total, and nowadays also to a maximum physical address of 4GB. In Vista, these limits are explicitly coded as license values, read from the registry, with protection against being tampered with.

 

http://www.geoffchappell.com/viewer.htm?doc=notes/windows/license/memory.htm

http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx

 

It being <3.2GBs is usually a memory hole on the RAM itself along with the motherboard, of course, running on a 32 bit configuration. 4048MBs is not reachable.

 

I have 4GB of RAM installed, but windows only shows 2.75 is there any way to make it so windows can see and utilize more of that RAM?

 

I am running Windows XP Home Edition

 

Thanks!

 

Further, Guess what? As XP can only support 4GBs of RAM in TOTAL, If you had a video card @ 512MBs vRAM XP cannot physically allocate over the max and you'll be shown ~3.5GBs in the task manager.

 

 

Link to comment
Share on other sites

32-bit Windows can use more than 4GB of RAM. It just can’t give more than 2GB (or 3GB, depending on version and configuration) to any one process. This has been true since Windows 2000.

 

How does Windows manage to address a memory address above 2^32 with a 32-bit pointer?

 

How does it manage to say "yo, your shit is at 0x400000FF8F" when it cannot even represent an integer so large?

Link to comment
Share on other sites

 

Further, Guess what? As XP can only support 4GBs of RAM in TOTAL, If you had a video card @ 512MBs vRAM XP cannot physically allocate over the max and you'll be shown ~3.5GBs in the task manager.

For example, in my computer I have a memory card with 512MB memory, so that would bump me down to just under 3.5MB right away, then all the other stuff.

 

I'm at 4GB of physical RAM, then after the OS it says I'm at 3.4GBs, but yet my videocard has 1GB of RAM (I did not actually check but thats what the specs were claimed to be when I bought it.). Now 4GB - 1GB = 3GB not 3.4GB. So how does this work?

Link to comment
Share on other sites

32-bit Windows can use more than 4GB of RAM. It just can’t give more than 2GB (or 3GB, depending on version and configuration) to any one process. This has been true since Windows 2000.

 

How does Windows manage to address a memory address above 2^32 with a 32-bit pointer?

 

How does it manage to say "yo, your shit is at 0x400000FF8F" when it cannot even represent an integer so large?

 

Utilize, Not assign.

 

I'm at 4GB of physical RAM' date=' then after the OS it says I'm at 3.4GBs, but yet my videocard has 1GB of RAM (I did not actually check but thats what the specs were claimed to be when I bought it.). Now 4GB - 1GB = 3GB not 3.4GB. So how does this work?[/quote']

 

The /3GB switch. 3.4 is a memory hole revolving your motherboard. http://techfiles.de/dmelanchthon/files/memory_hole.pdf someone already linked to this, and i'm sure you can find specs that support that.

Link to comment
Share on other sites

32-bit Windows can use more than 4GB of RAM. It just can’t give more than 2GB (or 3GB, depending on version and configuration) to any one process. This has been true since Windows 2000.

 

How does Windows manage to address a memory address above 2^32 with a 32-bit pointer?

 

How does it manage to say "yo, your shit is at 0x400000FF8F" when it cannot even represent an integer so large?

 

Utilize, Not assign.

 

It doesn't answer my question though. How does it move whatever is in e.g. 0x400000FF8F into one of the CPU registers when the largest number it knows is 0xFFFFFFFF.

 

I don't really see how you differentiate 'utilize' and 'assign' here. What good is utilizing memory if it cannot be assigned to anything?

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.