Поддерживает код устраения ошибок памяти что это


Тест ОЗУ (RAM): проверка оперативной памяти на ошибки

Доброго времени суток.

Вообще, привести диагностику памяти можно разными путями:

В этой статье рассмотрю оба эти варианта (вообще, конечно, второй вариант более предпочтителен!).

Проверка ОЗУ (RAM) на ошибки

Средство диагностики памяти Windows

И тем не менее, как запустить проверку планок ОЗУ в Windows (актуально для Windows 7, 8, 10) :

Mdsched — команда для проверки ОЗУ (Win+R)

Далее должно появиться окно, в котором вам предложат на выбор два варианта проверки:

Средство проверки памяти Windows

Если с диагностикой все «OK» — увидите сообщение, что тест памяти был успешно запланирован.

Тест памяти запланирован

После перезагрузки компьютера/ноутбука увидите окно, как на фото ниже. Будет выполнено 2 прохода, в нижней части окна показывается состояние операции. Если с вашей памятью все хорошо — то состояние будет в статусе «Неполадки пока не обнаружены».

Средство диагностики памяти Windows

Если будут найдены неполадки

Рекомендую прогнать еще раз утилитой Memtest 86+. Если ошибки подтвердятся и в этой утилите — то см. конец этой статьи, там привел несколько советов.

Тестирование оперативной памяти в Memtest 86+

Memtest 86+

Memtest 86+ — одна из лучших утилит, предназначенных для тестирования оперативной памяти. Утилита может запускаться с помощью собственного загрузчика, поэтому для нее операционная система, в принципе, не нужна.

Программа поддерживает современные многоядерные процессоры, большинство чипсетов материнских плат. Memtest 86+ доступна для скачивания на официальном сайте (ссылка выше), в виде нескольких версий. О них пару слов ниже.

Про версии программы Memtest 86+ (V5.01):

Создание загрузочной флешки с Memtest86+

Создание загрузочной флешки в Memtest 86+

Загрузка с флешки и запуск теста в Memtest 86+

Я воспользовался вызовом Boot Menu, указал с чего загружаться (USB-флешки) и нажал Enter (скрин ниже).

Загрузка с USB-флешки

Далее, если ваша флешка правильно записана, утилита Memtest 86+ автоматически запуститься и начнет тестировать оперативную память. От вас ничего не требуется нажимать. Красной стрелкой на фото ниже показан ход тестирования (сколько процентов проверено).

Тестирование в Memtest 86+ // запускается автоматически

Примечание! На всякий случай приведу клавиши управления (хотя они в большинстве случаев не нужны).

Esc – закрыть программу и перезагрузить ПК;
C – задание параметров в ручном режиме (для опытных пользователей);
F1 — Enhanced Fail Safe Mode (расширенная Fail Safe Mode).
F2 — Experimental SMT support up to 32 cores (экспериментальная SMT поддержка до 32 ядер).
При запуске производится анализ компонентов компьютера, затем начинается тестирование оперативной памяти.
Если тест не запускается в авто-режиме — запустите его при помои кнопок F1, либо F2.

Вообще, рекомендую оставить вот так тестировать ПК на несколько часов, чтобы утилита прогнала память несколько раз. Если с памятью все в порядке — вы должны увидеть внизу окна сообщение «Pass complete, no errors, press Esc to exit» (как на фото ниже).

Все хорошо с памятью // прошла тест

Если же в процессе тестирования будут найдены ошибки — вы увидите красные строки (это в любом случае не хорошо (как минимум) ).

С памятью есть проблемы.

Что делать, если были найдены ошибки

Довольно популярный вопрос, наряду с вопросами по тестированию памяти.

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

Чистка контактов памяти резинкой и кисточкой

Примечание. Процедуру нужно проводить крайне аккуратно, на чистой, сухой, ровной поверхности. Резинка лучше та, у которой две стороны: одна синяя, другая розовая. Тереть рекомендуется синей. В некоторых случаях, желтые контакты меняют цвет на более светлый.

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

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

Ошибки NAND памяти и методы борьбы с ними

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

Классификация ошибок

Принято делить ошибки на два основных вида – постоянные (некорректируемые) и временные (корректируемые). К первым относится главным образом износ ячеек по причине исчерпания их ресурса. Серьезные производители часто указывают гарантированный ресурс накопителя, т. е. максимальный объем данных, который можно записать без возникновения ошибок.

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

Так, на момент написания этой статьи у меня тестируются два накопителя – Crucial BX500 с памятью TLC и A-data SU635, в котором установлены чипы NAND типа QLC, способные хранить 4 бита в одной ячейке.

Но вернемся к сегодняшней теме. Второй класс ошибок (временные) можно подразделить на несколько типов, с которыми предлагаю познакомиться немного подробнее.

Read Disturb Error – ошибки чтения

Как следует из названия, эти ошибки никак не связаны с циклами записи/стирания (P/E) ячеек, а причиной возникновения является операция чтения. Почему? Давайте разберемся.

Кратко напомню, что представляет собой NAND память. В качестве запоминающего элемента ячейки используется транзистор. На данный момент применяется технология изготовления транзисторов с плавающим затвором, который (собственно затвор), и является хранителем заряда, величина коего позволяет определить, какая комбинация бит хранится в ячейке.

