Patrick Finnegan wrote:
On Monday 01 February 2010, Dave McGuire wrote:
On Feb 1, 2010, at 2:57 AM, Alexander Schreiber
wrote:
As for
total memory available to use for temporary
work space, when I run Ersatz-11 under WXP on a
system with 4 GB of physical memory (I agree that
WXP wastes almost 1 GB of that memory),
Not the fault of Windows. For a 32 bit PC system with 4 GB of
RAM, up to 1 GB of RAM is 'lost' because up to 1 GB of
the address space is used for the PCI address space (i.e.
memory mapped access to peripherals[0]). It can be quite bit
less (such as 500 MB), or up to the full 1 GB - that depends
on the specific hardware.
The MMU can easily get around this. And indeed, I don't have this
problem with any other OS. Does Windows not understand PAE hardware?
Not all PC chipsets support the address lines to do this. My friend's
Core2 Duo box (yes, a 64-bit machine) doesn't support more than 3.25GB
of RAM because of this.
I am confused over how the hardware responds to a physical
address for hardware as opposed to actual memory at the same
physical address? The mother board being used (ASUS P5B)
actually allows 8 GB of memory in total, so PAE hardware must
be present to allow 64 bit Windows to reference the extra 4 GB
of memory.
My less than complete understanding of how an MMU operates
is limited to the PDP-11 where the top 8 KB of memory is lost
to the IOPAGE registers. As far as I can understand, all PAR7
address references are redirected to the IOPAGE registers which
results in the top 8 KB of memory not being able to be used. This
redirection takes place BOTH with and WITHOUT an MM being
present. When there is 4 MB of memory available to the system,
the loss of 8 KB was not considered a major problem and we all
considered ourselves fortunate if we actually had 4 MB of physical
memory in the backplane.
I get the impression that a PC does something very different with
physical memory addresses (out of a 2 * 2 GB sticks for example)
vs something like the video controller which has its own memory.
However, I still get the impression that a 32 bit Windows XP could
set up the necessary pointers to allow the operating system to use
the unused 1 GB of physical memory for some rather useful functions
such as cache for the hard disk drives. Is my impression correct?
And what about Windows 7 running a 64 bit? I realize that this seems
to be a discussion about Windows, but the only goal is to be able to
run a 32 bit application, specifically Ersatz-11, with reasonable,
or at least as close to reasonable as possible, efficiency. If a 64 bit
Windows can still run a 32 bit application, are there any penalties
imposed as a result. I realize that the maximum memory that could
be assigned to a single 32 bit process will almost certainly be 4 GB,
but that is substantially more than the maximum of 2 GB under a 32 bit
version of Windows XP which is running at the moment.
Please pardon my almost total lack of understanding of the Windows
environment, however I shudder at having to learn all of that stuff
just to be able to run Ersatz-11.
Sincerely yours,
Jerome Fine