63

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

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

MemTest

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

Особенно, что делает

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

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

3 ответа3

79

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 регистрирует ошибку и увеличивает количество ошибок на единицу. Ошибки обычно являются признаками плохих полос оперативной памяти.

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

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

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

Более подробное описание всех тестов: https://www.memtest86.com/technical.htm#detailed

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

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

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

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

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

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

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

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

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

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

Тест 5 [Движущиеся инверсии, 8-битный кусочек]

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

Тест 6 [Движущиеся инверсии, случайная картина]

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

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

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

Тест 8 [Движущиеся инверсии, 32-битный пат]

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

Тест 9 [Случайное число]

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

Тест 10 [по модулю 20, единицы и нули]

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

Тест 11 [Тест битового затухания, 90 мин, 2 шаблона]

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

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

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

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


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

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

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

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

Третий столбец (Failing Address) показывает, какая именно часть памяти имеет ошибки. У такой части есть адрес, очень похожий на IP-адрес, который уникален для этой части хранилища данных. Он показывает, какой адрес потерпел неудачу и насколько большой блок данных. (0.8MB в примере)

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

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

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

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


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

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

Воспользуйтесь процессом исключения - удалите половину модулей и запустите тест снова ...

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

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

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

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

6

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

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

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

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

РЕДАКТИРОВАТЬ: Тесты - это разные шаблоны, которые memtest записывает в память. Он записывает различные шаблоны в память и считывает их обратно для проверки на наличие ошибок, а также использует различные шаблоны для проверки всех состояний всех битов.

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

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

6

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

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

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

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

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

Номер теста

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

Тест 0: адресный тест для гуляющих

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

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

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

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

Тест 3 и 4 Тест на подвижную инверсию

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

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

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

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

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

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

Тест 6: Перемещение Инверсии, Случайный Образец

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

Тест 7: движение блока

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

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

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

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

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

Тест 10: по модулю X

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

Тест 11: Тест битового замирания

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .