Как интерпретировать статистику прогона memtest?

У меня есть ноутбук, который, как я подозреваю, имеет неисправный модуль памяти. Поэтому я загрузил Memtest86 + и позволю ему запустить.

Обратите внимание, что скриншот не является моим фактическим, он предоставляется memtest86 +

MemTest

Как интерпретировать цифры на экране? Я разрешил ему работать около четырех часов, и теперь я нахожусь в проходе 7.

Тем более, что

  • Номер теста
  • Количество ошибок
  • Количество ошибок ECC

показывают? Каковы нормальные значения ошибок памяти? В какой момент следует рассмотреть возможность замены памяти?

TL; DR

Самый важный номер в первую очередь: количество ошибок для здоровой памяти должно быть 0 . Любое число выше 0 может указывать на поврежденные / неисправные сектора.


Объяснение экрана

Memtest86+ v1.00 | Progress of the entire pass (test series) CPU MODEL and clock speed | Progress of individual, current test Level 1 cache size & speed | Test type that is currently running Level 2 cache size & speed | Part of the RAM (sector) that is being tested RAM size and testing speed | Pattern that is being written to the sector Information about the chipset that your mainboard uses Information about your RAM set-up, clock speed, channel settings, etc. WallTime Cached RsvdMem MemMap Cache ECC Test Pass Errors ECC Errs --------- ------ ------- -------- ----- --- ---- ---- ------ -------- Elapsed Amount Amount Mapping on on Test # of # of # of ECC time of RAM of used or or type pass errors errors cached reserved off off done found found RAM, not tested 

Объяснение данных / испытаний

MemTest запускает ряд тестов, он записывает определенные шаблоны в каждый сектор памяти и извлекает их. Если извлеченные данные отличаются от данных, которые были первоначально сохранены, MemTest регистрирует ошибку и увеличивает количество ошибок на единицу. Ошибки обычно являются признаками плохих полос RAM.

Поскольку память – это не просто блокнот, который содержит информацию, но имеет расширенные функции, такие как кеширование, выполняется несколько различных тестов. Это то, что указывает Test # . MemTest запускает ряд различных тестов, чтобы увидеть, происходят ли ошибки.

Некоторые (упрощенные) примеры тестов:

  • Тестовые сектора в этом порядке: A, B, C, D, E, F. (серийный)
  • Тестовые секторы в этом порядке: A, C, E, B, D, F. (Перемещение)
  • Заполните все сектора шаблоном: aaaaaaaa
  • Заполните все сектора случайным шаблоном.

Более подробное описание всех тестов: http://www.memtest86.com/tech.html#descri

Тест 0 [Тест адресата, ходячие, без кеша]

Проверяет все биты адреса во всех банках памяти, используя шаблон для ходячих адресов.

Тест 1 [Тест адреса, собственный адрес, Последовательность]

Каждый адрес написан с собственным адресом, а затем проверяется на согласованность. Теоретически предыдущие тесты должны были поймать любые проблемы с адресацией памяти. Этот тест должен улавливать любые ошибки адресации, которые каким-то образом не были обнаружены ранее. Этот тест выполняется последовательно с каждым доступным процессором.

Тест 2 [Тест адреса, собственный адрес, Параллельный]

То же, что и для теста 1, но тестирование выполняется параллельно, используя все процессоры и используя перекрывающиеся адреса.

Тест 3 [Перемещение инверсий, единиц и нулей, Последовательность]

В этом тесте используется алгоритм движущихся инверсий с шаблонами всех единиц и нулей. Кэш включен, хотя он в некоторой степени мешает алгоритму тестирования. С кешем этот тест не займет много времени и должен быстро найти все «жесткие» ошибки и некоторые более тонкие ошибки. Этот тест является лишь быстрой проверкой. Этот тест выполняется последовательно с каждым доступным процессором.

Тест 4 [Перемещение инверсий, единиц и нулей, Параллельный]

То же, что и для теста 3, но тестирование выполняется параллельно с использованием всех процессоров.

Тест 5 [Перемещение инверсий, 8 бит патча]

Это то же самое, что и тест 4, но использует 8-битный шаблон «ходячих» и нулей. Этот тест лучше обнаруживает тонкие ошибки в «широких» микросхемах памяти.

Тест 6 [Перемещение инверсий, случайный шаблон]

Тест 6 использует тот же алгоритм, что и тест 4, но шаблон данных является случайным числом и является дополнением. Этот тест особенно эффективен при обнаружении трудностей для обнаружения ошибок, связанных с данными. Последовательность случайных чисел различна с каждым проходом, поэтому несколько проходов повышают эффективность.

Тест 7 [Перемещение блока, 64 хода]

