How much RAM do you need for a computer? How to find out the amount of RAM: the concept of RAM, the maximum, minimum and used amount of memory, ways to view the amount of memory and step-by-step instructions.

Probably many people remember or have heard about the first, today already ancient computers, such as, for example, the ZX Spectrum? Who does not remember or forgot, then we recall that the RAM for these dinosaurs was measured in kilobytes. Yes, yes, it is in kilobytes, not even in megabytes. Now any mobile phone is many times more powerful than the ancient Spectrums Technology is advancing, time is running, and random access memory already required is not kilobytes, but gigabytes. In the future, this, of course, will not be enough, and our current most powerful computers, will also be called dinosaurs of the past. But back to our time.

Today we will talk about - How much RAM does Windows XP, 7, 8.1 and 10 support?
Let's say you want to install additional RAM lines in your computer. Suppose you had 4 GB, stuck another 4 GB. We turn on the computer, and in the properties all the same 4GB (Yes, and even then this is a rounded figure, in fact, a maximum of 3.750 GB). Why is that? Oh God!!!


Why did the same 4 GB of RAM remain? Let's deal with these questions, once and for all.

All Windows operating systems with x86 bit depth (32 bit) no matter what version, they all see only up to 4 GB. memory. You even pierce the memory of the entire computer, like a hedgehog with needles, it will only see up to 4 gigabytes. This is due to internal architectural limitations.

If you install a 64-bit operating system on your computer, then the system will see all your memory lines.

How much RAM does a different version of Windows see as much as possible

Windows XP
Windows XP x86 (32 bit): 4 GB
Windows XP x64 (64 bit): 128 GB

Windows 7
Windows 7 Starter x86 (32 bit): 2 GB
Windows 7 Home Basic x86 (32 bit): 4 GB
Windows 7 Home Premium x86 (32bit): 4 GB
Windows 7 Professional x86 (32 bit): 4 GB
Windows 7 Enterprise x86 (32 bit): 4 GB
Windows 7 Ultimate x86 (32 bit): 4 GB
Windows 7 Home Basic x64 (64 bit): 8 GB
Windows 7 Home Premium x64 (64 bit): 16 GB
Windows 7 Professional x64 (64 bit): 192 GB
Windows 7 Enterprise x64 (64 bit): 192 GB
Windows 7 Ultimate x64 (64 bit): 192 GB

Windows 8 / 8.1
Windows 8 x86 (32 bit): 4 GB
Windows 8 Professional x86 (32 bit): 4 GB
Windows 8 Enterprise x86 (32 bit): 4 GB
Windows 8 x64 (64 bit): 128 GB
Windows 8 Professional x64 (64 bit): 512 GB
Windows 8 Enterprise x64 (64 bit): 512 GB

Windows 10
Windows 10 Home x86 (32 bit): 4 GB
Windows 10 Home x64 (64 bit): 128 GB
Windows 10 Pro x86 (32 bit): 4 GB
Windows 10 Pro x64 (64 bit): 512 GB

As you can see, 64-bit editions are supported by a huge amount of RAM, but in the case of the 32-bit version, you need to be careful with the choice: often the system does not support even the indicated 4 GB.

Outcome: Maximum amount RAM that can "see" 32-bit Windows versions is 4 GB. Thus, if you have more RAM, you should install the 64-bit version to take advantage of this memory. To find out which version of Windows is installed on your computer, open the "System" item in the control panel (or click on "My Computer" right click mouse and select "Properties").

Maximum RAM for Windows 7 x86 (32 bit): Windows 7 Ultimate - 4 GB

Windows 7 Enterprise - 4 GB
Windows 7 Professional - 4 GB
Windows 7 Home Premium - 4 GB
Windows 7 Home Basic - 4 GB
Windows 7 Starter - 2 GB

