Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Memory scrubbing
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{More citations needed|date=February 2015}} '''Memory scrubbing''' consists of reading from each [[computer memory]] location, correcting [[bit error]]s (if any) with an error-correcting code ([[Error detection and correction#Error-correcting code|ECC]]), and writing the corrected data back to the same location.<ref> Ronald K. Burek. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.132.2475&rep=rep1&type=pdf "The NEAR Solid-State Data Recorders"]. Johns Hopkins APL Technical Digest. 1998. </ref> Due to the high integration density of modern computer memory [[Integrated circuit|chips]], the individual memory cell structures became small enough to be vulnerable to [[cosmic ray]]s and/or [[alpha particle]] emission. The errors caused by these phenomena are called [[soft error]]s. Over 8% of DIMM modules experience at least one correctable error per year.<ref>[https://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf DRAM Errors in the Wild: A Large-Scale Field Study]</ref> This can be a problem for [[Dynamic random-access memory|DRAM]] and [[Static random-access memory|SRAM]] based memories. The probability of a soft error at any individual memory bit is very small. However, together with the large amount of memory modern computers{{mdashb}}especially [[Server (computing)|servers]]{{mdashb}}are equipped with, and together with extended periods of [[uptime]], the probability of soft errors in the total memory installed is significant.{{citation needed|date=July 2017}} The information in an [[ECC memory]] is stored [[Redundancy (information theory)|redundantly]] enough to correct single bit error per memory word. Hence, an ECC memory can support the scrubbing of the memory content. Namely, if the [[memory controller]] scans systematically through the memory, the single bit errors can be detected, the erroneous bit can be determined using the ECC [[error detection and correction|checksum]], and the corrected data can be written back to the memory. == Overview == It is important to check each memory location periodically, frequently enough, before ''multiple'' bit errors within the same word are too likely to occur, because the ''one'' bit errors can be corrected, but the ''multiple'' bit errors are not correctable, in the case of usual (as of 2008) ECC memory modules. In order to not disturb regular memory requests from the [[Central processing unit|CPU]] and thus prevent decreasing [[Computer performance|performance]], scrubbing is usually only done during idle periods. As the scrubbing consists of normal read and write operations, it may increase [[power consumption]] for the memory compared to non-scrubbing operation. Therefore, scrubbing is not performed continuously but periodically. For many servers, the scrub period can be configured in the [[BIOS]] setup program. The normal memory reads issued by the CPU or [[Direct memory access|DMA]] devices are checked for ECC errors, but due to [[Locality of reference|data locality]] reasons they can be confined to a small range of addresses and keeping other memory locations untouched for a very long time. These locations can become vulnerable to more than one soft error, while scrubbing ensures the checking of the whole memory within a guaranteed time. On some systems, not only the main memory (DRAM-based) is capable of scrubbing but also the [[CPU cache]]s (SRAM-based). On most systems the scrubbing rates for both can be set independently. Because cache is much smaller than the main memory, the scrubbing for caches does not need to happen as frequently. Memory scrubbing increases reliability, therefore it can be classified as a [[Reliability, availability and serviceability (computer hardware)|RAS]] feature. === {{Anchor|PATROL|DEMAND}}Variants === There are usually two variants, known as ''patrol scrubbing'' and ''demand scrubbing''. While they both essentially perform memory scrubbing and associated error correction (if it is doable), the main difference is how these two variants are initiated and executed. Patrol scrubbing runs in an automated manner when the system is idle, while demand scrubbing performs the error correction when the data is actually requested from main memory.<ref>{{cite web | url = http://www.supermicro.com/manuals/motherboard/C600/MNL-1281.pdf | title = Supermicro X9SRA motherboard manual | date = March 5, 2014 | accessdate = February 22, 2015 | publisher = [[Supermicro]] | pages = 4β10 }}</ref> == See also == {{Portal|Electronics}} * [[Data scrubbing]], a general category containing memory scrubbing * [[Soft error]], an important reason for doing memory scrubbing * [[Error detection and correction]], a general theory used for memory scrubbing * [[Memory refresh]], which preserves information stored in memory == References == {{Reflist}} {{DEFAULTSORT:Memory Scrubbing}} [[Category:Computer memory]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Mdashb
(
edit
)
Template:More citations needed
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)