How to set up smartphones and PCs. Informational portal
  • home
  • Iron
  • How to enable the full amount of RAM. Why can't the computer see all the RAM? PAE Mode Limitations

How to enable the full amount of RAM. Why can't the computer see all the RAM? PAE Mode Limitations

Familiar to many users. When the system properties window is called, the full amount is displayed, but after it, for some reason, it is indicated that the available memory is slightly less. It is even worse when the user knows exactly how much RAM is installed, and 50 percent or less is available. Why this happens, and how to use the maximum amount of RAM, then we will consider. But first, let's briefly dwell on the main reasons for this phenomenon.

Why isn't all RAM available?

So, the fact that Windows operating systems sometimes give indicators whose values ​​are obviously less than the total amount of installed RAM may be associated with a number of reasons, among which the most significant are the following:

  • a 32-bit system is installed that does not support more than 4 GB of memory;
  • the maximum is not supported by the motherboard;
  • in the system parameters there is a limitation on the maximum used amount of RAM;
  • BIOS settings for memory reallocation are set incorrectly;
  • memory is partially reserved for built-in video adapters;
  • Too many active processes are running;
  • the installed strips are damaged, their performance is impaired, or they are connected incorrectly;
  • memory usage is blocked by viruses.

It should be said right away that issues related to viral exposure will not be considered in detail. Here you can advise just to be on the safe side, to perform a check using portable antiviruses or similar programs that have bootloaders at their disposal.

How to use all the installed memory in the simplest ways?

Much more important issues, when not all of the RAM is available, are problems with connecting memory sticks or their incorrect operation. First, make sure that the motherboard is designed for the installed volume, and also check the tightness of the insertion of the brackets into the corresponding slots. It is also useful to perform a memory test, for which you can use the native Windows tool (mdsched) or third-party programs like Memtest86 / 86 +.

If no problems are found at this stage, pay attention to the bitness of the installed Windows modification. If you have a 32-bit version that cannot work with more than 4 GB of RAM (unless you use special tools), no matter how much memory you install in excess of this limit, the system will still not recognize it.

The best solution would be to install a 64-bit version of Windows. But in this case, the previously installed programs may not work, and important files will have to be copied to another logical partition or to removable media.

Sometimes it also happens that not all of the RAM is available due to incorrectly set memory usage options in (msconfig).

In the configurator, on the boot tab, click the advanced options button and check if the checkbox for the maximum memory is checked. If it is, remove it, save the installed options and reboot the system.

As is already clear, part of the memory can be "eaten up" by a huge number of active background processes and services that are not visible to the user. First, disable all unnecessary components at startup (in Windows 7 and below, this is done using the corresponding tab in the configuration settings, in the versions above - "Task Manager").

Just in case, view the active system components in the programs and components section and disable unused ones (Hyper-V module, Internet Explorer if you are using another browser, print service if there is no printer, etc.). Similarly, you can set the disabled startup type for some other services (services.msc), but in this case you need to know exactly what can be deactivated and what cannot.

Low RAM available: what settings can I change in BIOS?

If the problem persists after applying the above solutions, go to the settings of the primary BIOS / UEFI systems and check the memory settings, in which there should be an item containing the words Remapping or Remap.

If you have 64-bit Windows and more than 4GB of memory, set it to Disabled. Otherwise, it needs to be activated.

If not all of the RAM is available due to the reservation of additional volume for the video card built into the motherboard, set this item to a value corresponding to the adapter memory size (you can find it out on the monitor tab when calling the DirectX - dxdiag dialog). This is done by changing the automatic detection (Auto) to one of the available options (32, 64 or 128 MB).

Patching 32-bit systems

Finally, you can use all memory over 4 GB in 32-bit systems using the ReadyFor4GB utility. First, the executable EXE file of the same name is launched from the application folder, and then the Check and Apply buttons are pressed. After that, similar actions are performed for the ntkrnlpa.exe object. The AddBootMenu.cmd file is then run and the command is confirmed. After rebooting, if a menu with a bootloader appears, Windows is selected.

Note: all actions are performed exclusively with the launch of files on behalf of the administrator at your own peril and risk, since the performance of the system after applying this method is not fully guaranteed.

