Computer RAM

Оперативная память компьютера

So, the computer's RAM, which is also called volatile. It is also a DRAM (Dynamic Random Access Memory) - dynamic random access memory or random access memory, abbreviated to RAM.

Let's see why she is so called? While the computer is running, all data and programs that are running while the user is working are stored in the RAM. The word "volatile" with respect to memory means only that when the power supply of the system unit (shutdown) is turned off, the computer's operating memory is reset. Disappears all its contents.

There is also a non-volatile memory - this is the hard drive of your computer, because the data on it is stored even after the power is turned off.

"Dynamic memory with random access": access (access) to its different cells occurs in an arbitrary order and at different times, hence the definition. But with the word "dynamic" the situation is more complicated. Let's understand!

The smallest unit of the computer's RAM structure is a cell. An array of closely spaced cells is combined into conditional rectangular tables, which are called matrices. The horizontal rulers of such a matrix are called rows, and vertical bars. The entire rectangle of the matrix is ​​called a "page", and the totality of pages is called a bank. All these things are a bit virtual, in the sense that, for example, a "bank" can be called as a whole DIMM module, or a separate part of it (memory chips located on one side of it).

In any case, the diagram of the structure of the computer's RAM (its fragment) can be seen in the picture below:

The scheme of the structure of operative memory The scheme of the structure of operative memory

As we have already said, the smallest unit on the physical level is a cell. The cell consists of one micro-capacitor (in the diagram above is designated as C) and three transistors (VT). The capacitor stores a small charge, and the transistors act as "keys", which, on the one hand, do not give the capacitor charge spontaneously to drain, and on the other hand, allow / prohibit access to the capacitor for reading or changing.

Each capacitor can store the smallest unit of information - one bit of data. If the capacitor is charged, then, according to the binary number system used in computers, it is a logical "unit", if there is no charge - a logical "zero" and no data.

In theory, the scheme of operating memory is beautiful, but there are no ideal solutions, and in practice, developers have to face the fact that the charge from the capacitor leaves quickly enough or its partial spontaneous discharge occurs (it does not save the situation and the "keys"), output, how to periodically recharge it. How often? A few dozen times a second! And this despite the fact that such capacitors in a single memory chip - a few million!

As a result, the state of all memory must be constantly read and updated again in a short time (otherwise all its data will simply disappear). That's why it was called "dynamic", it meant its dynamic automatic update or regeneration. In the photo above we can see its special blocks, which are responsible for this function.

It should also be taken into account that the process of reading in DRAM is destructive: after accessing any cell, its capacitor is discharged and to not lose the data contained in it, the capacitor must be recharged. The second "surprise" is that, due to design features, the row / column address decoder instructs to read not just one specific cell, but the whole row (or column) at once. The read data is fully stored in the data buffer and then the applications requested by the application are selected from them. After that, immediately need to recharge a number of cells!

Although it may seem that the process of regeneration (renewal) is somewhat chaotic, but it is not. The memory controller at regular intervals takes a strictly regulated technological pause and at this time conducts a full cycle of regeneration of all data.

Once I read a good phrase: "Dynamic memory can be compared to a leaky bucket. If it is not constantly replenished, then all the water will flow out! "Something similar is happening in the situation with DRAM. Naturally, all these additional commands and charge-discharge cycles lead to additional delays in operation and are not a sign of high efficiency of the final product. So why can not you think of something more effective? Can! And it has already been invented - static memory with random access (SRAM - Static Random Access Memory).

Static memory is much faster than dynamic memory by switching triggers and does not need to be regenerated. It is successfully used in the construction of CPU caches and in the buffer buffers of discrete graphics cards . Is it possible to organize on the basis of SRAM the main system memory of the computer? It is possible, but because of the complexity of the design it will cost much more and manufacturers simply do not benefit from it :)

I think it's logical, if we consider the RAM type DIMM. The abbreviation stands for "Dual In-Line Memory Module", namely such cards are used up to the present day in personal computers.

The memory of the standard DIMM in the late 90s of the last century replaced the previous standard SIMM (Single In-Line Memory Module). In fact, the DIMM is a printed circuit board with contact pads on it. This is a kind of basis: the memory chips and other electrical "strapping" by the manufacturer are added only afterwards.

