Who moved me? Memory parsing 4GB Memory unrecognized problem

Source: Internet
Author: User

Because the memory price continues to lower, the major memory manufacturers have introduced a single 2GB of DDR2 800 of memory, these memory gives the greatest feeling is the price is cheap and sufficient. Many users directly bought two 2GB of memory, want to compose dual channel use. Can take home a look, originally 4GB of memory capacity is identified only about 3.2GB. Check to see that there is no problem with the memory itself. What is it that swallowed your memory? This is one of the issues that we are going to make clear to you in this issue.

You may find a very strange phenomenon, in our Windows XP and Vista, after installing 4GB memory, the display is only about 3.2GB or less, more than 800 MB of memory "without reason" disappeared, it is very confusing, The reason why the motherboard and operating system cannot use all 4GB memory is that the 32-bit X86 architecture of the computer is the source of the problem. 32-bit X86 architecture refers to the personal computer's address bus is 32-bit, CPU, memory controller, operating system are designed according to the 32-bit address bus. 32-bit address bus can support the memory address code is 4096MB, that is, there is a 4GB address code, can be compiled 4GB address. This 4GB address code can be allocated to 4GB of memory exactly. However, this 4GB address code cannot be fully allocated to the physical memory installed on the motherboard. Because there are many devices in the PC that require address codes so that the CPU can find them based on the address code, the CPU and the devices that Exchange data need to store the data temporarily--registers that also require address codes. For example, the hard disk controller, the floppy drive controller, the PCI bus controller that manages PCI cards plugged into the PCI slots, the PCI-E bus controller and the PCI-E graphics card, both have registers that require the system to assign their address codes. These addresses are assigned by the system and are not felt by the computer user in use. In this way, when we plug the computer into a total capacity of 4GB of memory, there is a portion of memory allocated to the address code and can not be used.

To learn more about the 4GB memory puzzle, we need to figure out the relationship between the parts and the 4GB memory, which involves the CPU, memory controller (Intel platform integrated in the North Bridge, AMD platform integrated in the CPU) and the operating system. CPU can support 4GB memory : Starting from the 386 era, the CPU address bus is 32 bits, can access the address code of 4GB. From the Pentium Ⅱ to the Pentium Ⅳ, it is theoretically possible to access the 64GB address code. The Pentium Ⅳ, which later supported the 64-bit architecture, now has the Core 2, address bus has been upgraded to 64-bit, and the 64-bit address bus can access hundreds of gigabytes of address code. In fact, there are not so many address bus, generally with 42 bits enough, can encode the address amount of 4TB. A CPU compatible with 64-bit architectures is reduced to 36 bits when used on a 32-bit system address bus. So now the CPU supports 4GB of memory is no problem. address bus for memory controller : The memory controller is directly associated with the memory installed on the motherboard. The memory controller manages memory while communicating with the CPU through address bus. The address bus of the memory controller determines the number of memory address encodings that can be supported, while the address line of the memory controller's actual connected memory determines the amount of memory that can be supported. Intel puts the memory controller on the North Bridge, AMD puts the memory controller on the CPU. BIOS can support 4GB memory : BIOS is not developed by the motherboard manufacturers themselves, BIOS copyright control in the AMI and several other companies. They work with Intel and AMD to develop the BIOS. So when Intel and AMD "map" the way to solve 4GB memory problems, the AMI and other manufacturers will develop the corresponding BIOS. The "map" option is displayed in the earlier BIOS and the user can turn it on or off. It is now turned on by default and does not show this setting again. So it can be said that for the current BIOS, in support of 4GB memory is not a problem.

