“Mmm. Mmm. Memories, light the corners of my mind, Misty watercolor memories, of the way we were…”1Yes, Barbara Streisand sings a sweet song, but not exactly the ‘memories’ we are talking about. I am of course writing about computer ‘memory’, which is more about ‘the way things are (at that exact micro-millisecond in time) then the way they were.’ Or it better be!
I bet you never figured you would see Barbara Streisand in the list of credits for an Intuitive Accountant article, did you? But I better get back to the topic of computer memory.
You see Memory (often referred to as RAM, DRAM, SDRAM, ECC or Non-ECC) is the component in your computer that provides short-term data access. Your computer's moment-to-moment operations are typically performed using short-term data access; functions like loading applications, browsing the Web or editing a database like QuickBooks all rely on Memory; so the amount, speed and type of memory play a critical role in your computer's performance.
Inside your computer, the memory works in conjunction with your processor and hard drive (or Solid-State-Drive, if you are lucky enough to have one) to access and use your data. For example, say you want to access data within QuickBooks and post some changes to a transaction, here's what's going on inside your computer. (For purposes of this discussion we are going to assume you are running in Single-user mode.)
- Both the QuickBooks application and your QuickBooks Company File(s) are resident on your hard drive.
- When you click on the QuickBooks Icon your computer’s processor directs the Windows operating system to load the QuickBooks application from your hard drive into to the computer’s memory for short-term access and use.
- As soon as you tell QuickBooks to open a specific Company File (even if it defaults to your last open company), the computer’s processor directs the operating system to begin loading your QuickBooks Company File into the computer’s memory; this data is held in a section of memory that computer professionals refer to as ‘cache’. Typically QuickBooks will load only a portion of your Company File into cache (memory), and the portions of the file that it loads depends on several factors including your preferences, the data last or most commonly accessed (such as lists) and have other data you ‘rights to’ (if security protocols are in force).
- As you start to perform specific tasks in QuickBooks, your computer’s processor begins to access data from the memory based upon instructions from the QuickBooks database server (yes even in single-user mode, QuickBooks still has a windows process that serves as the database server).
- If the processor can’t find the data in memory the database server identifies the information for the processor, which then tells the operating system (Windows) to go find the information on your computer’s disk drive, and to write that data into ‘cache’ (memory). If cache memory is already full, some of the data in cache memory must be written back to the computer’s disk drive before additional data from the disk drive can be written to cache.
As you can see, there is a lot going on behind the screen attached to that box you call your computer, and the amount, type and speed of memory you've got installed helps determine how fast applications, like QuickBooks, are able to operate. The memory also helps determine how effectively your computer can multitask. Upgrading your system's memory is one of the easiest and most cost-effective ways to increase your system's overall performance, but what memory should you choose?
“Memories, may be beautiful and yet, what's too painful to remember, we simply choose to forget…”1. (There she is singing that song in my head again.)
Painful or not, I do not want my computer’s memory to forget anything, or make a mistake either, and that is where ECC or Non-ECC memory comes into play, or does it?
So what about ECC vs. Non-ECC Memory?
Standard memory (or Non-ECC) uses banks of 8-memory chips in which data is stored. ECC (Error Correction Code – ie: “Error Correcting”) memory modules have an extra chip; this extra chip detects if what the data the processor read from or wrote to your memory was correct. If the data wasn't correct, the extra chip will correct it in most cases (depending on the type of error). Non-ECC (Non-error Correcting) memory does not have these error-detecting/correcting features.
A few days ago Matt Bach of TechSpot wrote an “Debunking a Myth: DDR3 RAM vs. ECC Memory Performance"3, which concluded, “over the last 12 months we've seen a tiny .09% failure rate with ECC memory compared to a .6% failure rate for standard memory…” So there seems to be a slightly increased occurrence (about ½ of 1 percent) of memory failure in Non-ECC vs. ECC memory within a test environment. (By the way, as I was reading Mr. Bach's article it convinced me that 'this topic' would be a great article for Intuitive Accountant readers, because a lot of us let our 'computer sales guy' tell us what we should buy when it comes to 'memory'.) That's a pretty small difference, but since memory failure can lead to data loss, we typically want to reduce chances of data loss whenever possible.
So what causes ‘memory errors’?
Well according to a Dell White-paper2, "Memory errors are characterized as hard or soft. Hard errors are caused by defects in the silicon or metalization of the SDRAM package, and are usually permanent once they manifest. Soft errors are caused by charged particles or radiation, and are transient. In the past, soft errors were primarily caused by alpha particles, but that failure mode has been mostly eliminated today by strict quality control of the packaging material by SDRAM vendors. Currently the primary source of soft errors in SDRAM is electrical disturbance caused by cosmic rays, which are very high-energy subatomic particles originating in outer space."
(Editor's note: Did they really just say that the primary source of a lot of our 'memory errors' arise from subatomic particles originating in outer space? No wonder my computer always seems to get messed up whenever my little space alien buddy NaNu goes near it!)
What about differences in 'memory' performance?
Believe it or not, using ECC (error correcting) memory actually decreases your computer's performance. Crucial4 a major manufacturer of ‘highly reliable’ memory has conducted tests indicating performance declines of about 2 percent. Crucial goes on to say, “because the current technology of most high quality memory is very stable, and actual memory errors are rare, unless you have a real need for ECC, you are better served with Non-ECC memory.”
On the other hand TechSpot’s testing (discussed a few paragraphs above) determined that performance reductions when using ECC memory were far less than the 2% (that Crucial has measured). So it appears that the TechSpot article contradicts Crucial’s conclusions saying, “ECC is simply a better choice than Non-ECC memory due to its incredible reliability with only a tiny loss in performance."
I definitely think that ECC is a better choice in memory for all computers that are going to act as servers or provide 'mission critical' functionality to any organization.
My conclusion
It would seem to me that if you are configuring a new computer and you have a choice, you are better off to buy ECC memory. On the other hand, if you are thinking only about upgrading memory in an existing computer which already uses Non-ECC memory then you are probably just fine using Non-ECC (in fact you need to insure that your computer could in fact use ECC memory before making any change). If it were m, I wouldn't waste the money to ‘swap out’ ECC for Non-ECC in an older computer, rather I would simply purchase more Non-ECC memory to improve your performance.
1-Source (both lyric quotations): Barbara Streisand, The Way We Were (Lyrics - MetroLyrics)
2-Source: Dell – “Reliable Memory Technology”, a Dell White Paper, (Dell Corporation) April 2012
3-Source: Matt Bach – “Debunking a Myth: DDR3 RAM vs. ECC Memory Performance”, (TechSpot), July, 2014
4 - Source: Crucial (a division of Micron Technologies)