Maximum RAM for Windows 7 x64: Windows 7 Ultimate - 192 GB
Windows 7 Enterprise - 192 GB
Windows 7 Professional - 192 GB
Windows 7 Home Premium - 16 GB
Windows 7 Home Basic - 8 GB
Windows 7 Starter - 2 GB In other words, the maximum amount of RAM depends on the bit depth and on the version. The maximum amount of RAM for other versions of Windows can be found here:
http://msdn.microsoft.com/en-us/library/aa366778.aspx Why is the system available less memory, what is actually installed in the system unit? This is due to the fact that part of the address space (starting from the end of the 4th gigabyte in the opposite direction and a small part from the beginning of the 1st gigabyte) is reserved for addressing the memory of the video card and other devices. Therefore, if you have more than 3 GB of RAM, not all of it can be used by the operating system. In the system properties it will look like this:How to let the system use all installed memory?

This can be done using the Memory Remapping function. Most BIOSes allow it to be enabled. In this case, device addresses are transferred from the first 4 gigabytes beyond the amount of RAM installed in the system.

How to optimize RAM for maximum RAM in windowsoiws?

The most obvious way to improve computer performance is to close unnecessary programs. The second is to install more RAM sticks (boards) so that programs “feel more at ease” and work faster. Other ways to speed up the computer, directly related to RAM, No.

I repeat once again: memory optimizers - nonsense in order to make money on gullible users. The same stupidity is the adjustment " hidden settings memory" in Windows, since everything is already configured most optimally after testing on a large number of computers.

So what is the maximum amount of RAM in modern operating systems? The answer is not simple - free memory allocated for cache. This is mainly due to the SuperFetch function.Programs run faster thanks to the cachesince instead of accessing the hard disk, data is loaded from RAM (see the picture above, the difference in speed work hard disk and RAM is written in bold). If some the program needs more RAM - cacheinstantlywill reduce its size, giving way to its place.

The maximum amount of RAM in Windows.

The Internet is literally littered with users' arguments about why 3.5 GB of RAM is available in bit Windows instead of, for example, the installed 4 GB. Many theories, myths, legends were invented. For example, they believe that this is a limitation made by Microsoft, which can be removed. In fact, this is partly true - there are indeed forced restrictions. You just can't take them off. This is due to the fact that on 32-bit systems, drivers and programs can become unstable when the system uses more than four gigabytes of RAM. For 64-bit Windows drivers they test very carefully to ensure that there is no such instability, so the aforementioned limitation is not there.

How much memory can a 32 bit operating system use

First, a little theory.
The simplest element of information is a bit. It is the minimum unit of information and can take the value 0 or 1. It is followed by a byte and consists of 8 bits. Since a bit can take on 2 values, there are 2 8 =256 byte values ​​in total.

Now consider memory addressing. Any computer has random access memory (RAM) - the address space required to store data used in this moment. To obtain information from RAM, the processor must first select the address of the desired bit, which is stored in one of the memory chips, and only then read it. This process is called memory addressing. One of the properties of computer architecture is the number of bits used in memory addressing.

32-bit operating systems use 2 32 bits to address memory, which is 4294967296 bits or 4 gigabytes (GB). This means that the maximum amount of memory that a 32-bit operating system can access is 4 GB. However, we will not be able to use even this volume to the full, since the components operating system and devices require a dedicated address space within the first 32 bits (4 GB) of RAM. For example, a video card with 512 MB of memory will require synchronization of this memory with the RAM, which will reduce the available capacity by 512 MB.

Thus, the total amount of memory available in 32-bit Windows is usually 3.25-3.75 GB, depending on the hardware used.

Some versions of Windows support a feature called Physical Address Extension (PAE), allowing the use of more than 4 GB of memory thanks to a special redirection technology. This technology allows the processor to work not with 32-bit, but with 36-bit addressing, theoretically expanding the available addresses to 2 36 = 68719476736 bytes (64 GB). At the same time, the address space itself remains 32-bit, that is, equal to 4 GB, but due to the changed mapping to it physical memory it becomes possible to use a larger volume.

According to official information from Microsoft, PAE mode can be used on the following 32-bit operating systems:

  • Microsoft Windows Server 2000 Enterprise/Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise/Datacenter Edition
  • Microsoft Windows Server 2008 Enterprise/Datacenter Edition

In Server 2008, PAE is enabled by default if DEP (Data Execution Prevention) technology is enabled on the server at the hardware level, or the server has hot-add memory capability. Otherwise, PAE must be forced to be enabled using BCDEdit, with the following command:

