3GB vs 4GB

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

dclive

Elite Member
Oct 23, 2003
5,626
2
81
Originally posted by: JustaGeek
The way I understand it, the 3 to 4GB bracket is a "remnant" of the 32-bit "philisophy".

It doesn't apply in 64 bit Windows. Thankfully.

All the hardware, BIOS's and drivers are written with the 2GB application, 2GB hardware memory allocation in mind. It can be "shifted" by using the /3GB switch in boot.ini file, changing that proportion to 3GB application, 1GB hardware allocation.

Speaking only of 32 bit Windows, yes. And it isn't 2/2 and 3/1 for App/Hardware, it's 2/2 and 3/1 for App/OS. The hardware bits taking memory from the OS side is just a side point.

But I believe that all the drivers are still written for the 2 to 4 GB bracket! I have recently experienced problems playing Far Cry with the /3GB enabled. It would freeze, and even ctrl-alt-del would not work; hard shutdown with the power switch/reset was the only option.

With Win64 there is no longer a reason to use /3GB. Many apps simply cannot run in /3GB due to poor programming (speaking of Win32). Win64 hardware lives elsewhere, and there is no longer the need to have it inside the 32 bit (4G) model. If you run Win64, why are you using /3GB? If you run Win32, I'd check with the developer to see what they say about /3GB; outside of Microsoft, Oracle, and large footprint apps (of which FC isn't one) there's little support for it and lots of potential problems. It's a crappy hack to a crappy problem.

The symptoms included flickering of the whole screen with the ctrl-alt-del held down. Otherwise the screen was just black, and I could hear the Far Cry music in the background.
Nothing would work, even the Windows key, just the flickering screen.

Sounds like badly written drivers. Can you clarify the Winxx release you're running?

It looked to me like there was a "serious fight" going on between conflicting files.

?? It's just evidence of a bad driver or an application that has a problem with 3GB.

Perhaps it was just my imagination, but I subsequently deleted /3GB from boot.ini, and the problems have never occurred again.

Not at all surprising.

And I believe that even the 64-bit drivers are still designed for that bracket. Where would they put it otherwise...? Between 120GB and 128GB....? (That is, I believe, the upper addressing limit in the 64-bit OS.)

No - 64 bit drivers don't live there. That's the entire point of the 64 bit model.
 

JustaGeek

Platinum Member
Jan 27, 2007
2,827
0
71
Thanks for the great explanation. That makes it a lot clearer to me.

But... is there any "bracket' for the 64-bit OS drivers, or do they, as you have mentioned, "live" elsewhere?

I believe that it is all happening because of that "transitional" period - we have the driver designers that have to satisfy both the 32-bit and 64-bit OS's. And the easiest "shortcut" is to write them with the 2/2 divider in mind.

I am just curious - have they changed the addressing to put those drivers in the area beyond 8GB or 120GB, to kinda "cleanse" the 2-4 or 3-4GB bracket...?


My 32-bit XP is updated to the July "patch Tuesday", the NVidia driver version is 91.47 (September 2006 - did not like the 93... version, it produced "sharper" shadows, and have not tried any newer version). And Far Cry is patched to 1.33, and you're right, it is an older application, released in 2004, designed much earlier than that.

Anyway, the only thing I am using right now is the PAE, and the system is probably using it. I expanded my RAM to 3GB because of the "jittering" performance in Quake 4 at Ultra Quality settings.

With 2GB of RAM, the memory use would show as 99% in some scenes, causing the inevitable exchange between the Swap File on the Hard Drive and RAM, hence the "shakiness" and erratic framerate. It all has disappeared with the extra 1 GB installed.

The memory use shows 65% (Logitech G15 keyboard), consistent with the 2GB application barrier, but the "jittters" went away! I believe that the system/OS uses this area of memory >2GB, leaving more for the textures in the area <2GB.
 

dclive

Elite Member
Oct 23, 2003
5,626
2
81
Originally posted by: JustaGeek
Thanks for the great explanation. That makes it a lot clearer to me.

But... is there any "bracket' for the 64-bit OS drivers, or do they, as you have mentioned, "live" elsewhere?

They have a bracket somewhere; I'd have to break out a manual to find it, but you aren't likely to hit it. More than that I'd have to go read.

I believe that it is all happening because of that "transitional" period - we have the driver designers that have to satisfy both the 32-bit and 64-bit OS's. And the easiest "shortcut" is to write them with the 2/2 divider in mind.

Not at all. That's the entire reason there are different drivers required for 64 vs. 32 bit Windows - because the entire process of writing them is quite different. The 2/2 model has always been the case for the entire WinNT subsystem since NT3.x days, so there's nothing new in this. That's part of the reason that when you switch things up to the 3/1 model that the hardware breaks - it expects to be able to write to anywhere in the OS's 2GB space, and when you shrink that, things break.

I am just curious - have they changed the addressing to put those drivers in the area beyond 8GB or 120GB, to kinda "cleanse" the 2-4 or 3-4GB bracket...?

Again, I'd have to look at exactly where it's going, but it no longer will be a significant issue (give it 10-15 years. :) )

