Windows XP Ram Limit - Page 2 - Overclock.net - An Overclocking Community

Forum Jump: 

Windows XP Ram Limit

Reply
 
Thread Tools
post #11 of 101 (permalink) Old 03-28-2009, 11:38 PM
New to Overclock.net
 
Cmespeak's Avatar
 
Join Date: Mar 2009
Posts: 1
Rep: 4 (Unique: 4)
Not sure if anyone is still interested but here it goes, all 32 bit CPU's internal architecture only allow them to access 4Gb of ram,because your CPU only works with 1's and 0's (binary) so 32 bit is a maximum of 32 1's or 0's next to each other so there is a physical constraint since the addresses are limited. So the 64 bit CPU has twice as many bits to use for memory allocations. But this is just on the CPU side Motherboard specs, and Operating systems also have to be taken into account, btw 32 bit CPU's have supported 4Gb of ram all the way since the 80386, it was only as a result of the Motherboards and OS's that there was a limit on the amount of RAM (and the trivial fact that you couldn't get anyone, apart from a few propeller heads, who knew how big 4Gb was let alone get that amount of Ram, but why would you, in those days I didn't know how on earth I would EVER be able to fill up my brand new 100Mb hard drive)
Cmespeak is offline  
Sponsored Links
Advertisement
 
post #12 of 101 (permalink) Old 03-28-2009, 11:44 PM
New to Overclock.net
 
BADFASTBUSA's Avatar
 
Join Date: May 2008
Location: Atoka Oklahoma USA
Posts: 3,027
Rep: 266 (Unique: 199)
Quote:
Originally Posted by Cmespeak View Post
Not sure if anyone is still interested but here it goes, all 32 bit CPU's internal architecture only allow them to access 4Gb of ram,because your CPU only works with 1's and 0's (binary) so 32 bit is a maximum of 32 1's or 0's next to each other so there is a physical constraint since the addresses are limited. So the 64 bit CPU has twice as many bits to use for memory allocations. But this is just on the CPU side Motherboard specs, and Operating systems also have to be taken into account, btw 32 bit CPU's have supported 4Gb of ram all the way since the 80386, it was only as a result of the Motherboards and OS's that there was a limit on the amount of RAM (and the trivial fact that you couldn't get anyone, apart from a few propeller heads, who knew how big 4Gb was let alone get that amount of Ram, but why would you, in those days I didn't know how on earth I would EVER be able to fill up my brand new 100Mb hard drive)
Great first post... rep+ for your first post, i wish everyones first post was like this LOL
BADFASTBUSA is offline  
post #13 of 101 (permalink) Old 03-28-2009, 11:48 PM
New to Overclock.net
 
doat's Avatar
 
Join Date: Oct 2008
Location: Houston, TX
Posts: 3,801
Rep: 155 (Unique: 116)
windows xp uses 3.25gb of ram, its something to do with the architecture 64 bit can handle 4gb+
doat is offline  
Sponsored Links
Advertisement
 
post #14 of 101 (permalink) Old 03-28-2009, 11:50 PM
 
Join Date: Dec 2008
Location: Rogers Park, 60626
Posts: 3,467
Quote:
Originally Posted by Cmespeak View Post
Not sure if anyone is still interested but here it goes, all 32 bit CPU's internal architecture only allow them to access 4Gb of ram,because your CPU only works with 1's and 0's (binary) so 32 bit is a maximum of 32 1's or 0's next to each other so there is a physical constraint since the addresses are limited. So the 64 bit CPU has twice as many bits to use for memory allocations. But this is just on the CPU side Motherboard specs, and Operating systems also have to be taken into account, btw 32 bit CPU's have supported 4Gb of ram all the way since the 80386, it was only as a result of the Motherboards and OS's that there was a limit on the amount of RAM (and the trivial fact that you couldn't get anyone, apart from a few propeller heads, who knew how big 4Gb was let alone get that amount of Ram, but why would you, in those days I didn't know how on earth I would EVER be able to fill up my brand new 100Mb hard drive)
Welcome to the forum nice to have you here.

You are wrong.

