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, в котором обнаружены ошибки. Он показывает, какой сектор / адрес не удалось.
Первый столбец (Tst) показывает, какой тест не пройден , номер соответствует номеру теста из списка, уже упомянутого выше. Второй колонке (Pass) показывает , что , если тест прошел. В случае примера тест 7 не имеет проходов.
Третий столбец (Failing Address) показывает, какая именно часть памяти имеет ошибки. У такой части есть адрес, очень похожий на IP-адрес, который уникален для этой части хранилища данных. Он показывает, какой адрес потерпел неудачу и насколько большой блок данных. (0.8MB в примере)
В четвертом (хорошем) и пятом (плохом) столбцах показаны данные, которые были записаны, и то, что было получено соответственно. Оба столбца должны быть одинаковыми в исправной памяти (очевидно).
Шестой столбец (Err-Bits) показывает положение точных битов, которые терпят неудачу.
Седьмой столбец (Count) показывает число последовательных ошибок с тем же адресом и неудовлетворительными битами.
Наконец, последний, столбец седьмой (Чан) показывает канал (если в системе используется несколько каналов), в котором находится полоса памяти.
Если он находит ошибки
Если MemTest обнаруживает какие-либо ошибки, лучший способ определить, какой модуль неисправен, описан в этом вопросе суперпользователя и принятом ответе:
Воспользуйтесь процессом исключения - удалите половину модулей и запустите тест снова ...
Если сбоев нет, то вы знаете, что эти два модуля хороши, поэтому отложите их в сторону и повторите тестирование.
Если есть сбои, то снова сократите до половины (до одного из четырех модулей памяти), затем протестируйте снова.
Но только потому, что один не прошел тест, не думайте, что другой не потерпит неудачу (у вас может быть два неисправных модуля памяти) - там, где вы обнаружили сбой в двух модулях памяти, протестируйте каждый из этих двух отдельно после этого ,
Важное примечание: при некоторых функциях, таких как чередование памяти и плохая схема нумерации разъемов модулей памяти у некоторых поставщиков материнских плат, может быть трудно узнать, какой модуль представлен данным адресом.