BCDEdit /set [(ID)] pae ForceEnabled

To enable PAE in Server 2000\2003, you must specify the key in the Boot.ini file /PAE. Here is an example of a Boot.ini file containing a PAE key:


timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=″Windows Server 2003, Enterprise″ /fastdetect /PAE

It is worth noting that the ability to use the PAE mode for client operating systems was implemented in the second service pack for Windows XP. However, during testing, it turned out that a large number of failures occur when using this mode. The fact is that the drivers of some devices, mainly such as audio and video, are hard-coded to work with memory addresses within 4GB. They truncate all addresses above this amount, which leads to memory corruption with all the attendant consequences. Since, as a rule, servers are not used similar devices, then there were no such problems with server systems.

In connection with the identified shortcomings, it was decided to remove the ability to work with memory over 4GB from 32-bit client systems, although this is theoretically possible. Therefore, in client operating systems of the family Windows given although the technology is present, it is not activated at the kernel level, and an attempt to use it will lead to nothing.

Summing up, I will say that if there is a need for more than 4GB of memory, then the best option is to use a 64-bit OS, because it has a memory limit of up to 192 GB for desktop and 2 TB for server OS.

My respects, dear site visitors. In a previous article, I wrote about . Now, having learned what it is and why and how it serves, many of you are probably thinking about getting a more powerful and productive RAM for your computer. After all, increasing computer performance with the help of additional memory RAM is the simplest and cheapest (unlike a video card, for example) method of upgrading your pet.

And ... Here you are standing at the showcase with packages of RAM. There are many and they are all different. Questions arise: And what RAM to choose?How to choose the right RAM and not miscalculate?What if I buy a RAM, and then it will not work? These are perfectly reasonable questions. In this article, I will try to answer all these questions. As you already understood, this article will take its rightful place in the series of articles in which I wrote about how to choose the right individual computer components i.e. iron. If you haven't forgotten, the articles included:



This cycle will continue further, and at the end you will be able to assemble a perfect super computer for yourself in every sense 🙂 (if finances allow, of course :))
In the meantime learning how to choose the right RAM for your computer.
Go!

RAM and its main characteristics.

When choosing RAM for your computer, you must definitely build on your motherboard and processor, because RAM modules are installed on the motherboard and it also supports certain types of RAM. Thus, there is a relationship between motherboard, processor and RAM.

Find out about What RAM does your motherboard and processor support? you can visit the manufacturer's website, where you need to find the model of your motherboard, as well as find out which processors and RAM it supports for them. If this is not done, it will turn out that you bought a super modern RAM, but it is not compatible with your motherboard and will gather dust somewhere in your closet. Now let's go directly to the main technical characteristics of RAM, which will serve as a kind of criteria when choosing RAM. These include:

Here I have listed the main characteristics of RAM, which you should pay attention to first of all when buying it. Now let's open each of them in turn.

RAM type.

Today, the most preferred type of memory in the world are memory modules. DDR(double data rate). They differ in time of release and of course technical parameters.

  • DDR or DDR SDRAM(translated from English. Double Data Rate Synchronous Dynamic Random Access Memory - synchronous dynamic memory with random access and double the data transfer rate). Modules of this type have 184 contacts on the bar, are powered by a voltage of 2.5 V and have a clock frequency of up to 400 megahertz. This type RAM is already obsolete and is used only in old motherboards.
  • DDR2- a type of memory that is widely used at this time. Has on printed circuit board 240 contacts (120 on each side). Consumption, unlike DDR1, is reduced to 1.8 V. The clock frequency ranges from 400 MHz to 800 MHz.
  • DDR3- the leader in performance at the time of this writing. It is no less common than DDR2 and consumes 30-40% less voltage than its predecessor (1.5 V). Has a clock frequency up to 1800 MHz.
  • DDR4- new, great modern type RAM, which is ahead of its counterparts both in terms of performance (clock frequency) and voltage consumption (which means it has less heat dissipation). Announced support for frequencies from 2133 to 4266 MHz. At the moment, these modules have not yet entered mass production (they promise to release them into mass production in mid-2012). Officially, fourth-generation modules operating in the DDR4-2133 at a voltage of 1.2 V were presented at CES by Samsung on January 04, 2011.

The amount of RAM.

I will not write much about the amount of memory. Let me just say that it is in this case that size matters 🙂
All a few years ago, 256-512 MB of RAM satisfied all the needs of even cool gaming computers. At present, for normal functioning, only the operating windows systems 7 requires 1 GB of memory, not to mention applications and games. There will never be an extra RAM, but I'll tell you a secret that 32-bit windows uses only 3.25 GB of RAM, even if you install all 8 GB of RAM. You can read more about this.

The dimensions of the slats or the so-called Form Factor.

Form-factor- these are the standard sizes of RAM modules, the type of design of the RAM strips themselves.
DIMM(Dual InLine Memory Module - double-sided type of modules with contacts on both sides) - mainly designed for desktop stationary computers, and SODIMM used in laptops.

Clock frequency.

This is a pretty important technical parameter of RAM. But the motherboard also has a clock frequency, and it is important to know the operating bus frequency of this board, since if you bought, for example, a RAM module DDR3-1800, and the slot (connector) of the motherboard supports the maximum clock frequency DDR3-1600, then the RAM module as a result will operate at a clock frequency of 1600 MHz. In this case, all sorts of failures, errors in the operation of the system and are possible.

Note: Memory bus speed and processor speed are completely different concepts.

From the above tables, you can understand that the bus frequency, multiplied by 2, gives the effective memory frequency (indicated in the “chip” column), i.e. gives us the data transfer rate. The title tells us the same. DDR(Double Data Rate) - which means double the data rate.
For clarity, I will give an example of decoding in the name of the RAM module - Kingston/PC2-9600/DDR3(DIMM)/2Gb/1200MHz, Where:
— Kingston- manufacturer;
— PC2-9600— the name of the module and its throughput;
- DDR3(DIMM)- type of memory (form factor in which the module is made);
— 2GB is the volume of the module;
- 1200MHz— effective frequency, 1200 MHz.

throughput.

Bandwidth- a characteristic of memory, on which the performance of the system depends. It is expressed as the product of the system bus frequency and the amount of data transmitted per clock cycle. Bandwidth (peak data rate) is a composite measure of the capability RAM, it takes into account baud rate, bus width and the number of memory channels. The frequency indicates the potential of the memory bus per clock - at a higher frequency, more data can be transferred.
The peak indicator is calculated by the formula: B=f*c, Where:
B is the bandwidth, f is the transmission frequency, c is the bus width. If you use two channels for data transmission, we multiply everything received by 2. To get a figure in bytes / s, you need to divide the result by 8 (because there are 8 bits in 1 byte).
For better performance memory bus bandwidth And processor bus bandwidth must match. For example, for a processor intel core 2 duo E6850 with 1333 MHz system bus and 10600 Mb/s bandwidth, you can install two modules with 5300 Mb/s bandwidth each (PC2-5300), in total they will have throughput system bus (FSB) equal to 10600 Mb / s.
Bus frequency and bandwidth are denoted as follows: " DDR2-XXXX" And " PC2-YYYY". Here "XXXX" indicates the effective memory frequency, and "YYYY" indicates the peak bandwidth.

Timings (latency).

Timings (or latency) are the time delays of the signal, which, in technical specification RAM is written as 2-2-2 " or " 3-3-3 " etc. Each digit here expresses a parameter. In order, it's always CAS Latency” (cycle time), “ RAS to CAS Delay" (time full access) And " RAS Precharge Time» (precharge time).

Note

So that you can better understand the concept of timings, imagine a book, it will be our RAM, which we access. Information (data) in a book (RAM) is divided into chapters, and chapters consist of pages, which in turn contain tables with cells (like in Excel tables). Each cell with data on the page has its own vertical (columns) and horizontal (rows) coordinates. The RAS (Raw Address Strobe) signal is used to select a row, and the CAS (Column Address Strobe) signal is used to read a word (data) from the selected row (i.e., to select a column). Full cycle reading begins with the opening of the "page" and ends with its closing and reloading, because. otherwise, the cells will be discharged and the data will be lost. This is how the algorithm for reading data from memory looks like:

  1. the selected "page" is activated by the RAS signal;
  2. data from the selected row on the page is transmitted to the amplifier, and the data transfer requires a delay (called RAS-to-CAS);
  3. a CAS signal is given to select (column) a word from that row;
  4. data is transferred to the bus (from where it goes to the memory controller), while there is also a delay (CAS Latency);
  5. the next word goes already without a delay, since it is contained in the prepared line;
  6. after the row access is completed, the page is closed, the data is returned to the cells, and the page is recharged (the delay is called RAS Precharge ).

Each digit in the designation indicates how many bus cycles the signal will be delayed. Timings are measured in nano-seconds. The numbers can have values ​​from 2 to 9 . But sometimes a fourth one is added to these three parameters (for example: 2-3-3-8 ), called " DRAM Cycle Time Tras/Trc” (characterizes the performance of the entire memory chip as a whole).
It happens that sometimes a cunning manufacturer indicates only one value in the characteristics of the RAM, for example " CL2” (CAS Latency), the first timing is equal to two cycles. But the first parameter does not have to be equal to all timings, and may be less than others, so keep this in mind and do not fall for the manufacturer's marketing ploy.
An example to illustrate the impact of timings on performance: a system with 100 MHz memory with 2-2-2 timings has approximately the same performance as the same system at 112 MHz, but with 3-3-3 delays. In other words, depending on latency, the performance difference can be as high as 10%.
So, when choosing, it is better to buy memory with the lowest timings, and if you want to add a module to an already installed one, then the timings of the purchased memory must match the timings of the installed memory.

Memory modes.

RAM can work in several modes, unless of course such modes are supported by the motherboard. This single channel, two-channel, three-channel and even four-channel modes. Therefore, when choosing RAM, you should pay attention to this parameter of the modules.
Theoretically, the speed of the memory subsystem in the dual-channel mode increases by 2 times, in the three-channel mode - by 3 times, respectively, etc., but in practice, in the dual-channel mode, the performance increase, in contrast to the single-channel mode, is 10-70%.
Let's take a closer look at the types of modes:

  • Single channel mode(single-channel or asymmetric) - this mode is enabled when only one memory module is installed in the system or all modules differ from each other in terms of memory size, frequency of operation, or manufacturer. It does not matter in which slots and which memory to install. All memory will run at the speed of the slowest memory installed.
  • dual mode(dual-channel or symmetrical) - the same amount of RAM is installed in each channel (and theoretically there is a doubling top speed data transmission). In dual-channel mode, memory modules work in pairs 1st with 3rd and 2nd with 4th.
  • Triple Mode(three-channel) - the same amount of RAM is installed in each of the three channels. Modules are selected by speed and volume. To enable this mode, modules must be installed in slots 1, 3, and 5/or 2, 4, and 6. In practice, by the way, this mode is not always more productive than dual-channel, and sometimes even loses to it in data transfer speed.
  • Flex Mode(flexible) - allows you to increase the performance of RAM when installing two modules of different sizes, but the same frequency. As in the dual-channel mode, memory boards are installed in the same-named connectors of different channels.

Usually the most common option is dual-channel memory mode.
To work in multichannel modes, there are special sets of memory modules - the so-called Kit memory(Kit-set) - this kit includes two (three) modules, from the same manufacturer, with the same frequency, timings and memory type.
Appearance of KIT-sets:
for dual channel mode

for 3-channel mode

But the most important thing is that such modules are carefully selected and tested by the manufacturer to work in pairs (triples) in two- (three-) channel modes and do not imply any surprises in operation and configuration.

Module manufacturer.

Now on the market RAM well-established manufacturers such as: Hynix, amsung, Corsair, Kingmax, Transcend, Kingston, OCZ
Each company has its own for each product. marking number, by which, if you decipher it correctly, you can learn a lot for yourself useful information about the product. For example, let's try to decipher the module marking Kingston families ValueRAM(see image):

