March 8, 2007
Due to fallout from a recent computer catastrophe at work, I had the opportunity to salvage 2 GB of memory. I installed the memory in my work box, which brings it up to 4 gigabytes of RAM-- 4,096 megabytes in total. But that's not what I saw in System Information:
Only 3,454 megabytes. Dude, where's my 4 gigabytes of RAM?
The screenshot itself provides a fairly obvious hint why this is happening: 32-bit Operating System. In any 32-bit operating system, the virtual address space is limited, by definition, to the size of a 32-bit value:
232 = 4,294,967,296
4,294,967,296 / (1,024 x 1,024) = 4,096
As far as 32-bit Vista is concerned, the world ends at 4,096 megabytes. That's it. That's all there is. No ms.
Addressing more than 4 GB of memory is possible in a 32-bit operating system, but it takes nasty hardware hacks like 36-bit PAE extensions in the CPU, together with nasty software hacks like the AWE API. Unless the application is specifically coded to be take advantage of these hacks, it's confined to 4 GB. Well, actually, it's stuck with even less-- 2 GB or 3 GB of virtual address space, at least on Windows.
OK, so we're limited to 4,096 megabytes of virtual address space on a 32-bit operating system. Could be worse.* We could be back in 16-bit land, where the world ended at 64 kilobytes. Brr. I'm getting the shakes just thinking about segments, and pointers of the near and far variety. Let us never speak of this again.
But back to our mystery. Where, exactly, did the other 642 megabytes of my memory go? Raymond Chen provides this clue:
In the absence of the /PAE switch, the Windows memory manager is limited to a 4 GB physical address space. Most of that address space is filled with RAM, but not all of it. Memory-mapped devices (such as your video card) will use some of that physical address space, as will the BIOS ROMs. After all the non-memory devices have had their say, there will be less than 4GB of address space available for RAM below the 4GB physical address boundary.
Ian Griffiths offers a more detailed explanation:
To address 4GB of memory you need 32 bits of address bus. (Assuming individual bytes are addressable.) This gives us a problem - the same problem that IBM faced when designing the original PC. You tend to want to have more than just memory in a computer - you need things like graphics cards and hard disks to be accessible to the computer in order for it to be able to use them. So just as the original PC had to carve up the 8086's 1MB addressing range into memory (640K) and 'other' (384K), the same problem exists today if you want to fit memory and devices into a 32-bit address range: not all of the available 4GB of address space can be given over to memory.
For a long time this wasn't a problem, because there was a whole 4GB of address space, so devices typically lurk up in the top 1GB of physical address space, leaving the bottom 3GB for memory. And 3GB should be enough for anyone, right?
So what actually happens if you go out and buy 4GB of memory for your PC? Well, it's just like the DOS days - there's a hole in your memory map for the IO. (Now it's only 25% of the total address space, but it's still a big hole.) So the bottom 3GB of your memory will be available, but there's an issue with that last 1GB.
And if you think devices can't possibly need that much memory-mapped IO, I have some sobering news for you: by this summer, you'll be able to buy video cards with 1 GB of video memory.
To be perfectly clear, this isn't a Windows problem-- it's an x86 hardware problem. The memory hole is quite literally invisible to the CPU, no matter what 32-bit operating system you choose. The following diagram from Intel illustrates just where the memory hole is:
The proper solution to this whole conundrum is to use a 64-bit operating system. However, even with a 64-bit OS, you'll still be at the mercy of your motherboard's chipset and BIOS; make sure your motherboard supports using 4 GB or more of memory, as outlined in this MSKB article.
264 = 18,446,744,073,709,551,616
18,446,744,073,709,551,616 / (1,024 x 1,024) / 8 = 2 exabytes
In case you're wondering, the progression is giga, tera, peta, exa.
Although the performance benefits of 64-bit are somewhat dubious on the desktop, a 64-bit OS absolutely essential if you run applications that need to use more than 2 GB of memory. It's not common, but we're getting there.
The memory hole for IO still exists in the 64-bit world, but most modern BIOSes allow you to banish the IO memory hole (pdf) to some (for now) ridiculously high limit when you're running a 64-bit OS. Don't get too excited, though. The user-mode virtual address space in 64-bit Windows is a mere 8 terabytes. Suffice it to say that we won't be running out of physical or virtual address space on 64-bit operating systems for the forseeable future. It's the final solution, at least for the lifetime of everyone reading this blog post today.
Here's one parting bit of advice: if, like me, you're planning to stick with a 32-bit operating system for the next few years, don't waste your money on 4 GB of RAM. You won't be able to use it all. Buy 3 GB instead. Every motherboard I'm aware of will happily accept 2 x 1 GB and 2 x 512 MB DIMMs.
* Could be raining.
Posted by Jeff Atwood
Chelgrian wrote: "Windows cannot do this and requires and emulated 32 bit subsystem called WOW (Windows on Windows) which incurs a slow down. "
There is no "emulation" for 32 bit on x86-64 Windows!
*Any* 64bit OS offering 32bit app compatibility will require *some* parameter processing for 32bit OS API calls - whatever name you want to stick on it. However, this is a really minimal amount of work.
The performance impact for most 32bit apps is completely in the noise.
Even looking back almost 3 years at XP 64, the impact for games was in the 0-5 fps range, and this article is using a *beta* XP-64 and *beta* drivers. http://www.anandtech.com/showdoc.aspx?i=2085p=1
[ Aside: if you're running on "Itanium" hardware, then there is a significant slowdown for 32bit apps, but that is another story entirely and applies to all OSs. ]
FYI - interesting tidbit: 32bit applications (compiled /3gb aware) running on 64bit Windows will have access to a full 4Gb of -virtual- address space.
can someone explain how come a video card with 1 GB of video memory will affect RAM? I thought that the 1 GB will be dedicated to the card and it will probably save RAM and not consume it.
I am kind of confused here.
The annoying thing about this as a whole regardless if the memory is properly used or not is that Vista supported the /PAE switch up through Beta 2. When they released RC1 the option no longer functioned. I really wish they would have left it.
josh: "Without paging, x86 processors using a 32 bit address word can only access 0.5 GB of memory. See for the math."
You know, inside our earth there is another earth which is much larger than ours ...
"Last I checked, the machine addresses memory in bytes, not bits..."
Bytes are made up of bits (8 bits = 1 byte). So, "32 bit address word" is to "4 byte address word" as "1000 grams weight" is to "1 kilogram weight." Same idea.
I tend to think in bits when looking at address lines because they needn't be considered a cohesive whole (once they leave the chip, anyway). Different cognitive mapping I suppose. To each his own, right?
This has been know for years. Ever since XP was released it was even noted back when I did the beta testing for it.
If you want 4gb 64 bit is the only way to go.
GOD, VISTA JUST CONSUMED A ROUGH 642MBs OF YOUR RAM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
IT'S NOT AN OS, IT'S A MONSTER.
well just a few remarks about this. first of all dos. it has no difference on memory seeing as dos only uses up to 1mb of memory as it still uses the old 16bit mode so it would not affect the limit of 4gb. also having 4gb must be better than 3. at least the resources of windows would be bigger because if ur system is using up the top part of the memory then it would do the same with 3gb of memory. maybe windows its self only registers 3gb but can detect all four because of this problem. if you had only three gb would it not then use some of that top gb for other resources.
Do all these memory limitations apply to Windows Server 2003 Enterprise, or only to Win2k3 Standard??
Thank you, Tom
Tom - its a hardware problem. If you're motherboard doesn't let you see the memory then no operating system will make any difference.
So here is a statement of Doug Cook, developer at Microsoft.
Windows XP originally supported a full 4 GB of RAM. You would be limited to 3.1-3.5 GB without PAE, but if you enabled PAE on a 4 GB system with proper chipset and motherboard support, you would have access to the full 4 GB. As more people began to take advantage of this feature using commodity (read: cheapest product with the features I want) hardware, Microsoft noticed a new source of crashes and blue screens. These were traced to drivers failing to correctly handle 64-bit physical addresses. A decision was made to improve system stability at a cost of possibly wasting memory. XP SP2 introduced a change such that only the bottom 32 bits of physical memory will ever be used, even if that means some memory will not be used. (This is also the case with 32-bit editions of Vista.) While this is annoying to those who want that little bit of extra oomph, and while I would have liked a way to re-enable the memory “at my own risk”, this is probably the right decision for 99.9% of the general population of Windows users (and probably saves Dell millions in support costs). See the relevant KB article and a TechNet article for details.
Great article. LOTS of unnecessary nitpicking in the comments unfortunately and of course the usual wiki powered posts getting things half wrong or misunderstanding and serving only to confuse people. My only advice (take it for what it is worth) is for folks coming here to stick with the article and ignore the vast majority of the comments.
On a topic like this, you cant really just jump to wiki and expect to become an expert without having a lot of foundation knowledge and, more importantly, experience. Suffice to say that it really isnt as difficult as it may seem and that the original article is really just fine on this topic.
Ill just leave with a few points... The address width of a processor architecture does indeed determine its virtual address space. So for a processor with 32bit address support, we are talking about 2^32 or 4GB of address space. Physical address space refers to physical RAM. In the vast majority of cases, virtual space is LARGER than physical space.
There is nothing defficient in the original Windows NT 32 bit kernel and nothing "missing" that has anything to do with drivers. It is a typical 32bit OS running on 32bit hardware and, as such, it has a virtual address space of 4GB which maps to an amount of physical RAM determined by the chipset, motherboard and memory module density. As the physical RAM approaches the size of the virtual memory limit, you can have trouble if some of those addresses have been mapped for other uses. Like video RAM. Yes video RAM is dedicated on the card, but the OS has to be able to *get* to that RAM. The way that happens is that the video cards memory is mapped to a virtual address range. Its that easy. This doesnt matter until there is PHYSICAL RAM in that address range.
Any technique which circumvents the limits of a virtual address space will involve paging. Paging sucks in nearly every case. It doesnt matter that it dates back to the original IBM VM OS, was on PDP 11s, was what we lived with back in the DOS/EMS days (nitpickers please just die here rather than stating the exact first OS that paging dates back to). The fact is that the article is correct. PAE is an ugly hack that essentially allows you to page out multiple 32bit address spaces in a 36bit physical address space.
The Intel FLAT 32bit memory model (and the comment above indicating that even within 32bit space the Intel architecture is paging is a huge oversimplification of a complex topic) remains but is now augmented by a page table which can physically map to 36bit of RAM (64GB).
This IS a hardware issue and, like most hardware issues, IS present in ANY OS. So Linux and Mac fanatics, sorry, but this isnt fuel for your holy fires.
Again, GREAT concise and clear summary of a topic that, as you can see by the bulk of the comments, still causes a lot of trouble.
It doesn't matter if you have a motherboard that supports 8GB or 64GB if your OS is only 32-bit. To figure out how much memory a 32-bit OS could see, it would be 2^32 = 4294967296, which is ~4GB. Similarly with 64-bit, 2^64 = 18446744073709551616, much much more. Best bet would be to upgrade your OS to 64-bit Linux or 64-bit Vista.
Great discussion, really helped me get my head round it, and i'm still not sure if i have. lol
i have an asus A8V Mobo, AMD 4200 x2, and 4gb RAM, and vista 64, if i enable "memory hole" in the bios i get to see all the ram, had to back peddle a few bios versions to achieve this without an in built by asus apparantly, USB error (put in to safe guard the system from "possible" crashes apparantly, gee thanks asus.
so i get to see all the memory, i boot to vista 64 (its definately a slower boot) vista sees all the mem to, but the nic doesn't work, no conflicts or errors, just says no cable is plugged in, and thats that.
have to admit though, i love the feel of vista 64, everything i need works with it, and even though i only see 3456mb i'm sold :)
however if anyone knows how to remap a "Marvel Yukon" NIC's addresses i'd be interested to hear about it.
Thanks for nice technical article. Had problems detecting full 4 GB RAM with my Intel DG965WH mobo. Finally got a great tip from FedoraForum.org to downgrade system BIOS downto release 1669 and that helped. Many similar reports around the net from other Intel G965 mobo users. I have heard mentioned Intel mobo models DP965LT, DG965SS,
DG965RY, DG965PZ, DG965OT, DG965MS, DG965MQ, DQ963FX, DQ963GS.
If you've that kind of mobo and system either seens only 3 GB of 4 GB total, perhaps booting up and running extremely slowly after adding memory upto 4 GB, try downgrading the system BIOS to release 1669. It's available from Intel support web under 'previous releases'. Currently the latest BIOS release is 1687 and it has the problem. Perhaps some future release will have this problem fixed.
"That, my friends, is why Apple does not offer 4GB of RAM in laptops. Which makes me wonder how all the other manufacturers explain to the rich idiots who splurged their kilobucks on their loaded Lenovos, Toshibas and HPs, why they can't see all of their expensive RAM."
Ah but they do...look at the new MacBook Pro's.
Shame on the driver writers that still write drivers that does not work with PAE!!! PAE support had existed since Windows 2000!!!!! In fact, I think PAE support should have been required to earn the Designed for Windows 2000 logo!!!!!
If all 32 bit operating systems were limited to 4 gigs of RAM I might be content, but all are not unless you are trying to tell me that my server 2003 x86 doesn't have 16 gigs of RAM and that it is lying to me in the system info pages... my xp sys info page tells me i have 4 gigs of physical RAM but the system properties reports 3 gigs... this is a microsoft limitation, period. The made their server capable of using more than 4gb so there is no reason they can't do the same for XP or Vista except that if they do, then they won't sell as many x64 copies of the OSes for those of us wanting more RAM...
Core 2 duo's are 62 bit architecture, + the only real reason for many home PC users to have more than 2gig ram at the moment is for games and then its counteracted if they havent got an old pc on which to play them on.
Finally hes wrong about GFX cards, the 1gig ram card the 8900 will be out in november in the overpriced early adopter category.
Even then doesant really matter as the intensive visual; apps and hd stuff runs through the card anyway.
I'm probably out of my league, but when did that ever stop someone from posting.
Ignoring "holes" in the memory map...
Computers have three main buses:
Control Bus is 16 bits wide and tells the address bus what method of communication is required (32-bit or 48-bit)for the device currently seeking to control the data bus.
Data Bus is 64-bits wide, but typically cannot find anything to talk to wider than 32-bits other than the main processor which for most systems is also working in 32-bit mode.
Address Bus is 48-bits wide and typically operates in one of two modes: 32-bit or 48-bit. This method of operation depends on the Control Bus' instructions. 32-bit for peripheral devices. 48-bit for the main processor. In theory, 48-bit could access 2^48 addresses. (65,536 * 4GB) But, those darned peripheral chips force the control bus to limit the address bus to 32-bit or 4GB.
Peripheral devices (video card, sound card, modem, etc.) are hard coded to work in 32-bit. If your OS is 64-bit, then the drivers must be in 64-bit to ensure information sent to the peripheral device is formatted in a manner it can understand. Information from the device must be padded to 64-bit. And the control bus must be told it is still a 32-bit device. If the device is actually a 64-bit device (extremely rare) then the control bus is told it is a 64-bit device and lets the address bus do it's thing.
But, 32-bit hardware changes how the address bus works. The upper 16 bits of the address bus become a means of identifying the device, mode of communication, etc. (essentially, paging mode for these devices to allow more than 4GB of memory to be addressed) and shift data transfer to a two iteration process (slowing things down.) Vendors understand this and design to gain the speed of the processor by memory-mapping their hardware into RAM addresses so that the address bus does not shift to two step mode when sending or retrieving information to and from that device. This memory mapping reduces available RAM since the addresses cannot exist in duplicate.
My wild guess is that the PAE thing is implemented correctly in Server and limited in desktop platforms for sales/marketing reasons rather than technical ones.
Bingo :) Microsoft has pretty much abandoned PAE for the 32-bit versions of XP SP2 and Vista. Too much trouble in the consumer operating systems due to poorly written drivers.
I have a question... I bought a PC with 4 Gigs of RAM, and am planning to run it on 32-bit Win Xp or Vista (not quite sure yet), and my question is, if OS cannot see the full amount of RAM I have, will it operate smoothly with the amount it can see?
As I understand it, the debate here is between the two proposed solutions: /PAE or 64bit?
Folks, the industry is gradually moving to 64bit. So sooner or later, its gonna hump us. But until drivers are common and apps are fully compatible, just stick to 32bit with the 4gigs of ram still in there, even if the OS wont see them. It wont do the pc any harm. When the time is right you'll be ready for the switch. Its the only solution.
I use an Asus G1S Laptop: Core 2 Duo T7500, with a dedicated Nvidia 8600M GT, a Hitachi Travelstar 7k200 hard drive and Corsair 4gb ram. Vista recognises 3.4 gb of ram, but that doesnt bother me... yet.
I'm running 32-bit vista on my dream computer I just got.
4GB Corsair RAM (3.4GB Recognized)
2 EVGA GeForce 8800GTX in SLI
Intel Core 2 Duo 3.0 GHz each
ASUS motherboard, I forget the model, but It will handle core 2 Quads and Core 2 Extremes (for later upgrades)as well as 8 GB RAM if I ever decide to get 64-bit vista.
Hitachi 1TB hard drive
Dual LiteOn CD/DVD +- R/RW burners.
Antec Nine Hundred Series steel computer case, 3 120mm fans, 2 80mm.
CoolerMaster 700W power supply
Saitek Backlit Gaming Keyboard
22" Widescreen Monitor, 2ms refresh
Logitec gaming mouse
All that for $2200 on newegg.com!
If you want the wish list, I still have it saved, e-mail email@example.com with the subject "wish list" and I'll send it to you.
Okay, I'm a little worried because you said that we are not yet to a point where it's necessary to have 2GB to run anything as of yet. Just to run Windows Vista you have to have 2GB of RAM or nothing on your computer will work correctly. You can try 1GB if you want to, but don't try running any applications with it. Not even calculator. It'll shut the system down. At the same time, you have to remember that your System Information only shows the available RAM not the total amount of RAM. By turning on your computer and running an OS, you immediately take away some of your existing RAM. It's NOT ALWAYS due to a 32-bit system not being able to see what you've brought to the table. Additionally since you had 4,096 and the 32-bit system is capable of recognizing EXACTLY that amount, it's obvious that there were other forces, like the OS and background programs, at work to take up your ability to see the full amount of RAM you had installed. Even if you had wiped the harddrive and started over from scratch, there would still be programs that installed themselves with the OS, thus taking up memory and causing you not to see the full amount of RAM installed. Isn't this true?
The AMD doesn't support this. I got the biostar ta690g and they do not support this in the bios to remapped the pci resouce for above 4gb address line.
I have 4gb and if I use 64bit vista and 64bit amd cpu with pci-e 8800gts nvidia it will get blank screen system freezes and white line graphical glitch. Found out that the bios doesn't support it even I reported and researed it for AMD/ati and biostar they don't do anything. The pci bus will get memory not available 0xC0000000 - 0xFEBFFFFF and if you install 8800gts pci-e driver it will get system freeze blank screen with in mintues of use and faster if you use video or any higher function of your video card.
only way is to just use memory hole remapping to get 3gb this just cuts 1gb same as memory hole or I could of taken 1gb stick out and still see 3gb in vista 64x. WTF.
No, he said what he ment. The use of these prefixes to denote powers of 2 has been in place since the 1960s, and no amount of linguistic revisionism will change it.
What I don't understand is why MS don't simply relegate ALL PCI/AGP device memory mapping and memory mapped I/O space to a PAE'd address space page and free up another bunch of the conventional 32 bit 4G address space... Well I do understand, it's redevelopment costs. But it would alieviate much of the loss of RAM. A bit like in the old days of having device drivers written to run from XMS with a small UMB stub for backwards compatability in the old 16bit execution model x86 days.
i got the same problem that you have with my asus a8n32 Sli - Deluxe
i got 4.096Gb ram instaled, but for use i only have 2.800Gb
I have entered in bios and set memory hole to enable and set beats to 8. in clock i put to 200Mhz and cl to 3.
My pc recognise the 4.096Gb of memory installed and the same for use.
With windows xp pro x32 only apear 2.75Gb because is the maxim that windows xp pro x32 Suports. In Windows Vista i will test today but i think that my problem was resolved.
"Personally, my max RAM is 512MB, and since I run Linux, not WinDoZe, my systems run the latest software just fine with between 256 and 512MB RAM."
Obviously this guy doesn't run Firefox...
Great articale, I've known of the problem with using 4Gb's of RAM on a 32-bit O/S but have been looking for an articale to go in to a bit more detail.
I'm currently using Windows Vista 32-bit with 2Gb's of RAM and a Quad Core (Q6600) CPU for decoding and encoding blu-ray content (1080i) with un-comppressed PCM 6 Channel audio. However, when decoding\encoding the content the systems avalible RAM goes from 950mb's to 0mb's in a mater of seconds and everything struggles. The content it's self is dropping frames all over the place and is out of sync with the audio due to the lack of RAM; if you attempt to play it back.
So I'm to upgrading my memory to 4Gb's. Hopefully 3Gb's should just about be enough RAM in Windows Vista 32-bit, as I've used 64-bit Vista before during beta testing and had so many problems with many programs not working and a lack of driver support, I don't want to be forced back to it just yet.
I'm already running a Windows 2008 Server 64-bit and it seems to be running perfectley, but then again I don't need to run any additional 32-bit based applications on the server.
At the moment there are few people who would benifit from a 64-bit O/S, but at the rate alot of games and applications are starting to drink avalible system resources, I don't expect it'll be long before a 64-bit O/S becomes benifit for all of us.
The problems here are all about EGO ... sorry chaps, but it's true. If you know anything about computers then you will know that this is an Architecture issue and the various ways that some clever people have tried to get around it. Like the king of the swingers, he has hit the top and cant got further but still wants more .... In that case create a better architecture and one that will last longer the Von Neumans ;)
"Obviously this guy doesn't run Firefox..."
While watching youtube using firefox 2.0.0.*, 5 windows open, with a total of 32 tabs in each, as well as thunderbird, and a couple of pdf viewers,
CPU: AMD Athlon(tm) (1161.20-MHz 686-class CPU)
real memory = 536805376 (511 MB)
avail memory = 515883008 (491 MB)
72 processes: 4 running, 68 sleeping
CPU states: 61.8% user, 0.0% nice, 6.7% system, 3.0% interrupt, 28.5% idle
Mem: 313M Active, 55M Inact, 99M Wired, 25M Cache, 60M Buf, 984K Free
Swap: 686M Total, 114M Used, 572M Free, 16% Inuse
not quite linux, but close enough
I have retired my 48MB Pentium laptop, because it was getting a bit painful to use
(sorry, total of 32 tabs "in each" was missed in an edit)
Good commentary on the limitations of 32bit OS's - however I do disagree with one point. Installing 3gig of RAM to save some money may prohibit high performance motherboards from interleaving memory. The OS may not be able to address the extra RAM but having RAM interleaved can give much better performance than installing mismatched DIMMS.
My personal experience with vista 32bit or xp 32bit no matter how much ram you have installed it will only use 2gb's worth of it. It might show up as 3.50gb. But it will actually only use 2gb. Sure you can set the BCDedit to 3072 and have it unstable so whats the point? Id rather have 2x1gb running at 1T then have 3gb running at a slower 2T rate. If you have a need for more then 2gb's of ram the wise thing to do is go to a 64bit os. Thats why they make 64bit operating systems and get yourself some nice 2x2gb sticks at 1T.
From reading this, if I have Vista x32 and have 4GB installed it will still use all 4 GB but some of it will be unavailable for use by my applications because of memory mapped devices. It's still there though. The same is true if I install 3 GB. I still have the same MMD usage (directed at Tolin who has 2.6 GB shown available on his 3 GB rig). It appears that MMDs will always take space in RAM and there is no way around this. This has existed since the DOS 640K days. I'm not seeing what the problem is...
Think of it this way:
You have a parking lot. The entrance is on the left. You're also holding a concert on the right.
Let's imagine that there are 40 rows in that parking lot. Each row, for purposes of this analogy, is 100 MB. Each row hold 100 cars (1 MB per car for purposes of this analogy--yes, this is a ****ed up lot).
On the right, you have a concert, some drunken teens, and a mosh pit taking up 6 rows (or 600 MB).
If this was a small concert, no problem. Everyone's parked on the left, the concert is on the right, and all is well.
However, if it were a sold out concert and someone made the mistake and said that 4000 spots were available, then we have problems.
What's more important: more parking, or space for the concert to go on?
So yes, 600 cars are denied parking.
This is essentially what's happening with XP and Vista 32-bit. Server 2003 seems to get around it with PAE better than XP and Vista. I have no idea why, and I'd like to find out.
In 64-bit, you have a MUCH bigger parking lot. The cars are still entering from the left and the concert is still on the right, but there is a MUCH longer walk from the entrance to the concert.
I just purchased 4 gig for my system and was researching the 4 gig usable limit when I found this.
My thoughts are this. I currently have 1 gig of ram installed, around 7 68 meg after devices get their take. Even if I have 3.8 gig when its installed I'm ok with that. Sure maybe in 2 years when the average program consumes more memory then this will be an issue. However I'm willing to say, for the life the current system I have 4 gig will be plenty. After that I'll make sure my next system 3 or 4 years from now can support more. Be it a 64bit system or what ever has evolved into the new industry standard.
a 32 bit os can address 32 bits a second (i think thats what it means), so it can address up to 4 gigs. But some of that 4 gigs is used for your pc componets. So you would have to request alternate media from microsoft, which the request system is having problems at the moment. But I'm having the same problem as you right now, except i didn't get the extra ram yet. i have 2 gigs at the moment.
and who needs enterprise. really. get ultimate instead.
From the Vista SP1 changelog:
"With SP1, Windows Vista will report the amount of system memory installed rather than report the amount of system memory available to the OS. Therefore 32-bit systems equipped with 4GB of RAM will report all 4BG in many places throughout the OS, such as the System Control Panel. However, this behavior is dependent on having a compatible BIOS, so not all users may notice this change."
(cut from www.istartedsomething.com)
Coming in late, great post with a lot of passion.
Hey coolgamer, don't forget that that number is 32 bits (8 bits is a byte and a byte is a single character - like a, b, c, etc.) times whatever processor speed you are using: e.g.: Celeron M 1 GHz single core processor (to keep the math easy) would look like this:
32 bits * 1 GHz/second = 32 billion bits/second or 4 billion "keyboard characters"/second.
Just think of the kind of damage a QX6850 C2E (or new QX9650) can do to a pile of data! Hmmm..., theoretically 384 billion for either of those procs.
Unfortunately, there's a lot of bottle necks in front of this monster that slows the process down. These include - the FSB, Chipset, RAM and OS.
For all that have participated in this post - if you want to see 8 gig of RAM on a desktop running Vista you'll need to belly up some cash for some new hardware. If you're game..., try this on for size.
Get a mobo that has a P35 chipset or above (typically ICH9 Southbridge) - preferably X38 for gaming. Provides native addressability for 8 GB DDR2 800/1066 or 8 GB DDR3 1333 (DDR3=$$$). Pair this with the fastest C2D or C2Q/C2E processor you can afford a (read: minimum of 4 MB L2 cache) a video card that will keep up with this (like a nVidia 8800) and the fastest SATAs you can afford (any 72k/rpm 3Gb/sec drives will do) load yourself up Vista Home or above and you will see:
8 GB RAM in BIOS then, yes, in system properties you will see less. Why, cuz of most of what was discussed previously.
Windows is going to step in and take what it thinks it can get away with. This works on some sort of sliding/logrithmic scale where any day that ends in "y" it will often take more than its fair share of system resources. And, yes, all the other stuff that needs to be mapped by windows (read: operating system out of control of being in control!-), especially that darned page file, and all the other hardware devices that need a little memory fix to be happy.
However, after starting out with 8 gig you should end up somewhere in the mid 6 to low 7 gig range of available "physical" memory. You should also end up with a WEI score (Windows Experience Index) between 5.8 and 5.9 (yeah buddy!)
So, if you happen to have a few thousand dollars laying around, give it a try.
anyone think that possibly in 10 years ram will not even been used when large capacity very fast solid state drives replace hard disk.
Very clearly explained for a Dutch noob like me, who is just wondering which Vista to buy (32 vs 64) and how much memory - answer = 32 bit, with 3 gig Kingston. Best rgds, Berend.
Read this entire post, phew !
Lots of info on this, but lots of arguments also... Nice !!!
Can someone summarise this ?
From this I can see that you should not go for 4GB or more unless you get a 64bit CPU and a 64bit OS - XP64(God forbid) or Vista and have a nice chipset, probably the latest ones from Intel - say X38. Right ?
I wonder what the maximum amount of RAM is which could ever concievably be inserted into a motherboard, considering ... lets say about 2**64 atoms per gram of silicon? Something tells me that the current 64-bit architecture will eventually be replaced by quantum computers using qbits, and a typical laptop will be running with about 640 qbits of RAM (640 qbits should be enough for anybody!).
In my case, XP reports physical memory of just over 3GB on my 4GB system. Can I configure the other 1GB as a Ram disk?
wow - i've read all the comments and I'm even more confused. I liked Griffiths explanation in the above comments but i'm still clueless on what OS i should get.
I'll be getting a quad core over-clocked to say 3GHz and have 4 gigs of ram and an 8800gtx 512mb graphics card. Now i think I'll stick with a 32bit OS to avoid any present software compatibility and driver problems - but should i still consider the 64bit OS?
Well here I am 8 months after the original article and the comments assuring me that "with Vista, x64 is a first-class citizen".
And guess what?
Apple's shiny new iPod Touch, a popular gift with geeks this year, supports Vista32 but doesn't support Vista64.
Quote from the current "iPod Compatibility Chart" at http://docs.info.apple.com/article.html?artnum=60971
(in light-grey smallprint in footnote 4 at the bottom of the table):
"This excludes Windows XP Tablet PC Edition, Windows XP Professional x64 Edition, and 64-bit editions of Windows Vista."
Shame they didn't mention this little detail on the iPod Touch tech specs page.
Looks like Vista64 is turning out to be a second-class citizen again.
Only problem is, some people may have the an older DDR dual channel chipset board like I do, and if they install only 3 GB of memory (say, 3 sticks of 1 GB each), then they lose the benefit of dual channel memory bandwidth performance. That's why I went with 4 1GB sticks, even though Vista and XP only sees around 3.25 GB. I wanted the the dual channel performance boost, and that 4th stick acts as a "place holder" to guarantee that those other 3 sticks run at full DDR dual channel bandwidth. Hey, without it, an odd number of sticks runs at 1GB/second slower! Anyway, at least Vista XP both see 3GB + 256MB, (3.25 GB) so that last 4th stick is not a total loss.
well this is a lengthy thread indeed and people still posting, still confused. There are posters speaking in very authoritative tones on the inability of any 32bit OS to address 4GB of RAM, yet all OS vendors claiming they do in some or all releases, and servers out there with 4GB RAM running as we speak, on 32 bit OS, believe who you will.
*BUT* Is not this whole discussion forgetting one important aspect of modern processors? More than one core, or multi-cpu machines, is this the actual answer to servers getting more than 4GB addressed?
A niche group of people newly discovering this genre of problems have done so as a result of comparing their Windows Experience scores generated by Vista. Discovering my machine’s memory is reported below 4GB has indeed given me the necessary knowledge of and motivation to research the phenomenon. After discovering the cause, I do not regret acquiring the inexpensive 4(1 GB) sticks.
My logic is this:
Windows Kernel, from what I have read, likes to take roughly half of my ~4 GB of memory for itself, leaving the other two for applications. What would happen with only 2 GB total memory available? Would our dear Kernel still requisition half for itself, leaving only 1 GB for applications? If this is the case, I would feel better having a full 2 GB available for applications (I game as a side to working with Photoshop, databases, and AutoCAD).
If my logic is misguided or nave, please post a response to educate me on the fallout of such a scenario.
Regardless, with a 640 MB video card installed, I would rather have as much memory available for it to map into and still have sufficient space left for the OS and applications.
If people are getting hung up over the mere reporting scheme Microsoft’s OSs use to report available memory, well, Microsoft has heard them.
“With SP1, Windows Vista will report the amount of system memory installed rather than report the amount of system memory available to the OS. Therefore 32-bit systems equipped with 4GB of RAM will report all 4GB in many places throughout the OS, such as the System Control Panel. However, this behavior is dependent on having a compatible BIOS, so not all users may notice this change. “
From what I have gathered, you are correct. From a Microsoft KB article I cannot cite at the moment, a 256MB video card will take as much off the top of installed physical memory. To the loss are added other sub-OS system functions such as PCI device overheads.
Read my post directly above for my concern: if a system has only 2GB installed, for example, will the Kernel still take a half for itself, on top of what was taken out by before the OS got involved?
From what I have read, a server accessing over 4GB of physical memory has nothing to do with its processor count, but instead with how its OS handles PAE and, ultimately, hardware-enforced DEP.
From Microsoft MSDN Library’s Memory Limits for Windows Releases (http://msdn2.microsoft.com/en-us/library/aa366778.aspx): Every 32-bit Server release is capable of using 4GB, save for: Server 2008 Standard; Web Server 2008; Storage Server 2003; Server 2003 R2, Standard Edition; Server 2003, Standard Edition SP1; Server 2003, Standard Edition; Server 2003, Web Edition; and SBS 2003.
None of those systems are allowing 4GB with the stipulation of multiple processors (or processor cores). However, a few systems are listed (probably other beyond those listed) as capped at eight total processors (I’m assuming 8 actual processor chips, not cores).
Very nice -
For the common man, get 32 bit and 4gigs and let the "pros" haggle
with what they will. RAM is cheap and 2x512 is @ same $ as 2x1024
One thing, from my readings it looks like people are saying that
the "system" (buses..etc) are using the non-appearing ram and what
you see left is for the OS/Apps. So, wouldn't that mean that the
"whole" of the ram(4096) is actually being used, you just can't see it?
Before I try this I thought I would ask a couple of questions (before we start...I am NO guru when it comes to computers, so bear with me please).
1. I run Vista64 with a total of 8GB, shows 3.83GB. Total VM of 9.58Gb, shows 5.94GB.
2. I'm trying to run Autodesk Inventor (32) and have a large assembly that "dumps" in the (roughly) 4GB area. I imagine I'm hitting the 4GB "limit".
3. I've seen where adding /PAE will get me the full 4GB, but what about the other 4GB above that. Will I ever be able to access the full 8GB with Inventor?
Sorry for any "stupidity" on this, but I'm on a "non-supported" machine at the company I work for...so I'm the IT guy for this (and yes, we're in trouble).
If you are running an x64 version of Vista, it should be expressing the availability of the 8GB (minus anything mapped into memory before the OS). Granted, what is mapped should be far less than 1 GB. What are some other components in your system (i.e. any GPU devices with large amounts of memory)? I will be in a position this Friday to see if my 640MB GPU will actually map 640MB into memory on boot, so I will know more about this possibility then.
Autodesk programs I believe are all multi-threaded with support for well over 8GB of RAM, so there should be no problems rooted in your application.
Again, if you are running any 64-bit OS, you should have access to your memory with no special boot options/switches (such as Physical Address Extension).
Step 1) Reconfirm your OS is truly 64-bit.
Step 2) Determine if your computer is mapping large video memory into system memory (if you have any big cards locally on your machine).
A very useful post. But I think if you want to map physical memory directly, prevent system paging your application memory to disk, or require more memory on 32-bit windows system, you can try to use AWE (address windowing extensions) API.
i have found a way for windows vista 32bit to see all 4 gb ram contact me on msn at firstname.lastname@example.org i can explain on how you might fix the problem
I believe most of the applications present today max out at a total of 2GB. Now can Win XP or Vista (32bit editions) utilise the full 3-3.5GB or will it too be limited to 2GB.
Rig I'm planning to build-
Intel QuadCore E6600
nVidia 8500 GT\GTS (256-312MB)
2 x 500GB SATAII (8MB Cache)
3 x 320GB SATAI (4-8MB Cache)
1 x 250GB SATAI (4MB Cache)
Creative X-Fi Sound Card
ms? Dude. Speak (International) English when your allowed to go out in public!
ms? Dude. Speak (International) English when you're (sorry about the typo) allowed to go out in public!
"The proper solution to this whole conundrum is to use a 64-bit operating system." Why go so far over the top? A 33-bit operating system would solve the problem by giving you twice the addressing power of a 32-bit system. Why do we need 4,294,967,296 times the address space? Don't tell me that we doubled it in going from 16 to 32 or that 33, 34 or 35 are odd numbers. There is no implementation problem with coping with 33, 34 or 35 bits. These are exponents we are talking about dude! There is no comparison in practical terms between doubling from 16-bits to 32-bits and in going from 32-bits to 64-bits. In 16-bit days it was always on the cards that 32-bits worth of physical RAM might be possible. 64-bits worth of physical RAM? Not for a very very long time if at all.
I run Pro Audio apps and don't play games. So let's say I were shopping for a new computer. It seems like it would make the most sense to stick with a graphics card that had the least amount of RAM and still drive my display - thereby saving system RAM. If I can get an extra .4 gigs for the system I'll take it!
The whole 32 versus 64bit controversy is mute when it comes to memory addressing. If the hardware supports more memory, the only limitation is the OS. Linux 32-bit can use over 4GB and Windows 32-bit cannot. It is that simple. Add in whatever modified math from the 486 days you wish, when it comes down to it, it is based on the OS if the hardware is capable. Motherboard manufacturers have built in many of the PAE type I/O switches needed to make this possible. Make as much of the memory available to the OS as is installed, regardless if it is 32 or 64-bit.
I have a tri-boot system with a Core2Duo: 32bit XP, 64bit Vista and 32bit Fedora Core7 with 8GB of memory in this system. XP sees 3.5GB, Vista sees 7.5GB and Fedora sees all 8GB. I have enabled PAE in XP and it still only sees max 3.95GB, enabling PAE in Vista does nothing to get the other 512MB and no PAE switches or kernel modes needed with any linux kernel that is 2.4 or newer... although the 2.6.X kernels have much better support for memory over 4GB without a performance hit. Some specific distros may have their own personal issues with 32bit and 4GB+ of memory but the rest of the linux community has already fixed it.
how come nobody tells you this bullshit before buying ?
why can we not sue motherboard manufacturers who write "up to 4gigs of ddr" ? it's like buying a car advertised for having a 200kg tank, but 50kg are for air suction.
guess what none of the sellers I spoke to new about the 32 bit shit.
besides what is the point of ddr2, 3 or 4 with 2 or 4 gigs per memory when your computer won't see it?
Wow! (and no, not "windows on windows") Long and interesting thread with so many, "to sum it up"...
"so from what I gather"...
"just finished reading this"...
"it's the hardware"
"it's the OS"
"strictly a hardware issue"
"very interesting, but..."
"my logic is this..."
"I'm no genius"
MB, GB, Ram, PAE, ....
And now to summarize:
And they wonder why I drink!
What does the "x" in "x64" stand for?
x86 is the generic name for Intel processors released after the original 8086 processor. These include the 286, 386, 486, and 586 processors. As you can see, the "x" in x86 stands for a range of possible numbers. Technically, x86 is short for 80x86 since the full names of the processors are actually 80286, 80386, 80486, and 80586. The "80" is typically truncated to avoid redundancy.
I am an "indy" publisher of PC games from Japan (well, dating-sims if you must know), and I am floored by this ridiculous limitation of Windows. Our games don't run all that well in 64 bit Vista and XP and we probably can't upgrade at any time in the future, at least our older games. So is there *no* option like Wine that runs the 32 bit virtual machine inside the 64 computer? What did Apple do right that all their programs "just work" in my Mac Pro with 9 GB?
Microsoft has about 20x the market share as Apple. The reason is, they go out of their way to not break stuff when they upgrade their OS. This keeps businesses happy because they don't have to spend effort to upgrade their software for each OS. This helps Microsoft sell more copies of Windows because instead of Businesses saying, "Well our software won't work anyways on the new version of Windows, let's evaluate switching over to Apple."
You evaluation of Apple doing it "right" is from a Aesthetics stand point. Microsoft got it right in the business sense. This is evident by the market share.
What Apple did right is simply brute force the change. If Microsoft had said "Vista will NOT be compatible with early windows, get used to it or get stuffed!" and made it 64bit only and forced it, we'd not be in half the grief we are now.
It worked for apple, and they did it TWICE (motorola - powerpc and powerpc - intel)
cool... so the following choices are available...
1: buy 4 gig for a 32 bit OS and only be able to take advantage of 3 of them
2: buy 64 bit OS as well and STILL only be able to use 3 gig of your RAM
3: buy vista, and NEED 1 gig extra just to run the blasted OS so you STILL only get 3 gig available.
I checked the M$ definitions ... what a masterful piece of spin wording they have. Well done M$ - another fantastic rear-ender for the general public. Technically I'd call it lies, but then, I don't work in the word of advertising. I live in the real world.
Roll on a fully functional Windows environment within a Linux system.
2: buy 64 bit OS as well and then find there are no drivers available so everything runs slow and in 32 bit mode. See the full 4 gig, but be unable to use the modem, network card, graphix or sound to full potential etc etc...... you get the idea.
I have the feeling the last 2 posters have never used Vista x64.
Despite the Windows address space limitations, would it still make sense to use 4GB Ram on Windows XP Pro if one plans to create a Ram Disk? Can such a "vrtual" drive somehow take advantage of the "missing" space invisible to the operating system itself?
No, it's not a hardware problem, its a Windows problem.
You knuckleheads can keep on bleating that it is hardware, but with Linux, my 32-bit OS kernel can use 4GB, even if processes can only address up to 3GB. So I can happily use all of my memory, since I don't run processes that need more than 3GB.
Windows does not let me do this.
How is this a fault of the hardware? It's not.
It's a fault of Windows, a shortcoming of Windows, a flaw in 32 bit Windows, a compromise Microsoft decided to make in Windows. So it's Windows that is broken. Windows.
Clear yet? Don't blame the hardware Windows being hamstrung.
i haev 3Gigs system ram adn 1 Gig bideo card video ram detected in windows xp home 1024.0 system ram 3gb when i install the 4th gig of system ram its not detected at all.
It is simple math. think in base-2 (binary) with the 'bit' being the exponent. the base is, of course, 2, the 32-bit would make it 2^32, calculate that and you get how many BITS a 32-BIT computer can address. How can you blame microsoft for not making their 32-bit OS able to bend the laws of mathemathcs and change the answer to 2^32 just so you can use more than 4GB of ram? just like our eyes cannot see more than 3 dimension, a 32-bit OS cannot see more than 4GB of RAM. Upgrade to x64, and computers will continue to evolve. Dont, and 5 generations of Windows OSs down the road, we will have terahertz CPUs, 18 GPUs, 20.1 surround sound, 18TB of hard drives, and 4GB of ram.
JamesW, nice try at making *nix sound far superior...
But the fact of the matter is..
PAE is not Manufacturer or developer specific issue, (PAE)Physical Address Extension is a _solution_ to a hardware-centric problem.
Yes,some Linux(2.6 an above), FreeBSD, Solaris and others support PAE out of the box. But, this does not guarantee compatibility with firmware, drivers, or software packages--it simply means the kernel and some software running on 32bit processors can address 4GB+. Which is why you'll find many more power *nix users running 64bit OS's, and not a 32bit OS with PAE--as long as their hardware supports 64bit, and they need the extra RAM.
Windows had a PAE-type solution in the AWE mechanism mentioned in the article. However, it would seem that Microsoft is no longer interested in applying a band-aid to the problem, and instead will likely switch gears--or so the "interweb" rumors say, about Windows7--to push 64bit OS's on launch day. Even though, at least 4 or 5 32bit Windows versions support PAE...
!BUT! The fact still remains that, for any PAE fix to work, the environment must also have the right(PAE supported) hardware and software; that includes CPU, OS, firmware, middleware, et al.
I know this thread is old but I just wanted to address (pun not intended) the comments on 2^32 addressable BITS or 0.5GB addressable memory.
PC memory is BYTE-addressable, so 32-bits is 2^32 addressable BYTES or 4GB, no "unsound math" involved.
I see alot of negative comments about 64bits XP here, and I want to counter them.
I've run 64bits xp for 6 months no without any trouble what so ever. The only problem I could see happening is that you can't find drivers for obscure hardware, but for everything else it's just great ;)
so if you want to use more than 3-3,5gb ram, get 64bits xp ;)
I've used it with 6gb and it's no problem :D
A 64-bit PC running a 64-bit OS has a truly vast basic memory address space. The 4Gb 32-bit address space was 4096 times the size of the 1Mb 20-bit space, but the 64-bit address space is 4,294,967,296 times the size of the 32-bit one.
(Actual 64-bit PCs so far aren't actually able to address anything like that much memory, for reasons analogous to the restricted addressing of the old 8086; essentially, fewer memory address lines make for a cheaper computer. But even the most restrictive current x86-64 computer and operating system combinations can still address at least 2 to the power of 44 bits, which is 16,384 gigabytes. That ought to be enough for quite a while.)
By default, an all-64-bit PC will still have the standard big holes in its memory from three to four gigabytes. This is the lowest-hassle way to deal with the problem - just install more than 4Gb of memory, and live with the fact that your 8Gb PC with a 768Mb graphics card only actually has seven-point-not-much gigabytes of visible RAM.
One advantage of this is that you can still boot a 32-bit OS, if you want to. Another is that this vanilla configuration is most likely to actually work. Cleverer memory configurations aren't necessarily properly supported by hardware, operating systems and device drivers yet.
If you don't care about these factors, though, there are two ways to get the lost memory back.
Some 64-bit motherboards these days give you an option for "memory hole remapping". That moves the fourth-gigabyte MMIO memory holes higher into the 64-bit address space, probably way above the maximum RAM you can physically install.
Many other 64-bit boards, though, are even smarter, and can leave the memory holes where they are and remap (at least some of) the physical RAM out from under the holes and up past 4Gb. This process is often entertainingly referred to as "memory hoisting", and it used to be the preserve of server motherboards. It's been showing up in more and more desktop mobos, though. And on some of them, the memory-hoisting BIOS setting even works, and doesn't horribly crash the system as soon as something tries to use the remapped RAM.
You may only be able to "hoist" the last 512Mb of the 4Gb address space, but that's better than nothing. If it works.
I should add a note about the /3GB, /4GT and /PAE Windows boot.ini switches, too, because they often come up when people are talking about 4Gb-plus Windows PCs.
They are all useless to you. You do not want them.
/3GB and /4GT are config settings for different versions of Windows that tell the operating system to change the partitioning of the 4Gb 32-bit address space so that applications can use 3Gb and the OS kernel only 1Gb, as opposed to the standard 2Gb-each arrangement. They don't help at all with the 3Gb barrier, and most applications don't even notice them, so desktop users lose kernel memory space (and system performance) for no actual gain at all.
The /PAE boot.ini switch, on NT-descended Windows flavours, activates the Physical Address Extension mode that's existed in every PC CPU since the Pentium Pro. That mode cranks the address space up to 64 gigabytes (two to the power of 36), and the computer can then give a 4Gb addressing block within that space - or even more, with extra tricks - to each of several applications.
PAE's no good to the everyday 3Gb-problem-afflicted user, though, for two reasons.
First, it presents 64-bit addresses to drivers, and thus causes exactly the same compatibility problems as a proper 64-bit operating system, except worse, because now you need PAE-aware drivers for 32-bit Windows, instead of just plain 64-bit drivers for a 64-bit OS. From a normal user's point of view, PAE gives you the incompatibility of a 64-bit operating system when you're still running a 32-bit OS.
For this reason, Microsoft changed the behaviour of the /PAE option in almost all versions of WinXP as of Service Pack 2. They fixed the endless driver problems by, essentially, making /PAE in XP not do anything. All versions of WinXP except for the x64 Edition now have a hard 4Gb addressing limit, no matter what hardware you use them on and what configuration you choose.
This isn't a big problem, of course, since XP is not meant to be a server operating system. But it's still mystifying to people who try the /PAE flag and can't figure out why it doesn't work.
Oh, and just in case you for some reason still wanted to try PAE: It eats CPU time, too.
First great discussion! But couldn`t find any comment about this:
My friend told me that i need more than 4 GB RAM to use a 64-bit system at full speed. If I had less it would cut down my performance. Is that true? (He says that the 64 bit key would not fit completely into the ram???)
AMD Turion64 X2
2 GB RAM
Sorry for my bad english but i am from germany
My friend told me that i need more than 4 GB RAM to use a 64-bit
system at full speed. If I had less it would cut down my
performance. Is that true? (He says that the 64 bit key would not
fit completely into the ram???)
He's talking nonsense - or does he sell memory?
I run Vista x64 on an Intel Q6600 with 4GB ram. It's fast and responsive, despite running Visual Studio 2008 and MS SQL Server on the same box. 4GB is fine for most x64 users.
I just built a gaming computer, its got the XP 32bit(didnt want vista atm) and 4 gbs of ram, and it only reads three, but then my wife's computer is a year or two old Dell and I bought 4 gigs of ram for it as an upgrade and it reads it all 4gb of ram, it also is 32 bit XP, what's the deal?
"In any 32-bit operating system, the virtual address space is limited"
The virtual address space has nothing to do with it. Windows is operating in paging mode, and thus there is no direct relation between the virtual and physical address space. True, the virtual address space is fixed at 4GB, but the physical address space can grow way larger.
"Addressing more than 4 GB of memory is possible in a 32-bit operating system, but it takes nasty hardware hacks like 36-bit PAE extensions in the CPU, together with nasty software hacks like the AWE API"
PAE is not a "hack". It is just a way to extend the page table. Most people today uses PAE in XP and Vista, because they want DEP. By the way, check out the structure of the page table in 64bit mode.
"OK, so we're limited to 4,096 megabytes of virtual address space on a 32-bit operating system"
As I stated above, the virtual address space has nothing to do with how much physical memory (RAM and MMIO) a 32bit x86 OS can address.
"To be perfectly clear, this isn't a Windows problem-- it's an x86 hardware problem."
On modern hardware that is not true. It is a hardcoded limitation in the memory manager in 32bit Windows XP/SP2 and Vista.
Oh, and a note on AWE. AWE is NOT PAE. You can use the AWE API if your application needs to access more physical ram that can be expressed in the 2/3GB "user space" portion of the virtual address space.
AWE can also be used without PAE.
i am givving this up to long to read
Well, I installed 64bit XP after upgrading to 4gig of ram (and needing to reinstall windows anyway)... It lasted a week.
I am a designer and Adobe's PDF Creater wouldnt work because its a 32bit printer driver, and to top that the printer service constantly crashed.
What mainly annoyed me was WinXP 64bit wasnt supported by Windows Live Messenger, the latest installer from messenger.msn.com wouldnt install it... Another great FAIL by Microsoft.. "We will release an OS and not have any of our free software support it".... Fantastic!
Back to WinXP 32bit with 3gig of ram - The only Viable OS at this moment in time.
And Vista? Vista is the Captain of the Failboat
Yo ho ho and a bottle of suck.
erm.. shouldn't that be 16 exabytes of addressable memory using 64-bit. The division by 8 is unnecessary, since all memory since basically the beginning of time has been byte-addressable, not bit-addressable.
Geez, this gets more confusing the more I read about it. I thought the 4GB limit was a Windows problem. According to wikipedia, the PAE is enabled in XP Pro SP2. It has to be enabled so XP can use DAP. So if PAE is enabled, why doesn't XP have access to more than 4GB? According to wikipedia, the limit is set to 4GB because of driver compatibility issues. Now I see people blaming it on the chipset?
I use my system for gaming. I was going to install 2x2GB for my XP Pro SP2 system when I found out about this problem. Should I get X64, Linux, or use PAE? I don't know how to use PAE and I can't find instructions with Google. Thanks.
Your first impulse is correct. For gameing you
need XP. The added ram will work without doing
anything; Do not trouble your head.
I rue the day when I am forced to deal with Vista in any x version divisible by 2. Regardless of how much it may have progressed in reliability,stability,dependability, ..*ibility... I still dispise it... All those nice colors and inviting graphics... It's evil!!! When that M$ Storm comes a-blowing full force, I'll be hugging my XP box in tears.
Don't think I'll have to worry too much about that Fedora 8 bastard in the corner though. I prefer to just let him think that 512 is all the memory in the world. Keep him humble for his own good.
My other computer is a Beowulf cluster
Want to be a great man? Do something great.
Want to be a great man remembered? Do something great and pick your nose on national television.
Vista sucks big time. I went to Fry's to get 4 gigs of RAM. And the support guy advised against it. He said the 3.4 gig limit thing is real and with 32 bit OS it's no use putting in more than 3 gigs. I guess, bottom line is with current state of technology and M$ wisdom, we are stuck with 4GB at most and curse M$ while we are at it. I just don't understand what M$ thinks about its customers. They are the biggest con artist on the planet. Vista Sucks!
I have just bought a HP Pavillion notebook, Intel core 2 duo 2.1, Vista. On the box it is written very clearly - 4GB RAM. I went to check the System if it prints also the same amount, umm 3020MB RAM. Could be better a MacBook, at least would show exact RAM.