I'm a little late getting back to this, but wanted to address some of the comments. Sorry if this gets kind of long...
1) Dual-channel
If you have 2 x 2GB modules, dual-channel will work fine. What Windows can or can't see of that 4GB does not matter. Dual-channel is a method of data transfer. Windows can't mess with it!
This is a good read about the way dual-channel works:
Nelviticus said:
Dual-channel will beat single-channel.
In most cases, yes. In every case, no. You always have to compare the speed of the memory to the speed of the CPU's FSB. When they match at 667MHz for example, then dual-channel is not needed and will not make any difference.
2) Address Space
Brian Madden's link is a popular one, but it doesn't really go into much detail when you think about it. I don't know why a lot of people reference it to be honest. It talks about how 32-bit is limited to addressing 4GB (something you already knew), mentions the 2GB app & kernel limits (without explaining what the difference is), and brings up "Terminal Server" environments. Hmmm...OK! If you were even concerned about a Terminal Server environment in the first place, I doubt this would be anything new to you or at least I'd hope not!
The term "address space" really needs to be understood first before you can make any good sense of what's going on here. Think of it as being a very detailed table of contents (TOC) that is written before the rest of the book. The
TOC is a list of unassigned pointers. The
book on the other hand represents what is being pointed to, assigned and in use. Both the TOC and the book are authored (managed) by the BIOS.
As soon as you flip the computer switch to "on", the BIOS allocates address space for the hardware. More specifically this is the I/O memory manager called MMIO, whose goal is to set aside enough space for communication. So within an instant, the TOC is written!
Because everything is fighting over the same 4GB of space in the TOC, the maximum amount of addresses reserved for RAM is under 4 gigs (4GB minus the amount used by MMIO). On the "book" side of things, RAM will also be held to that same number. So even before Windows rears its ugly head, the size of available RAM has already been crippled to something like 3.25GB or 3.5GB.
...because the OS will only recognize 3GB to 3.5GB RAM due to the kernel requiring address space?
It's not the kernel that takes up space. You'll find out more about the kernel below.
The correct answer: MMIO
3) Now you're ready for kernel vs. applications
Of the remaining address space that is available to Windows at bootup, half goes to the kernel (kernel space) and the other half goes to apps (user space). Each can have a maximum of 2GB. The kernel represents things like device drivers, thread scheduling, the Windows GUI (Graphical User Interface), and the HAL (Hardware Abstraction Layer). It is NOT just hardware-related! This article explains the difference between kernel and user mode:
The main point to realize after all this is that the answer is not as simple as it may seem!
![[bigcheeks] [bigcheeks] [bigcheeks]](/data/assets/smilies/bigcheeks.gif)
I disagree with comments that say the video card steals a lot of address space. Remember, it's more the interface (AGP or PCI-E) causing space to be reserved for "communication". You could have a 128MB card or a 512MB card in that slot, it doesn't matter. You would probably still see the same amount available to Windows.
As a final word, read multiple articles. Don't let just one or two make you question the reliability of another. Always get a good sample.
~cdogg
"
Insanity: doing the same thing over and over again and expecting different results." - Einstein
[tab][navy]For posting policies, click [/navy]
here.