Этот тест подчеркивает память с помощью команд block move (movsl) и основан на тесте burnBX Роберта Редельмейера. Память инициализируется смещающими шаблонами, которые инвертируются каждые 8 ​​байтов. Затем блоки памяти размером 4 МБ перемещаются с помощью команды movsl. По завершении ходов проверяются шаблоны данных. Поскольку данные проверяются только после завершения перемещения памяти, невозможно узнать, где произошла ошибка. Описанные адреса предназначены только для того, где найден неправильный шаблон. Поскольку перемещение ограничено сегментом памяти 8 МБ, то сбойный адрес всегда будет меньше, чем на 8 мб от сообщенного адреса. Ошибки этого теста не используются для расчета шаблонов BadRAM.

Тест 8 [Перемещение инверсий, 32 бит]

Это вариация алгоритма движущихся инверсий, который сдвигает шаблон данных, оставшийся один бит для каждого последующего адреса. Начальная позиция бит сдвигается влево для каждого прохода. Для использования всех возможных шаблонов данных требуется 32 прохода. Этот тест достаточно эффективен при обнаружении ошибок, связанных с данными, но время выполнения длительное.

Тест 9 [последовательность случайных чисел]

Этот тест записывает в память ряд случайных чисел. Сбрасывая семя для случайного числа, для ссылки может быть создана одна и та же последовательность чисел. Исходный шаблон проверяется, а затем дополняется и снова проверяется на следующем проходе. Однако, в отличие от перемещения тестовых операций, проверка и проверка могут выполняться только в прямом направлении.

Тест 10 [Modulo 20, ones & zeroos]

Использование алгоритма Modulo-X должно выявлять ошибки, которые не обнаруживаются путем перемещения инверсий из-за влияния кэша и буферизации на алгоритм. Как и в случае теста, для шаблонов данных используются только одни и нули.

Тест 11 [Тест на изгиб бит, 90 минут, 2 паттерна]

Тест бит-затухания инициализирует всю память с помощью шаблона, а затем спит в течение 5 минут. Затем проверяется память, чтобы проверить, не изменились ли какие-либо биты памяти. Используются все единицы и все нулевые шаблоны.

Поскольку иногда могут работать и не работают рабочие сектора, я рекомендую разрешить MemTest выполнить несколько проходов. Полный проход – завершенная серия тестов, которые прошли. (Вышеупомянутая серия тестов 1-11) Чем больше проходов вы получаете без ошибок, тем более точным будет ваш MemTest. Конечно, я обычно бегаю 5 проходов.

Количество ошибок для здоровой памяти должно быть 0. Любое число выше 0 может указывать на поврежденные / неисправные сектора.

Количество ошибок ECC должно учитываться только при off ECC . ECC означает исправление ошибок кода, и это механизм для обнаружения и исправления неправильных бит в состоянии памяти. Его можно немного сравнить с проверками на четность на RAID или оптических носителях. Эта технология довольно дорога и, скорее всего, будет встречена только в настройках сервера. Счетчик ECC подсчитывает, сколько ошибок было исправлено механизмом ECC памяти. ECC не следует вызывать для здоровой ОЗУ, поэтому показатель ошибки ECC выше 0 также может указывать на плохую память.


Объяснение ошибки

Пример Memtest, который обнаружил ошибки. Он показывает, какой сектор / адрес потерпел неудачу.

Экран Memtest с ошибками

Первый столбец ( Tst ) показывает, какой тест потерпел неудачу, номер соответствует номеру теста из списка, упомянутого выше. Второй столбец ( Pass ) показывает, прошел ли этот тест. В случае примера тест 7 не имеет пропусков.

Третий столбец ( Failed Address ) показывает, какая именно часть памяти имеет ошибки. Такая часть имеет адрес, похожий на IP-адрес, который уникален для этой части хранилища данных. Он показывает, какой адрес не удалось и насколько большой фрагмент данных. (0,8 МБ в примере)

Четвертый ( Хороший ) и пятый ( Плохой ) столбцы показывают данные, которые были написаны и что было получено соответственно. Оба столбца должны быть одинаковыми в незащищенной памяти (очевидно).

Шестой столбец ( Err-Bits ) показывает положение точных битов, которые не работают.

Столбец thisvent ( Count ) показывает количество последовательных ошибок с одним и тем же адресом и сбойными битами.

Наконец, последний, седьмой столбец ( Chan ) показывает канал (если в системе используется несколько каналов), на котором находится полоса памяти.


Если он находит ошибки

Если MemTest обнаруживает какие-либо ошибки, наилучший способ определения того, какой модуль неисправен, рассматривается в этом вопросе Суперпользователя и его принятом ответе:

Используйте процесс устранения – удалите половину модулей и снова запустите тест …

Если нет сбоев, вы знаете, что эти два модуля хороши, поэтому отложите их и проверьте снова.

Если есть сбои, затем сократите до половины (вплоть до одного из четырех модулей памяти сейчас), затем снова проверьте.