Let me start with the obvious. 2^64 is not twice as much as 2^32? It is maybe beyond an order of a magnitude? 4GB is 2^32 and is 4GB of addressable memory 2^64 is 17.2 billion GB. More than RAM must use so you will never get 4GB's of RAM with a 32bit OS. Consider?

And as I said welcome.
Asus Mobile is offline  
post #15 of 101 (permalink) Old 03-28-2009, 11:54 PM
 
Join Date: Jan 2009
Location: IGN IGN
Posts: 11,112
yeah it is most CERTAINLY double that. otherwise we would then be stuck with an 8GB limit for x64 systems..
T3h_Ch33z_Muncha is offline  
post #16 of 101 (permalink) Old 03-29-2009, 03:17 PM
New to Overclock.net
 
blupupher's Avatar
 
Join Date: Oct 2006
Location: Katy, Republic of Texas
Posts: 10,459
Rep: 830 (Unique: 654)
Wow, hello 2006.

Why I fold:

sad-smiley-002.gifLost: Father: Liver Cancer '08, Aunt: Ovarian Cancer '96, Aunt: Brain Cancer, '13, Grandmother: Bone Cancer '99,
thumb.gifWinning; Brother-in-Law: Non-Hodgkins Lymphoma - 11 yrs; Brother-in-Law: Pancreatic Cancer - 4 yrs; Mother-in-Law: Breast cancer - 22 years, Ureter Cancer 1 year!


blupupher is offline  
post #17 of 101 (permalink) Old 06-29-2013, 10:04 AM
New to Overclock.net
 
kondra's Avatar
 
Join Date: Mar 2012
Posts: 24
Rep: 8 (Unique: 3)
To end all the speculation about a Windows XP Professional supporting more than 4 GB of physical RAM
I patched the kernel. For the test I used the kernel file ntkrpamp.exe from XP SP1, which is the multi
processor kernel with enabled physical address extension. Pay attention that we can not use XP SP2 or
SP3, because Microsoft removed the RAM support since SP2.

The fastest method to find the RAM patch location inside an unknown kernel executable is by setting a
breakpoint at the function ExVerifySuite with the following WinDbg command:
bp nt!ExVerifySuite

We run the OS and after the breakpoint is hit press Shift + F11 to step out of the function ExVerifySuite.
Right at this code location has to be a check for the suite type and some typical RAM size values like:
- 0x80000 for 2GB RAM
- 0x100000 for 4GB RAM
- 0x200000 for 8GB RAM
- 0x400000 for 16GB RAM
- 0x800000 for 32GB RAM
- 0x1000000 for 64GB RAM
- 0x2000000 for 128GB RAM
We only have to patch the jumps accordingly, so the biggest possible value is used.

For XP SP1 we patch the following offset in ntkrpamp.exe which enables all available RAM up to 64 GB:
- WinDbg "bp nt!MiPagesInLoaderBlock+0x48" from
80684d66 7515 jne nt!MiPagesInLoaderBlock+0x5f (80684d7d)
to
80684d66 90 nop
80684d67 90 nop
- IDA from
INIT:005B0D66 jnz short loc_5B0D7D
to
INIT:005B0D66 nop
INIT:005B0D67 nop
- hex editor offset 0x197D66 in the kernel file ntkrpamp.exe from
75 15
to
90 90

After ntkrpamp.exe is changed we have to do the following to replace the original kernel file:
- correct the checksum of ntkrpamp.exe with LordPE
- add /PAE switch to boot.ini
Do not omit this step otherwise we can not address the full RAM!
- replace the original kernel file by the patched one:
- rename the file "C:\Windows\Driver Cache\i386\driver.cab" to "driver.cab_"
- rename the file "C:\Windows\Driver Cache\i386\sp1.cab" to "sp1.cab_"
- rename the file "C:\Windows\system32\ntkrnlpa.exe" to "ntkrnlpa.exe_"
- cancel the "Windows File Protection" message box and choose "Yes"
- copy the patched file ntkrpamp.exe to "C:\Windows\system32\ntkrnlpa.exe"
- cancel the "Windows File Protection" message box and choose "Yes"
- reboot
kondra is offline  
post #18 of 101 (permalink) Old 06-29-2013, 04:05 PM
New to Overclock.net
 