The main difference between DIMM and SIMM, apart from the dimensions, is that in the new standard, the electrical contacts on the module are located on both sides and are independent, and in the SIMM they are located only on one side (there are also two, but there they are simply looped and transmit, in fact, the same signal). The DIMM standard is also capable of implementing a function such as detecting and correcting errors with parity check (ECC), but more about this below.

The computer's working memory is the place where the central processor saves all the intermediate results of its calculations and work, taking them back as needed for further processing. You can say that RAM is the working area for the CPU of the computer.

RAM services are also enjoyed with pleasure and video cards (if they do not have enough to accommodate their volume data). Built-in video of its own does not have any and does not hesitate to use the operative.

Let's look at what ordinary DIMMs look like:

Computer RAM Computer RAM

Operative memory of the computer is a multilayer plate of textolite (in the photo - green and red, respectively). The printed circuit board (PCB) is a substrate with printed parts on it. Soldered into it a certain number of memory chips (in the photo - four on each side) and a connector that plugs into the corresponding slot on the motherboard .

The module's connector, in fact, determines the type of our DRAM (SDRAM, DDR, DDR2, DDR3, etc.). Look closely and you will see that in the photo the connector is divided in half by a small cut (it is called a "key"). It is this "key" that does not allow you to insert the memory module into an incompatible connector on the motherboard. Important: the "keys" on the module and on the board must match perfectly. This is protection against improper installation on the board.

The diagram below shows the location of the "keys" for different types of modules:

Locating the keys on the RAM Locating the keys on the RAM

As you can see, the length of all modules is the same. Outwardly the only difference is in the number of pads on the connector and the location of the "keys".

Now let's briefly review the most common types of RAM. Different generations of it:

  • SDRAM - (Synchronous Dynamic Random Access Memory - synchronous random access memory). Module with 168 mu pin (s), powered by 3.3 Volts (V).
  • DDR - (Double Data Rate - twice the data rate). It allows (in contrast to SDRAM) to make a selection (or transmit data) twice per clock cycle of the memory bus. The module has 184 contacts, its supply voltage is 2.6 V. With the advent of DDR memory, the previous generation of memory began to be called SDR SDRAM (Single Data Rate DRAM).
  • DDR2 is the next generation of chips. It allows for one clock cycle to transfer 4 bits of information (two sets of data) from the cells of the memory chips to the I / O buffers. A printed circuit board with 240 contacts (120 on each side). Its supply voltage is 1.8 V.
  • DDR3 is the next generation, capable of sampling 8 data bits, 240 contacts and a supply voltage of 1.5 Volts per clock cycle. At the same time, the power consumption of DDR3 memory is 40% smaller than that of DDR2, which is quite important when used with mobile devices (laptops). Reduction of power consumption is achieved due to the transition to a more "thin" technological process (90-65-50-40 nanometers).
  • DDR4 - appeared on the market in 2014th year. The evolution of DDR3 (undervoltage (1.2V), slightly more contacts - 288, slightly higher module, the transmission speed is doubled due to the double number of memory chips themselves). Data transfer rate up to 3.2 Gigabit per second. The maximum memory frequency of this type is 4,266 MHz

So, the following are the signs that characterize the computer's RAM:

  1. Type of RAM (SDRam, DDR, etc.)
  2. Volume of modules
  3. The clock frequency of their operation
  4. Timings (delays in accessing and retrieving data from chips - latency)

We considered the first point above, but let's walk through the rest. The amount of memory chips is constantly increasing and now you will not be surprised by the module in 1 Gb (gigabyte). Earlier I remember well what awful excitement a phrase called in me: "I have 128 megabytes of RAM installed on my computer!" And my acquaintance at that time was working with 3D graphics in the 3DMax simulation program :) Now there are 16 GB modules Everyone and I am sure that this is not the limit.

We go further: the clock frequency. Measured in megahertz (MHz - MHz) and the general rule is that the more it is bigger, the memory runs faster. For example, DDR4 memory operates at a frequency of 4266 Megahertz. At a higher frequency, the bandwidth of the RAM increases (how much data it can "pump" through itself per unit of time).

Here is a small summary table, which clearly shows this point:

