Recently I came across this interesting blog article. It really struck me that RAM sitting on our systems has to be refreshed again and again in a timely fashion to ensure that the contents stored by the memory cells are intact.
According to Wikipedia, each bit in DRAM is stored as a presence or absence of electric charge. Presence of charge in a memory cell represents bit 1 and absence of a charge in a memory cell represents bit 0. As time passes, we lose the charge gradually memory cell and hence the information stored in that memory cell. So at regular intervals, we need to recharge our memory cells. This is done via external circuitry which reads and every cell and figure out if some charge is present at that cell, if yes, then it recharges the cell back to the original charge i.e. bit 1, otherwise, we leave the memory cell as it is denoting bit 0.
With all this external circuitry in place, there is always a chance due to some external factors that we might lose the charge quicker than expected at that memory location. As we can see in this blog post by University of Utah, they have written
At temperatures higher than 85° C (referred to as extended temperature range), the retention time is halved to 32 ms to account for the higher leakage rate.
So similar to temperature there might be some other external factors as well which might when at play might help the process of discharge at that memory cell. This essentially means that we MIGHT LOSE THE BIT AT THAT MEMORY LOCATION.
In one of the studies done previously, we have seen that there is a chance that data on our hard drives corrupt due to some external factors. Quoting from this Wikipedia article
There are many error sources beyond the disk storage subsystem itself. For instance, cables might be slightly loose, the power supply might be unreliable, external vibrations such as a loud sound, the network might introduce undetected corruption, cosmic radiation and many other causes of soft memory errors, etc.
So essentially there is some chance that data residing on our hard disk gets corrupted. But we have techniques to deal with these kinds of errors/corruptions like CheckSums, Parity Checks etc.
So coming back to the original point of charges residing in those memory cells,
- Is there any chance that bits residing in these memory cells get lost due to some external factors?
- Has anybody tried to emulate or can suggest ways to emulate this data loss from memory cells?
- Is there any recovery mechanisms has one thought to deal with these corruptions in memory cells?