Freigeben über


AWE in WOW64 on x64

Here in the EEC, was asked a good question the other day, thought I’d pass it along.

So the scenario is that the engagement in question was to run SQL 2000 SP4 on a box running Win2k3 x64 Enterprise Edition. The server had a good chunk of RAM (I think 8GB, but it might have been 16GB). The question was, is AWE on the table in this scenario for SQL?

I knew that AWE is not an option in WOW64 on Itanium. I had bumped in to this before. But I had never been asked about WOW64 on x64. I did some digging in the docs (seems like something we’d document) and found that the docs talked about how it isn’t an option on Itanium, but didn’t explicitly call it out in the x64 section either way. Here’s a sample of what I mean.

So with that, I was unsure. I guessed that it would not be an option. Then I asked someone who would know.
I guessed wrong.

It turns out, AWE in WOW mode does in fact work on x64, unlike ia64. Why? Well I had to ask, and got what was a very logical explanation.

It stems from the reason that it _doesn’t_ work on Itanium. X86 binaries use 4K pages. IA64 uses 8K pages. So we couldn’t make the transition work well (don’t ask me why, this is what I was told, and I believe the guy that told me J). However, x64 boxes use 4K pages, just like x86. So making AWE work in that condition wasn’t a problem.

Comments

  • Anonymous
    August 12, 2005
    thanks for the good info Eric - do you know how this relates to the /LARGEADDRESSAWARE switch for compiling 32-bit applications to allow increase of the virtual address space to 4 GB on x64 (and 3GB on x32)? As I understand AWE goes beyond the 4GB virtual address space. So I guess an application would still have to be compiled with /LARGEADDRESSAWARE and then needs to leverage AWE, if 4GB is not enough. Correct?