Timing (latency) - this is an indicator of the time delay between the arrival in the memory of the team and the time of its execution. Latency is determined by timings, measured in the number of cycles between individual teams. Setting timings occurs in the BIOS and changing their values ​​can achieve a certain increase in productivity of the computer.

I would like to take this opportunity to add a small note on all these "new" memory types: DDR2, 3, 4, etc. Roughly speaking, it's still the same good old SDRAM module, but slightly modified. Since it is expensive to increase the frequency of the memory itself (no one likes to do it because of the inevitable heating that occurs after this), the producers went to the trick.

Instead of significantly increasing the clock frequency of the memory itself, they increased the bit depth of the internal data bus (from the cells of the memory matrices to the I / O buffers) and made it twice as large as the width of the external bus (from the controller to the memory chips). It turned out that for one clock cycle, as much data is read as previously read by the external bus for only two clock cycles. In this case, the width of the external data bus is, as before, 64 bits, and internal - 128/256/512, etc. bit.

Another "trick" that allows you to increase the performance without increasing the frequency is the parallel installation of modules for the inclusion of two and three-channel modes of operation (double and triple-channel, respectively). This slightly increases the performance of the memory subsystem (5-10 percent). To work in this mode, it is preferable to use Kit-s. "KIT" is a set of modules consisting of several "slats" that have already been tested for cooperative work with each other.

On modern motherboards, slots (sockets) for memory through one are highlighted in different colors. This is done just to facilitate the installation in them of similar (ideally - the same) modules. If the installation was successful, the multichannel mode will automatically turn on. The photo below shows boards with the possibility of operating memory in three and four-channel modes.

And this is how four channels of quad-channel memory can look on the board:

Now multi-channel memory modes are used quite widely. The idea is as follows: a dual-channel memory controller can simultaneously (in parallel) communicate to each even and odd module. For example: the first and third module transmit and receive data simultaneously with the second and fourth. With the traditional approach (single-channel mode), all installed modules were serviced by one controller (channel), which had to switch quickly between them.

The total speed of each channel is determined by the slowest DIMM that is installed in it. Also, try to follow the recommendation that: in each of the channels you need to install the slats of the same volume.

Now a few words about the chips of RAM (chips). Like any element of the computer to which voltage is applied, the memory is heated. As we remember, the components inside the system unit are fed by a certain amount of direct current, which they are given by the power supply - 12V, 5V or 3V.

The chips themselves are heated directly. And some board manufacturers put on their products small radiators for heat dissipation. Radiators, as a rule, are simply glued with a special compound or kept on a thermal paste.

The radiator can also be snapped from above:

Here, for example, which sample of the computer's memory from the brand company "OCZ" is in my home collection:

Thing! Double radiator, the board pleasantly hardens the palm and generally gives the impression of an object made on the conscience. Plus - lowered work timings :)

I remember in 2008 I spent some time working for a major company. Computerized there was everything serious enough. In the IT department there worked, in a good sense of the word, the real "maniacs" of their business :) When I first looked at the tab of the properties of the terminal server that was running the 64-bit Windows Server 2003 operating system, I was, to put it mildly, very surprised . I saw a figure of 128 (one hundred and twenty-eight) gigabytes of RAM! Realizing that I look stupid, I still decided to ask again, is it so? It turned out that it really is (128 gigabytes of DRAM). It is a pity that I did not manage to look at that motherboard then :)

We continue! Memory chips can be located both on one side of the PCB and on both sides and can be of different shapes (rectangular or square) installed as planar SMDs or BGA components. The height of the module itself can also be different. Each of the RAM chips has a certain capacity, measured in megabytes (now - in gigabytes).

For example, if we have a bar with a capacity of 256 megabytes and consists of 8 chips then (divide 256 by 8) and get that each chip contains 32 megabytes.

I can not ignore a special class of memory - server DRAM. The photo below shows several modules: the first and third - server options (you can click on the photo to enlarge).

Server ECC memory Server ECC memory

What is the difference between server and server memory? Even visually in the photo above it is clear that server solutions have additional chips on the board that provide it with additional functionality. Which one? Let's see! First of all, let's find out which additional components on the PCB (except for the RAM chips themselves) are standard? This is a series of solid-state tantalum SMD capacitors located directly above the contact pads of the module. These are components of the memory card's "binding".

