Error correction code (ECC) memory is a must-have for every embedded computer platform, right? Not exactly. There are places where it absolutely makes sense. But there are probably even more where it’s not required.
First, let’s define the memory type. ECC RAM is found in servers where data loss would be catastrophic. Its differentiating factor when compared to non-ECC RAM is its ability to automatically detect and correct memory errors, thereby fighting data corruption. It also causes fewer system crashes, making it appealing in such applications as finance and cloud storage.
From a physical perspective, ECC memory employs nine memory chips rather than the eight typically used to store data. That extra memory chip is used for error detection and correction within those other eight chips. Because it requires that extra device, it’s slightly more expensive.
Without getting too deep into the nuts and bolts of technology, here’s how ECC memory works: a ninth bit is added to what is typically an eight-bit string. That extra bit is used to check for errors. The extra bit checks for and maintains the parity of the byte string. When the parity is determined to be off, a correction is made.
As stated earlier, ECC memory is used in servers and high-reliability systems. The reasons that it’s used in these types of platforms are somewhat obvious—it provides a higher level of reliability, and it can operate without a hitch in extreme environments. In addition, if you’re deploying your system in a remote area, ECC offers a comfort/confidence level, as it could be difficult to make repairs in that remote location.
Let’s discuss the pros and cons of the memory itself. The key advantage of ECC memory, as its name implies, is that it allows most errors to be corrected and can keep the system running smoothly 24/7.
On the negative side, as discussed, the ECC memory is more expensive than non-ECC memory due to the extra memory chip. It’s also slightly more complex than traditional memory, further upping the price tag. In addition, it does slightly decrease overall system performance, typically by about 2% to 3% due to the additional time it takes for the system to check for any memory errors.
Keep in mind when doing your own evaluation that ECC memory is not needed for every system. In fact, most of WINSYSTEMS products do not deploy ECC memory. But if and when you decide that your application requires it, we’ve got you covered.
If ECC memory is required for your application, the WINSYSTEMS SBC35-427 is a good choice. The 3.5-in. SBC can operate over a -40°C to +85°C temperature range.
For example, the WINSYSTEMS SBC35-427 is an industrial single board computer (SBC) designed with Intel’s Apollo Lake-I E3900 series processor. It can be configured with ECC memory if the customer chooses. That feature, combined with multiple expansion and configuration options make it a great fit for those remote industrial IoT (IIoT) applications.
A second product in that same category is the WINSYSTEMS’ PX1-C415 SBC, which conforms to a PC104 form factor and also making use of PCIe/104 OneBank expansion. The board’s small size, rugged design, and extended operational temperature suit it for IIoT applications and embedded systems in the industrial control, transportation, Mil/COTS, and energy markets. To ensure data integrity, the PXI-C415 can operate with the ECC memory. In addition, it incorporates the Intel Security Engine and cryptographic acceleration.
If your application requires the utmost in protection, consider ECC memory. But be aware of its shortcomings.