Why is it that my PC does not recognize more than 4 GB of memory?
I hope your math isn’t rusty.
Slots. Lots of slots.
Think of your computer’s memory as a bunch of slots. Your computer “remembers” things by placing them into these slots. Due to its design, a computer can only keep track of a certain amount of slots.
Have you ever heard of Windows being referred to as a “32-bit operating system”? A 32-bit operating system, be it Windows or any other product, is only capable of addressing 232 memory addresses (that’s 2 to the 32nd power). Going back to our slots analogy, 232 slots, the most a 32 bit computer can keep track of, works out to 4 GB of physical memory.
How do you get more memory?
32 bits refers to the size of the largest address which the computer is capable of processing. Trying to fit a 64 bit address into a 32 bit space is like jamming the square peg into the round hole. In order to address more memory, you need a computer with a larger address space.
As of this writing, hardware makers are taking advantage of the thirst for more memory by selling 64-bit systems. One such hardware manufacturer is Apple, whose 64-bit Mac Pro is expandable to 32 GB of memory.
One last thing
This is of course a simplified explanation of memory addressing. There are some software solutions that have been implemented in order to address a larger address space within a 32-bit system (such as Windows’ Physical Address Expansion), but they are beyond the scope of this article. If you wish to learn more about software solutions that allow expansion beyond 4GB of memory on a 32 bit system, I suggest you start with this helpful (Windows-centric) article on the topic.





3 responses
June 4th, 2008
Vince says:
Direct Memory Addressing, is limited by the size of the available portion of the instruction set.
That limit is set by the number of ‘bits’ the computer addresses.
Since memory, in Windows, generally is addressed directly, and no one bothered with indirect addressing for ‘memory’ rather than disk, The limit was extablished with the X86 notion, you ‘never need more than 640k.’ thinking that went into the systems, way back.To address larger arrays of memory, would take either two instruction words (one with an address the word could reach,and the other with the address it can not. This is not ‘new’ thinking. It predates DOS. Used it in 4 bit and 8 bit systems.(want to bitch about 4 meg limits?… try the limits posed by 8 bit words, used when ‘gigbyte’ was what your drill sarge caught you chewing on opponents arm.)
In theory, if things were ammended a tad, there is no memory size limit. If there were, you could not address the arrays, located on your 10+ terrabyte disk clusters, available for under $3.
The only real reason (and please, I know how the in depth excuse why not, already) is they just don’t think you need it, unless you buy the new stuff??
They really didn’t think (when developing the orighinals, that you would every have that much memory available.
I can rememmber when, on a 486 processor, it cost me $400 to expand my system from 2 MEAGABYTES to 6 megs. The idea of ‘gigabytes’??? at that time… That was for futurists, not engineers.
(Please, I understand many engineers are futurists… But they don’t get paid for the future, they get paid for making it work as well as a 386 would work, on the next gen after 286’s, with Windows 3.0)
Vince
June 4th, 2008
Robert says:
32 bit refers to the number of wires that consist of the address bus(look it up, im not explaining) these wires are used to send I/O memory addresses out to the ram through the northbridge chip(look it up..),each wire can either have voltage or none, voltage representing 1’s and o’s for no voltage, using 32 different wires you can make a large sum of different combinations of 1’s and 0’s, around 4gb’s worth, hence the limit. a 64 bit processor is what ur looking for, and to utilize it well, u should get a 64 bit os(vista 64bit) but not many programs are written in 64bit yet.Hope this helps reply with your thoughts on how much this helps, and sorry for the length
June 4th, 2008
Marcin says:
I think it’s more of the motherboard limit than 32bit OS. It’s because systems like windows starting from Win 3.11 switch intel processors to protected mode, and this considerably extends memory addressing capabilities of the system to a lot more than 32bit (memory accessed this way is called virtual memory). System uses tables in memory as a place to store memory addresses and then uses built-in 32bit registers of the 32bit processor to address them. This means that these tables have to be below 4GB limit. Using this method, addresses stored in memory can have enough bits to address at least 64TB of virtual memory and so 32bit system can easly access more than 4GB of memory.
Leave a Comment