Decryption:

  • KVR– Kingston ValueRAM i.e. manufacturer
  • 1066/1333 – operating/effective frequency (Mhz)
  • D3- type of memory (DDR3)
  • D (Dual) - rank / rank. A two-rank module is two logic modules soldered on the same physical channel and using the same physical channel in turn (required to achieve the maximum amount of RAM with a limited number of slots)
  • 4 – 4 DRAM memory chips
  • R-Registered, indicates stable operation without failures and errors for as long as possible a continuous period of time
  • 7 – signal delay (CAS=7 )
  • S– temperature sensor on the module
  • K2- a set (kit) of two modules
  • 4G- the total volume of the whale (both bars) is 4 GB.

I will give another example of marking CM2X1024-6400C5:
It can be seen from the label that this DDR2 module volume 1024 MB standard PC2-6400 and delays CL=5.
Stamps OCZ, Kingston And Corsair recommended for overclocking, i.e. have overclocking potential. They will be with small timings and margin clock frequency, plus everything they are equipped with radiators, and some even coolers to remove heat, because. during acceleration, the amount of heat increases significantly. The price for them will naturally be much higher.
I advise you not to forget about fakes (there are a lot of them on the shelves) and buy RAM modules only in serious stores that will give you a guarantee.

Finally:
That's all. With the help of this article, I think you will not be mistaken when choosing RAM for your computer. Now you can choose the right operator for the system and improve its performance without any problems. Well, for those who buy RAM (or have already bought it), I will dedicate the next article, in which I will describe in detail how to properly install RAM into the system. Do not miss…

The maximum amount of RAM that 32-bit systems support

Let's ask ourselves the question: can 32-bit systems work with physical memory greater than 4 GB in principle, and if so, how.

The main thing to do at the very beginning is to clearly distinguish between three concepts:

Processor properties;
32-bit operating system;
32-bit application (program)
The last two are very often mixed into one heap, which in this case should not be done. Let's start in order and from afar - let's make a short historical digression.

Let's turn to the table of the main characteristics of popular processors from Intel:

We need this table in order to clearly show the fact that the bit width of the address bus did not always coincide with the bit width of the processor architecture.
First, let's look at 16-bit processors. If they had a 16-bit address bus, then maximum size of physical memory available to them would be only 64 KB (2 to the power of 16 equals 65536). However, Intel 8086 could already work with memory up to 1 MB, and 80286 already up to 16 MB thanks to 20 and, accordingly, 24 bits of the address bus.
The era of x86 compatible processors with 32-bit registers and 4 GB of RAM began with the Intel 80386 back in 1985. For the next 10 years, 32-bit x86 processors were not physically able to work with more than 4 GB of memory.
In 1995 it was introduced Intel processor Pentium Pro. Along with a completely new core architecture, this processor received a 36-bit address bus, which, as it is not difficult to calculate, increased the maximum size of physical memory available to it to 64 GB (in modern 64-bit processors, 37 bits are used, which increases the limit of addressable physical memory to 128 GB).
In addition, the processor implemented a "tricky" memory management mechanism that mapped physical memory located beyond 4 GB to 32-bit virtual memory in the range of 0 - 4 GB, thus "fooling" 32-bit applications. This mode of memory management by the x86 processor is called PAE (Physical Address Extension - physical address extension).
Pentium Pro was positioned at that time as a processor for servers and workstations. Indeed, it was not easy to imagine a desktop computer in 1995 with not only more, but even remotely approaching 4 GB of RAM. Memory was then measured in megabytes. For example, in 1998, 32MB of RAM in a typical desktop computer was not considered small. And such a memory bar cost from $ 60. And in our time (2014), computers with less than 4 GB of memory are in full swing. For work office applications in conjunction with Windows XP, there is even a lot of this amount of memory. In addition, the Pentium Pro processor was very expensive and had performance issues when running popular 16-bit applications at the time.
We can say that such a solution was new for 32-bit processors, however, due to the fact that this practice was previously widely used in 16-bit processors, it can hardly be called revolutionary. Indeed, since the days of DOS, the trick with segment addressing has been widely used when all memory was divided into 64KB segments and the address consisted of two parts: a segment and an offset within the segment, thus it was possible to use more than 64KB of memory.
Not all, but the vast majority of modern x86 desktop processors are 64-bit and have PAE support. Thanks to this, they not only can work with memory more than 4 GB, but also provide such an opportunity to 32-bit operating systems.

