4 Gb RAM on Win 32x

Discussion in 'Computer Information' started by Mr Pumpov, May 29, 2014.

  1. Mr Pumpov

    Mr Pumpov Guest


    Using reliable Windows XP 32x one may encounter with the problem that
    maximum RAM which can be used properly is 4Gb. But I heard, that
    applications can use only 2Gb of it and the rest 2 Gb is given for the
    system. Is that right?
    On the microsoft.com I've read that the /3GB parameter enables 4 GT RAM
    Tuning. Therefore, 3 Gb is geting available for applications and one for
    Windows. Could you tell me if it's not bad for the speed of the
    interface? What might become wrong? Is it enought to type in cmd "/3GB
    [ /userva=SizeInMB ]" and push "Enter" to launch that mode?

    Many thanks!
    Mr Pumpov, May 29, 2014
    1. Advertisements

  2. Mr Pumpov

    Paul Guest

    There are two numbers of concern.

    1) The amount of your 4GB of memory which can be used for programs.
    2) The maximum amount of memory any one individual program can use.

    The 2GB/2GB or 3GB/1GB userspace/kernelspace split is a virtual
    addressing issue. It defines the amount of addresses available
    for userspace, which is important if a program branches to a new
    address in memory. A program can only access memory if it
    has an address for it.

    I can paint a typical scenario, for a person with 4GB of memory
    installed. The memory available to programs will be around
    3.2GB (if the user has a 512MB video card). I could start
    one program (like Photoshop), and that program could use
    2GB of memory maximum by itself. (My copy of Photoshop
    actually stops at around 1.8GB.) With my first 2GB maximum
    program in place, I could start a second program which uses 1.2GB

    4GB +------------+ WinXP x32
    | Not |
    | Accessible | <--- addresses used for I/O space
    3.2GB +------------+
    | Second |
    | Program |
    2.0GB +------------+
    | First |
    | Program |
    0GB +------------+

    In my example, in order to use all of the memory, I
    run two programs. Maybe the first program uses its
    maximum of 2GB and stops grabbing more RAM. If I start
    a second program, it can use any of the remaining 1.2GB.
    And that's how I manage to use all of the 3.2GB.

    Now, if I use the /3GB tuning, I can make the picture
    a bit different. First, I need a LargeAddressAware
    program to run as my first program. I have *no*
    programs capable of doing that. You would need a program
    where the LargeAddressAware flag can be set. If you had
    such a program, and sought to fill the entire memory,
    the exercise would look like this.

    4GB +------------+
    | Not |
    | Accessible |
    3.2GB +------------+
    | Second |
    | Program |
    3.0GB +------------+
    | First |
    | Program |
    | (LAA set) |
    0GB +------------+

    It still takes two programs to use all of the memory.
    The first program can use up to 3.0GB. There is still
    0.2GB left. I can start a second program to use the
    remaining 0.2GB.

    If you select the 3GB/1GB userspace/kernelspace split,
    it can cause some problems for the kernel side of things.
    But I do not have any examples for you, of what the symptoms
    might be. Since I was never able to test it :) No
    program that I could enable LAA was available to me.


    Intrinsically, WinXP x32 can access 64GB of memory. Microsoft
    imposes a "memory license" to artificially limit what you can
    do. If there was no memory license, the first picture above
    with the 2GB/2GB split, would have looked like this.
    You could run thirty one programs using 2GB each, and the
    program near the top could have 1.2GB. WinXP x32 SP3 has PAE
    permanently enabled (to support the NX bit), so this map
    would have been available to us, if Microsoft had not
    artificially clamped it at 4GB.

    64GB +---------------+
    | Not |
    | Accessible |
    63.2GB +---------------+
    | Thirty Second |
    | Program |
    2.0GB +---------------+
    | First |
    | Program |
    0GB +---------------+

    A further detail on PAE, is that the "memory license"
    applies to Ring 3 (Userspace). In Ring0 (kernel and drivers),
    it is possible to map things up to 64GB.

    As a result, in my WinXP x32 I have 8GB of RAM sticks
    installed. I can install a copy of DataRAM RAMDisk,
    which installs a driver in Ring0 that uses the top portion
    of memory. The upper portion of memory here is not available
    to programs, but a "driver" can still make usage of the
    RAM. In this case, it makes a virtual disk drive.

    8GB +------------+
    | DataRAM | <--- My 4GB F: drive
    | RAMDISK | Benchmark speed 4GB per second
    | (PAE space)|
    4GB +------------+
    | Not |
    | Accessible |
    3.2GB +------------+
    | Second |
    | Program |
    2.0GB +------------+
    | First |
    | Program |
    0GB +------------+

    As I write this post to you, I am using 8GB of RAM
    on WinXP x32 SP3. But the top portion of memory
    *cannot* be used for programs. But that area can be
    used by drivers. And the DataRAM program uses a driver
    to access the high memory. Since I run the DataRAM program
    in "free" mode, it has a 4GB limitation. If I pay the
    fee for the program, and then install more physical sticks
    of RAM in the computer, I could make my F: drive a total
    of 60GB in size.

    There are also some other intriguing possibilities. I
    can install a pagefile on the F: drive. And page programs
    in and out at high speed. While paging is normally quite
    slow, that option is very fast when done as above.

    With a pagefile on the F: drive, I could start, say,
    three programs of 2GB each. To use a program, might require
    paging out some of the resident contents, to the pagefile
    (which is up in high memory). But this configuration is
    buttery smooth. And I have tested my system, running 5GB
    worth of test programs, and it worked very well. But
    in extended testing, there are some slight stability
    issues with this technique (pagefile on F:). As a result,
    placing the pagefile on F: is "reserved for special occasions"
    on my machine. I do not leave the machine permanently
    configured that way.

    To place the pagefile on F:, requires some planning. To
    avoid issues, you can do one of two things. Turn off
    hibernation (or don't use it). Or, in the DataRAM RAMDisk
    control panel, tell the program to save the contents of F:
    at system shutdown. So far, I've only had success with the former
    suggestion. The system works well, if I avoid Hibernation
    as a shutdown option. Sleep would be OK (as all 8GB of
    RAM is kept powered in Sleep). Shutdown is OK, because
    the DataRAM RAMDISK software product re-creates an empty
    F: drive early in system startup. And the OS seems to be
    able to create a fresh pagefile on F: OK when that happens.
    You can badly break your WinXP installation, if the pagefile
    cannot be created at startup (crash and burn). So careful
    planning is necessary.

    In summary, many amazing things are possible on an x32
    system. But for maximum rock-solid stability, just
    live with the limits the system currently has :)
    For example, would you like it, if you attempted
    to start a program, and no window for the program
    appeared on your screen ? That's one of the side
    effects of running a pagefile on F: RAMDISK. It only
    happens once in a while, but for me, once is too much.
    Just work with the 2GB/2GB split the system gives you
    by default. And don't waste money buying 8GB of RAM
    so you can test the RAMDISK software product. It's
    not worth it. You can test RAMDISK if you want, and
    play with it, without buying anything (set it to use
    a small amount of memory from AWE space below 4GB). When
    you're bored of it, and find certain things don't actually
    work that fast on it, you'll have wasted no money on
    excessive RAM purchases (like I did).

    ("RAMDisk Lite")

    Paul, May 30, 2014
    1. Advertisements

  3. Mr Pumpov

    Mr Pumpov Guest

    Thank you very much, Paul!
    My big problem in its description has some requirements, and one of it is
    that "RAM > 2 Gb". It's a bit odd when program has its 86x and 64x
    versions and demands more than 2 Gb RAM, I guess.

    Now I have RAM of 2 Gb. Will my 32x computer just work better and faster
    if I add 2Gb of RAM to my existing 2Gb, so I'll have 4 Gb?
    Mr Pumpov, May 30, 2014
  4. Mr Pumpov

    Paul Guest

    If your x86 32 bit program is Large Address Aware,
    then it can access 3GB of memory if that memory
    is available to it. My copy of Photoshop, being
    very old, did not have that feature.

    If you use Task Manager in Windows, it keeps track of
    your "peak" usage of virtual memory during the day.
    Using that "peak" value, you can gauge how much
    value you are getting from the memory. Some
    examples for WinXP.

    512MB - sufficient for three applications, email/office/browsing
    1024MB - sufficient to play low end 3D games
    2048MB - sufficient to play mid level games, run a virtual machine
    4096MB - 3.25GB free, run an additional virtual machine perhaps

    In many cases, a user with relatively modest
    needs, sees no benefit from buying the extra
    RAM. If the Task Manager shows "Commit Charge - Peak"
    has a high value, you want to buy enough physical
    RAM to cover that peak. At the current time (since
    I rebooted relatively recently), my peak is only 634MB
    our of 3145MB available, so I'm only using 20%
    of my RAM. But when I run a copy of Windows 7
    in a Virtual Machine (which uses 1.5GB), then
    my peak would rise over 2GB.

    Those are just some illustrations, to show
    the obscure things that need more RAM. Photoshop
    likes RAM, but my old copy isn't really ready to
    use it. Newer versions of Photoshop will be
    much better at it.

    Consider your application mix, before buying
    more RAM. When I'm browsing or writing these
    postings, my peak is going to stay below 1GB.

    People who have 16GB or 32GB in their desktop
    PC, hardly ever get to use it all. No regular
    application really needs that much. It would
    take a lot of virtual machines to use it all up.
    Only something like Verilog chip simulation,
    would enjoy such excesses.

    Paul, May 31, 2014
  5. Mr Pumpov

    Mr Pumpov Guest

    I don't know how to check it. :-(

    Large Address Aware or Awareness?

    Thank you.
    Mr Pumpov, Jun 7, 2014
  6. Mr Pumpov

    Paul Guest

    It's mentioned here, that the pointers for large address
    aware, have some compatibility issues (depending on whether
    the pointers are treated as signed or unsigned numbers).


    The same thing is mentioned in passing, in this extensive


    That author offers a utility (not tested by me).
    Apparently it's a .NET utility, and has a dependency on
    having .NET 3.5 installed.


    Paul, Jun 7, 2014
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.