• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Why do 64-bit processor mobos register less than 4 GB

TheInternal

Senior member
Jul 7, 2006
447
0
76
Recently, I rebuilt/built a few systems and am in the process of memtesting them all to make sure the sticks and voltage settings are good.

One configuration I'm testing is an Asus A8n32-SLI Deluxe with 4 x 1 GB Corsair XMS at auto SPD timings (3-3-3-8) and 2 x XFX 7950 GT eXtreme 512 MB graphics cards set to SLI mode (1 GB total video RAM).

I understand that 32-bit Windows OSes only have memory addressing for up to 4 GB of RAM. However, considering that the socket 939 motherboard was for a 64 bit processor and can take up to 4 GB of physical RAM, it seems odd to me that the BIOS auto-magically limits the RAM "seen" to 2815 MB (though it states correctly the total installed of 4 GB in parenthesis). I also understand that my 1 GB of video memory is "taking away" from the 4 GB ceiling.

Why does the BIOS do this, despite the fact that I don't even have a hard drive installed? The same thing goes for memtest86. If I manually set it to see all of the physical memory in memtest, it immediately spams errors all over the place, in sequential order of the higher memory blocks.

Is the 4 GB memory limitation built into my bios? If I installed windows 7 64-bit or Ubuntu 64 bit, will my OS be able to utilize all 4 GB, or will my BIOS still be limiting the usable onboard RAM to 2815 MB of RAM?

Moved to appropriate forum - Moderator Rubycon
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
A 64bit processor has more registers and therefore it is able to process more instructions per clock cycle. Technically a 32bit process cannot use more than 2 GB of memory address space, so the computation of large data sets will take longer to process because all the additional data is being paged to the disk or it takes more processing cycle. 32bit Windows on the other hand supports upto 4GB memory but is able to allocate only 2 GB per process, in scenarios like these you can make the process 'large address aware' so it is able to use up to 3.2 gb but it is not recommended to do so. 64bit windows uses WOW64 emulation to run 32bit applications in a virtual 32bit address space., the process dependencies like DLL's are mapped to only this virtual address space.

64bit is capable of addressing up to 16 exobytes but Microsoft uses AMD X86-64 instructions which supports up to 16 terrabytes of memory addressing.

32bit Registers: eax,ebx,ecx,edx,ebp,esp,esi,edi
Additional Registers: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, RFLAGS, RIP
XIMM Registers for SSE instructions: 16 128bit registers in 64bit and 64bit Integers

 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: Aberforth
A 64bit processor has more registers and therefore it is able to process more instructions per clock cycle. Technically a 32bit process cannot use more than 2 GB of memory address space, so the computation of large data sets will take longer to process because all the additional data is being paged to the disk or it takes more processing cycle. 32bit Windows on the other hand supports upto 4GB memory but is able to allocate only 2 GB per process, in scenarios like these you can make the process 'large address aware' so it is able to use up to 3.2 gb but it is not recommended to do so. 64bit windows uses WOW64 emulation to run 32bit applications in a virtual 32bit address space., the process dependencies like DLL's are mapped to only this virtual address space.

64bit is capable of addressing up to 16 exobytes but Microsoft uses AMD X86-64 instructions which supports up to 16 terrabytes of memory addressing.

32bit Registers: eax,ebx,ecx,edx,ebp,esp,esi,edi
Additional Registers: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, RFLAGS, RIP
XIMM Registers for SSE instructions: 16 128bit registers in 64bit and 64bit Integers

Not remotely helpful to the question asked (as well as inaccurate, large address aware apps on 64bit windows get a 4gig user address space. They get 3gig on 32bit windows (not 3.2gig)). Try reading the actual question before simply spamming with a unrelated answer next time.