4GB Memory "Original sin": X86 architecture. CPU and memory controllers provide protection from hardware for using 4GB of memory. However, the 4GB memory problem has not been solved. The barrier comes from the system standard for personal computers-the 32-bit X86 architecture. As early as 8086 times, the memory is welded on the motherboard, generally also a few kilobytes of memory, IBM specifies that the 640KB address is the highest end, this address is assigned to the BIOS, followed by a section of the address assigned to the system display devices and I/O devices. The rapid development of the computer quickly exceeded 640KB memory to reach and exceed 1MB. However, 640KB below this section of the address assignment cannot be changed, because the CPU, DOS operating system are read from 640KB BIOS through 640KB display device storage address, I/O device storage address and display device, I/O device communication, exchange data. If you change, all previous computers will be voided. So you have to find a way to do this without changing the 640KB address assignment and using 640KB to 1MB of memory. That is the address allocation rule is the same, using "memory address mapping" technology, the 640KB to more than 500 KB of this section of the address mapping to 640KB-1MB space, mapping work by the BIOS is responsible. Operating system is responsible for two DOS commands Himem.sys and Emm386.sys, familiar with DOS users, will know the two commands. By mapping, you can let DOS software use more memory. Memory development to 4MB,16MB is solved by "memory mapping" technology.by now, the PC must comply with the 640KB address memory allocation rules as long as DOS is compatible. In the Pentium Ⅱ era, SDRAM memory capacity reaches 128MB. At that time, the address bus is 32 bits, the maximum address space is 4GB, then the 32-bit X86 architecture has been completely formed. In addition to preserving the previous memory address assignment rules, map the BIOS address to the top--4gb of the address space. Up to 815 times of DDR memory, 915 times of DDR2 memory. True memory single maximum capacity is 512MB, the system uses no more than 2GB of memory. So 4GB memory problems are not apparent. 945 times when 1GB of DDR2 memory appeared, the designers of the memory controller began to consider the motherboard to install 4GB memory strips. However, few users used 4GB of memory at the time, and 4GB memory problems still did not emerge. In fact, Intel in the 915 period proposed to solve the 32-bit X86 architecture hardware support 4GB memory problem. When the P965 is formally resolved, the solution is "memory address mapping". This solution is not new, the 32-bit X86 architecture of the server system has been adopted, but was transplanted to the PC. Start with the address space at the beginning of the 4GB address, map the I/O address of the PCI device, and then map the 3GB to 4GB address that the system occupies. The 3GB to 4GB address code is left to the physical memory installed on the motherboard, so you can use all the installed memory.

Why do we have to adopt a "mapping" approach? Because the memory address must be contiguous and cannot be disconnected. The address space of the system (also called the logical address) can be discontinuous. just like the house numbers on both sides of the street, the programming (equivalent to the logical address) can be planned very large and divisible. The number plate for this street house must be continuous, which is the real address, so that people can find houses by address. Of course, this "mapping" work is still done by the BIOS. To support 4GB memory, you must also have BIOS support. Using memory address remapping to return the 4GB address occupied by the system to physical memory is the rule of the 32-bit X86 architecture. AMD also uses this rule, although its memory controller is integrated within the CPU. It is also because the memory controller is integrated in the CPU, the North Bridge no longer contains the memory controller. When motherboard manufacturers develop AMD platform motherboards, they are designed to support the memory capacity of the motherboard based on market positioning. There is support for 2GB, there are 4GB, 8GB or more support. So the AMD platform 4GB problem also depends on the motherboard.

the operating system is the culprit. The operating system manages and uses physical memory, so there must also be a logical (virtual) address system within the operating system, corresponding to all storage addresses on the motherboard (including memory, I/O devices, bios), and a structure similar to "address bus". 32-bit operating system is a 32-bit address bus design, 32-bit address register, so can only manage 4GB address, remove the system is occupied, and can not fully use all 4GB memory. the PC's 32-bit operating system does not support 4GB of memory, even Vista SP1. VISTA SP1 is a little bit more progressive than XP SP3, which shows how much memory is actually installed in the system properties.

So which operating systems can support and use 4GB of memory? The first is the 64-bit operating system, because the 64-bit operating system is designed on a 64-bit address bus. such as Windows XP 64,vista 64. The second is a server operating system with physical address extensions and an address register larger than 32 bits, but some server operating systems with physical Address extensions cannot support 4GB because the address register is limited to 32 bits.

As we can see, the current motherboard chipset or memory controller is no longer the main reason for swallowing our memory. and the culprit is on the 32-bit operating system we use. Although the current Vista SP1 has been able to identify the full 4GB of memory, but the actual use of memory and the previous 3GB or so no difference. So it's still too early to talk about the popularity of 4GB memory. On the other hand, some memory manufacturers in order to avoid the occurrence of memory waste, the introduction of three 1GB memory combo set, which is a very intimate design.

Who moved me? Memory parsing 4GB Memory unrecognized problem

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.