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
Data Bus
Address Bus
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
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.
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
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…
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.