У меня есть ноутбук, в котором, как я подозреваю, неисправен модуль памяти. Поэтому я скачалMemtest86+и пусть работает.
Обратите внимание, что скриншот не мой, он предоставлен memtest86+
Как интерпретировать цифры на экране? Я дал ему поработать около четырех часов, и сейчас я на седьмом проходе.
Особенно, что делает
- номер теста
- количество ошибок
- количество ошибок ECC
указать? Каковы разумные значения ошибок памяти? В какой момент мне следует рассмотреть замену памяти?
решение1
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. (Последовательный)
- Тестовые сектора в следующем порядке: 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 означает Error-correcting code memory (память с исправлением ошибок) и представляет собой механизм обнаружения и исправления неправильных битов в состоянии памяти. Его можно немного сравнить с проверками четности, выполняемыми на RAID или оптических носителях. Эта технология довольно дорогая и, скорее всего, будет встречаться только в серверных установках. Счетчик ECC подсчитывает, сколько ошибок было исправлено механизмом ECC памяти. ECC не должен вызываться для исправной оперативной памяти, поэтому счетчик ошибок ECC выше 0 также может указывать на плохую память.
Объяснение ошибки
Пример Memtest, который обнаружил ошибки. Он показывает, какой сектор/адрес дал сбой.
Первый столбец (Тст) показывает, какой тест не пройден, номер соответствует номеру теста из списка, уже упомянутого выше. Второй столбец (Проходить) показывает, если этот тестимеетПройдено. В случае примера тест 7 не имеет пройденных тестов.
Третий столбец (Неверный адрес) показывает, в какой именно части памяти есть ошибки. Такая часть имеет адрес, очень похожий на IP-адрес, который является уникальным для этой части хранилища данных. Он показывает, какой адрес дал сбой и насколько большой фрагмент данных. (0,8 МБ в примере)
Четвертый (Хороший) и пятый (Плохой) столбцы показывают данные, которые были записаны и которые были извлечены соответственно. Оба столбца должны быть равны в исправной памяти (очевидно).
Шестая колонна (Err-Bits) показывает точное положение неисправных битов.
Седьмой столбец (Считать) показывает количество последовательных ошибок с одним и тем же адресом и ошибочными битами.
Наконец, последний, седьмой столбец (Чан) показывает канал (если в системе используется несколько каналов), в котором находится планка памяти.
Если он находит ошибки
Если MemTest обнаружит какие-либо ошибки, лучший метод определения неисправного модуля описан вэтот вопрос Суперпользователяи его принятый ответ:
Используйте метод исключения — удалите половину модулей и повторите тест...
Если сбоев нет, то вы знаете, что эти два модуля исправны, поэтому отложите их в сторону и протестируйте снова.
Если есть сбои, то снова сократите вдвое (теперь до одного из четырех модулей памяти), а затем повторите тестирование.
Однако, даже если один из них не прошел тест, не стоит полагать, что другой тоже не откажет (у вас могут быть два неисправных модуля памяти) — если вы обнаружили неисправность двух модулей памяти, протестируйте каждый из них по отдельности.
Важное примечание: из-за таких особенностей, как чередование памяти и неудачные схемы нумерации разъемов модулей памяти у некоторых поставщиков материнских плат, может быть сложно определить, какой модуль представлен данным адресом.
решение2
Номер теста: номер конкретного теста, который сейчас выполняет memtest. Их много.
Количество ошибок: количество обнаруженных ошибок памяти.
Ошибки ECC: Количество ошибок, исправленных ECC. Ваш чипсет/память не имеет ECC, поэтому это число не имеет значения.
Если в вашей памяти имеется количество ошибок больше 0, вам следует ее заменить.
EDIT: Тесты — это различные шаблоны, которые memtest записывает в память. Он записывает различные шаблоны в память и считывает их обратно для проверки на наличие ошибок, и он использует различные шаблоны, чтобы иметь возможность тестировать все состояния всех битов.
Счетчик показывает, сколько раз результат, считанный обратно в memtest, не совпадал с записанным в память, что означает наличие ошибки в тестируемом фрагменте памяти.
ECC — это технология исправления ошибок, встроенная в чипы памяти для серверов и рабочих станций. Большинство настольных компьютеров не поддерживают модули памяти со встроенным ECC. Почти все серверы/рабочие станции поддерживают ее и обычно требуют ее. Количество ошибок, исправленных ECC, — это количество ошибок, которые чип ECC успешно исправил.
решение3
Количество ошибок
При прохождении тестов, если память не проходит какой-либо из тестов, она увеличивает количество ошибок. Если я правильно помню, она подсчитывает количество адресов, которые не прошли тест.
Количество ошибок ECC
память ECCэто особый тип микросхемы памяти, которая используется для защиты данных от повреждения. В вашей ECC Errs
колонке указано, сколько проблем было исправлено с помощью ECC.
(ECC — медленный и дорогой метод, который в основном предназначен для критически важных систем, которые не хотят тратить время на замену оперативной памяти.)
Номер теста
Memtest выполняет различные виды тестов вашей памяти, которые описаны наMemtest86веб-сайт. Просто быстрый перевод на простой английский:
Тест 0: Тест на определение адреса для идущих
Memtest будет записывать 00000001
в первую ячейку памяти, 00000010
в следующую и так далее, повторяя этот шаблон каждые 8 байт. Затем он считывает память и убеждается, что значение не изменилось. (Источник)
Тесты 1 и 2: Собственный адрес Адресный тест
Memtest записывает в каждую ячейку памяти свой адрес и проверяет, что значение не изменилось.
Тест 1 является последовательным, а тест 2 — параллельным (т.е. использует параллелизм).
Тест 3&4Тест на передвижение инверсий
По сути, этот тест загружает нули в память, а затем
- занимает каждую ячейку памяти (начиная с первой/самой низкой ячейки),
- и записывает обратный шаблон (я бы предположил, что это побитовое НЕ, но я не смог найти никакой документации по этому поводу).
Цель здесь — попытаться проверить каждый бит и смежные с ним биты «все возможные комбинации нулей и единиц».
Тест 3 не использует параллелизм, а тест 4 использует.
Тест 5: Движущиеся инверсии, 8-битный Пат
Это снова реализует метод движущихся инверсий, но на этот раз с движущимися единицами из теста 0 в 8-битных блоках.
Тест 6: Движущиеся инверсии, случайный узор
Memtest использует случайные числа вместо одних нулей или блуждающих единиц.
Тест 7: Блокировка движения
Это весело. Он загружает шаблоны в память, перемещает их блоками по 4 МБ и проверяет их.
Тест 8: Движущаяся инверсия, 32-битный Пат
То же, что и тест 5, но вместо этого использует 32-битные блоки. Этот тест фактически загружает все возможные 32-битные значения в каждом месте.
Тест 9: Случайные числа
Этот загружает псевдослучайные числа в память и проверяет. Самое крутое в генераторе псевдослучайных чисел то, что он не очень-то и случайный (если вы когда-нибудь запускали printf("%d", rand());
программу на C без посева и получали о-о-очень-случайные 41, вы понимаете, о чем я). Поэтому он проверяет, сбрасывая посев случайных чисел и снова запуская генератор.
Тест 10: Модуль-X
Каждые 20 ячеек он записывает шаблон (все нули или все единицы) и записывает дополнение во все остальные ячейки, затем проверяет.
Тест 11: Тест на затухание бита
Этот код загружает ОЗУ всеми единицами (и снова всеми нулями), ждет 5 минут и смотрит, изменились ли какие-либо значения.