5
2
Question
I’ve seen some programs (especially RAM-drive software) that purport to being able to access the “unavailable RAM” on 32-bit systems (including XP). I’m wondering if they actually can, and if so, how they manage to do it.
Technical
There are several different way in which the amount of RAM installed in a 32-bit Windows system can be limited (simplified here):
2:2 (2GB) Virtual Address-space
Because of the way that Windows partitions the address space, programs can only allocate a block of memory up to 2GB in size. The
/3GB
switch can mitigate this to some degree by changing the ratio from 2:2 to 3:1.3.xGB - 4GB
Due to hardware address mapping (MMIO), some of the address space will be used up by other devices installed (or built-into) the system. Memory remapping may help with this on systems that support it.
4GB+
Because a 32-bit pointer can only point to up to 232 addresses, it can only point to up to 4GB worth of data. Using PAE mode can help with this by using larger pointers and “pages” (much like the old 16-bit DOS segment:offset memory scheme, which is ironic since protected mode was supposed to be better than real mode).
Microsoft’s Marketing Limits
In addition to mathematical limits of hardware and software, Microsoft also imposes an artificial limit on Windows (*including 64-bit versions) so that they can market different editions for different purposes—and prices.
Specifics and Examples
My question is not about how Windows or regular programs (like Notepad) are affected by any of this. I’m already familiar with these limitations and their typical work-arounds (including the Russian patch that makes the Windows 7 kernel more like the Windows Server 2003 kernel), and I am not interested in rehashing them.
My question is about programs that claim to be able to overcome one or more of these limits.
I think I’ve seen other programs make claims like this, but I’m certain that some RAM-drive software does. Some examples include Raxco, DATARam, and Gavotte. I’ve previously tried a couple of RAM-drive programs that made such claims (I think Gavotte was one of them) but was not able to get any to actually access the extra memory.
Claims
Raxco makes the following claim:
Not only can RamDisk Plus create RAM disks with the hidden RAM above 4GB; it can also use the inaccessible memory between 3.2GB and 4GB.
And later on they mention that:
Keep in mind, this can only be done if Windows reports the hidden RAM above 4GB.
The first statement is good because unlike most of these programs, it is not vague about which limit(s) it overcomes.
However, like most of these programs, it is vague about what is required (hardware- and software-wise) for it to access the extra memory, and says nothing about how it works or what kind of side-effects it has (for example, if it merely adds the /3GB
switch or enables PAE mode, then it is not “overcoming” the problem, it is enabling a special Windows mode—that would affect the OS and all programs—and accommodating that).
Jens’ discussion of the Gavotte RAM-drive seems to indicate that they (Gavotte at least) do in fact work by using PAE. It also mentions the article Geisterspeicher from the German magazine c't as the source of the breakthrough. Unfortunately not only is the article not free, but my German is not yet fluent enough to read a technical article, so I don’t know if it gives details of how it works or its requirements.
Summary
Does anybody know if there is any truth to these programs’ claims? Has anybody actually seen it work? If so, what is required to make them work? Also, how exactly do they pull it off (do they affect the whole system and all programs by enabling /3GB
, PAE, etc. or are they doing something special like using extra-large pointers and accessing hardware directly?
1Can you give examples of programs that claim that? Nonetheless, if they rely whatsoever on the kernel or the BIOS for memory access (which they should) then it should be impossible for them. – Doktoro Reichard – 2013-08-24T20:58:48.317
1PAE is of no use if you only have 4 GB in a 32-bit architecture. It's used to address the memory above that 4 GB "barrier". – ott-- – 2013-08-24T20:59:49.580
Thinking it is interesting to link to your comment on a previous "originating" question, @Synetech Using 32bit application in 64bit
– Doktoro Reichard – 2013-08-24T21:04:24.9973"On my 32-bit system with 4GB, Windows sees only 3.20GB, but so does the BIOS." Then you have a BIOS limitation or setting that's preventing the rest of the memory from being accessed. So the issue is not that you have a 32-bit OS but that you have machine that can't access all of your memory. – David Schwartz – 2013-08-24T21:30:14.150
@DoktoroReichard, Googling
– Synetech – 2013-08-24T22:31:40.677ram drive 4gb
gives a few examples: Gavotte, Dataram, Raxco."On my 32-bit system with 4GB, Windows sees only 3.20GB, but so does the BIOS." Then you have a BIOS limitation or setting that's preventing the rest of the memory from being accessed. So the issue is not that you have a 32-bit OS but that you have machine that can't access all of your memory.
@DavidSchwartz, not exactly, it changes depending on factors like installed cards, AGP aperture size, etc. just like all 32-bit systems with 4GB installed. Are you saying that on some systems, the BIOS shows the full installed size no matter what? I have yet to see or hear of any that do. – Synetech – 2013-08-24T22:36:43.443@ott--, yes, and some programs say they can access memory between 3.xGB - 4GB, others say they can access memory above 4GB. – Synetech – 2013-08-24T22:50:29.100
1@Synetech On most modern BIOSes, the full installed memory is seen by the BIOS, no matter what other hardware you have, and made accessible to any OS that knows how to access it, unless "memory remapping" is disabled in the BIOS. (In that case, memory overlaid by hardware mapping is lost and not accessible by either a 32-bit OS or a 64-bit OS because the BIOS didn't map it.) – David Schwartz – 2013-08-25T00:11:11.630
@DavidSchwartz, define “modern BIOS”. – Synetech – 2013-08-25T03:17:00.483
@Synetech Those released in the last two years for mainstream desktops and laptops. – David Schwartz – 2013-08-25T03:22:10.580
@DavidSchwartz there have been 32-bit BIOSes/motherboards released in the last two years? ಠ_ఠ – Synetech – 2013-08-25T03:25:35.577
@Synetech I'm not really sure what a "32-bit BIOS" would be. (Did I use that term anywhere? I don't see where I did.) There are certainly BIOSes that contain optimizations for working with 32-bit operating systems. For example, many provide the ability to disable memory remapping which makes sense with a 32-bit OS (because you usually get a bit more usable low memory) but usually not with a 64-bit OS (since you get smaller hardware mappings and less accessible memory). – David Schwartz – 2013-08-25T03:26:50.970
@DavidSchwartz, this whole discussion is about 32-bit systems. If you are talking about 64-bit systems, then it is completely irrelevant to this discussion because they don’t limit you to <4GB of RAM. (Unless you are implying that some—presumably high-end, expensive—32-bit motherboards include BIOSes that have 64-bit memory-management functions; though even then, it would be irrelevant to this discussion. – Synetech – 2013-08-25T03:31:21.190
I'm talking about 32-bit systems. You are talking about 32-bit motherboards, which a 32-bit system may or may not have. (A system is a "32-bit system" if some component of that system prevents it from running 64-bit software.) For example, if a system has a motherboard that supports 64-bit CPUs but has a 32-bit CPU, it's a 32-bit system with a 64-bit motherboard. – David Schwartz – 2013-08-25T03:33:13.243
@DavidSchwartz, you said
The issue is not that you have a 32-bit OS but that you have machine that can't access all of your memory.
I never asked about Windows, I already know about its limits, the question is about programs that say they can access extra RAM (3-4GB and/or 4GB+) on systems in which that memory isn’t already available. AndThen you have a BIOS limitation or setting that's preventing the rest of the memory from being accessed.
Yes, part of the question specifically asked about BIOS limits typical of most 32-bit systems made before a few years ago when 64-bit took over. – Synetech – 2013-08-25T04:03:02.737@Synetech Your question isn't about programs the run under Windows? You'd been asked to provide examples of such programs but still haven't. If you have a motherboard limitation, then you have a motherboard limitation -- that's axiomatic. – David Schwartz – 2013-08-25T04:04:20.273
@DavidSchwartz, yes, these programs are Windows program (at least the ones I’ve seen, though I imagine some Linux ones might also do it), but I’m not asking about 32-bit Windows’ RAM limits, I’m asking whether programs that make this specific claim can actually do what they say. And yes, I did provide some examples (though I also provided enough information that a two-second Google search would have also found them.
– Synetech – 2013-08-25T04:07:30.830@hit-and-run-down/close-voter, if you can’t wrap your mind around the (simple) question, then just move along because you obviously can’t answer it. – Synetech – 2013-08-25T04:10:50.780
Windows is capable of using >4gb on 32-bit systems via PAE but due to the driver problems it can cause the "home" editions are hard limited to 4gb – Mokubai – 2013-08-25T06:19:08.560