73

I need to replace the memory in my system and I'm not quite sure how to determine if the memory is ECC or Non-ECC. How do I determine this?

James Mertz
  • 26,529

6 Answers6

91

For Windows 7 you can run the following command in command prompt:

wmic MemoryChip get DataWidth,TotalWidth

If the TotalWidth value is larger than the DataWidth value you have ECC memory.

Example output:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory DataWidth TotalWidth 64 64


A better way to determine is via the following command:

wmic MemPhysical get MemoryErrorCorrection

This will return a code based on the type of memory installed:

Value Meaning
0 (0x0) Reserved
1 (0x1) Other
2 (0x2) Unknown
3 (0x3) None
4 (0x4) Parity
5 (0x5) Single-bit ECC
6 (0x6) Multi-bit ECC
7 (0x7) CRC
James Mertz
  • 26,529
56

For FreeBSD (and probably most Unix like platforms):

dmidecode -t 17

Example output:

# dmidecode 2.12
SMBIOS 2.5 present.

Handle 0x1100, DMI type 17, 28 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: DIMM1 Bank Locator: Not Specified Type: DDR2 Type Detail: Synchronous Speed: 667 MHz Manufacturer: AD00000000000000 Serial Number: 00002062 Asset Tag: 010839 Part Number: HYMP125P72CP8-Y5 Rank: 2

The Total Width: 72 bits is the part you are looking for.


More information in detecting this in Linux can be found on our sister site Unix & Linux Stack Exchange.

More information on how error correcting code works can be found in this simple post where I showed how you could use extra bits to detect and correct errors. This is why we have DIMMs which are 64 bits wide (8 bytes of data wide) or 72 bits wide (64 data plus extra bits to store redundant information).

19.07.2022 - Minor update now that ECC DDR5 is out. DDR5 is not 64 bit normal or 64+8 for ECC. It instead has two 32 bit channels, and more bits are needed for ECC. So expect 80 bits for ECC on DDR5.

Hennes
  • 65,804
  • 7
  • 115
  • 169
27

If you look at the physical memory module, ECC will usually have 9 (sometimes more) chips. Non-ECC will have only 8 (or rarely, 8x2=16).

ECC vs non-ECC (Image courtesy of Puget Systems)

Mokubai
  • 95,412
13

inxi can do that:

# On this desktop PC non ECC-RAM modules are used, so it outputs `EC: None`:

$ sudo inxi -m -xxx Memory: Array-1 capacity: 32 GB devices: 4 EC: None Device-1: ChannelA-DIMM0 size: 4 GB speed: 1333 MHz type: DDR3 (Synchronous) bus width: 64 bits manufacturer: Kingston part: KHX1600C9D3/4GX serial: B7ED5A53

This server has 16 GB ECC RAM:

$ sudo inxi -m -xxx Memory: RAM: total: 15.49 GiB used: 592.6 MiB (3.7%) Array-1: capacity: 32 GiB slots: 2 EC: Multi-bit ECC max-module-size: 16 GiB note: est. Device-1: PROC 1 DIMM 1 type: no module installed Device-2: PROC 1 DIMM 2 type: DDR4 detail: synchronous unbuffered (unregistered) size: 16 GiB speed: spec: 2666 MT/s actual: 2667 MT/s volts: 1.2 width (bits): data: 64 total: 72 manufacturer: HPE part-no: 879527-091 serial: N/A

Jonas Stein
  • 1,182
11

On a Mac you can look in the System Information application to determine ECC status of the Computer and each RAM module.

/Applications/Utilities/System Information

Select Memory on the right pane, under the hardware section.

Then with the "Memory Slots" listing selected. The window below should show an ECC status.

See picture below:

System Information App window

Also as an FYI each RAM slot will have a Status field if there is a problem detected in a RAM module the status will be a value other than "OK"

MrDaniel
  • 1,382
1

You might also try a free app like Belarc. Gives a bunch more info about your system also...

I have used the software a few times. I have no affiliation with this software, but I do know that it is used by some universities.

I can not provide a screen shot of the results because it contains confidential data, but the web site should provide some examples. Its pretty straight forward (and fast), download the file, run it and the results are presented.

htm11h
  • 117