Некорректированные ecc кодом ошибки

Как исправить Hardware ECC Recovered (0xC3)?

Как исправить Hardware ECC Recovered (0xC3)?

При загрузке компьютера или ноутбука возникает S. M.A. R.T. ошибка «0xC3 Hardware ECC Recovered»?

Что означает «0xC3»: Hardware ECC Recovered? Допустимые значения атрибута «Hardware ECC Recovered» отличаются для различных производителей жестких дисков WD (Western Digital), Samsung, Seagate, HGST (Hitachi), Toshiba.

Актуально для ОС: Windows 10, Windows 8.1, Windows Server 2012, Windows 8, Windows Home Server 2011, Windows 7 (Seven), Windows Small Business Server, Windows Server 2008, Windows Home Server, Windows Vista, Windows XP, Windows 2000, Windows NT.

Прекратите использование сбойного HDD

Получение от системы сообщения о диагностике ошибки не означает, что диск уже вышел из строя. Но в случае наличия S. M.A. R.T. ошибки, нужно понимать, что диск уже в процессе выхода из строя. Полный отказ может наступить как в течении нескольких минут, так и через месяц или год. Но в любом случае, это означает, что вы больше не можете доверить свои данные такому диску.

Необходимо побеспокоится о сохранности ваших данных, создать резервную копию или перенести файлы на другой носитель информации. Одновременно с сохранностью ваших данных, необходимо предпринять действия по замене жесткого диска. Жесткий диск, на котором были определены S. M.A. R.T. ошибки нельзя использовать – даже если он полностью не выйдет из строя он может частично повредить ваши данные.

Конечно же, жесткий диск может выйти из строя и без предупреждений S. M.A. R.T. Но данная технология даёт вам преимущество предупреждая о скором выходе диска из строя.

Восстановите удаленные данные диска

«0xC3 Hardware ECC Recovered»: Восстановление данных сбойного диска

Просканируйте диск на наличие «битых» секторов

Как проверить жесткий диск на ошибки и исправить ошибки в Windows 10, 8, 7

Запустите проверку всех разделов жесткого диска и попробуйте исправить найденные ошибки.

Для этого, откройте папку «Этот компьютер» и кликните правой кнопкой мышки на диске с SMART ошибкой.
Выберите Свойства / Сервис / Проверить в разделе Проверка диска на наличия ошибок. [скриншот]

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

Снизьте температуру диска

Как проверить температуру диска HDD компьютера или ноутбука

Иногда, причиной возникновения «S M A R T» ошибки может быть превышение максимально допустимой температуры работы диска. Такая ошибка может быть устранена путём улучшения вентиляции компьютера. Во-первых, проверьте оборудован ли ваш компьютер достаточной вентиляцией и все ли вентиляторы исправны.

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

Произведите дефрагментацию жесткого диска

Откройте папку «Этот компьютер» и кликните правой кнопкой мышки на диске с ошибкой « 0xC3 Hardware ECC Recovered». Выберите Свойства / Сервис / Оптимизировать в разделе Оптимизация и дефрагментация диска. Выберите диск, который необходимо оптимизировать и кликните Оптимизировать.

Дефрагментация дисков в Windows 10

Примечание. В Windows 10 дефрагментацию и оптимизацию диска можно настроить таким образом, что она будет осуществляться автоматически.

«0xC3 Hardware ECC Recovered»: Произведите дефрагментацию жесткого диска

Ошибка «Hardware ECC Recovered» для SSD диска

Диагностика SSD диска: программы для поиска и исправления ошибок

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

SSD диски имеют свои специфические SMART атрибуты, которые сигнализируют о состоянии ячеек памяти диска. Например, «209 Remaining Drive Life», «231 SSD life left» и т. д. Данные ошибки могут возникнуть в случае снижения работоспособности ячеек, и это означает, что сохранённая в них информация может быть повреждена или утеряна.

Ячейки SSD диска в случае выхода из строя не восстанавливаются и не могут быть заменены.

Сбросьте ошибку

SMART ошибки можно легко сбросить в BIOS (или UEFI). Но разработчики всех операционных систем категорически не рекомендуют этого делать. Если же для вас не имеют ценности данные на жестком диске, то вывод SMART ошибок можно отключить.

Для этого необходимо сделать следующее:

Примечание: место отключения функции указано ориентировочно, так как в зависимости от версии BIOS или UEFI, место расположения такой настройки может незначительно отличаться.

Приобретите новый жесткий диск

Целесообразен ли ремонт HDD?

Важно понимать, что любой из способов устранения SMART ошибки – это самообман. Невозможно полностью устранить причину возникновения ошибки, так как основной причиной её возникновения часто является физический износ механизма жесткого диска.

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

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

Как выбрать новый накопитель?

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