Hello dear readers! To our great joy, the prices for components are steadily creeping downward, and today 8 GB of RAM on a home computer is not something out of the ordinary, but a “minimum program” for an advanced gamer.

However, the user can expect an unpleasant surprise: regardless of the amount of RAM installed and the number of slots on the computer, the operating system does not see all of the RAM.

Today we will figure out why all the RAM is not used and how you can deal with it.

32-bit OS

To understand the essence of the problem, one should recall a little the history of the development of computer technology. I will not go into too much detail and will try to give a brief summary. On a PC created back in 1981, the commands to peripheral devices and access to RAM were combined. The ratio of the address space allocated for RAM and BIOS was taken as 5: 3.

With the introduction of the 80386 processor in 1985, the address separation remained unchanged for compatibility with predecessor computers. Devices using the address space have been allocated a full fourth gigabyte. At that time, such a value seemed like an exorbitant figure: Bill Gates himself, the creator of Windows, said that 640 kilobytes of RAM is enough for everyone.

This 32bit architecture became the standard by which office equipment developed over the next 20 years. In 32-bit Windows, regardless of the amount of installed memory, only 3.25 GB is available to the user - everything else is consumed by system resources. This is observed on the outdated, but in some places still used "Piggy", and on windows 7, and on windows 10.

The fact that the user can not use all the memory for his needs is eliminated on the 64bit version of Windows. You can find out the version of Windows by finding the "Computer" item in the "Start" menu, right-clicking on it and selecting "Properties".

Please note that due to the difference in architecture, an upgrade from 32-bit to 64-bit is not possible: a complete reinstallation of the operating system is required. You will also have to find 64-bit drivers for all devices.

Hardware problem

It may also happen that the computer simply does not see one of the two installed ramps. To fix the problem, you can experiment with the slots in which these bars are installed. It is often sufficient to simply swap modules or install them in different slots.

Wiping the RAM contacts with rubbing alcohol or industrial alcohol can also help. If this liquid is not at hand, you can wipe them with a regular rubber band. If the modules are not installed correctly, a diagnostic wizard will start. We'll have to put the RAM in the correct position.

Configuration settings

If a situation arises when the user did not shaman with the hardware, but part of the RAM became unavailable, it is necessary to perform the following algorithm:

  • Enter msconfig in the search bar and run the found file;
  • In the window that opens, go to the "Download" tab and select the "Advanced options" item;
  • In the next window, uncheck the "Maximum memory" box.

After saving your changes, restart your computer and check how much memory is now in use. The method works regardless of the tasks assigned to the computer - when executing a program or in a game. Usually in modern games there are no settings for how much RAM they are allowed to use, and in fact they are the same programs.

And I once again draw your attention to the fact that when assembling a computer yourself, be guided by the DDR4 standard. How and, you can find out by clicking on the link.

Today I will talk about the limitations of the Windows virtual address space and how to deal with the "Out of memory" errors that occur in 32-bit programs and games when the amount of memory used by them reaches 2 Gigabytes. There are a few easy ways to get around this limitation and force applications to use more than 2GB of memory.

X86 architecture

All modern desktop processors Intel or AMD(and not only) are based on x86 architecture that was first implemented in processors Intel 8086, released in 1978. Up to Intel 80386 (i386) the processors were 16-bit and could only use up to 16 MB of RAM. Released in 1985 i386 steel processors 32-bit, which makes it possible to address up to 4 GB RAM (up to 64 GB in PAE mode, but applications can also use only up to 4 GB).

It is clear that in those years 4 GB looked almost unattainable. But nothing stands still, and over time this turned out to be not enough. In 2003 the company AMD(yeah, no longer Intel) in their new line of processors Opteron implemented the extension x86-64(other names: AMD64, Intel64, x64, EM64T). This extension has a number of improvements: 64-bit main registers, additional registers and an expansion of the address space. The current implementation allows up to 256 TB virtual address space, with a theoretical maximum of 16 EB (ExbiByte - 2 64 bytes). Processors Intel support expansion x86-64(AMD64) from older Pentium 4 models (Prescott and later).

x86 and x64 operating systems

