Page 1 of 10

On the Internet, you can often see questions on thematic forums regarding error-correcting memory, namely, its impact on system performance. Today's testing will answer this question.

Before reading this material, we recommend that you familiarize yourself with the materials on the LGA1151 platform.

Theory

Before testing, we'll tell you about memory errors.
Errors that occur in memory can be divided into two types - hardware and random. The first ones are caused by defective DRAM chips. The latter arise due to the effects of electromagnetic interference, radiation, alpha and elementary particles, etc. Accordingly, hardware errors can be corrected only by replacing DRAM chips, and random errors can be corrected using special technologies, for example, ECC (Error-Correcting Code). ECC error correction has two methods in its arsenal: SEC (Single Error Correction) and DED (Double Error Detection). The first one corrects single-bit errors in a 64-bit word, and the second one detects double-bit errors.
The hardware implementation of ECC consists of placing additional memory chips that are needed to write 8-bit checksums. Thus, an error correction memory module with a single-sided design will have 9 memory chips instead of 8 (as in a standard module), and with a double-sided design - 18 instead of 16. At the same time, the width of the module increases from 64 to 72 bits.
When reading data from memory, the checksum is recalculated and compared with the original. If the error is in one bit, it is corrected, if in two, it is detected.

Practice

In theory, everything is fine - error-correcting memory increases system reliability, which is very important when building a server or workstation. But in practice, there is also a financial side to this issue. If the server requires memory with error correction, then the workstation can easily do without ECC (many ready-made workstations from different manufacturers are equipped with conventional RAM). How much more expensive is memory with error correction?
A typical 8GB DDR4-2133 module costs about $39, while a typical ECC module costs $48 (at the time of writing). The difference in cost is about 23%, which is quite significant at first glance. But if you look at the total cost of the workstation, this difference will not exceed 5% of it. Thus, purchasing ECC memory only slightly increases the cost of the workstation. The only question that remains is how ECC memory affects processor performance.
In order to answer this question, the editors of the site took for testing Samsung DDR4-2133 ECC and Kingston DDR4-2133 memory modules with the same timings 15-15-15-36 and a capacity of 8 GB.

Samsung M391A1G43DB0-CPB memory modules with error correction have 9 chips soldered on each side.

While regular Kingston KVR21N15D8/8 memory modules have 8 chips soldered on each side.

Test bench: Intel Xeon E3-1275v5, Supermicro X11SAE-F, Samsung DDR4-2133 ECC 8GB, Kingston DDR4-2133 non-ECC 8GB

Detailing

Processor: (HT on; TB off);
- Motherboard: ;
- RAM: 2x (M391A1G43DB0-CPB), 2x (KVR21N15D8/8);
- OS: .

Testing methodology

3DMark06 1.21;
- 7zip 15.14;
- AIDA64 5.60;
- Cinebench R15;
- Fritz 4.2;
- Geekbench 3.4.1;
- LuxMark v3.1;
- MaxxMEMI 1.99;
- PassMark v8;
- RealBench v2.43;
- SiSoftware Sandra 2016;
- SVPmark v3.0.3b;
- TrueCrypt 7.1a;
- WinRAR 5.30;
- wPrime 2.10;
- x264 v5.0.1;
- x265 v0.1.4;
- Kraken;
- Octane;
- Octane 2.0;
- Peacekeeper;
- SunSpider;
- WebXPRT.

To the question Explain what "ECC Support" is on random access memory given by the author Alyonka the best answer is This is an error correction function. Such memory is installed on servers, because they cannot lag, shut down or be overloaded due to errors. For a home computer this is not a necessary thing, although it is useful. If you decide to install this, make sure that your motherboard supports this type of RAM with ECC.
Source: ku