The second mandatory element (in the photo above is marked in green) can be called the SPD chip. The abbreviation stands for "Serial Presence Detect" - a serial detection interface or sequential presence detection. Somehow so :) In fact, it's a programmable ROM, in which the settings of each memory module are "sewn up": all parameters, frequencies, timings, operating modes, etc. It is from there when the computer starts, they are read by the BIOS chip.

Additional chips on server boards (circled in red) provide the ability to detect and correct read / write errors (ECC technology) and partial buffering (memory register).

Note: ECC - (error-correcting code) The algorithm for detecting and correcting random errors in data transmission (no more than one or two bits per byte).

Для реализации этих возможностей на модуль устанавливается дополнительная микросхема памяти и он становится не 64-х разрядным, как обычные DIMM, а 72-ти двух. Поэтому далеко не все материнские платы могут работать с подобной памятью. Некоторые, надо отдать им должное, — работают! :)

Нажмите на фото выше и Вы сможете увидеть дополнительные обозначения на стикере (выделены красным), которых нет для обычной памяти. Я имею в виду такие сокращения, как: «SYNCH», «CL3 (2.5)», «ECC» и «REG». Остановимся на них отдельно. Поскольку первый из приведенных на фото модулей относится к периоду распространения персональных компьютеров под общим брендом «Pentium», то на нем отдельно присутствует обозначение «SYNCH».

Помните как расшифровывается первая буква аббревиатуры памяти типа SDRAM? Synchronous (синхронная) DRAM. Тип DRAM, работающий настолько быстро, что его можно было синхронизировать по частоте с работой контроллера оперативной памяти. На тот момент это был прорыв! Предыдущие поколения ОЗУ работали в асинхронном режиме передачи данных. Теперь же, команды могли поступать в контроллер непрерывным потоком, не дожидаясь выполнения предыдущих. С одной стороны, это сокращало общее время на их передачу, но с другой (поскольку команды не могли выполняться со скоростью их поступления) появлялось такое понятие, как латентность — задержка выполнения.

Именно о величине латентности модуля серверной памяти говорит нам второй показатель на стикере «CL3». Расшифровывается как «Cas Latency» — минимальное время, измеряемое в тактах системной шины, между командой на чтение (CAS, по факту — передачей в память нужного адреса строки или столбца) и началом передачи данных.

Другое дело, что маркетологи даже здесь пытаются нас надурить и указывают только одну (наименьшую) из всех возможных задержек. На самом деле, разновидностей таймингов существует достаточно много и это — логично: организация работы по передаче, выборке и записи данных в таком большом массиве настолько сложна, что было бы странно, если бы задержек в работе памяти не было совсем или дело ограничивалось одной!

Для примера, некоторые (далеко не все) задержки представлены в таблице ниже:

Table of memory timings Table of memory timings

Thus, indicating the latency value for only one parameter (CL) with the smallest indicator and not giving an idea of ​​memory delays in other operations, we are trying to get this thing in! I will not say that this is what happens, but the feeling arises precisely this :)

We have already considered the designation of ECC, we will not repeat it. But with the pointer "REG" let's figure it out! As a rule, the registered modules of RAM are designated in this way. What does it mean? Between the RAM chips and the bus an additional microcircuit is installed, which acts as a kind of buffer. Therefore, this type of register memory is often called buffered (Buffered) or with partial buffering.

The presence of special registers (buffer) on the memory module reduces the load on the synchronization system (electric regeneration), unloading its controller. Registers relatively quickly store the incoming data, which are often required by the application. The presence of a buffer between the controller and the memory chips leads to an additional delay of one clock, but for server systems this is normal. We get higher reliability due to a small drop in performance.

RAM for laptops is called SO-Dimm and has, for obvious reasons, a shorter design. It looks like this:

Memory for the laptop Memory for the laptop

It is much more compact than its desktop counterparts, but it also has a unique "key". Remember: by the position of the "key" you can determine the type of the chip. Well, more - by the inscription on the sticker (sticker) :)

And quite the last: acquire the operational memory of the established manufacturers: Samsung, Corsair, Kingston, Patriot, Hynix, OCZ, and then the problems of RAM will bypass you.