Daniel Smedegaard Buus wrote:
> You know what, never mind 
>
> I found other users with the same hardware and software combo, and it seems
> I can expect only about 2½ GB of mem available.
> But then again, as any one 32-bit app running on Windows will be able to
> allocate 2GB of memory, this seems pretty much acceptable. And, we're talking
> old games here, so they probably don't know what to do with 2GB of mem anyway,
> LOL 
>
> Cheers,
> Daniel
The BIOS does the initial memory map.
Space has to be allocated in the address map, for devices
sitting on system busses. That is necessary, so the OS can
load stuff up, initialize registers and the like.
If a graphics card has its own memory chips, those are mapped
into the address space. So the graphics memory chips "subtract" from
the space available to map system memory.
In the case of something like HD3000, it is probably using
system memory (so-called UMA or unified memory access). The
options there are for static allocation or dynamic allocation,
or for both.
A typical static allocation situation, would be for things
like a frame buffer, that are always in usage. You could safely
design hardware to use a static (but programmable) allocation, without
really wasting the memory in a significant way.
A dynamic allocation situation, would be when a 3D game starts.
When the game ends, that memory can be returned to the OS and
used for regular programs. For example, if a game has a lot of
3D textures, loaded at the start of a level, a dynamic allocation
can handle that nicely. When the game exits, all the dynamic memory
is returned to the system pool.
If there was a static allocation, there might be a setting
in the BIOS to program it. And in terms of "doing the 4GB math",
that setting would tend to subtract from the available space
(because it's actually using system memory).
It doesn't have to drop to the 2.5GB level, unless the graphics
subsystem has its own memory chips. I'd expect to see around 3GB,
if this was just an integrated graphics situation. The usable
memory would drop during a 3D game, but that isn't the same thing,
because that memory usage is like any other program needing memory.
*******
Also, just for the record, it's possible for a 32 bit OS, to have
more than 4GB in usage at a time. This is not as iron-clad a limit,
as it might seem. In WinXP, the justification for the limitations,
is that "PCI card drives might not handle addresses above 4GB well".
That is the justification for the limitation. The 4GB limit, sort
of applies to the memory that programs can use. But it doesn't
seem to apply, to driver access to memory. There is a company that
makes a "RAM Disk" product, where you can have a virtual drive in
the system hosted in system RAM. That kind of drive is very fast.
Here is a benchmark, when I tested on my current computer.
http://img196.imageshack.us/img196/8...am2gbabove.gif
Now, when I prepared that screenshot, I had 6GB of physical RAM installed
on WinXP 32 bit version. The OS reported "3.0GB free" or so. The
RAMDisk program (which operates in driver space) had an allocation
of 2GB. That's a total of 5GB on a 32 bit OS.
In principle, it could actually have grabbed 3GB for the RAMDisk (using
all of it), but for some reason, the RAMDisk program chose not to use
the remaining (perfectly accessible) gigabyte of memory. I sent an email
to the company, asking about this, but they never respond to emails.
When that screenshot was taken, my "32 bit OS" was using a total of 5GB,
3GB for programs and 2GB for RAMDisk storage. The limitation in fact,
would be the limitations of PAE addressing mode (which in SP3, is turned
on permanently, as a means of supporting NX or No-Execute protection for
RAM). And PAE addressing is at least 36 bits on Intel (64GB). So in
theory, with the help of that RAMDisk program, I might have even managed
a larger RAMDisk.
Just for chuckles (because I like doing stuff like this), I also
placed the pagefile on that RAMDisk. Now, normally, with the 3GB of
usable memory, if I'm starting normal applications, the paging out
that starts to happen around 2.5GB of usage, makes things a little
less smooth. It's annoying enough, that I seldom attempt to use
all 3GB, because the system just doesn't handle it well. When the
2GB Ramdisk is used for pagefile, the system sails through that region
with ease. I can even have more than 3GB in usage, and the paging
(being done at ~4GB/sec) is transparent. Paging via my crappy
hard drive, is no where near that level of speed.
The only problem with that concept, and the multi-day test I did,
is the RAMdisk software is not bug free. The software did a lot
better than the last time I tested it, but it was causing issues,
and I had to take that configuration apart. Now, I'm back to
3GB usable, and paging to regular hard drive space again.
For more info on the subject, to give you some idea what's really
going on, try this article. It doesn't change anything, but it'll
give you a slightly different perspective on the topic.
http://www.geoffchappell.com/viewer....nse/memory.htm
Paul