A Messy Transition: Practical Problems With 32bit Addressing In Windowsby Ryan Smith on July 12, 2007 12:00 PM EST
- Posted in
Except in a few cases where 64-bit code is clearly faster, the primary purpose for Vista x64's existence is to resolve the problems of 32-bit addressing space, and we're just not at the point yet where even most enthusiasts are pushing that limit. Once applications begin to push the 2GB addressing space limitation of Win32 (something we expect to hit very soon with games) or total systems need more than 4GB of RAM, then Vista x64 in its current incarnation would be a good choice.
For some time now we have been mentioning the potential problems that are likely to result from the switchover from 32bit(x86) Windows to 64bit(x64) Windows. Due to a multitude of issues, including Windows' memory management, the basic design of the PC architecture, and consumer support issues, there is no easy path for mass migration from 32bit Windows to 64bit Windows. As a result we have been expecting problems as consumers begin to make the messy transition.
We published the above mentioned guide on February 1st, expecting the fall/winter 2007 games to be the ones to push the 2GB addressing space limitation of Windows, and it turns out we were wrong. It turns out that two weeks after we published the above article, THQ published Supreme Commander, a RTS with a massive appetite for resources. It can be simultaneously GPU limited and CPU limited, which is why it's a standard benchmark here for our performance articles, it's also memory limited in more than one way: it's hitting the 2GB barrier of 32bit Windows.
An artifact of the design of 32bit processors and the 32bit API for Windows, the 2GB barrier is a cap on how much addressing space (related to but not equivalent to memory usage) a single application can use. This isn't a bug but rather the result of how hardware and software was created so many years ago, and while everyone has known this barrier will inevitably be hit, as we'll see there are several reasons why it can't simply be moved or bypassed. Meanwhile hitting it involves affected applications crashing for what can appear to be no good reason, and understanding why the 2GB barrier exists and what can be done will be important for resolving those crashes.
On a personal note, I am a semi-casual player of real time strategy(RTS) games and I've been playing Supreme Commander lately. This is a different kind of article, it's a record and the result of my own efforts to resolve why I was having crashing issues with Supreme Commander. With no intended disrespect towards THQ or the game's developers (Gas Powered Games) we could have not possibly asked for a better example of the 2GB barrier in action. It's exactly the experience we believe many people will have as they hit the 2GB barrier, mainly those power users who use large monolithic applications such as games or multimedia tools. This is an article on what the problem with the 2GB barrier is, what kind of experiences a user may expect when hitting it, and what can be done to fix it.
But before we get too far ahead of ourselves, let's discuss memory management in Windows. Understanding the problem with Supreme Commander requires understanding what the 2GB barrier is, why it's there, and what makes it so problematic.
Post Your CommentPlease log in or sign up to comment.
View All Comments
nullpointerus - Thursday, July 12, 2007 - link64bit versions of Windows(i.e. XP and Vista) do not suffer from the traditional 2GB barrier, as all the kernel mode addressing is usually moved to well above the confines of the limited 32bit addressing area. As such, these versions of Windows don't need to have their space allocations adjusted for an application to gain access to more addressing space, bypassing the instability and any possible performance problems that occurs as a result of making this adjustment.
I used 64-bit Vista for a while but just couldn't deal with the BSOD's and other wierd behavior that would happen with 4 GB RAM installed and the BIOS memory hole option set. For example, the nVidia SATA drivers (3 updates on Windows Update alone) for my board would BSOD on every boot when the BIOS memory hole option was enabled, and the PVR-150's driver would randomly corrupt itself and turn into a green/garbled slideshow:
I wish the 64-bit driver developers would get off their butts and fix this stuff.
gersson - Thursday, July 12, 2007 - linkLarge Address Aware Status
it says, "STALKER: Oblivion Lost"
Ryan Smith - Thursday, July 12, 2007 - linkI'm not sure I see what the problem is. Could you go in to more detail?
gersson - Thursday, July 12, 2007 - linkYou meant to place 'Stalker' cos there is already an entry for oblivion and 'lost' (I assume you mean 'lost planet')
Read like this:
Observe first line:
STALKER: Oblivion Lost Yes
Lost Planet No
Company of Heroes Yes
Supreme Commander No
Enemy Territory: Quake Wars Yes
Battlefield 2142 No
Call of Juarez DX10 BM No
World of Warcraft No
The Elder Scrolls IV: Oblivion No
Photoshop CS3 Yes
Dreamweaver CS3 No
DigitalFreak - Thursday, July 12, 2007 - linkNo. Stalker had the working title of Stalker: Oblivion Lost...
gersson - Thursday, July 12, 2007 - linkhmm ok, didn't know that -- but you can see how I had arrived @ my conclusion :-P
The Boston Dangler - Thursday, July 12, 2007 - linkthe game was released as STALKER: Shadow of Chernobyl. no biggie
Ryan Smith - Thursday, July 12, 2007 - linkFixed. I keep forgetting they changed the name.
grant2 - Thursday, July 12, 2007 - linkSo this game will crash reproducably when using a large map, with many players, and many units.
And GPG released it like this? Either their QA department is rather incompetent, or management were buffoons to ignore such an obvious error.
EODetroit - Thursday, July 12, 2007 - linkI've been hoping Anandtech would take memory issues more seriously for a while now, glad you're getting your teeth into it for real now!
"Unfortunately Windows Vista reverted to a non-accelerated desktop at this point, preventing us from capturing a screenshot of the exact memory readouts or the error message."
Use a camera!