How do I tell if my Memory is ECC or Non-ECC?

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?


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

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 here on our sister site unix.stackexchange.com.

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).


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)


inxi can do that:

$ 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

...

Here non ECC-RAM modules are used EC: None


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"