The easiest way to determine the support for PAE mode by the processor turned out to be in Linux. On Ubuntu, or any of its many clones, you can type in the terminal:
grep -color=always -i PAE /proc/cpuinfo
The result should be something like this:

32-bit operating systems

Microsoft's first 32-bit operating system was Windows NT 3.1, released in 1993. It was intended for the corporate sector, that is, for servers and workstations. Two years later, in 1995, Windows 95 appeared, an operating system for desktops and laptops. Between these two events, version 1.0 of the Linux kernel was introduced in 1994. The 32-bit architecture turned out to be so successful and "sufficient" that it has been widely used until now for the past 2 decades. Microsoft's latest 32-bit server operating system was Windows Server 2008. However, latest Windows 8 is still offered in two variants. For implementation additional features physical address expansion mode, in addition to having an appropriate processor and motherboard with an adequate chipset and the required number of routed address lines, PAE support is required directly by the operating system itself.
If you're running 32-bit Linux, you won't have any problems using more than 4 GB of memory. On operating systems Linux support PAE appeared in 1999 in kernel 2.3.23 and has been used without any restrictions since then.

Let's look at the table of maximum supported physical memory sizes, taken from a 2005 article in msdn.microsoft.com, for Windows 2000, Windows XP and Windows Server 2003 >

As you can see from this table, PAE mode is supported in all versions of Microsoft OS since Windows 2000. Variations in maximum memory sizes in different versions of server operating systems are explained solely by their positioning in the market by Microsoft. This is probably the easiest way to explain their different prices. Of particular interest to us are the rows in the table, which directly indicate that in all versions of Windows XP the total address space of physical memory is limited to 4 GB. It is artificially limited in the kernel, since there is support for PAE.
PAE mode can be enabled or disabled. Starting with Windows XP SP2, PAE is forced to be enabled to enable DEP (Data Execution Prevention) security technology.

DEP is a technology that allows you to protect the operating system from a large class of malicious code, which is initially embedded in the memory area allocated for data and disguises itself as data, and then tries to start from it. DEP technology blocks such execution of malicious code. The technology is implemented both in software and in hardware. In the latter case, the processor marks individual memory pages as not containing executable code by changing the high bit in the PTE (Page Table Entry) address table. virtual memory, and then intercepts and prevents executable code from running from those pages.

32-bit applications
Thanks to the processor's memory manager, which allocates memory in PAE mode, regardless of the operation of applications, and the support for this mode of operation by the operating system, 32-bit applications are separated from physical memory and have no knowledge of its actual size. Each application, because they retain a 32-bit address space, still only has 4 GB of virtual memory available. In Windows, exactly half of these 4 GB is given to the needs of the application itself, in Linux - 3 GB. On Windows, it is possible to force 3 GB to be given to an application, but in most cases this is not practical.
It should be kept in mind that turning on the PAE mode is by no means equivalent to switching to a 64-bit system, in which each application is allocated an incomparably larger amount of memory. If at the expense of PAE we try to directly satisfy the exorbitant appetite of a certain modern application, for example, an engineering or graphic modeling package, then nothing good will come of it. But if you need to simultaneously run several memory-demanding (but not super-demanding) applications, then the benefits of PAE will be direct. First of all it concerns servers.
For example, two virtual machines are required to run simultaneously, each with 2 GB of memory. What will happen without PAE is clear - the second virtual machine, most likely, simply will not start, or the system will start such an intensive exchange with the swap file that the process will go into the category of "step-by-step strategy". With PAE enabled, assuming enough physical RAM on the host machine, both virtual machines can work safely.
The disadvantages of PAE usually include a possible decrease in system performance due to a decrease in the speed of memory access associated with additional operations to switch the displayed memory pages, and the poor performance of some device drivers in a 36-bit address space.

Maximum amounts of physical memory supported by different versions of Windows

Let's see how much RAM is supported by other versions of Windows released after XP.

Versions Windows Vista x86 compared to XP, almost nothing has changed.

