4 Gigabytes max?

Zapata

Newcomer
Windows XP Professional 64 http://www.microsoft.com/windowsxp/64bit/default.mspx
does not apparently have a 4 Gigabyte Max memory limit, so with four RAM slots on a motherboard and with 2 Gigabyte individual sticks that gives a potential RAM of 8 Gigabytes, I am wondering if 4 RAM slot motherboards have a hardware and, or software limitation that would limit the useable RAM installed to a max 4 Gigabytes or was the problem just in the previous Windows operating systems and with the like of Windows XP Professional 64 the brakes are off as regards RAM. I think I saw details of 2 Gigabyte RAM sticks a little while ago but I could not find any when I checked recently on the Net!

Saludos Amigos
Zapata
 
You can definitely use way more than 4 GB of ram in x64, however, most apps available today won't use more than a 2 gig chunk of it at once.

IIRC x64 supports up to 32TB of memory.

Edit:meh, I was close:
"Windows Professional XP Edition x64 currently supports up to 128 GB of RAM, with the potential to support up to 16 terabytes of virtual memory as hardware capabilities and memory sizes improve."
 
A lot of "consumer level" non-64 bit hardware did not have northbridge support for more than 4GB of ram (in many cases, even 2GB was the max) up until just recently. All versions of Windows NT 5 (2000 and later) have support for physical address extension to access additional memory, but XP-32 actually took a step backwards (in my opinion) with their support for a total of only 4GB of address space.

Keep in mind that total address space covers both virtual and physical addressing, which means video and RAID drivers that remap a virtual 512mb or more memory can ultimately cost you that in total physical memory address capacity on a 32-bit XP-based machine. Meaning that if you have a top-end new video card and have 4GB of ram on your XP machines, chances are you will only be able to use a max of 3.5GB of that ram... And if you're using crossfire or SLI? You're down to 3GB.

Windows 2000 Professional with PAE would support up to 8GB of address space, which meant you could have 4GB of physical ram and actually be able to use it all, unless you had enough drivers to somehow chew up 4gb of virtual address space.
 
XP also supports Physical Address Extension.

In fact, it is automatically turned on in SP2 if you use DEP with the XD or NX procesor features.

But PAE has a LOT of limitations.
Even if your mobo supports >4GB (unlikely if it is not a server mobo) your 32bit programs will NOT be able to use the >4GB or even 3GB!!

The reason is because those programs still use 32bit addressing. 32bit means that you cannot address anything above 4GB. Furthermore any 32bit program in windows only gets 2GB it can use.

So even when you have 8GB in your machine, your program can still only use 2GB.
BUT you can run 4 instances of that program, and thus use the 8GB efficiently.