My 32-bit XP is updated to the July "patch Tuesday", the NVidia driver version is 91.47 (September 2006 - did not like the 93... version, it produced "sharper" shadows, and have not tried any newer version). And Far Cry is patched to 1.33, and you're right, it is an older application, released in 2004, designed much earlier than that.

And of FarCry's audience, practically nobody will change to boot with the 3GB switch. Why would you do that? FC doesn't need more than 2GB.... I see no benefit.

Anyway, the only thing I am using right now is the PAE, and the system is probably using it. I expanded my RAM to 3GB because of the "jittering" performance in Quake 4 at Ultra Quality settings.

I can't believe Quake would use 2GB, much less 3GB, all to itself.

With 2GB of RAM, the memory use would show as 99% in some scenes, causing the inevitable exchange between the Swap File on the Hard Drive and RAM, hence the "shakiness" and erratic framerate. It all has disappeared with the extra 1 GB installed.

If you switch between what and what, do you see this stuttering?

The memory use shows 65% (Logitech G15 keyboard), consistent with the 2GB application barrier, but the "jittters" went away! I believe that the system/OS uses this area of memory >2GB, leaving more for the textures in the area <2GB.

Yes, that's what we've said. The OS allocates 2GB to itself, and 2GB to all applications (to each of your set of "all" applications), backed up by the hard disk for any requests it can't fully satisfy from free RAM. It's all virtual anyway at this point - the 65% number you're seeing could be almost anything. Bear in mind in a modern OS you don't *want* free RAM - free RAM is wasted RAM. You want to cache everything and have no unused RAM.

That said, I would really be surprised if you could go between 3GB and no-3GB switches on your PC and have Quake perform at all differently - while changing nothing else.
 

JustaGeek

Platinum Member
Jan 27, 2007
2,827
0
71
Thanks again. I agree that reaching 128GB upper limit of RAM in a 64-bit OS will not be a problem for years to come.

But all that comes so fast - the computers only 10 years ago, in 1997, would come standard with 2GB hard drives and 16MB of RAM!

Another link with a nice graph - short and sweet.

http://h20331.www2.hp.com/Hpsu...M_w-Windows_08Ap07.pdf

I really appreciate your time to explain it all, dclive.
 

dclive

Elite Member
Oct 23, 2003
5,626
2
81
Originally posted by: JustaGeek
Thanks again. I agree that reaching 128GB upper limit of RAM in a 64-bit OS will not be a problem for years to come.

You might be thinking of consumer Windows. For professional Windows (Server) releases, those limits do not apply, which suggests Microsoft could remove them in consumer Windows with a servicepack or hotfix, and which also suggests they're there for marketing reasons only.

http://msdn2.microsoft.com/en-US/library/aa366778.aspx is a good summary for you.

 

JustaGeek

Platinum Member
Jan 27, 2007
2,827
0
71
I just read that HP White paper again, and I think I understand it a bit better now.

Applications are assigned the memory from the bottom 0 to the top 2GB, but the system assigns the memory "backwords" from 4GB down to 3GB and lower. This way, in theory, they should never meet, or overlap.

In the "server" versions of Windows, and probably all the 64-bit versions of all OS', the OS will use the memory remapping to place all the PCI memory beyond all the physical RAM installed in the system.

Wow, that's so logical, and no one has to worry about the upper limit anymore - it doesn't exist, as long as the OS can remap and address it above the physical RAM!

Thanks again, dclive!
 

dclive

Elite Member
Oct 23, 2003
5,626
2
81
The best book on the subject is one in the Windows Internals series.

Memory is abstracted anyhow - this concept of bottom and top is a bit silly when you think about it because the 2GB Windows hands out to each application is virtualized from start to finish...

 

JustaGeek

Platinum Member
Jan 27, 2007
2,827
0
71
Absolutely. And with the proper remapping, the sky is the limit!

Or... 128GB, at least for the moment, or 64-bit OS'.

At least all the physical memory installed can be made available to the user applications. The paradise for the programmers, isn't it?
 

dclive

Elite Member
Oct 23, 2003
5,626
2
81
This isn't a remapping issue. It's a Microsoft marketing issue. You can clearly see that their 2008 OSs have far higher limits. It would be fairly simple to have Consumer Windows have the same limits.

iProgrammers don't need to handle any of this. The purpose of the OS is to abstract all of this from them.
 

JustaGeek

Platinum Member
Jan 27, 2007
2,827
0
71
Well, I guess that puts a new "twist" on Microsoft's control of the OS market.

Working with Windows since the 3.1 release, and DOS earlier, it does not surprise me. If you are practically the only one on the market, especially the business/commercial network market, you can do practically anything to make sure that no one goes beyond the limits imposed by you.

In general, they seem to do a good job though. We are kinda "stuck" with Windows, but only because they are so universal, the compatibility of all the hardware and applications is practically guaranteed.
 

Eomer of Aldburg

Senior member
Jan 15, 2006
352
0
0
I'm thinking by the time Vista users need to use more than 3GB of ram for games there will be sufficient amount of drivers for the 64 bit OS