To the OP, in addition to the CPU, the motherboard must be able to handle 36+ bit addressing. I don't know that board so it's possible it does not (this was common in laptop systems even with 64bit cpu's until about a year ago)

 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: bsobel
Originally posted by: Aberforth
A 64bit processor has more registers and therefore it is able to process more instructions per clock cycle. Technically a 32bit process cannot use more than 2 GB of memory address space, so the computation of large data sets will take longer to process because all the additional data is being paged to the disk or it takes more processing cycle. 32bit Windows on the other hand supports upto 4GB memory but is able to allocate only 2 GB per process, in scenarios like these you can make the process 'large address aware' so it is able to use up to 3.2 gb but it is not recommended to do so. 64bit windows uses WOW64 emulation to run 32bit applications in a virtual 32bit address space., the process dependencies like DLL's are mapped to only this virtual address space.

64bit is capable of addressing up to 16 exobytes but Microsoft uses AMD X86-64 instructions which supports up to 16 terrabytes of memory addressing.

32bit Registers: eax,ebx,ecx,edx,ebp,esp,esi,edi
Additional Registers: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, RFLAGS, RIP
XIMM Registers for SSE instructions: 16 128bit registers in 64bit and 64bit Integers

Try reading the actual question before simply spamming with a unrelated answer next time.

I don't spam, you have a perception problem, pray God.
 

TheInternal

Senior member
Jul 7, 2006
447
0
76
heee. you beat me to the punch, bsobel.

I've no idea how to determine if my board can do 36+ bit addressing.

The ASUS A8N32-SLI Deluxe was a relatively popular ATX nforce 4 SLI x16 based board with a socket 939 for AMD 64 and x2 processors.

So, is everyone with a motherboard over a year old screwed then, when it comes to the 64-bit OS switch? It seems odd to me that with all the marketing and hype about the 64 bit processors coming out that the high end motherboards of the time would be BIOS limited to the 3 GB or so 32 bit OS limitation/memory addressing. I can't help but wonder if there's some magic setting in the BIOS that I'm overlooking or what.

The fact that the board physically accepts and even states on boot that it sees and knows there is 4 GB of physical RAM installed is perhaps what confuses me the most about all this.

What's the point of making a board that can do 4 x 1 GB sticks of RAM if it can't even use it all in a 64 bit OS?

So, once again to rephrase my initial questions: will a board (or at least my board) be able to use all 4 GB of RAM if/when I install Windows 7 64-bit and/or Ubuntu 64 bit, or will my BIOS still limit the amount usable? Why can't I memtest86 all 4 GB at once, rather than the 2815 MB that it's testing now?

I'm going to attempt to install a 64-bit OS regardless when I get my replacement HD in, but I figured I'd raise the question since it seems awfully counter intuitive to make crap loads of motherboards that have 64 bit procs and support for 4 GB system RAM, but can't even use all the physical memory.

For now, it seems I can't test all 4 GB in a 4 GB configuration in memtest86 without some major weirdness (presumably the program bumping into the non-addressed/turned off Gig or so of RAM when forced to test ALL 4 GB).
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
So, is everyone with a motherboard over a year old screwed then

No, that was really just common in notebooks who's chipsets only supported 32bit addressing.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
I don't spam, you have a perception problem, pray God.

Your response was a cut and paste on basic 32/64 questions and in no way addressed the question asked by the OP.

 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: bsobel
I don't spam, you have a perception problem, pray God.

Your response was a cut and paste on basic 32/64 questions and in no way addressed the question asked by the OP.

That's because the OP has no idea about memory addressing. There is no such thing as BIOS limitation, it's just a program that has to be processed by the processor. The 4gb limitation isn't built into BIOS nor addressing limitation of any other components will affect the processor.
 

TheInternal

Senior member
Jul 7, 2006
447
0
76
I dislike arguments of this sort, but yes, I have to agree with bsobel. I understand there's a 32 bit ram allocation/addressing limitation. I already knew that. Your initial post didn't answer my question, but instead gave information that was not relevant to my post in the current format it was given. (my questions were all "yes" and "no"). Though I appreciate the attempts to give me all sorts of fun acronyms that I've no clue about, I don't have a better understanding of my original questions.
 

TheInternal

Senior member
Jul 7, 2006
447
0
76
then why is memtest86 unable to test all 4 GB at once? Why does my BIOS say 2815 MB installed (4 gb physical)? Perhaps a more "simple" approach or analogy would be helpful in explaining this.
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: TheInternal
then why is memtest86 unable to test all 4 GB at once? Why does my BIOS say 2815 MB installed (4 gb physical)? Perhaps a more "simple" approach or analogy would be helpful in explaining this.

That's because the memory controller doesn't support 4gigs. Remember, a 64bit processor has x86-64 instructions, which means it has to be a executable (exe, dll etc) which is 64bit capable.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
The 4gb limitation isn't built into BIOS nor addressing limitation of any other components will affect the processor.

That is incorrect, the system needs to support 36+bit addressing for the full 4gb to be available to him. Plenty of notebook (for example) motherboards had 64bit capable CPU's but only 32bit addressing.

 

TheInternal

Senior member
Jul 7, 2006
447
0
76
ah. so, the memory addressing is software limited rather than hardware limited? If that is indeed the case, then has someone made a memtest application able to test 4GB+ of RAM simultaneously?

on a random side note, YAY! I seem to have gotten the voltage settings and slot locations right on all three of the mobos I'm testing :D one was being finicky, but switching two sticks around seemed to eliminate the errors (for at least 2 passes thus far).
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: TheInternal
ah. so, the memory addressing is software limited rather than hardware limited? If that is indeed the case, then has someone made a memtest application able to test 4GB+ of RAM simultaneously?

memtest is written in 32bit assembly language (prolly MASM)

Edit:

memtest86+ supports 64bit so basically your hardware doesn't support 4gigs.
 

wwswimming

Banned
Jan 21, 2006
3,695
1
0
i checked on a laptop running Vista64. it was advertised as having 4 GB
and in control panel/ "system", it says 4 GB.
 

sjwaste

Diamond Member
Aug 2, 2000
8,757
12
81
It's because a 32 bit OS supports 32 bits of address space, or 4 gigs. You do initially have all 4 gigs, but your video card and other peripherals also have memory addresses. That subtracts from the 4 gigs.

Windows, if it supported PAE properly, would allow each process to address a maximum of 4 gigs each, potentially allowing for more than 4 gigs of total accessible system memory. Intel processors have supported this for a long time, but I think it's a concern with bad Windows drivers so they don't fully support it.

At least, someone gave that explanation somewhere on AT before, and it's the best I could recall.
 

Rubycon

Madame President
Aug 10, 2005
17,768
485
126
OP:

I have a system based on that board. To see all 4GB RAM turn on memory hole in your system BIOS. Without this turned on your system will *not* see 4GB regardless of the operating system installed!
 

Painman

Diamond Member
Feb 27, 2000
3,728
29
86
I was gonna say it too, then I got to the bottom of the thread, and it's already said :D

I had to do the same on my DFI NF4 Ultra-D once when I installed 4GB onto it. Only 3GB would register unless I flipped the mem hole switch.
 

tcsenter

Lifer
Sep 7, 2001
18,937
568
126
Originally posted by: TheInternal
then why is memtest86 unable to test all 4 GB at once? Why does my BIOS say 2815 MB installed (4 gb physical)? Perhaps a more "simple" approach or analogy would be helpful in explaining this.
Because the BIOS cannot know which OS you intend to run, so it must make a default assumption that will always work. Using 32-bit addressing mode will work with both 32-bit and 64-bit OS (or 36-bit PAE), but if the BIOS assumes 64-bit and starts putting things above 4GB boundary, then it breaks compatibility with 32-bit OS that cannot support "real" 36-bit PAE (e.g. Windows XP and Vista). Even many (if not most) 32-bit Linux distros do not install/compile with PAE kernel enabled by default.

You are given a switch to tell the BIOS whether you want to run 32-bit or 64-bit mode. Its called memory remapping, memory hoisting, memory hole remap, or some variation of the theme.

However, the BIOS must properly handle these things, and the ASUS A8N32 Series BIOS isn't too good here. Lots of problem reports when enabling memory remapping on A8N32 Series. That's an ASUS problem which I don't think it intends to fix, given how long the board has been discontinued.