If you want a single instance of a program to use that 8GB to program itself must support AWE. (That's a windows API to use PAE) There are actually very VERY FEW programs that support it.
I know of only 1 server application that supports it. (SQL) and no consumer level applications at all, that support it.

With windows x64, your 32bit programs will still only be able to use 2GB.
 
XP also supports Physical Address Extension.

In fact, it is automatically turned on in SP2 if you use DEP with the XD or NX procesor features.

But PAE has a LOT of limitations.
Even if your mobo supports >4GB (unlikely if it is not a server mobo) your 32bit programs will NOT be able to use the >4GB or even 3GB!!

The reason is because those programs still use 32bit addressing. 32bit means that you cannot address anything above 4GB. Furthermore any 32bit program in windows only gets 2GB it can use.

So even when you have 8GB in your machine, your program can still only use 2GB.
BUT you can run 4 instances of that program, and thus use the 8GB efficiently.

If you want a single instance of a program to use that 8GB to program itself must support AWE. (That's a windows API to use PAE) There are actually very VERY FEW programs that support it.
I know of only 1 server application that supports it. (SQL) and no consumer level applications at all, that support it.

With windows x64, your 32bit programs will still only be able to use 2GB.

Hopefully Microsoft Flight Sim X will not be limited to the 32 bit addressing you mention, [ I presume FS-X is 64 bit software ] as that is the programme I am particularly interested in, in respect of the possability of 8 Gigabytes on board Ram.

http://en.wikipedia.org/wiki/Microsoft_Flight_Simulator_X

Saludos Amigos
Zapata
 
The larger virtual address space in x64 also has the advantage of reducing the pain of memory fragmentation which you are much more likely to hit than the actual physical memory limits.
 
Hopefully Microsoft Flight Sim X will not be limited to the 32 bit addressing you mention, [ I presume FS-X is 64 bit software ] as that is the programme I am particularly interested in, in respect of the possability of 8 Gigabytes on board Ram.

http://en.wikipedia.org/wiki/Microsoft_Flight_Simulator_X

Saludos Amigos
Zapata

I find it hard to believe that Flight Sim X will really benefit from having more than 2GB memory available.
Do you have a specific reason why you think it would use that much memory?
 
The larger virtual address space in x64 also has the advantage of reducing the pain of memory fragmentation which you are much more likely to hit than the actual physical memory limits.

Yeah...
I constantly ran into that issue with my Exchange servers. (that's why I didn't mention the /3GB switch in this thread, because that makes it even worse)
Before Exchange I had never realised that memory can become fragmented too.

You can imagine how glad I was that Microsoft decided to make Exchange2007 64bit.
 
And, though I've already contributed to the thread once, I'd like to complain about things:

Photoshop = potential to be working on very very very big files.
Max memory photoshop can use= still just 2 gb
(And I'm going to bet that CS3 does NOT have an x64 version, and still doesn't support more than 2gb.... please prove me wrong adobe.)

Same way in many 3d modelling/rendering programs.
max memory=2gb
potential= <infinity symbol here>
I love crashing Blender/Yafray when it hits that barrier. Wonderful.

Games for the most part are fine with the 2gb limit.
I would appreciate it if devs did support things like using more than 2GB on x64.

Imagine, say, Oblivion, with all assets loaded into RAM!
Or your favorite FPS, with the next three maps already loaded and ready to go.

Even your favorite application that has memory leaks could last longer before crashing *tongue in cheek* ;)

In conclusion, I'm done whining.

I'm gonna go invent my OWN computer, with beer, and hookers. In fact, forget the computer.
 
I find it hard to believe that Flight Sim X will really benefit from having more than 2GB memory available.
Do you have a specific reason why you think it would use that much memory?

Flight Sim X is gaining the reputation as a resource hog, on a rig with a middle range Athlon 64 XP dual core, two 7 series graphics cards in SLI and a gig of RAM Memory it appears to run between eight and twenty frames and in flight sim 2004 I find that when FS 2004 drops below twenty frames, the graphics are not so much uniformy slow as stuttery which is particularly annoying and also with a below 20 FPS, I often have found in FS 2004 that one does not only encounter problems with the graphics I have detailed above but the flight charactoristics of the aircraft seem to be degarded in the sim, when the sim is producing low FPS.

Saludos Amigos
Zapata
 
Last edited by a moderator:
Same way in many 3d modelling/rendering programs.
max memory=2gb
potential= <infinity symbol here>
I love crashing Blender/Yafray when it hits that barrier. Wonderful.
Is this still true with the x64 builds of blender/yafray? That would be disappointing.
 
Whoa, hold on... A bit of misinformation above that needs to be cleared up...

XP also supports Physical Address Extension.

In fact, it is automatically turned on in SP2 if you use DEP with the XD or NX procesor features.
Correct, but...

So even when you have 8GB in your machine, your program can still only use 2GB.
BUT you can run 4 instances of that program, and thus use the 8GB efficiently.
Incorrect on the 2nd half, and only partially correct on the first half. XP32 does support the /3gb switch for allowing applications to have virtual addressing space of 3GB rather than two. However, XP32 supports only 4gb of total address space, even with PAE enabled. Hence my post above yours -- even with PAE enabled, your system will never see more than 4GB of ram. And because of the way most modern video and RAID drivers work, it's quite likely that you'll have even less than 4GB accessible -- even IF you physically have 4GB installed.

In case you don't believe, here are two sources:
First source
Windows XP Professional and Windows Server 2003 Memory Support. The maximum amount of memory that can be supported on Windows XP Professional and Windows Server 2003 is also 4 GB. However, Windows Server 2003, Enterprise Edition supports 32 GB of physical RAM and Windows Server 2003, Datacenter Edition supports 64 GB of physical RAM using the PAE feature.

Second source
To constrain compatibility issues, Windows XP Service Pack 2 includes hardware abstraction layer (HAL) changes that mimic the 32-bit HAL DMA behavior. The altered HAL grants unlimited map registers when the system is running in PAE mode. In addition, the kernel memory manager ignores any physical address above 4 GB. Any system RAM beyond the 4 GB barrier would be made unaddressable by Windows and be unusable in the system. By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with an address above the 4 GB barrier. Because these changes remove the need to double-buffer the transactions, they avoid a class of bugs in some drivers related to proper implementation of double buffering support.

Microsoft purposely castrated PAE mode under the XP operating system to avoid a lot of issues that crop up in "generic" hardware drivers.
 
Last edited by a moderator:
I think it also needs to be noted that the 3GB to 4GB phyisical memory range is mapped to PCI devices so the maximum amount of addressable phyiscal memory you can have is only 3 GB under XP 32. The motherboard remaps the 3-4 GB of physical memory to the 4-5GB addressable range leaving PCI alone to avoid compatibilty problems. With Windows ignoring anything about 4GB you're left with only 3GB of addressable phyiscal memory.
 
Whoa, hold on... A bit of misinformation above that needs to be cleared up...

Correct, but...

Incorrect on the 2nd half, and only partially correct on the first half. XP32 does support the /3gb switch for allowing applications to have virtual addressing space of 3GB rather than two. However, XP32 supports only 4gb of total address space, even with PAE enabled. Hence my post above yours -- even with PAE enabled, your system will never see more than 4GB of ram.

Now I see what you meant. I thought you meant that XP32 didn't support PAE.

And yeah, you are right about the artificial limitation in XP regarding PAE.
(Microsoft and all their stupid artificial limitations...)

I had it mixed up with /3GB. Thought that /3GB still had the artificial limitation and PAE didn't have it anymore...

(For other people here wondering what we are talking about: The /3GB switch is now properly supported in XP, but in 2000 professional, when you used the /3GB switch, the OS memory was reduced to 1GB, but the memory for applications remained at 2GB, instead of being increased to 3GB)

In any case, the point I was trying to make still stands: It is very unlikely that you will run an application in Windows XP that supports PAE. (Or /3GB)

But now that /3GB has again been mentioned a bit of warning for the others for that switch too:

With /3GB you determine how the 4GB addressable memory of a 32bit cpu should be divided between the OS and applications. The default is 2GB OS and 2GB for applications.
With the /3GB switch it is 1GB OS and 3GB applications. (and the userva switch allow more tuning, but be carefull about messing around with it)

The problem again is that an application must support the /3GB switch to make use of the 3GB. And most applications do not support it :(

To make a long story short: With Windows XP, and applications designed for XP you had better forget about using more than 2GB with your application.
 
Last edited by a moderator:
Is this still true with the x64 builds of blender/yafray? That would be disappointing.

A true x64 applications uses 64bit addressing. And that means it can address more memory than I can imagine.... :)

In that case you will most likely by limited only by hardware restrictions. (of costs of RAM and mobo)
 
Is this still true with the x64 builds of blender/yafray? That would be disappointing.



You know, I have x64 installed and it didn't even occur to me that I should go for the x64 versions (well, compile, in yafray's case).

They will indeed be able to address more than 2gigs. I don't have more than that in my box to find out, though. (Someone on the Yafray forums has been rendering on an 8 way opteron box with 8GB of RAM, I beleive)
 
Back
Top