Join Date: Feb 2013
Posts: 784
Rep: 130 (Unique: 88)
Thanks Kondra, very interesting stuff thumb.gif .

So if I follow you we basically need to get the XP SP1 ntkrpamp.exe kernel, modify it 'removing the limiter', then rename as ntkrnlpa.exe and paste in place of original ntkrnlpa.exe kernel (plus extra touches).

When you say:
Quote:
... Pay attention that we can not use XP SP2 or SP3, because Microsoft removed the RAM support since SP2 ...

You mean that only the XP SP1's ntkrpamp.exe kernel is suitable for modification, or you mean that this procedure will not work at all for XP SP3?

·
TELVM is offline  
post #19 of 101 (permalink) Old 06-30-2013, 12:45 AM
New to Overclock.net
 
kondra's Avatar
 
Join Date: Mar 2012
Posts: 24
Rep: 8 (Unique: 3)
It would also be possible to modify the SP2 and SP3 ntkrpamp.exe, but it would have no effect at all. It seems Microsoft has changed some stuff like the HAL starting with SP2.

You can find a very good explanation of all the stuff here:
http://www.geoffchappell.com/notes/windows/license/memory.htm
http://www.unawave.de/windows-7-tipps/32-bit-ram-sperre.html
http://support.microsoft.com/kb/888137
Quote:
To reduce driver compatibility issues, Windows Vista and Windows XP Service Pack 2 or a later version include hardware abstraction layer (HAL) changes that mimic the 32-bit HAL DMA behavior. The modified HAL grants unlimited map registers when the computer is running in PAE mode. Additionally, the kernel memory manager ignores any physical address that is more than 4 GB. Any system RAM that is more than the 4 GB barrier would be made unaddressable by Windows and be unusable in the system. By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with an address that is more than the 4 GB barrier. Because these changes remove the need to double-buffer the transactions, they avoid a class of bugs in some drivers that is related to the correct implementation of double buffering support.
kondra is offline  
post #20 of 101 (permalink) Old 06-30-2013, 01:24 AM
New to Overclock.net
 
Join Date: Feb 2013
Posts: 784
Rep: 130 (Unique: 88)
Quote:
Originally Posted by kondra View Post

It would also be possible to modify the SP2 and SP3 ntkrpamp.exe, but it would have no effect at all. It seems Microsoft has changed some stuff like the HAL starting with SP2.

You can find a very good explanation of all the stuff here:
http://www.geoffchappell.com/notes/windows/license/memory.htm
http://www.unawave.de/windows-7-tipps/32-bit-ram-sperre.html
http://support.microsoft.com/kb/888137

Yeah I read the sites you link long ago and know about the HAL 'problem' in XP SP3, that's why I asked for clarification, thanks Kondra.

Removing the limiter in Vista & Se7en is piece of cake, but XP SP3 is tougher.


From the comments to this article seems they managed some success by transplanting halmacpi.dll from XP SP1:

Quote:
Originally Posted by daNIL 
Hi quay,

Are you sure you’re using the correct hal.dll? There are many versions of them, to detect the correct one you need to open your original hal.dll in explorer (rightclick-properties) and look for the original name.

In the Version tab, look for the original file name property. For example, on my PC it’s halmacpi.dll. So, you need to extract halmacpi.dll from XP SP1 distributive to system32 folder, and modify/add the boot.ini menu to include it like this

multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows XP Professional patched halsp1″ /pae /fastdetect /kernel=ntkrnlp2.exe /hal=halmacpi.dll

Not sure which hal.dll you’re using, but it works ok on my pc, usb drives and DMA are working.

Do not try Server 2003 SP2 halls, as they are not binary-compatible with XP (different set of imported/exported functions)

Quote:
Originally Posted by ouay 
whooooooaaaa it works now!
I’ve never seen so fast windows in my life! (Since old days of XP SP1 maybe).

Awesome. Thank you for your support! WD!

·
TELVM is offline  
Reply

Quick Reply
Message:
Options

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off