Applicable to OS(Operating Systems) notation used x86(in everyday life it is often referred to as x32) and x64 which are 32-bit and 64-bit, respectively. The difference is that x64 supports AMD64, making it possible to take advantage of it, while x86 does not support it (and does not use it). In practice, this gives certain features and limitations.

  • 64-bit OS requires processor with support AMD64(all modern processors from Intel or AMD)
  • A 32-bit OS can run on a processor with AMD64 support or without it (but such antiquity still needs to be found)
  • 64-bit apps work only on a 64-bit OS
  • 32-bit applications fully work both on x32 and on x64 OS, but they cannot take advantage of AMD64

At the moment, there is a gradual abandonment of x86 operating systems in favor of x64. For example, server versions of Windows starting in 2008 R2 are released only 64-bit. Microsoft often threatens to do the same for new desktop versions, but so far they have not done it.

Virtual memory limits in Windows

Each version of Windows has specific restrictions on the use of physical and virtual memory (you can see the link). And if the limitation of physical memory is associated, rather, with licensing, then with the limitations virtual everything is a little more complicated.

We are only interested in virtual memory, since it is with it that applications interact. Without going into details, virtual memory technology allows each process to have its own memory - an address space that virtually does not overlap with address spaces of other processes. That is, the application "considers" that the memory belongs only to itself and can even use more of the available amount of physical RAM, and the OS is already involved in the distribution and coordination.

And so, for 32-bit Windows, the total virtual memory limit is 4 GB (as for 32-bit processors). 64-bit are limited from 15 TB to 256 TB depending on the version. But, any edition of Windows divides the total address space into two parts: user mode(user mode) - memory available to applications and kernel mode(kernel mode) is the memory used by the system. And, if on x64 applications get 8 - 128 GB, then for x32 it is only 2 GB (actually ~ 1.7-1.8 GB). When this limit is reached, the application will generate an error and be closed, or simply "crash" without any warnings.


How memory works in Windows is described in detail in Mark Russinovich.

4GT memory setting function

There is an official "crutch" for Windows x86 that allows redistribute virtual memory, giving applications up to 3 GB while reducing system space to 1 GB. This is called 4-Gigabyte Tuning... How it looks is demonstrated in the following diagram (on the left - by default, on the right - using 4GT):


The option is enabled as follows:

For Windows XP / 2003- adding a key / 3GB in file Boot.ini


For Windows Vista / 7/8- team BCDEdit / set increaseuserva 3072 (Start> Standard (Start > Accessories), right-click on Command line (Command Prompt) – Run as administrator(Run as Administrator), enter and run the command ).


Enabling this option may lead to incorrect operation of some drivers, programs or Windows in general.

IMAGE_FILE_LARGE_ADDRESS_AWARE flag

An application will be able to use over 2 GB of virtual address space, only if it is compiled with the parameter IMAGE_FILE_LARGE_ADDRESS_AWARE... All 64-bit applications have this parameter by default (this is their essence), but 32-bit applications may or may not have it - it all depends on the programmer who set this option during compilation or did not.

This flag is what we need to force a 32 bit application to use more than 2 GB of memory. Running such a 32-bit application on Windows x32 using 4GT will give it up to 3 GB of memory (actually ~ 2.8 GB), and on Windows x64 all 4 GB.

Fortunately, set this flag for any applications can on one's own... There are several ways to do this.

Before you start make sure that the application you want to change is at the moment closed.

4GB Patch

The easiest way.

To get started, download the program from the author's website or from here:

After launch 4gb_patch.exe a standard Open File dialog box will open, where you need to specify the .EXE file that you are going to modify.

Immediately after selecting the file, a program window will appear, confirming the successful operation. Next, you can change another file (by clicking Another File) or close the program (by pressing OK).

Keep in mind that the program no reverse action, therefore, in the folder with the file being modified, it saves its backup copy with the extension .Backup.

CFF Explorer

For those who know exactly what they are doing.

CFF Explorer- free and quite powerful program for working with PE headers from the author 4 GB Patch... You can download it from the author's website.

  1. After installing and running the program, open the desired .EXE file.
  2. We pass to the point File Header.
  3. We click in the lower right corner of the table that appears (as it says - Click here).
  4. In the window that opens, put a checkmark opposite App can handle> 2gb address space.
  5. Apply and save the file.

As you can see, the program allows you to edit other parameters, has a large number of tools and even a built-in disassembler.

The reverse action is the same, with the difference that we remove.

EDITBIN.EXE

Small utility EDITBIN.EXE which is included with Microsoft Visual Studio.