Начальные сведения о помехозащищенном кодировании на основе кода Хэмминга

Помехозащищенное кодирование применяется для надёжной передачи данных по каналу связи, в котором может присутствовать источник помех. В МК 1986ВЕ8Т в качестве таких каналов связи выступают шины, осуществляющие передачу данных как между внутренними блоками МК, например, внутренняя память – ядро, так и между внутренними и внешними блоками, например, внешняя память – ядро. Само помехозащищенное кодирование, а также декодирование с коррекцией ошибок, осуществляется на аппаратном уровне с помощью специальных блоков. В качестве используемого самокорректирующегося кода применяется код Хэмминга, при этом в МК используется всего два вида кодовых слов: (7,4) для задания режима работы и (72,64) для внутренней памяти и памяти на внешней шине.

Общий алгоритм генерации ECC и коррекции ошибок на основе кода Хэмминга

Общий алгоритм коррекции ошибок (ECC), основанный на коде Хэмминга, на примере операции записи/чтения:

Начальная информация о коррекции ошибок на основе кода Хэмминга 7,4

Здесь мы рассмотрим построение кода Хэмминга 7,4, чтобы понять, как производится генерация ECC и коррекция одиночных ошибок.

Однако, прежде чем мы приступим к рассмотрению кода Хэмминга (7,4), сделаем небольшое отступление и рассмотрим задачу о надёжной передаче данных в ненадёжном канале связи и разберёмся, откуда появилось условие для кода Хэмминга 2 k >=k+m+1.

Небольшое отступление

Предположим, что мы хотим передать слово B= по каналу связи, в котором действует источник помех (не такая уж и гипотетическая задача). Предположим, что при передаче слова В источник помех может вызвать ошибку не более чем в 1 бите. Передавать слово В в исходном виде дело совершенно не надёжное, и установить, что же в итоге мы хотели передать, будет невозможно. Один из тривиальных способов защиты информации в данном канале: утроить все биты исходного слова (а-ля троированная логика) В’=. Тогда, если при передаче изменится один из битов, то по схеме мажорирования (по принципу большинства), можно восстановить слово В’, а значит, и исходное слово В. Такое решение при передаче данных является некорректным, так как утроение бит приведёт к тому, что в таком длинном слове вероятность появления двойных ошибок резко возрастёт, а исправить их уже не получится. Поэтому необходимо закодировать исходное слово так, чтобы увеличение его длины было минимальным.

Это как раз и сделал Ричард Хэмминг. Он рассмотрел случай, когда при передаче может возникнуть 1 ошибка, и пришёл к выводу, что, передавая закодированное слова длины l = m+k, где m – длина исходного слова, k – длина контрольных бит. Приёмник, с учётом одной ошибки, может получить l+1 различных вариантов передаваемого слова. Например, предаём слово C= длиной 3 бита. До приёмника могут дойти следующие слова:

Итого l+1=4 различных варианта принятого слова. Чтобы закодировать с помощью контрольных бит все эти случаи, необходимо чтобы 2 k >=l+1 или 2 k >= m+k+1. Вот так и появилось знаменитое неравенство для нахождения количества контрольных бит k в зависимости от необходимого количества бит m исходного слова.

Для надёжной передачи 4 бит информации (m), исходя из выше указанного неравенства, необходимо к ним добавить ещё 3 проверочных бита (k).

В обозначении 7,4 первое число (7) определяет количество бит закодированного слова, второе (4) – количество бит исходного слова.

Вычисление проверочных разрядов r[2:0] выполняется по формулам:

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

Для математического описания кодирования и декодирования исходных слов вводят специальные матрицы: матрицу G генерации и матрицу H проверки.

Матрица генерации G формирует закодированное слово путём перемножения слова A и матрицы генерации G.

X = AG, при этом операция суммирования производится по модулю 2.

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

 Перемножение вектора А на матрицу В

При перемножении матриц для кодирования Хэмминга вместо «+» используется ⊕.

Матрица G для кода 7,4 выглядит следующим образом:

 Матрица генерации для кода Хэмминга 7,4

Операция перемножения A на G:

 Перемножение вектора А на матрицу G

Таким образом перемножив A на G мы получим закодированное слово X, состоящее из слова A и проверочных бит r[2:0].

При чтении закодированного слова X заново выполняется расчёт контрольных бит на основе слова А, а затем вычисленные и считанные контрольные биты складываются по модулю 2. Результат сложения образует так называемый синдром S = . По синдрому определяется ошибка, если таковая была.

S2 = r2 ⊕ r2’ = r2 ⊕ a3 ⊕ a2 ⊕ a1 ;

S1 = r1 ⊕ r1’ = r1 ⊕ a3 ⊕ a2 ⊕ a0 ;

S0 = r0 ⊕ r0’ = r0 ⊕ a3 ⊕ a1 ⊕ a0 ;

