Why si my memory reduced
i have 4 GB ram on dual core 2.6 GHZ system. I have Nvidia 8500 GT 512 card as well. When i check through xp it show 3.24 GB system ram. where is my rest of ram gone.
Before you get flamed, I'll give you the quick answer:
32-bit operating systems are limited to 4GB... including all the memory used up by your devices. Your 512MB card takes away half a gig, and the other ~.26GB is taken up by your other hardware.
In short: you need a 64-bit OS to use all that RAM.
In a computer all bytes in the memory system need a unique name. This is called an address. For example, if you have 2 GB of main memory, then there are 2147483648 bytes of RAM in your machine, each of which require an address for the operating system to communicate to it. To give these all an address you need 31 bits to do it. Now, if/when you have 32 bits, you can name 4 GB (2 bytes to the 32nd power = 4GB).
This is why the total addressable space available in a 32 bit OS is 4GB – the OS runs out of addresses and cannot communicate/locate any more bytes of memory because of that.
You may think ”Hey, 4GB of address space… 4GB of RAM… What’s the problem” The problem is that memory isn’t the only thing needing an address. If you install a total of 4GB worth of RAM, the system will detect/use/display less than 4GB of total memory because of address space allocation for other critical functions, such as:
- System BIOS (including motherboard, add-on cards, etc..)
- Motherboards resources
- Memory mapped I/O
- Configuration for AGP/PCI-Ex/PCI
- Other memory allocations for PCI devices
Different onboard devices and different add-on cards (devices) will result of different total memory size. e.g. more PCI cards installed will require more memory resources, resulting of less memory free for other uses.
This limitation applies to most chipsets & Windows XP/Vista 32-bit version operating systems. Again, this is a limitation of the Operating System not having enough address space to allocate to the system *and* the RAM. Not allocating address space to devices renders them inoperable. Not allocating addresses to RAM simply results in the unaddressed section not being used in an otherwise fully functional computer. Therefore the OS designers assign RAM last.
We can have long debates about mathematical fundamentals and discussions about why the original Windows designers couldn't allocate the full theoretical max of 36 bits of address space so that users today would be able to use more resource. But at the end of the day, the designers and engineers 'Didn't Then'. So we 'Can't Now'.
If you install a Windows operating system, and if more than 3GB memory is required for your system, then the below conditions must be met:
1. A memory controller which supports memory swap functionality is used. The latest chipsets like Intel 975X, 955X, Nvidia NF4 SLI Intel Edition, Nvidia NF4 SLI X16, AMD K8 and newer architectures can support the memory swap function.
2. Installation of Windows XP Pro X64 Ed. (64-bit), Windows Vista 64, or other OS which can provide more than 4GB worth of address space.
Note: According to the latest Change Log published by Microsoft, Windows Vista 32bit SP1 will display the installed amount of RAM. This is a display change only.
Scotteq said:We can have long debates about mathematical fundamentals and discussions about why the original Windows designers couldn't allocate the full theoretical max of 36 bits of address space so that users today would be able to use more resource. But at the end of the day, the designers and engineers 'Didn't Then'. So we 'Can't Now'.
Before XP/SP2 the PAE kernel allowed for more than 4GB total memory. So they did allow it then.Anonymous said:Hum... You know it's like buying a car and having no idea how much horsepower it has because you never RTFM.
The Manual? I am pretty sure that the Windows-manual just says 4GB RAM.
mikrev007 said:Before XP/SP2 the PAE kernel allowed for more than 4GB total memory. So they did allow it then.
PAE adds an additional table. It's not inherent to the OS. And the reason it was disabled as of XP SP2 was because it requires drivers which are Large_Address_Aware. This requirement is not practical on a consumer machine because it would require the great majority of device makers to rewrite their drivers.
On consumer based OS's , there is limited PAE functionality in the form of DEP (Data Execution Prevention) - which prevents certain types of worms and trojans from running.
If you want to use PAE, you need to use a server based OS: NT, 2003, etc.
...in practice people don't write proper drivers. Enough so that Microsoft specifically call it an issue. This is why PAE is disabled for the purpose of expanding address space on consumer operating systems.
Typically, device drivers must be modified in a number of small ways. Although the actual code changes may be small, they can be difficult. This is because when not using PAE memory addressing, it is possible for a device driver to assume that physical addresses and 32-bit virtual address limits are identical. PAE memory makes this assumption untrue.
Several assumptions and shortcuts that could previously be used safely do not apply. In general, these fall in to three categories:
• Buffer alignment in code that allocates and aligns shared memory buffers must be modified so that it does not ignore the upper 32 bits of the physical address.
• Truncation of addresses information in the many locations this might be kept must be avoided.
• It is necessary to strictly segregate virtual and physical address references so DMA operations do not transfer information to or from random memory locations.
PAE mode can be enabled on Windows XP SP2, Windows Server 2003 SP1 and later versions of Windows to support hardware-enforced DEP. However, many device drivers designed for these systems may not have been tested on system configurations with PAE enabled. In order to limit the impact to device driver compatibility, changes to the hardware abstraction layer (HAL) were made to Windows XP SP2 and Windows Server 2003 SP1 Standard Edition to limit physical address space to 4 GB. Driver developers are encouraged to read about DEP.