- Feb 27, 2004
- 3,524
- 0
- 0
I was told by someone that you must use 8GB of RAM to full use 64bit memory addressing. I have never heard of this and I can't find any information on it.
Having said this, I think if you have 4GB RAM (as most people seem to have), then 32bit Vista/XP will be fine too. It's just that Windows XP/Vista will use PAE (physical address extension) to access all 4GB RAM.
Windows will use a software extension layer to access all your 4GB, and some purist will argue that it will slow your system down...
But XP/Vista 32bit WILL be able to use all 4GB RAM though.
But the side-effect of using a 64bit Vista is that 32bit programs can actually run SLOWER on a 64bit machine.
2. if I have more than 4GB RAM, for example, 8GB RAM, then should I move to 64bit Vista? Well here you probably will want to move to 64bit OS. But I would only move to 64bit if I'm running programs that can take advantage of the extra RAM and the 64bit architecture of Windows. There isn't much "home programs" right now that can truely take advantage of 8GB/64bit OS combo. I can only think of maybe Photoshop. Programs that do take advantage of a 64bit OS are mostly server programs and scientific computational and imaging softwares.
This was something that was brought up at work. Someone said that when we go to 64bit Server 2003 we would have to have at least 8GB in our machines in order to to fully use 64bit memory addressing. I had never heard this so I was trying to get confirmation before I order RAM that we don't need.
Originally posted by: Nothinman
If you didn't need some of that physical address space for devices sure they would but you do so they won't. 32-bit XP/Vista won't touch a physical memory address >4G and since MMIO addresses for hardware allocated from the 4G mark down you get whatever is left from 4G minus the hardware's requirements.
If your BIOS supports remapping those lost addresses then you can enable that and use the memory in another OS like 64-bit Windows, Linux, FreeBSD, etc but 32-bit Windows won't ever touch them.
In an earlier post, msemack mentioned PAE (Physical Address Extensions). It's worth saying that all Intel CPUs since the Pentium II and I think AMDs since the K6 support PAE. On the Intel family, this expands the CPU's physical address bus to 36 bits, giving a potential 64GB of physical address space.
However, it's not enough for the CPU to support it. The chipset has to support it also. Few - in fact, I think no - desktop/workstation chipsets do. Expensive server chipsets typically do.
For example, the venerable 440BX chipset's datasheet says this:
"The Pentium Pro processor family supports addressing of memory ranges larger than 4 GB. The 82443BX Host Bridge claims any access over 4 GB by terminating transaction (without forwarding it to PCI or AGP). Writes are terminated simply by dropping the data and for reads the 82443BX returns all zeros on the host bus."
The same is true for the 850E chipset in my home machine and the 925X in my new work system.
Enabling PAE has another side effect. Device drivers are, or may be, presented with 64-bit physical addresses. Many are not written to cope with this possibility and have problems. This had an interesting effect on XP SP2. The Data Execution Prevention [DEP] feature requires PAE to be enabled since the NX bit AMD added is bit 63 of a PAE-format page table entry [PTE]. There were no spare reserved bits in the 32-bit non-PAE PTE. To enable hardware DEP, the processor must run in PAE mode.
Incidentally, the use of bit 63 will prevent the x64 architecture from ever addressing a full 64-bits of address space (16 Exabytes or if you prefer the IEC's terminology for distinguishing binary from decimal units, 16 Exbibytes [yuch]). That's obviously not an issue at present! Indeed, in AMD's documentation bits 52 - 62 in the PTE are reserved for future use, limiting current implementations to 4 Petabytes (=4096 Terabytes).
To salvage the situation and only present 32-bit physical addresses to drivers and hardware, XP SP2 defines the /NoExecute switch. Only if both /NoExecute and /PAE are specified does it enable 64-bit physical addressing.
I thought I read somewhere a long time ago that stated that with 32bit Windows, with PAE, with a BIOS capable of addressing 4GB RAM, and with compatible perripheral devices, then 32bit Windows will see all 4GB or RAM, and it does this by kicking the device drivers into the region above 4GB?
Another thing, i thougght that with 32bit Vista SP1, you can now offically use all 4GB RAM (on top of all the peripheral devices)? I'm running 32bit Vista SP1 with 4GB RAM installed, and my Device Manager shows that I have 4.0 GB RAM (not 3.25GB). What does this mean? Does this mean that Vista 32bit SP1 can see and use 4GB? or is Vista just showing the 4GB but in reality not able to use all 4GB RAM?
My understanding this is that if a processor supports PAE (above 32bit area), and if the BIOS and OS support PAE too, then the OS will be able use the PAE space located above the 32bit-address limitation and the OS will be able to map any availabe RAM into this PAE space and use all 4GB or RAM?
Otherwise, I don't quite understand why MS would develop PAE feature in a 32bit OS if the PAE feature does not enable the 32bit OS the ability to use 4GB RAM or more. Just what is the point of having PAE in 32bit Windows?
Does someone know of a site where they review 32bit apps on 32bit and 64bit versions of Windows? I am curious to see how much of an improvement there is. I did see such a review, and as I recall, the improvement was not much, but I forget not. But would like to see a newer review though.
Originally posted by: Nothinman
Does someone know of a site where they review 32bit apps on 32bit and 64bit versions of Windows? I am curious to see how much of an improvement there is. I did see such a review, and as I recall, the improvement was not much, but I forget not. But would like to see a newer review though.
The difference should be minimal in just about all cases because the 32-bit process is running exactly as it was on the 32-bit OS.
Originally posted by: shangshang
Thanks Nothinman for the explanations. Taskmanger is showing I'm only using 3.3GB RAM. So looks like I'm loving .7GB of addressing space to the devices.
I guess I can live with it for now. I have Vista 64bit but I'm hesitant to intall it because I fear that it might give me issue with some of my 32bit apps and games. Crap why the hell is MS limiting this!
Originally posted by: taltamir
EDIT: I see now what you are talking about.. the PAE... AFAIK there are some serious issues with PAE. if applications are not specifically written for it, it can mess up your system. So it makes no sense to include it just so people can get extra 0.7gb of ram When they can just install 64bit version of the OS instead...
Also last I checked, not creating something isn't artifically limiting. They did not program an ANTI PAE system into windows... they simple did not bother to program PAE into 32bit vista. and they shouldn't have either, it is too volatile.
Wrong. AMD64 (x86-64 as it is now known since intel integrated it as well) calls for a variety of architectural changes and additions, such as extra registers, that are not available when running in the legacy 32bit mode. Thus in 32bit mode parts of your CPU are not accessible.
Depending on the application that can result in either 0% increase, or make the application several times faster.
EDIT: I see now what you are talking about.. the PAE... AFAIK there are some serious issues with PAE. if applications are not specifically written for it, it can mess up your system. So it makes no sense to include it just so people can get extra 0.7gb of ram When they can just install 64bit version of the OS instead...
Also last I checked, not creating something isn't artifically limiting. They did not program an ANTI PAE system into windows... they simple did not bother to program PAE into 32bit vista. and they shouldn't have either, it is too volatile.
My mistake, in that case we are in agreement, we just miscommunicated.Wrong. AMD64 (x86-64 as it is now known since intel integrated it as well) calls for a variety of architectural changes and additions, such as extra registers, that are not available when running in the legacy 32bit mode. Thus in 32bit mode parts of your CPU are not accessible.
Actually I'm right, if you read what I originally said. Running a 32-bit binary on a 64-bit OS is exactly the same as running that same 32-bit binary on a 32-bit OS. If the OS is 32-bit then the CPU isn't running in long mode so those extra GPRs aren't being used at all anyway. If the OS is 64-bit the GPRs will be used by the OS and 64-bit binaries but 32-bit binaries won't even know they're there.
Depending on the application that can result in either 0% increase, or make the application several times faster.
Only if you're comparing 32-bit builds vs 64-bit builds which I wasn't.
[/quote]EDIT: I see now what you are talking about.. the PAE... AFAIK there are some serious issues with PAE. if applications are not specifically written for it, it can mess up your system. So it makes no sense to include it just so people can get extra 0.7gb of ram When they can just install 64bit version of the OS instead...
For userland applications there are no issues with PAE. PAE only affects software in the kernel. There is a userland API called AWE that lets processes shuffle around memory "windows" to handle more than 32-bits worth of VM but very few apps use it so it's mostly irrelevant.
Also last I checked, not creating something isn't artifically limiting. They did not program an ANTI PAE system into windows... they simple did not bother to program PAE into 32bit vista. and they shouldn't have either, it is too volatile.
Then check again, PAE isn't volatile at all and actually they did program "ANTI PAE". They included PAE for DEP and in XP up to SP1 you could use all 4G of memory (if what I've read is accurate) but with SP2 they restricted the PAE support to only handle DEP and won't let the kernel touch any physical memory about the 4G mark.
So you are saying... only badly written drivers would trigger that instability? Do you have any idea how many badly written drivers are out there?
People bitch at MICROSOFT when their computer crashes, microsoft has been increasing their stability by making it difficult for software to run in admin mode and making it as difficult as possible for drivers and the like to do something bad. This is overall a good thing.
Originally posted by: taltamir
And if I am not mistaken, for the hardcore like you there is an option to get the PAE working again... (first result in google for vista 32 PAE)
http://www.thegeeksweek.com/bl...bit-windows-vista.html
yes it is. It prevents my computer from blue screening. it is an "extra service" microsoft is rendering. It not only keeps its own software clean, it also keeps others in line.
I was really pissed at them for it at first, but in the long run that is a good thing.
mmm... I remember back in the day the game "Spellforce the order of dawn" will randomly try to address (once an hour or so) something above 4GB... that was back in the day where 1GB of ram was normal. The workaround I found was to increase the pagefile to 4GB
That will prevent the blue screen. If the kernel automatically ignores such a command, do you think it would have prevented the blue screen? if so, it would not be limited to faulty drivers. Since obviously a game can trigger that as well.
I have been using xp64bit for a long time now, and then vista 64bit as well... its been years since I used a non 64bit OS, and I see no reason to ever go back. So really, it is perfectly reasonable of MS to perform such "crippling" in 32bit OS to increase stability.
it doesn't affect me by choice. why do you CHOOSE to run 32bit windows instead of 64bit?