где r[2:0]’ – заново вычисленные проверочные биты на основе считанного слова А.

Для расчёта синдрома S[2:0], аналогично матрицы генерации G, вводят проверочную матрица H. Синдром формируется путём перемножения считанного слова X и транспонированной проверочной матрицы H T :

Проверочная матрица H для кода Хэмминга 7,4 имеет вид:

 Проверочная матрица для кода Хэмминга 7,4 (S2,S1,S0)

Каждая строка этой таблицы при побитом перемножении на слово X образует соответствующий бит синдрома.

Если поменять местами строки 1 и 3, то получим проверочную матрицу, указанную в спецификации, при этом изменится порядок следования бит синдрома S = :

 Проверочная матрица для кода Хэмминга 7,4 (S0,S1,S2)

Операция перемножения X на H T (H матрица как в спецификации):

 Перемножение вектора X на матрицу H

По получившемуся вектору синдрома и проверочной матрице H можно определить, где произошла ошибка. Если ошибки не было, то синдром равен 0: S = (0, 0, 0). Если же произошла одиночная ошибка, то совпадающий с синдромом столбец указывает на ошибочный бит:

 Проверочная матрица для кода Хэмминга 7,4 (S0,S1,S2)

К сожалению, данный код Хэмминга (7,4) может применяться только в условиях возникновения однократных ошибок. Если произойдет две и более ошибки, то отличить их от одинарной не получится, а поэтому в данном случае исправление одной ошибки не приведёт к восстановлению исходного слова.

Чтобы этого избежать, вводят дополнительный бит четности p (parity), с помощью которого можно определить, произошла одиночная ошибка либо двойная и более. Тогда, если имеет место однократная ошибка, слово можно исправить, если двукратная – слово восстановлению не подлежит.

Бит чётности может занимать любую позицию в закодированном слове, но для определённости мы сделаем, как указано в спецификации, и добавим его на место 4 бита. При этом закодированное слово X приобретёт вид:

Бит чётности p вычисляется на основе всех остальных бит слова X путём их сложения по модулю 2:

При определении ошибки заново вычисляется бит чётности p’ и складывается со считанным битом p, при это данный результат будет являться новым битом синдрома. Так как мы добавили бит чётности на 0 позицию проверочных бит, то слово синдрома S = приобретёт следующий вид:

S0 = p ⊕ p’ = p + r2 ⊕ r1 ⊕ r0 ⊕ a3 ⊕ a2 ⊕ a1 ⊕ a0 ;

S1 = r0 ⊕ r0’ = r0 ⊕ a3 ⊕ a1 ⊕ a0 ;

S2 = r1 ⊕ r1’ = r1 ⊕ a3 ⊕ a2 ⊕ a0 ;

S3 = r2 ⊕ r2’ = r2 ⊕ a3 ⊕ a2 ⊕ a1 ;

С учётом бита чётности проверочная матрица H будет иметь вид:

 Проверочная матрица для кода Хэмминга 7,4 c битом чётности (S1,S2,S3,S0)

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

 Проверочная матрица для кода Хэмминга 7,4 c битом чётности (S1,S2,S3,S0)

Для кода Хэмминга (72,64) генерации ECC и коррекция ошибок осуществляется точно таким же образом, просто используемые матрицы немного больше. Надо заметить, что для кода (72, 64) расстояние Хэмминга позволяет определять двойные ошибки, а потому бит чётности в данном коде не используется.

Программная генерация ECC

В спецификации приведён пример программного вычисления проверочных бит ЕСС для кода Хэмминга (72, 64). Как уже было отмечено ранее, в данном коде не используется бит чётности, поэтому алгоритм вычисления ECC для кода (7,4) с битом чётности будет отличаться от алгоритма для кода (72,64). В связи с этим мы разберём здесь программную реализацию вычисления ECC для кода (7,4) c битом чётности на примере вычисления бит CFGx в режимах запуска EXTBUS_CFG+JB и EXTBUS_CFG+JA.

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

Полный код функции представлен ниже:

Разберём основные части.

Для начала составим из правой части проверочной матрицы H массив генерации ECC G[], при этом каждый элемент данного массива будет представлять строку правой части матрицы H. Далее в цикле формируем проверочные биты, путем выборки необходимые информационные биты, а именно, накладывая маску из массива генерации, после чего суммируем их по модулю два. Делаем это для трёх проверочных бит. Дописываем их к информационным битам. После вычисляем бит чётности p суммированием по модулю два всех проверочных и информационных бит, и дописываем его в кодируемое слово. Исходное слово закодировано.

Источники:

https://byr1.ru/fix-hardware-ecc-recovered-smart-error

https://startmilandr. ru/doku. php/prog:spec:hammingcode? do=export_xhtml

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

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