10-01-2007, 11:04 AM
|
#26 (permalink)
|
|
Deviant Herder
Mercenary
Posts: 528
Shouts: 0
Join Date: Mar 2006
Location: Reno, NV
Age: 62
Thanks: 21
Thanked 53 Times in 30 Posts
|
Quote:
Originally Posted by ChemicalWarrior
32-bit won't let you use it all though. Instead it'll map the second half to the system, basically wasting it.
|
Exactly.
However, what I want to know is why a 32bit O/S won't use 4 gigs. After all,
1111 1111 1111 1111 1111 1111 1111 1111 = FFFF FFFF = 4 294 967 295 = 4 gigs.
I did find the following here
Quote:
|
This paper from HP helps explain it–the platform can theoretically support the full 4GB, but your hardware is going to allocate some of the address space (not the physical RAM) to the PCI bus, the video adapter memory address space, and other resources. 32-bit OSs need to use part of the full 4GB address space to address these resources, subtracting from the maximum memory you have available to the OS and applications:
|
Quote:
The PCI memory addresses starting down from 4 GB are used for things like the BIOS, IO cards, networking, PCI hubs, bus bridges, PCI-Express, and video/graphics cards. The BIOS takes up about 512 KB starting from the very top address. Then each of the other items mentioned are allocated address ranges below the BIOS range. The largest block of addresses is allocated for today’s high performance graphics cards which need addresses for at least the amount of memory on the graphics card. The net result is that a high performance x86-based computer may allocate 512 MB to more than 1 GB for the PCI memory address range before any RAM (physical user memory) addresses are allocated.
|
However, Either I'm missing something or this is bullshit.
When I have 2 gigs of RAM installed the O/S sees/uses all of it. In this case what is it doing with "the BIOS, IO cards, networking, PCI hubs, bus bridges, PCI-Express, and video/graphics cards" when there is only 2gigs of memory installed? Regardless, of the answer to this, why doesn't it do the same thing when 4 gigs are installed?
*******
Ok, those Qs I just asked allowed me to figured it out. The BIOS and vid cards have off-RAM memory of their own. The 32bit O/S has a 4 gig address limit. When there are 2 gigs of RAM installed, it maps the BIOS, vid card memory, etc, to addresses above the 2gigs of RAM. When there are 4gigs of RAM installed, it still addresses the BIOS and vid card memory the same way as before. Therefore, if the vid card memory is 512MB (0.5GB), then the O/S assigns addresses to it before assigning addresses to the RAM. This only leaves 3.5GB of addresses for the RAM. The BIOS and other goodies are likewise subtracted out of the addresses available to assign to the RAM. Thus it can recognize the 4GB RAM is there, but there are not enough available addresses to get to all of it...thus wasting it, as Chem said.
My pair of 8800GTX video cards each have 768MB of RAM = 1536MB. Thus, just because of the vid cards, the 32bit O/Ss will not be able to address more than 4096-1536=2560MB of RAM when 4GB are installed. In fact, XP and Vista32 only "see" 2303MB on my system.
__________________
In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move. --Douglas Adams
Last edited by {DvT}JonahHex : 10-01-2007 at 11:13 AM.
|
|
|