Answer from Rainswept[guru]
ECC (Error Correct Code) - identification and correction of errors (other decodings of the same abbreviation are possible) - an algorithm that replaced “parity control”. In contrast to the latter, each bit is included in more than one checksum, which allows, if an error occurs in one bit, to restore the error address and correct it. Typically, errors in two bits are also detected, although they are not corrected. To implement these capabilities, an additional memory chip is installed on the module and it becomes 72-bit, in contrast to the 64-bit data of a conventional module. ECC is supported by all modern motherboards, designed for server solutions, as well as some chipsets" general purpose". Some types of memory (Registered, Full Buffered) are available only in the ECC version. It should be noted that ECC is not a panacea for defective memory and is used to correct random errors, reducing the risk of computer problems from accidental changes in the contents of memory cells caused by external factors such as background radiation.
Registered memory modules are recommended for use in systems that require (or support) 4 GB or more of RAM. They are always 72-bit wide, i.e. they are ECC modules, and contain additional register chips for partial buffering.
PLL-Phase Locked Loop - a circuit for automatically adjusting the frequency and phase of the signal, serves to reduce the electrical load on the memory controller and increase operational stability when using a large number of memory chips, used in all buffered memory modules.
Buffered - buffered module. Due to the high total electrical capacity of modern memory modules, their long “charging” time leads to large amounts of time spent on write operations. To avoid this, some modules (usually 168-pin DIMMs) are equipped with a special chip (buffer) that stores incoming data relatively quickly, which frees up the controller. Buffered DIMMs are generally incompatible with unbuffered ones. Partially buffered modules are also called "Registered" and Full Buffered modules are called "FB-DIMMs". In this case, “unbuffered” means regular memory modules without buffering means.
Parity - parity, modules with parity control, also parity control. Quite an old principle of checking data integrity. The essence of the method is that for a byte of data at the recording stage it is calculated check sum, which is stored as a special parity bit in a separate chip. When reading data, the checksum is calculated again and compared with the parity bit. If they match, the data is considered authentic, otherwise a parity error message is generated (usually causing the system to stop). The obvious disadvantages of the method include the high cost of memory required to store extra parity bits, insecurity against double errors (as well as false positives when an error occurs in the parity bit), and system stops even with a minor error (say, in a video frame). Currently not applicable.
SPD is a chip on a DIMM memory module that contains all the data about it (in particular, performance information) necessary to ensure normal operation. This data is read during the computer self-testing stage, long before booting. operating system and allow you to configure memory access parameters even when there are different types of memory modules in the system at the same time. Some motherboards refuse to work with modules that do not have an SPD chip installed, but such modules are now very rare and are mainly PC-66 modules.


Answer from Mowgley[guru]
online memory checking for errors

ECC, from English error-correcting code, is translated into Russian as an error correction code. Technology built into flash drive controllers to detect and correct errors during data transfer. ECC can only cope with minor problems; in severe cases, the flash drive will be blocked from writing data.

WHY IS THIS NEEDED?

In the era of high-quality SLC and MLC flash memory chips, there was little point in paying attention to this error correction mechanism. Now, when the overwhelming majority of flash drives either have TLC memory or some kind of MLC DownGrade installed, you should not neglect the settings of the ECC mechanism.

This technology allows you to extend the life of a flash drive until the next plugs with it, because you don’t want to reflash your flash drive every month.

Another positive feature is the likelihood of achieving the maximum possible capacity of a flash drive. It can be even higher than the carrier originally had, especially for flash drives with rejected chips.

FLAWS

The higher you set the ECC parameter value, the more load it will create on the flash drive controller. And this, in turn, can negatively affect its performance, i.e. speed of work. Also among the noticeable disadvantages, high load, is the greater heating of the flash drive.

Most utilities do not use the values ​​used in flash lists (for example: 7b/512B and 72b/1K), but the sums of certain parameters. As a rule, in the range from 0 to 15, in some production programs, due to the support of extremely low-quality memory, from 0 to 20..

ECC Value
MEMORY TYPE: ECC:
SLC 1
MLC 32nm, 35nm, 42nm, 50nm, … 3-4
MLC 24nm, 25nm, 26nm, 32nm 4-8
MLC 21nm, 20nm, 19nm, … 8-12
TLC 27nm, 32nm, 43nm, … 8
TLC 24nm, 21nm, 19nm, … 12-15

Some utilities use a different coordinate system, for example the Dyna production complex for SMI controllers. In this case, just below you can find a link to the specific settings of specific manufacturers.

Let me explain a little how to use the table above. So, if your flash drive is of good quality (a well-established brand), then select the minimum value from it. For gift and counterfeit flash drives, I strongly advise you to use the maximum value of the ECC parameter for your memory type.

IMPLEMENTATION IN PRODUCTION UTILITIES

Not all utilities allow manual adjustment of the ECC option. We can say that ECC is a feature of the Sorting component of production utilities. I’ll try to briefly express this in a table for the main manufacturers of USB controllers.

ECC Compatible Software
Company: Tools:
ALCOR AlcorMP_UFD
FC MpTool
AAMP
CHIPSBANK Chipsbank UMPTool
CBM2093 UMPTool
CBM2098 UMPTool
umptool209X
V68 Building Tools
INNOSTOR Innostor MPTool
Innostor 917 LFA MP Tool
PHISON UPTool
UP19_CTool
UP21_CTool
UP23_CTool
SILICON GO KingStore Manufacture Tool
SiliconGo MPTools
SiliconGo MPTool2
SKYMEDI SK6221 MPTool
SMI Dyna Mass Storage Production Tool
ARTICLES ON THE TOPIC OF ECC CORRECTION