Но только потому, что один из них не прошел тест, не предполагайте, что другой не сработает (у вас могут быть два отказавших модуля памяти) – там, где вы обнаружили сбой с двумя модулями памяти, проверьте каждый из этих двух отдельно после ,

Важное примечание. С некоторыми функциями, такими как чередование памяти и плохой схемой нумерации гнезд модулей памяти некоторыми поставщиками материнских плат, может быть трудно узнать, какой модуль представлен данным адресом.

Количество ошибок

Пройдя тесты, если память не сработает для любого из тестов, она увеличит количество ошибок. Если я правильно помню, он подсчитывает количество адресов, которые не прошли тест.

Количество ошибок ECC

ECC-память – это особый вид чипа памяти, который используется для предотвращения повреждения данных. В столбце ECC Errs сколько проблем было исправлено ECC.

(ECC медленный и дорогостоящий и в основном предназначен для критически важных систем, которые не могут быть обмануты для замены RAM).

Номер теста

Memtest выполняет различные виды тестов в вашей памяти, которые описаны на веб-сайте Memtest86 . Так же, как простой простой перевод на английский:

Тест 0: адресный тест Walking Ones

Memtest будет писать 00000001 в первом месте памяти, 00000010 в следующем и т. Д., Повторяя этот шаблон каждые 8 ​​байтов. Затем он считывает память и гарантирует, что значение не изменилось. ( Источник )

Тесты 1 и 2: собственный адресный адресный тест

Memtest записывает каждую ячейку памяти с собственным адресом и проверяет, что значение не изменилось.

Тест 1 является последовательным, а тест 2 параллелен (т. Е. Использует параллелизм).

Тест 3 и 4 теста на перемещение инверсий

По существу, этот тест загружает 0s в память, а затем

  1. Берет каждое место памяти (начиная с первого / самого низкого места),
  2. И записывает обратный шаблон (я бы поверил, что это побитовое НЕ, но я не мог найти никакой документации по этому поводу).

Цель здесь состоит в том, чтобы попытаться проверить каждый бит и его смежные биты «каждая возможная комбинация из 0s и 1s».

Тест 3 не использует параллелизм, в то время как тест 4 делает.

Тест 5: Перемещение инверсий, 8-бит Pat

Это повторяет метод движущихся инверсий, но на этот раз с ходом 1s из теста 0 в 8-битных блоках.

Тест 6: перемещение инверсий, случайный шаблон

Memtest использует случайные числа вместо всех 0 или ходячих 1s.

Тест 7: Блокировать ход

Это весело. Он загружает шаблоны в память, перемещает их в блоках по 4 мб и проверяет их.

Тест 8: Перемещение инверсии, 32-бит Pat

То же, что и для теста 5, но вместо этого использует 32-битные блоки. Это фактически загружает всевозможные 32-битные значения в каждом месте.

Тест 9: Случайные числа

Он загружает псевдослучайные числа в память и проверяет. Замечательная вещь о генераторе псевдослучайных чисел заключается в том, что он не очень случайный (если вы когда-либо запускали printf("%d", rand()); в программе C без посева и получали о-так-случайный 41 , если вы понимаете, о чем я). Поэтому он проверяет, перезагрузив сеялку случайных чисел и снова запустив генератор.

Тест 10: Modulo-X

Каждые 20 местоположений он записывает шаблон (все 0 или все 1) и записывает дополнение во всех других местах, а затем проверяет.

Тест 11: Тест на изгиб бит

Он загружает ОЗУ со всеми 1-м (и снова со всеми 0), ждет 5 минут и видит, изменилось ли какое-либо из значений.

Номер теста: номер конкретного теста, который в данный момент выполняется в memtest. Их очень много.

Количество ошибок: количество ошибок памяти

Ошибки ECC: количество ошибок, исправленных ECC. В вашем чипсете / памяти нет ECC, поэтому это число не имеет значения.

Если ваша память имеет количество ошибок выше 0, вы захотите ее заменить.

EDIT: Тесты – это разные шаблоны, которые memtest записывает в память. Он записывает разные паттерны в память и считывает их обратно, чтобы проверить наличие ошибок, и использует разные шаблоны для проверки всех состояний всех битов.

Счетчик указывает количество раз, когда результат, возвращаемый в memtest, не соответствовал тому, что он записал в память, что означает, что в куске проверяемой памяти есть ошибка.

ECC – это технология коррекции ошибок, встроенная в чипы памяти для серверов и рабочих станций. Большинство декстропсов не поддерживают модули памяти с встроенным ECC. Почти все серверы / рабочие станции поддерживают его и обычно требуют этого. Количество ошибок, исправленных ECC, – количество ошибок, исправленных исправлением ECC.

Давайте будем гением компьютера.