Error-Correcting Code Memory (ECC): Facilitating Scientific and Financial Computation

in #steemstem7 years ago (edited)

Hello guys,

It’s another lovely day and I'm here to explain a somewhat uncommon type of computer data storage which only a few people know about, it's similar to Random Access Memory (RAM) but it performs an entire different function.

I'm sure that anyone who knows anything about computers, knows what RAM is. It's a core component of the computer and if you ever build a computer or upgrade one, you might be thinking about things like how much RAM to get, how many gigabytes it has, the frequency, the latency which not a lot of people think about but you should.

There is another type of memory that a lot of people have never heard of or don't really know what it is and that is ”Error Correcting Memory” or “ECC”. This has a lot of pretty specific purposes but not everyone really needs it so I'm gonna go over what it's for, how it works and whether you might want to consider it in your next PC bill.

1024px-Micron_PC2700_DDR_ECC_REG.JPG[1]
Error Correcting Memory (ECC) Wikipedia



What’s Error Correcting Memory (ECC)? How does it work?



To understand how error correcting memory works I'll try to give a pretty easy explanation first of how general memory works so you can understand what's going on and it's really not that difficult.

Think of RAM as having a bunch of different spots where you can put data and there's a finite number of these and you'll call them cells. Typically, you might see about 8-bits in each cell which is one byte so you have one byte of data and that typically is what one character on a keyboard is, every letter is 1-byte which is eight bits. In every cell, you're gonna have eight “1s” or”0s” which represents one tiny byte of data and there's a whole bunch of these cells which you can store memory in any of them.

cell.png[2]

Normal cell data

However, every once in a while, something is going to happen called a flipped bit where one of the bits in one of the cells will just spontaneously flip from 1 or 2 to 0, or 0 to 1 and that's just because perhaps the electrical signal was somehow disrupted in that cell in a circuit and it just thinks that it's a different number.

cell1.png[3]

Flipped bit disrupted cell

If this happens, when that particular bit or cell was very important to what was ever going on in the computer at that point, it can cause some major issues or perhaps nothing but it could cause a system crash completely or it could corrupt data that's being written onto the computer both of which in certain situations could be disastrous.



What could cause a flipped bit error?



There are plenty of different possibilities for what could cause a flipped bit you never really know, hard errors for example which are physical conditions such as higher temperature, temperature fluctuations or perhaps physically moving and bending the stick of RAM could disrupt things.

There are also a group called soft errors which are mostly having to do with electrical interferences and the most common of these are literally caused by cosmic background radiation from outside the earth so a fun fact is that if you are at a higher elevation, then your computer memory is more prone to getting these errors of flipped bits because there are more literally neutrons coming in another radiation that could bombard that RAM and flip it over.

earth-magnetosphere.jpg[4]
Cosmic radiation inquisitr.com

Another fun fact is that's why a lot of aircraft, spacecraft or even high-altitude observatories definitely need to have that air correcting RAM because it might be at more risk of getting radiation to disrupt that RAM.

Here's a quick example of what a flipped bit might look like, in this case it's not going to cause a computer crash but let’s say you're in Microsoft Excel and you're typing in number, you want to type in the number ”8” so when you hit that key, the computer is going to store that letter ”8” in a Cell and that's going to be ”0011100”.
8.png[5]
That's what you see on the screen but at some point maybe right before you save the file or as you're saving the file, that last bit gets flipped so the last zero turns into a ”1” and now it's “00111001” which is the number 9, It gets saved as the number 9.
8b.png[6]

Even though this happened, you might not even notice it because it's still a valid number that would be typed into an excel , you could have easily just pressed 9 as opposed to 8, the computer doesn't care but it will be wrong so that would be an example where there's a flipped bit and you wouldn't even notice.

There are other cases maybe you're browsing the web and one letter on the page gets changed obviously, you would not even notice that or care, it's completely no consequence but if you're carrying out financial or scientific computing and you tell the computer not to trade a stock, it flips and does trade the stock ”you don't want that at all”.

This why Error Correcting Memory is pivotal because it has the ability to detect and fix a single bit error. If there's multiple errors simultaneously, you probably have bigger issues which is very unlikely but what happens is instead of just having those 8-bits, it's going to add in a little bit extra information called a ”Parity bit” or a ”Redundant bit” which is used to make sure that the other bits are what they should be.

pa.png[7]

From the image above, it specifically looks like string of "1s" and "0s" in the cell, the last extra parity bit will be added and it will be a ”1” or a ”0” depending on how many 1s are in that cell. For example, if there's an odd number of 1s, then it will be a 1 in the parity bit and if it's an even number of 1s, it'll be a 0 in the parity bit. If one of those turns into a flipped bit, then it will no longer be the same even or odd number as the parity bit thinks and it will detect.



Conclusion



In most cases, the only place you'll really see Error Correcting Memory is on things like servers or things that have mission-critical processes running on them such as scientific calculations or maybe financial data that if that computer were to crash, it would cause huge problems like a company would stop being able to operate, it would just be a disaster. That's where Error Correcting Memory comes in, it basically helps that computer fix any errors in the memory that would cause it to crash.

For anyone who's just a regular computer user, there's no real special uses you're using it for and you've never even heard of Error Correcting Memory, you've been fine without it especially with things like gaming, then you don't need Error Correcting Memory because it would be unnecessary, expensive and might even give a performance hit for what you're using it for.

If you guys have any ideas of your own, something I forgot to explain about, you can let me know by replying this post. If you enjoyed it, Pls don’t forget to give an Upvote.



References: 1 - 2 - 3

Image sources: [1]-[4]-[2, 3, 5, 6 from my PC]



Thanks.png

WhYkkh9.gif
GIF made by @foundation



Thanks to @camzy & @samstickkz for this amazing toon.

index.jpg

upvotefollowresteem.gif

Sort:  

Nice post bro

Thanks tech guy for this info

nice work bro
got something
keep steeming

Coin Marketplace

STEEM 0.15
TRX 0.12
JST 0.026
BTC 56766.86
ETH 2492.90
USDT 1.00
SBD 2.36