ECC (Error Correct Code) is used to correct random memory errors caused by various external factors, and is an improved version of the “parity control” system.

Physically, ECC is implemented in the form of an additional 8-bit memory chip installed next to the main ones.

Thus, modules with ECC are 72-bit (as opposed to standard 64-bit modules).

Some types of memory (Registered, Full Buffered) are available only in ECC version.

AMD Radeon Software Adrenalin Edition 19.9.2 Optional Driver

The new AMD Radeon Software Adrenalin Edition 19.9.2 Optional driver improves performance in Borderlands 3 and adds support for Radeon Image Sharpening technology.

Cumulative Windows update 10 1903 KB4515384 (added)

On September 10, 2019, Microsoft released cumulative update for Windows 10 version 1903 - KB4515384 with a number of security improvements and a fix for a bug that broke Windows operation Search and caused high CPU usage.

Driver Game Ready GeForce 436.30 WHQL

NVIDIA has released a Game Ready GeForce 436.30 WHQL driver package, which is designed for optimization in the games: Gears 5, Borderlands 3 and Call of Duty: Modern Warfare, FIFA 20, The Surge 2 and Code Vein" fixes a number of bugs seen in previous releases and expands the list of G-Sync Compatible displays.

AMD Radeon Software Adrenalin 19.9.1 Edition Driver

First September issue of graphic AMD drivers Radeon Software Adrenalin 19.9.1 Edition is optimized for Gears 5.

Very often, when choosing components, we come across various incomprehensible terms and concepts. When choosing RAM, it can be DDR, DDR2, DDR3, DDR4, RDRAM, RIMM, etc. If everything is more or less clear with the main types of RAM, and support for each type is indicated in the description of the motherboard, then such a parameter as ECC raises some questions for many. What is ECC memory? Is it possible to use ECC RAM on home computer and what is the main difference between ECC RAM and non-ECC RAM?

What is ECC memory?

This is a special type of RAM with built-in error correction hardware. Such memory modules were developed specifically for servers, where the requirements for data correctness and reliability of their processing are much higher than on personal computers.

ECC-Ram automatically recognizes spontaneous data changes in storage blocks, that is, errors that have occurred. Regular desktop memory without support for correction mechanisms is called non-ECC.

What is ECC memory capable of and how does it work?

Error-correcting memory can detect and correct 1 bit of changed data in each machine word. What does it mean? If the data between writing and reading was changed for some reason (that is, an error occurred), then the ECC RAM will correct the value to the correct one. Such functionality requires support from the RAM controller. This support can be provided by the motherboard chipset or the built-in RAM controller in modern processors.

The error correction algorithm is based on the Hamming code, but other algorithms are used to correct more than one error. In practice, memory modules are used, where for every 8 memory chips another chip is added that stores ECC codes (8 bits for every 64 bits of main memory).

Why is the value in RAM memory cells distorted?

One of the main causes of data distortion is cosmic rays. Although we are on Earth under the protection of the atmosphere, cosmic rays carry with them certain elementary particles that can affect electronics, including computer memory. Under the influence of the energy of these particles, it is possible to change the state of the memory cell, which leads to data distortion and errors. Interestingly, exposure to cosmic rays increases with altitude, so computer systems Those located at high altitudes require better protection.

How ECC-enabled memory works

One of the mechanisms for monitoring errors in RAM is to use parity technology, which allows you to record the fact that an error has occurred in the data, but does not allow you to correct the data.

For ECC correction, the Hamming code is used. ECC protects computer systems from incorrect operation due to memory corruption and reduces the likelihood of a critical system failure. ECC-enabled memory runs 2-3% slower than non-ECC memory, depending on the application.

Reasons to use ECC memory

Objective reasons to use RAM with ECC support in desktop computers No. Since the likelihood of data errors occurring is extremely low, in normal PC usage scenarios it is extremely unlikely that the occurrence of an error will lead to problems or critical failures in the operation of the PC. The worst scenario is the appearance blue screen BSOD death. In addition, the use of ECC RAM is complicated by the fact that most desktop processors and motherboards do not support this type random access memory.

The use of RAM with ECC error correction is relevant for the server and corporate segment, where the requirements for fault tolerance and reliability are very high, and the correctness of the data can affect the results of calculations and the operation of the system as a whole.

How do you like it? -