The actions are as follows (run from the command line):

Expose: EDITBIN.EXE / LARGEADDRESSAWARE name.exe

Put away: EDITBIN.EXE / LARGEADDRESSAWARE: NO name.exe

The same parameter (/ LARGEADDRESSAWARE) controls memory usage for Visual Studio projects.

Conclusion

To summarize the above - in order for a 32-bit application to be able to use more than 2 GB of memory must be respected two conditions.

Updated: 13.04.2019 Published: 15.06.2018

Description

The system detects less RAM than is installed in the computer.

Or not all memory is available to the system:

Also, not all of its volume can be determined in the BIOS (more often, only half).

Cause

  1. Part of the memory is taken up by the built-in video card.
  2. Edition or bitness limit of the operating system.
  3. Software limitation.
  4. Memory reservation by the system.
  5. Defective RAM.
  6. Processor limitation.
  7. BIOS error or the need to update it.
  8. The maximum volume limit that the motherboard supports.
  9. The motherboard does not support one of the memory modules.

Solution

1. Using the built-in video card

This problem is characterized by an insignificant memory allocation for the operation of the video adapter. In this case, we will observe a slight decrease in available memory, for example:

If we want the integrated video card to consume less memory, go to BIOS / UEFI and find one of the parameters:

  • Share Memory Size
  • Onboard VGA Frame Buffer
  • Display Cache Window Size
  • On-Chip Video Window Size
  • Onboard Video Memory Size
  • Internal Graphic Mode Select
  • Integrated Graphics Share Memory

* in different versions of BIOS, they can be called differently. It is also possible that other parameters can be used - in this case, you need to study the documentation for the motherboard or use a search engine.

After we change the amount of memory reserved for the video systems needed:

2. Operating system limits

Different editions of Windows have a limitation on the maximum amount of memory used.

a) All 32-bit versions can use a maximum of 3.25 GB of RAM. This architectural limitation is the limit that a 32-bit system is capable of. The picture will be something like this:

To use more than 3 GB of memory, you need to reinstall the system to the 64-bit version.

b) Windows editions also have limitations. For example, Windows 10 Home 64 bits will allow you to use 128 GB, and Windows 10 Pro x64 - 512 GB. With Windows 7, the situation is worse - the home basic edition will only allow you to use 8 GB, and the initial one, only 2 GB.

More details in the tables:

OS Limit, GB
32-bit 64-bit
Windows 10 Home 4 128
Windows 10 Pro 4 512
Windows 8 4 128
Windows 8 Enterprise 2 512
Windows 8 Professional 4 512
Windows 7 Starter 2 2
Windows 7 Home Basic 4 8
Windows 7 Home Premium 4 16
Windows 7 Professional 4 192
Windows 7 Enterprise 4 192
Windows 7 Ultimate 4 192

If our problem is related to the revision limit, we need to update the system or reinstall it.

3. Software limitation

The limitation can be set in the system. To remove it, open the command line and enter the command msconfig- the "System Configuration" window will open (you can also use the Windows search by the window name).

In the window that opens, go to the tab and click on Extra options:

We check that there is no check mark on Maximum memory:

4. Setting up the basic I / O system

In order for the computer to use all the memory, in some cases, it may be necessary to configure the BIOS / UEFI:

5. The maximum volume supported by the motherboard

It is necessary to check what the maximum volume can be seen by the motherboard itself. To do this, you should use the instructions - it comes in the kit, and you can also download it on the manufacturer's website. Also, similar information can be found on some online stores:

6. Defective memory module

In the event of a memory failure, the system and BIOS will not display its entire volume (usually only half). For example, if 16 GB is inserted into the computer (2 strips of 8 GB each), we will see only 8.

In this case, you can try to pull out and reinsert the memory sticks (you can blow them out a little from dust). Also, the planks can be swapped. You can also try cleaning the contacts (a regular eraser will do). Some laptops or all-in-ones have a separate plug, opening which you can get to the memory modules, otherwise you need to disassemble the computer completely.

If this does not help, we perform a memory test. In the case when the test also shows part of the memory, we try to pull out both strips and insert them one by one - if the computer does not turn on with one of them, this faulty strip must be replaced, if the computer starts up with all the strips, perhaps we are dealing with a problem BIOS (step below).