Особенностью именно NAND памяти, в отличие от NOR, является организация поблочного доступа к данным, т. е. оперировать отдельными битами/байтами нельзя, можно только считать сразу целый блок данных, произвести там изменения (если требуется) и вернуть этот блок обратно на накопитель.

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

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

А проблема в организации NAND памяти. Т. к. мы оперируем не отдельными битами, а блоками данных, то и считывающее напряжение подается на весь блок, из которого потом другим сигналом выбирается нужная нам страница данных. Что при этом происходит?

После считывания нужной порции данных сигнал чтения снимается, и… ничего не происходит? Почти. Проблема в том, что референсное (опорное) напряжение пусть немного, но влияет на ячейки данных, из которых не производилась выборка, но которые «попали под раздачу» по причине того, что находились в том же блоке, что и интересовавшая нас страница. Уровень порогового напряжения изменяется, пусть и на мизерную величину.

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

Кстати, на использовании этого эффекта нежелательного изменения значений в ячейках основана хакерская атака на накопитель, цель которой – заставить его выполнять большое количество операций чтения из одних и тех же блоков данных. Это может привести к искажению информации в блоке именно из-за возникновения ошибки Read Disturb.

Как защититься

В то же время и с ошибками Read Disturb мириться нельзя. Часто контроллеры имеют некое заранее заданное количество операций чтения из одного и того же блока, по достижении которого весь блок принудительно переписывается на новое место с последующей очисткой ранее использовавшегося блока данных. В сочетании с системой коррекции ошибок это позволяет избавиться от возникшей ошибки, и обеспечить равномерное расходование ресурса ячеек NAND.

Program Disturb Error – ошибка при программировании ячейки

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

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

Этот эффект проявляется тем сильнее, чем тоньше техпроцесс, который использовался для изготовления NAND.

Как защититься

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

Over-Programming Error – ошибка перепрограммирования

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

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

Как защититься

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

Retention Error – ошибка удержания заряда

Хранящиеся в накопителе данные склонны к повреждению с течением времени. Связано это с падением уровня напряжения в ячейке, точнее, в плавающем затворе транзистора. Хотя он окружен изолирующим оксидным слоем, все же постепенная утечка электронов через этот слой имеет место.

Чем более изношена ячейка, тем активнее идет утечка заряда через изолирующий слой, который постепенно теряет свои физические свойства. Ускорить процесс искажения записанных в NAND память данных могут продолжительное нахождение ячеек в отключенном состоянии, повышенная температура, тип ячеек (MCL, TLC, QLC), использованный для производства чипа техпроцесс, толщина изолирующего оксидного слоя и т. п.

По поводу четырехбитовых ячеек должен сказать, что я провожу эксперимент с имеющимся у меня накопителем Crucial P1, в котором как раз QLC NAND. Он сейчас заполнен наполовину объема файлами, и теперь он просто лежит в коробочке, где проведет не менее полугода (как минимум до сентября этого года), что позволит проверить, случится ли что-то с информацией на накопителе, который длительное время не включался.

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

Как защититься

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

Механизмы мониторинга и обработки ошибок NAND

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

Error Correction Codes (ECC)

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

Суть метода заключается в добавлении дополнительных бит к битам данных, что позволяет обнаруживать и корректировать ошибку. Так, к m-битам блока данных добавляется k-бит дополнительной информации, в результате чего блок данных становится равным m+k. Количество дополнительных бит зависит от используемого алгоритма ЕСС.

Такой алгоритм кодирует m+k таким образом, что из всех доступных комбинаций 2 ( m+ k) только минимальное количество комбинаций соответствует корректным данным. Если изменится бит в данных, то это сразу станет видно, и ошибка может быть исправлена.

Количество дополнительных бит варьируется не только в зависимости от применяемого алгоритма ECC, но и от типа NAND памяти, используемой в накопителе. Так, для SLC требуется меньшего всего дополнительных бит, чем для TLC, и тем более для QLC. Количество также зависит от количества циклов P/E, т. к. ячейки постепенно изнашиваются и вероятность появления ошибки становится выше.

Например, код Хэмминга способен определять ошибки в двух битах и корректировать один бит, что делает его пригодным для использования с SLC NAND, где потребуется всего один дополнительный проверочный бит.

Wear Leveling – выравнивание износа ячеек

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

Wear Leveling и призвана обеспечить равномерное использование всего объема памяти. Контроллер следит за количеством циклов записи в ячейки и стремится, чтобы количество циклов записи/стирания (P/E) было примерно одинаковым у всех блоков. Различают два метода выравнивания износа:

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

Bad-Block Management

Назначение этого механизма знакомо по обычным жестким дискам, где также ведется мониторинг состояния поверхности пластин и вышедшие из строя дорожки отправляются в «плохие» (Bad) и заменяются новыми из резервной области.

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

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

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

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

Источники:

Https://ocomp. info/testirovanie-operativnoy-pamyati-test-ozu-ram. html

Https://andiriney. ru/oshibki-nand-pamyati/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: