Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Очистка памяти заключается в чтении данных из каждой ячейки памяти компьютера, исправлении битовых ошибок (при их наличии) с помощью кода коррекции ошибок (ECC) и записи исправленных данных обратно в ту же ячейку. В связи с высокой степенью интеграции современных микросхем памяти, отдельные структуры ячеек памяти стали достаточно малыми, чтобы быть уязвимыми к воздействию космических лучей и/или альфа-частиц. Ошибки, вызванные этими явлениями, называются случайными ошибками (soft errors). Более 8% модулей DIMM испытывают хотя бы одну исправляемую ошибку в год. Это может представлять проблему для памяти на основе DRAM и SRAM. Вероятность случайной ошибки в отдельном бите памяти очень мала. Однако, в сочетании с большим объемом памяти, которым оснащаются современные компьютеры, особенно серверы, и с длительными периодами бесперебойной работы, вероятность возникновения случайных ошибок во всей установленной памяти становится значительной. Информация в памяти ECC хранится с достаточной избыточностью для исправления однобитовой ошибки на слово памяти. Следовательно, память ECC поддерживает очистку содержимого памяти. А именно, если контроллер памяти систематически сканирует память, однобитовые ошибки могут быть обнаружены, ошибочный бит может быть определен с использованием контрольной суммы ECC, а исправленные данные могут быть записаны обратно в память.
Memory scrubbing consists of reading from each computer memory location, correcting bit errors (if any) with an error correcting code (ECC), and writing the corrected data back to the same location. Due to the high integration density of modern computer memory chips, the individual memory cell structures became small enough to be vulnerable to cosmic rays and/or alpha particle emission. The errors caused by these phenomena are called soft errors. Over 8% of DIMM modules experience at least one correctable error per year. This can be a problem for DRAM and 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 computersespecially serversare equipped with, and together with extended periods of uptime, the probability of soft errors in the total memory installed is significant. The information in an ECC memory is stored 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 checksum, and the corrected data can be written back to the memory.
Обзор
Важно периодически проверять каждое место в памяти, достаточно часто, прежде чем вероятность возникновения множественных битовых ошибок в пределах одного слова станет слишком высокой, поскольку однобитные ошибки можно исправить, а множественные – нет, в случае обычных (на 2008 год) модулей памяти ECC. Чтобы не мешать обычным запросам памяти от ЦП и, следовательно, не снижать производительность, очистка (scrubbing) обычно выполняется только в периоды простоя. Поскольку очистка состоит из стандартных операций чтения и записи, она может увеличить энергопотребление памяти по сравнению с работой без очистки. Поэтому очистка выполняется не непрерывно, а периодически. Для многих серверов период очистки можно настроить в программе настройки BIOS. Обычные операции чтения памяти, инициированные ЦП или DMA-устройствами, проверяются на наличие ошибок ECC, но из-за локальности данных они могут быть ограничены небольшим диапазоном адресов, оставляя другие области памяти непроверенными в течение длительного времени. Эти области могут стать уязвимыми для возникновения более одной спонтанной ошибки, в то время как очистка гарантирует проверку всей памяти в течение заданного периода времени. На некоторых системах очистку может выполнять не только основная память (на основе DRAM), но и кэши ЦП (на основе SRAM). На большинстве систем частоту очистки для обоих типов памяти можно настроить независимо. Поскольку кэш значительно меньше основной памяти, очистка кэшей не требует такой же частоты. Очистка памяти повышает надежность, поэтому ее можно отнести к функциям RAS.
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 CPU and thus prevent decreasing 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 DMA devices are checked for ECC errors, but due to 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 caches (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 RAS feature.
Варианты
Обычно существует два варианта, известные как патрульная очистка и очистка по требованию. Хотя оба варианта по сути выполняют очистку памяти и сопутствующую коррекцию ошибок (если это возможно), основное различие заключается в способе их запуска и выполнения. Патрульная очистка выполняется автоматически в периоды простоя системы, а очистка по требованию выполняет коррекцию ошибок при фактическом запросе данных из основной памяти.
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.