- Does the addressable physical memory range depend on which slots are occupied by the memory?
- Posted by Lighter on September 16th, 2006
Does the addressable physical memory range depend on which slots are
occupied by the memory?
Say, I have a 32-bit CPU and 128M RAM, and the motherboard has 4 slots
for plugging the RAM in.
My question is if the following statement is correct:
No matter which of the 4 slots is occupied by the RAM, CPU can always
address the physical address range from 0-128M. In other words, when
CPU reads/writes data from/to the address 0x000000FF, it will always
succeed, no matter which of the 4 slots is occupied by the RAM.
Is this correct? Any help will be appreciated.
- Posted by Stephan Wolf [MVP] on September 16th, 2006
Yes, in the IBM compatible personal computer the physical RAM addresses
always begin at zero and end at the address that equals the amount of
physical memory installed (minus one).
Sure there are memory regions that are used for special purposes, e.g.
the BIOS ROM extension area, the extension ROM area, and the display
memory area. This is due to historical reasons and all in the area
between 640 KB and 1 MB. Note that the physical RAM is still present at
these addresses, but the PC can be configured to allow access to
extension cards in this memory area (ISA, MCA, EISA, PCI). See your
system BIOS setup for some hints.
The processor's memory management unit (MMU) is used to map virtual to
physical addresses. That is, software can use completely different
address range(s). DMA transfers, however, are always done using
physical addresses. But these vary depending on the bus on which the
addresses reside.
There is probably much more to say but wrt to your question, but the
answer is no, phsyical memory addresses do not depend on which RAM
slots are occupied.
For more details see e.g.:
"Sizing Memory in Protected Mode"
By Robert R. Collins
http://www.x86.org/articles/memsize/memsizing.htm
[Lots of good articles there...]
Stephan
---
Lighter wrote:
- Posted by Maxim S. Shatskih on September 16th, 2006
Most motherboards require you to fill slot group "A" first, and only fill
the slot group "B" if the "A" slots are filled. The configuration with "B"
slots filled and "A" not filled will usually fail completely, even fail before
BIOS POST.
Usually, you need to fill both slots in the group - at least it was so on
some Pentium generations.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
"Lighter" <cqulyx@gmail.com> wrote in message
news:1158408534.976706.208400@b28g2000cwb.googlegr oups.com...
- Posted by Maxim S. Shatskih on September 16th, 2006
If the machine supports >4GB of RAM - then usually the chipset makes a hole
just below 4GB to map the PCI BARs. The rest of the RAM is mapped above 4GB.
So, with >4GB, the RAM is usually physically discontiguous.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
- Posted by Calvin Guan on September 18th, 2006
As long as a) Physical memory size + PCI MMIO+ PCI MSI Msg resources >4G and
b) "Memory Hole Remapping" is enabled in BIOS, then we will have physical
discontigous memory. I learned this from working on some chipsets that
doesn't handle DMA access from/to the "remapped hole" region on Vista/LH.
--
Calvin Guan (DDK MVP)
Sr. Staff Engineer
NetXtreme Vista/Longhorn Server Miniport
Broadcom Corporation
Connecting Everything(r)
"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:OXU1Fpb2GHA.4312@TK2MSFTNGP02.phx.gbl...