7. Processor Limitations

Each processor has its own limit to support the maximum amount of RAM. You need to go to the official website of the developer and check what the maximum volume is supported by our processor.

8. Installing the driver for the chipset

Updating or reinstalling the driver may also help resolve the issue. To do this, we determine the manufacturer and model of the motherboard, go to the manufacturer's website, find a page for a specific model and download the driver for the chipset. Install the downloaded driver and restart your computer.

Also, the driver can be installed in a semi-automatic mode using the DriverHub program.

9. Problem with BIOS / UEFI

Since the BIOS / UEFI is responsible for collecting information about the computer, the problem may occur at the initial stage of turning on the PC.

First, let's try to reset the settings. To do this, disconnect the computer from the power source and take out the battery for 20 minutes (you can try it for 10 seconds for the first time). If this does not help, update the BIOS.

10. Support for the module from the motherboard

If the memory was purchased in addition, and it differs from the second strip, you need to make sure that the motherboard supports the new module.

This can be done on the official website of the motherboard manufacturer - go to the support section and find the compatibility sheet. It is necessary to find the purchased memory among the list of equipment.

11. Windows license limitation

The systems that come with computers use a strict licensing policy that restricts hardware replacement. This can lead to a situation where, when adding memory, it will not be recognized as a whole.

In this case, you need to reinstall the system. In this case, a simple reinstallation over the existing system will not help - only a complete formatting of the system partition with the installation of a new Windows.

12. Rearranging memory modules

Sometimes, rearranging memory modules by sisters helps. We just disassemble the computer, take out the modules and swap them.

13. Cleaning modules with an eraser

If the problem appeared by itself, you can try to remove the memory modules from the motherboard and clean their contacts with an eraser. Then we blow through the connectors on the motherboard and insert the memory into place.

It's clear.
I looked at the processor specification of my old computer on the intel website - it says about it:
Instruction Set 32-bit
http://ark.intel.com/products/27438/Intel-Pentium-4-Processor-2_40-GHz-512K-Cache-533-MHz-FSB

In general, I read on the internet on this topic - I came to the conclusion that in order for Windows to see and start using 4 GB of RAM, software alone is not enough. That is, even server versions of Windows that have a full-fledged PAE (and at least install any patches there) will still not be able to interact with all the memory if the chipset in the motherboard does not have additional lines for interacting with the memory. Those. in order for all this to work - in addition to software support, hardware is also needed. Here again, using the example of my old computer - there is a motherboard on the i945 chipset - the instructions for the motherboard state that memory can be installed up to 4 GB. But in reality - what do not you think of, it is still impossible to use all 4 GB there completely. We can say that the chipset is 32-bit and it will in no way be able to perceive addresses larger than 2 ^ 32 (this is 4 GB), i.e. physically, the microcircuit does not have so many cells for recording the address or whatever, there are not so many lines on the board ... And since the entire total address space (32-bit is obtained) goes not only to the RAM, but also to all devices - video, sound there, all sorts of controllers, etc. - then a certain part of the RAM remains without addresses and the system cannot interact with them. It turns out that in order to use all 4 GB of memory on a 32-bit chipset, you need to have nothing on the board except a processor, memory and a chipset - no other equipment. But why then such a system might be needed? :-)
But, for example, already on the G31 chip (it seems) there are additional 4 lines for working with memory, the address space increases to 2 ^ (32 + 4) = 2 ^ 36, that is, up to 64 GB (although there is also in fact, it turns out not 64, but 64 minus the amount of address space that the equipment will occupy).

In general, in the end it turns out that in order for Windows to interact with all memory, it is necessary that
1. Chipset mat. the board physically allowed to use the address space of more than 32 bits.
2. Chipset mat. boards knew how to do "memory mapping" - this is when memory cells with addresses that are occupied by equipment are assigned other free addresses from the space above the first 32 bits
3. The operating system was able to use this feature mate. boards (as far as I understand, the ability of the OS to use this feature of the motherboard is called PAE - Physical Address Extensions).

Well, the conclusion (why it does not work for many) is my conclusion and, perhaps, I am mistaken.
This patch, described in the article, is only the third item listed above - software. But if physically the board does not have additional lines and does not know how to do memory forwarding, then nothing can be earned.

Top related articles