crumble114

Distinguished
Aug 18, 2007
173
0
18,680
I heard that this is not possible? Is there anyway to be able to use 4GB of RAM with Windows XP x32? I have all service packs installed, anyway to be able to use the full 4GB of RAM without changing OS?
The rest of my specs are as followed:
Intel C2D E6600 @ 2.4Ghz
2GB of PC2-6400 RAM
512MB ATI X1900XT
320GB 16MB CACHE HDD

Also, if all the 4GB cannot be used, does this mean that the RAM will not run in dual mode thingy. :p (minds gone blank of the name <_<)
 

red_devil

Distinguished
Jan 12, 2006
141
0
18,680
I don't think it's possible. My expertise in Windows is limited, but i think that at the time they compiled the WinXP build (2600) they made the OS support 3Gb maximum ram (which was the biggest thing at that time, even for servers). so in order to change it they have to build the OS again. and Microsoft won't do it unless money is involved.


But like i said, i don't know much so i could be wrong.
 

garidan

Distinguished
Mar 6, 2007
2
0
18,510
XP 32 normally supports 2Gb for applications and 2Gb for the operative system.
Application like Oracle and few others (CAD like Solid Works) use a trick to use 1Gb more (total 3Gb) for applications and 1 Gb for OS (but I don't know if in that ram the OS puts disk cache too).

It's time for 64bit OS, because ram is cheap, but driver and application support isn't good.
I tried with Linux Ubuntu 64bit, and for example there's no flash player for 64 bit.

As for now, 64 bit is good for server apps, "experimental" for desktop use.

 

Moebius078

Distinguished
Aug 6, 2006
109
0
18,680
I've read that Windows reserves 768 MB of address space for video card, so you definitely shouldn't use more than 3 GB. IMO, you don't need this oracle app to use 3 GB of RAM. It will only make more RAM available for non-system processes.
 

zenmaster

Splendid
Feb 21, 2006
3,867
0
22,790
Actually, that article does not really relate.

That refers to the amount of memory available to a single process.
This is not the limit of a single program, but a process with that program.

Windows XP 32-bit edition can very definately use more than 2gb of memory.

The limit is rather more 4gb itself. Device drivers need to reserve address space below 4gb for scratch space. In general 3.2-3.5gb is left as available after the device driver reservation.

The amount of RAM actually held by the video card itself it not necessarily relevent. Windows only needs to reserve a much smaller buffer that will be used to pass information between the video card and Windows.

About the only time you will have significantly less than 3.2-3.5GB of memory is when running SLI. When running SLI Windows really does need to reserve huge chunks of memory for the GPUs so they can communicate. It's actually a very inefficient process which is why a single Hi-End card is generally recommended over to mid-range cards.
 

:non: :lol: :lol:

Thank you! I needed a good laugh. Sorry, don't mean any offense, but I've been working with Oracle for a decade now and I've never heard that one :) No, the Oracle application is not a utility for you to get access to more RAM. It's a database program and it costs $5000 and it won't do anything to help other programs access more RAM.

Zenmaster has already explained it. Here are some numbers, in case they help:

I have XP 32 bit and 4 GB of RAM. I can see 3.25 GB of RAM available in Task Manager. If I want to run 3 programs at the same time and each needs 1 GB I can do it. None of the programs will be able to use more than 2 GB all by itself, but I refuse to worry about that.

And, btw, dual channel does work in this scenario.

 

crumble114

Distinguished
Aug 18, 2007
173
0
18,680
Well, that's alright then, as most programs wouldn't reach anywhere near 2GB each, correct?
Haha, yes, now you see, I'm a total newb when it comes to this stuff.. =]
 
Absolutely true, most programs are designed to use much less than 2 GB. In fact, a lot of programs crash when they reach 2 GB. Supreme Commander does it for example, it was in a review some weeks ago.
 

T8RR8R

Distinguished
Feb 20, 2007
748
0
18,980
I know we're not talking about Vista vs XP or DDR3 but here are some things to look at when considering getting more than 2Gb of RAM.

If I run BF2142 on Vista I will sometimes use as much as 1.85Gb of my 2Gb installed, this is yet another reason Vista isn't really for gamers. In XP it uses about 1.3-1.4Gigs during BF2142.

However as programs get more complex, memory buffers will need to be enlarged and when more people migrate towards Vista people will start to actually "need" more than 2Gigs and typically that means 4Gigs.

Vista alone uses about 650Mb or more just by it's lonesome. Where as XP uses about 270Mb.

To make things even more complicated you also have to consider DDR3. If you plan on getting DDR3 within the next year and half you might as well just stick with 2Gb of DDR2 for now.
 

zenmaster

Splendid
Feb 21, 2006
3,867
0
22,790
For the majority of folks, there is rarely a need for more than 2gb of memory. Most apps/games show little improvement going from 2-4gb of RAM.

Personally, I do alot of virtualization on my PC so that I have multiple different operating systems running under Windows at the same exact time. I may even upgrade to Vista-64 at some point in time so I can go to 8gb, but that is not going to be easy from a software compatibility point of view.
 

qwertycopter

Distinguished
May 30, 2006
650
0
18,980


Could you explain this a little further? Are the device drivers actually using up that chunk of RAM? If so, why doesn't this seem to occur when you install just 2GB of RAM?

Or are you saying that the upper addresses are reserved by device drivers? Thus, although you have 4GB of RAM, the upper-addressed bits can not be accessed because the addresses are being used elsewhere.

Thanks!
 

dengamle

Distinguished
Apr 18, 2007
224
0
18,690
Yes, some of the upper address space is used for IO mapping (memory mapped IO). So you'll end up with IO and RAM sharing the same addresses, and IO has priority.
 

killerb255

Distinguished
Jul 20, 2006
326
0
18,780
If you want to be able to utilize a full 4 GB of RAM, you need 64-bit.

On 32-bit OSes, 4 GB of RAMspace is the maximum with your components taking priority over physical RAM. This is why many PCs with 32-bit OSes and 4 GB of physical RAM only address 3.0-3.5 GB of physical RAM.

64-bit's limit is much higher than this (128 GB?)
 

0p3n

Distinguished
Aug 3, 2006
54
0
18,630
32bit OS' can only address memory in 32bit address spaces, so if you do the math, 2^32 = 4,294,967,296 bytes of memory or roughly 4 gigs. Then you have a reserved address space, so you get like 3 to 3.5 gigs of space. Now with a 64bit machine 2^64 = a very large number, larger than 128 gigabytes, but most OS's only support up to 128 gigs.
 
Most of you have already said, and correctly so, that winds Xp and Vista 32 bit can except up to 4 Gis memory. But as you also pointed out you "see" less than.

This is a throw back to the "Old" DOS days where you had 640 Megs for programs and a reserved 384 Megs called upper memory.

Memory-Mapped I/O (MMIO), for example (Not limited to) video memory must be mapped within the first 4 Gigs of memory. In systems with less than 4 Gigs of physical memory this MMIO is placed in the virtual memory, But when 4 gigs of physical memory is used, it then must resided in that 4 gigs. (4096 - 384 = 3680 or the 3.6 gigs that is the MAX that is available for programs.

Vista (32 Bit) places a limit on grogram memory at 3.12 Gigs, UNLESS the BIOS support Memory remapping.

Reference usoft.com/kg/929605
 

cyberjock

Distinguished
Aug 1, 2004
305
0
18,780
To retiredchief:

I think your confused.


This is a throw back to the "Old" DOS days where you had 640 Megs for programs and a reserved 384 Megs called upper memory.

"Old" DOS was 640K with 384K reserved called upper memory. That was kilobytes, not MB.

Anyway, here's a website I found that can explain things for alot of people.

http://www.brianmadden.com/content/article/The-4GB-Windows-Memory-Limit -What-does-it-really-mean-

So anyway. I keep see people throwing the /3gb switch thing out there when someone says "I got 4GB of ram and I can't see it all" and some of the various other 4GB ram questions that arise. The 3GB switch is bad joo joo for 99% of us. All it does is change the amount of memory that can be allocated for programs/kernel and forces the kernel to never use more than 1GB. For most people the 3gb switch should be used only if have software that recommends it for a particular reason.

I tried to find the microsoft article that I read about the /3gb switch and RAM allocation in XP, but I couldn't find it. It was a great read though because they explained in good detail how the computer behaves after 2GB of ram, and what happens at 4GB, and PAE extensions and how all that stuff effects Windows XP.

NOTE: For some reason, there's a space between Limit and the -What.... I tried removing it several times, however it keeps reappearing. You'll need to copy and paste the correct text into your browser. I'm not really sure why the extra space keeps being added.
 

crumble114

Distinguished
Aug 18, 2007
173
0
18,680
A good discussion going on here it seems. :p
Interesting points made by everyone here.
Another question; when I upgrade my 32 bit XP to 4GB, will I need to increase the physical memory in the control panel or whereever it is, as I remember having to do this last time I upgraded from 1GB to 2GB.
 

russki

Distinguished
Feb 1, 2006
548
0
18,980


Chief, while I ordinarily agree with you, (and your link does not work so I'm speaking from memory of reading through that KB and general concepts), I don't think you are entirely right.

1) You are right that the MMIO and other reasons to reserve the memory address ranges is a holdover from the older times (however, architecturally, it is one of the better ways to handle that and it is really tough to conceive a more viable alternative that makes programming as simple as this method). For the poster that asked to have this explained further, this is how it works in a gist. For certain IO (input / output) operations, an "ease of use" feature was designed that allows the code to just reference a certain memory range, and the system knows that the data written should, in fact, go not in the system memory but to a device. Hence the term memory-mapped-input-output (MMIO). The only problem with that is that the address range that is reserved for this IO should then be unavailable to general programs, because it is now dedicated to the interface with that particular devices (video card, sound card, etc.). This was never really a problem until recently, because...
2) It is a limitation of the x86 architecture and a bit of the Windows design that only a total of 4Gb may be addressed (32bit address space). Until recently this was not an issue at all because system memory of 4 Gb in the desktop space was really unheard of. Now that it's becoming a reality and moving towards the norm, the issue has reared its ugly head.
3) Since you can address a total of 4Gb but some of it has to be reserved for MMIO (and other things similar in concept), that limits the amount of physical memory that is addressable for the purposes of memory access. This is what limits the amount of physical memory shown by the system even though you have more installed. This occurs on the system level.
4) Separate Issue Altogether: Typical application gets a total address space of 4Gb (no matter what amount of physical memory is installed. This is because virtual memory has been a component of the system for a long long long time). To account for the MMIO, etc. needs and other system needs, the "User Space" - that space available for the application to address physical memory, it typically limited to 2Gb (unless the /3Gb switch is used). This occurs on the application level. This presents other problems, again, unrelated to what physical address range in visible to the OS. For more see the Anandtech article quoted above.
5) 64 bit OS allow for a workaround of the first issue. This is where I respectfully disagree with the Chief. You have to have a 64bit OS (not sure if limited to Vista, but let's face it, 64bit XP is worse than Vista). You also need to have the chipset that supports more than 32bit of address space (not all do, even those that support 64-bit processors. Which is ironic). You need the processor that supports 64-bit addressing. And your BIOS needs to support a "memory remapping feature." That feature remaps the address space reserved above the 4Gb line. So then you can actually address all of the 4Gb memory installed (and / or more).

Hope this helps. Please correct any mistakes if you find them.