On Mon, Mar 24, 2008 at 1:09 PM, Mike Gill <[EMAIL PROTECTED]> wrote: > I actually said more than the point to where you cut me off and disagreed > with me.
Um... that doesn't mean what you wrote was completely correct. :) If you want a line-by-line reply: >>It's actually not a processor issue. > > Well, kinda but not really. It's an architecture limit of 32bit. Most any i386-compatible Intel or AMD system made in the past ten years is not, strictly speaking, limited to 32 bits in all aspects of the design. In particular, the processor's address bus is generally 36 bits wide, and PCI supports 64-bit addressing even with a 32-bit bus. >> In Windows XP, Microsoft made the >> decision to just cordon off the upper part of the 32-bit virtual >> address space, reserving it for kernel, device drivers, and hardware >> I/O. Windows Server doesn't have that restriction (neither does >> Linux). > > All 32bit OS's have this limitation, even Windows Server. No, they do not. > Certain versions of Windows Server > 32bit, as well as 32bit Linux and *BSD that support PAE, are able to fully > address and use 4GB (or more) of memory. This isn't just about PAE. In some cases, XP apparently refuses to recognize RAM located below the 4 GiB mark on the physical address bus, but which is not used by other hardware. Exact circumstances and explanations are unclear and/or poorly documented. > Now, while XP and Win2003 STD/SBS/WEB also support PAE, it's for other > purposes > and Microsoft has limited the OS to not be able to address memory outside of > the > 4GB barrier hich it must be able to do if you want to see all 4GB. You need to use PAE if you want to address a full 4 GiB of RAM, since there will always be some space on the physical address bus reserved for hardware I/O regions. However, XP reportedly often recognizes considerably less available RAM than that which is reserved for other hardware . > Only 4GB of address space exists on the 32bit architecture unless your OS > supports more *and* supports PAE. You are ignoring the difference between virtual address space and physical address space. "Virtual memory"[1] means that the addresses the processor is using internally get translated by the memory management unit before being put on the address bus. The OS, device drivers, and application software all work with the virtual address space. OS and device drivers also have to worry about the physical address space. The OS, because it's in charge of managing the mappings between virtual and physical, and drivers, because hardware of course exists on the address bus. [1] Processor terminology. This is not disk swapping/paging, which is also sometimes called "virtual memory". On the i386 platform, the virtual address space is always limited to 4 GiB (32 bits), regardless of PAE or anything else. With i386 PAE, the physical address space and the processor's address bus are expanded beyond 32 bits. PAE gives us 36 address bus lines, and at least that much address space inside the processor (the spec may, in theory, support more than a 36 bit physical address -- I'm not sure, don't feel like looking it up, and with only 36 bus lines, it's academic). This lets the processor address more than 4 GiB worth of hardware -- hardware meaning both regular RAM, and things like I/O regions, ROMs, etc. > Resources for your video card, the BIOS, etc. also need > address space *below* the 4GB barrier. Hardware which properly supports the full PCI spec, and with software which properly handles physical addresses above 4 GiB, can support physical addresses above the 4 GiB mark. Those physical addresses will be mapped into the 4 GiB virtual address space. > PAE enables address space above the 4GB barrier so the memory that > wasn't usable below it can then be made available above it. Correct, but does not explain all reported situations. > Just say'n. Likewise. :) -- Ben ~ Upgrade to Next Generation Antispam/Antivirus with Ninja! ~ ~ <http://www.sunbelt-software.com/SunbeltMessagingNinja.cfm> ~
