64-bit OS, 32-bit apps...any point to having more than 2GB RAM?

NTB

Diamond Member
Mar 26, 2001
5,179
0
0
Memory is certainly cheap enough, but would the programs be able to make use of it? stuff like image editors, video editors, and similar memory hogs.
 

bunnyfubbles

Lifer
Sep 3, 2001
12,248
3
0
things like multitasking and superfetch would be great reasons, also some 32bit programs can actually use more than 2GB...
 
Mar 19, 2003
18,289
2
71
Originally posted by: bunnyfubbles
things like multitasking and superfetch would be great reasons, also some 32bit programs can actually use more than 2GB...

True, but I think the apps have to be compiled (linked?) with the "Large Address Aware" flag, in which case they get a full 4GB of address space on 64-bit Windows. Otherwise it's still 2GB per (32-bit) process as far as I'm aware.
 

NTB

Diamond Member
Mar 26, 2001
5,179
0
0
Originally posted by: SynthDude2001
Originally posted by: bunnyfubbles
things like multitasking and superfetch would be great reasons, also some 32bit programs can actually use more than 2GB...

True, but I think the apps have to be compiled (linked?) with the "Large Address Aware" flag, in which case they get a full 4GB of address space on 64-bit Windows. Otherwise it's still 2GB per (32-bit) process as far as I'm aware.

So...once the OS can address more than 4GB (32-bit limit), memory limits occur on a per-process basis?
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: bunnyfubbles
things like multitasking and superfetch would be great reasons, also some 32bit programs can actually use more than 2GB...

How is that possible technically? As far as I am aware a 32bit app can be large address aware which is useful to prevent crashes etc
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
So...once the OS can address more than 4GB (32-bit limit), memory limits occur on a per-process basis?

It's always been that way, a 32-bit process is always limited to 4G of VM. The kernel needs some VM space too so in Windows by default it uses 2G of that so that leaves each process 2G of VM. With some work you can change that to 1G stolen and 3G per-process but that's as far as Windows will let you take it. With a 64-bit kernel and 32-bit process there's no need for it to steal from the process' address space since there's 256TB available so a LargeAddressAware 32-bit process can access the whole 4G VM space. I'm not sure what the split for a 64-bit kernel and 64-bit process is but with 256TB available I doubt anyone will care for a while.
 

Scotteq

Diamond Member
Apr 10, 2008
5,276
5
0
As pointed out, depending on how the program is written (Large Address Aware, or not), a given app/process may be limited to 2GB of address space. But it's impossible to run just one program, since there's always background tasks in the form of AntiVirus, drivers, firewall, OS, etc etc etc... All of those take a certain amount of address space. And if a given user likes to multi task, it's a blessing to have more memory than you "need", and the OS capable of addressing/handling it all without allowing items to step on each other.
 

sactoking

Diamond Member
Sep 24, 2007
7,649
2,925
136
Also, isn't it true that in it's 32- and 64-bit forms, Vista allocates 1MB physical memory for every 1MB of video memory available for texture caching or something? For example, if you have a 516MB video card and 1 GB system RAM, Vista only allows 516MB for system resources and the other 516MB is allocated to video resources.

I know I used to have problems on 32-bit Vista with my 640MB 8800GTS and 2GB RAM. I read that the system/video memory allocation was an issue, so I went to Vista x64 with 6GB RAM and have never had a crash due to video memory again. (This is with running 32-bit programs)
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: sactoking
Also, isn't it true that in it's 32- and 64-bit forms, Vista allocates 1MB physical memory for every 1MB of video memory available for texture caching or something? For example, if you have a 516MB video card and 1 GB system RAM, Vista only allows 516MB for system resources and the other 516MB is allocated to video resources.

I know I used to have problems on 32-bit Vista with my 640MB 8800GTS and 2GB RAM. I read that the system/video memory allocation was an issue, so I went to Vista x64 with 6GB RAM and have never had a crash due to video memory again. (This is with running 32-bit programs)

Vista has a feature called Video Paging based on the new driver model, it is designed to dump excess data from VRAM into seperate video pages to prevent slowdowns, crashes etc while gaming (very useful in dx10 games) -this is just like page file so it doesn't use main RAM.
 

pallejr

Senior member
Apr 8, 2007
216
0
0
The paging video feature does use ram. The amount of ram it can potentially use is the "shared" amount
 

hooflung

Golden Member
Dec 31, 2004
1,190
1
0
Originally posted by: sactoking
Also, isn't it true that in it's 32- and 64-bit forms, Vista allocates 1MB physical memory for every 1MB of video memory available for texture caching or something? For example, if you have a 516MB video card and 1 GB system RAM, Vista only allows 516MB for system resources and the other 516MB is allocated to video resources.

I know I used to have problems on 32-bit Vista with my 640MB 8800GTS and 2GB RAM. I read that the system/video memory allocation was an issue, so I went to Vista x64 with 6GB RAM and have never had a crash due to video memory again. (This is with running 32-bit programs)

I am pretty sure they fixed the 1 to 1 ram thing in Vista for DX9 games at least. It made PC's feel like they were living with the PCI HOLE which basically reserves your 4G limit ( remember this is at the BIOS level FIRST despite your OS ) for PCI and PCI-e modules.

For instance, my EVGA Nforce 4 SLI mobo has no PCI Hole fix, aka MMIO, option in the bios. With 1 8800GS installed on my computer 256mb of my 4G ram is not available to Windows. Linux misses ~400mb ( probably reserving space for my 8800GS in addition what has already been taken by the bios ).

With both of my 8800GS installed into my PC I am missing 512 ram from my BIOS. Windows sees all of what is left, Linux does too which is strange since with 1 card its more.

Either way, I cannot get over 3.5g in my 64bit Environment. However, on my lanparty NF4 SLI I have an MMIO option so it doesn't have this issue.

That said, yeah 4G ram and 64bit OS is pretty nice where your processes can use a full 2G.