Why does Vista x86 show 4GB of RAM?

Pez D Spencer

Banned
Nov 22, 2005
401
0
0
It really doesn't matter to me much, but just out of curiosity, I was wondering why my system infomation screen shows 4GB of RAM installed. I don't know all the in's and out's of why 4GB of RAM isn't supposed to work on a 32-bit OS, but I thought unless you have a 64-bit OS, then it will always show less than 4GB (something like 3.25GB IIRC).

My specs are:

Vista Ultimate SP1 x86
Gigabyte G33 microATX mobo
4GB Corsair DDR2 800
Q6600 CPU
3870 512MB video

So what's the deal? Even on the Microsoft site it says you have to have x64 running to show all 4GB.

Thanks for any info.

Here's a screenshot:
http://i32.tinypic.com/24mywsp.jpg
 

corkyg

Elite Member | Peripherals
Super Moderator
Mar 4, 2000
27,370
240
106
Originally posted by: Pez D Spencer
So what's the deal? Even on the Microsoft site it says you have to have x64 running to show all 4GB.

That was changed with Vista Service Pack 1. X86 (32 bit) Vista now shows all 4 GB. But . . . it doesn't necessarily use it.
 

n7

Elite Member
Jan 4, 2004
21,281
4
81
It's a "fix" so that n00bs think they're getting use of their entire 4 GB IMO.

I imagine it'll cut back on support calls for manufacturers hugely ;)
 

Griffinhart

Golden Member
Dec 7, 2004
1,130
1
76
Originally posted by: n7
It's a "fix" so that n00bs think they're getting use of their entire 4 GB IMO.

I imagine it'll cut back on support calls for manufacturers hugely ;)


LMAO, you know, I had the same thought!
 

13Gigatons

Diamond Member
Apr 19, 2005
7,461
500
126
It would be better if it would list it like this:

Installed: 4GB
Mapped: 3.2GB (?)

The (?) could then be a popup link that explains the 32 bit limitations.
 

dv8silencer

Member
May 7, 2008
142
0
0
Yeah just to ward off buncha people getting angry and saying "Hey! I bought 4 gigs not 3.blah gigs!!!!!!! I GOT RIPPED OFF!!!!"
 

Canterwood

Golden Member
May 25, 2003
1,138
0
0
Incidentally the limitations with using all 4gb of ram on 32bit Windows XP and Vista and imposed by Microsoft themselves.

32bit Windows server software can access 4gb and above of ram using PAE.
 

dv8silencer

Member
May 7, 2008
142
0
0
Originally posted by: Canterwood
Incidentally the limitations with using all 4gb of ram on 32bit Windows XP and Vista and imposed by Microsoft themselves.

32bit Windows server software can access 4gb and above of ram using PAE.

Then it's not a true 32-bit OS... little more of a hybrid.

To say it's a Microsoft limitation is like saying Vista 32-bit is limited to 4GB by Microsoft itself because there is another OS (like Vista 64-bit) that can address >4GB. They are different OSes. The customer limits him/herself not the company.
 

pallejr

Senior member
Apr 8, 2007
216
0
0
How you address physical ram doesn't define the OS. It is still a true 32-bit OS after you enter PAE mode, and enables a physical address space larger than 4GB
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Technically at that point the kernel is 36-bit, but all of the userland software is still only able to address 32-bits at a time.
 

pallejr

Senior member
Apr 8, 2007
216
0
0
It is still a true 32bit OS/kernel. There is no such thing as 36bit computing. It is just x number of bits in a data structure called the page table.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
And since the amount of bits used by the kernel for addressing is what most people are talking about when they say 16-bit, 31-bit, 32-bit, 64-bit, etc it makes sense that when PAE is enabled you're running a 36-bit OS. Most people just keep saying 32-bit for a PAE enabled kernel because they don't really know what's going on.
 

clarkey01

Diamond Member
Feb 4, 2004
3,419
1
0
Before I got Vista 64 I used server 2003 enterprise edition to use all my ram for CAD/Gaming
 

pallejr

Senior member
Apr 8, 2007
216
0
0
In my book, 32 referes to the virtual address space and the size of all the registeres inside the cpu that you can use. PAE mode doesn't change any of that, it just changes the layout of the page table.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
In my book, 32 referes to the virtual address space and the size of all the registeres inside the cpu that you can use.

Then what about the 128-bit registers that MMX added?
 

pallejr

Senior member
Apr 8, 2007
216
0
0
okay, lets stick with the general purpose registers, these are the ones popping up in my head
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
AFAIK on AMD64 the GPRs are 64-bit even if you're not running in long-mode, I guess half is just wasted. But by your definition everything running on an AMD64 chip would be 64-bit since the GPRs are that size.
 

pallejr

Senior member
Apr 8, 2007
216
0
0
As they say it in the "AMD64 Architecture Programmer?s Manual":

"In compatibility and legacy modes, the GPRs consist only of the
eight legacy 32-bit registers. All legacy rules apply for
determining operand size"

And that is what counts. Runing a 32bit OS only gives access to these 32bit registers
 

LongTimePCUser

Senior member
Jul 1, 2000
472
0
76
I don't think that the issue was imposed by Microsoft.
Before vista sp1, my system showed someting like 3.5 GB memory. I thought that this was happening because my 512 MB video card was mapping itself into the memory space leaving only about 3.5 left for Vista.

Can anyone comment on this?

Originally posted by: Canterwood
Incidentally the limitations with using all 4gb of ram on 32bit Windows XP and Vista and imposed by Microsoft themselves.

32bit Windows server software can access 4gb and above of ram using PAE.

 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I don't think that the issue was imposed by Microsoft.

It most definitely is imposed by MS. They intentionally ignore any physical memory addresses >4G in the name of driver compatibility.
 

stash

Diamond Member
Jun 22, 2000
5,468
0
0
I thought that this was happening because my 512 MB video card was mapping itself into the memory space leaving only about 3.5 left for Vista.
That's true, but without the restrictions, PAE could map that "missing" RAM to memory space above 4GB using PAE. With the restriction that is in place, the memory is mapped but ignored.
 

LongTimePCUser

Senior member
Jul 1, 2000
472
0
76
That might be a compromise rather than a mistake by Microsoft.

My understanding is that 32 bit processors have 32 bit memory address registers that can directly address 4GB and that addressing more memory would have a performance hit which is not a good thing.

What is PAE? Does this impose a memory cycle performance hit when addressing memory above 4 GB?

Since, I am never close to 4 GB usage on my PC, I would prefer faster performance to more memory access. Maybe Microsoft should have provided a switch to turn on PAE for those people who have a different preference.

Originally posted by: Nothinman
I don't think that the issue was imposed by Microsoft.

It most definitely is imposed by MS. They intentionally ignore any physical memory addresses >4G in the name of driver compatibility.

 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
That might be a compromise rather than a mistake by Microsoft.

It is, they're compromising your memory above the 4G mark so that driver writers don't have to worry about it.

What is PAE? Does this impose a memory cycle performance hit when addressing memory above 4 GB?

No, all it does is enable a 3rd pagetable level to extend them to 36-bits, AFAIK there is no measurable performance hit.

Since, I am never close to 4 GB usage on my PC, I would prefer faster performance to more memory access. Maybe Microsoft should have provided a switch to turn on PAE for those people who have a different preference.

Provided there is proof that it hurts performance, which I doubt there is, then you can turn PAE off, it's just a switch to the kernel.