As you can see, again no changes - the absolute limit for x86 remained at 4 GB. 1 GB in Windows Vista Starter and 2 GB in Windows 7 Starter only reinforce the conclusion that these limits are artificial.

Same for Windows 8

As can be seen from the presented table, nothing has changed in terms of memory limits in Windows 8 either. It's a pity, they could probably remove the restriction, or at least push it back.

And now is the time to consider reasons why Microsoft limits the upper limit of available physical memory in client versions of Windows x86.

One of the main reasons- Windows XP Security Issues.

Windows XP was released in the fall of 2001 and in a very short time has gained immense popularity among users around the world. And, as you know, where there is great popularity, there are big problems. Instantly, a huge amount of malicious code was created for it in the form of various and numerous viruses. At the same time, it turned out that the new operating system has a number of vulnerabilities and a very low resistance to hacking. At that time, Microsoft did not have its own full-fledged client anti-virus package. The situation has been largely corrected. software products third-party developers, however, this was clearly not enough and, in general, the situation remained very tense.
In order to somehow increase Windows security XP, in 2004 the second service pack was released - SP2. And then there were problems. One of the main features of this package, in terms of security, was the inclusion of DEP (Data Execution Prevention) technology. This technology, which is widely used today, makes it possible to repel a whole class of malicious attacks by prohibiting the launch of executable code from pages of memory that are not intended for this. But for DEP to work, PAE (Physical Address Extension) support must be enabled. Enabling PAE mode changes the mechanism for accessing pages of RAM and makes it possible to work with physical memory larger than 4 GB. However, when preparing and testing Windows XP with the second service pack, big problems were discovered that led to fatal errors and crashes in the operating system. Very quickly, the causes of the troubles were found. They turned out to be device drivers written without taking into account the possibility of their operation in PAE mode.

A small digression.
In PAE mode, any memory page of the 32-bit application virtual address space can actually be located anywhere in the available physical memory. This circumstance does not affect ordinary applications in any way, they do not care. But for device drivers, everything is much worse - they then need to work with specific physical addresses, and not with virtual ones. Conditionally, the situation can be represented as follows:

The driver tries to read or write some information to the addresses that are assigned to work with the device. If the driver is “stupid”, does not understand in what environment it works and cannot “negotiate” with the operating system, then, as shown in the figure, instead of the input / output ports of its device, it will begin to communicate with some physical memory cells. The result of such “communication” for the operation of the system is unpredictable, up to a complete “freeze” and reboot.

In order to solve this problem and not block users from installing SP2 due to possible problems, Microsoft made a commander's decision - to enable PAE, but it is trivial to limit the upper limit of the available RAM of client versions of its operating system to 4 GB. In this case, the addresses are translated one-to-one as in the “classic” 32-bit system, and the “stupid” unfinished device drivers work successfully.
Well, cheap and cheerful. Cheap because hardware manufacturers did not have to rush to order the development of the “correct” drivers. Angrily, because the problems with the use of the physical memory of the computer, which were postponed in this way for the time being, were shifted to the end user.
Many gigabytes have already flown away since the release of SP2 for XP, and Windows still does not see more than 4 GB of RAM and, as we saw in the “Physical Memory Limits: Windows 8” table, no changes are expected in this regard.
And this is not entirely clear: for Windows Vista, we still had to write new drivers, which means that it was possible to rewrite them correctly to work with PAE, but the 4 GB limit remained.
Today it is already very difficult to imagine 32-bit drivers that cannot handle more than 4 GB of memory. Perhaps the reason is that Microsoft wants to push users to switch to x64 in this way?

But what about server versions of Windows?
It can be assumed that device drivers for them were immediately developed taking into account work in PAE mode, that is, they were “smart” and thoroughly tested. This was also facilitated by the fact that server hardware configurations did not have such a "menagerie" of built-in devices.
Until recently, for example, before the advent of workplace virtualization technology, which, among other things, suggests the possibility of processing graphics by the server itself, the latter did not need a serious video card at all, since the video built into the motherboard. Also, 32-bit server versions of Windows ended their history with Windows Server 2008.

In the second part, the secrets of memory allocation in 32-bit Windows and how to deal with the limitation.



Loading...
Top