Как включить исправление ошибок на компьютере

Обновлено: 03.07.2024

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

Today in Tedium: нужно ли обычному пользователю компьютера заботиться о памяти с возможностями исправления ошибок? Линус Торвальдс, кажется, так думает. Ведущий разработчик и создатель Linux недавно выступил против Intel, заявив, что решение компании передать память ECC (код исправления ошибок) в серверную комнату нанесло ущерб потребителям. «Доступность ECC имеет большое значение — именно потому, что Intel сыграла важную роль в убийстве всей индустрии ECC с ее ужасно плохой сегментацией рынка», — написал Торвальдс в сообщении на форуме, его естественной среде обитания. В какой-то степени это кажется особенно занудным, но Торвальдс, кажется, доказывает, что причина, почему это так занудно, заключается в том, что Intel, компания, вся бизнес-модель которой прямо сейчас сталкивается с проблемами со стороны активных инвесторов, решила относиться к чему-то фундаментальному как к высококлассной функции премиум-класса. Это? И что технические специалисты должны знать о памяти ECC? Сегодняшний Tedium глубоко погружается в банк памяти. — Эрни @ Tedium

Сегодняшняя GIF-ка взята из классически плохого фильма Рауля Джулии «Перерисовано в банке памяти», который в 1997 году воспроизвел Mystery Science Theater 3000.

Tedium на Patreon

Держите нас в движении! Скука требует много времени, чтобы поработать над ней и пошутить над ней. Если вы хотите помочь нам, у нас есть страница Patreon, где вы можете сделать пожертвование. Продолжайте в том же духе!

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

— Ричард Хэмминг, сотрудник Bell Labs, обсуждает процесс принятия решений, который привел к появлению в 1950 году кода Хэмминга, первого выдающегося алгоритма исправления ошибок. передача данных и их фиксация. Работа Хэмминга, согласно биографии Музея компьютерной истории, была вдохновлена ​​​​тестом, который сломал его на компьютере, который он использовал в то время, Bell Model V, который полагался на перфокарты. Ошибка с карточками привела к тому, что результаты, необходимые для того, чтобы сбить с толку его коллег, вскоре привели к чему-то фундаментальному в истории вычислительной техники. Его формирующая работа вскоре была значительно улучшена многими другими, которые пошли по его стопам.

Supra FA Xmodem 144 LC

Модем с коммутируемым доступом – хороший пример того, что стало намного лучше благодаря исправлению ошибок. (Викисклад)

Что, черт возьми, такое исправление ошибок и зачем оно нужно пользователю компьютера?

Исправление ошибок включает ряд формул, которые гарантируют, что поток распространяемой информации не будет нарушен, даже если что-то пойдет не так или будет повреждено.

И его контекст выходит далеко за рамки оперативной памяти вашего компьютера.

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

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

Это привело к многочисленным усилиям по исправлению ошибок в телефонной системе. Например, многие модемы, проданные в конце 80-х и начале 90-х годов, поддерживали протокол исправления ошибок под названием V.42, один из нескольких протоколов «серии V», выбранных Международным союзом электросвязи для управления связью на основе данных через телефонная линия.

Вместо того, чтобы исправлять ошибку на лету, как это позволяет код Хэмминга, V.42 использовал метод исправления ошибок, называемый автоматическим повторным запросом (ARQ), что в основном означает, что он снова запрашивает потерянный пакет после фрагмента данных. пропадает. Исправление ошибок работало за счет использования повторения, по сути, повторно отправляя любые потерянные пакеты данных, как только они были обнаружены. (Цель не максимальная скорость, а стабильность.В конце концов, быстрое соединение, которое полностью обрывается, скорее всего, не стоит того при коммутируемом доступе.)

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

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

Такое исправление ошибок, называемое упреждающим исправлением ошибок, имеет множество практических применений. За работой Хэмминга в конечном итоге последовали другие методы исправления ошибок, в первую очередь система, разработанная Ирвингом С. Ридом и Гюставом Соломоном в начале 1960-х годов, которая сочетала кодирование и декодирование данных на лету для защиты целостности данных. в шумных условиях. Коды Рида-Соломона наиболее широко используются с компакт-дисками и DVD-дисками (это технология, которая помогает предотвратить пропуски в этих устройствах, когда, скажем, диск поцарапан), а также с широким спектром других технологий, таких как беспроводная передача данных.

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

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

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

А в памяти ECC, на которую жаловался Линус Торвальдс, код Хэмминга повсюду, помогая убедиться, что эти небольшие вычислительные ошибки не сломают машину.

Расчетная частота отказов памяти ECC согласно анализу, проведенному в 2014 году компанией Puget Systems, разработчиком высокопроизводительных рабочих станций и серверов. Компания проанализировала частоту отказов своей компьютерной памяти за годовой период. Для сравнения, его память без ECC выходила из строя в 0,6% случаев, или в 6,67 раз чаще, чем вариант с исправлением ошибок. (Анализ Пьюджета, который, по общему признанию, немного устарел, также погружается в распространенное заблуждение о памяти ECC, что дополнительная проверка ошибок приводит к значительному снижению производительности; в некоторых из его тестов было обнаружено, что память ECC была часто быстрее, чем стандартный эквивалент.)

Apple Mac Pro

Помимо серверной стойки, Apple Mac Pro, вероятно, является самым известным компьютером, использующим память ECC, поскольку все его последние модели основаны на линейке процессоров Xeon.

Почему вы, вероятно, никогда не использовали память с исправлением ошибок в своем компьютере… если только вы не использовали IBM PC в 80-х

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

(Хорошо, может быть, это была плохая идея. Ого, эта метафора.)

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

Для этого тоже была веская причина: хотя производители не считали, что это больше необходимо для обычных пользователей, поэтому они отказались от этой функции во многих некритических случаях использования, поскольку это рассматривалось как увеличение стоимости и снижение скорости.< /p>

память ECC

Пример модуля памяти DDR3 с поддержкой ECC. (Викисклад)

Память ECC существует уже давно, но последние 30 лет или около того в основном использовалась в таких нишевых случаях, как рабочие станции и серверы. который часто используется критически важными способами. (Если вам интересно, мой Xeon, который ныряет в мусорный бак, использует память ECC. Примечание: хотя новая память ECC, как правило, дороже новой, часто она дешевле в использовании, поэтому указанная машина имеет 64 ГБ ОЗУ.)

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

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

Как отмечает ZDNet, в настоящее время модель атаки в значительной степени теоретическая, но поставщики пытались… и неоднократно терпели неудачу, чтобы помешать ученым доказать, что атаки rowhammer остаются фундаментальной угрозой компьютерной безопасности. (Лучше ученые, чем эксплуататоры нулевого дня, верно?)

Хотя память ECC может помочь смягчить такие атаки, она не является надежной, поскольку голландские исследователи придумали атаку rowhammer, которая затрагивает даже RAM ECC.

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

"У нас есть десятилетия странных случайных ошибок ядра, которые никогда не могли быть объяснены и, вероятно, были вызваны плохой памятью", – пишет он. «И если это вызывает сбой ядра, я могу гарантировать, что существует на несколько порядков больше случаев, когда это просто вызывало переворот бита, который никогда не оказывался таким критическим».

Основные чипы Intel Core, как правило, не поддерживают ECC, но, как отмечает Торвальдс, более поздние чипы AMD Ryzen, которые в последние годы приобрели большую популярность в области потребительских технологий, в основном потому, что они часто лучше, чем у Intel, обычно поддерживают (хотя это зависит от материнской платы).

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

— Эл Гейст, научный сотрудник Окриджской национальной лаборатории, обсуждает важность памяти ECC в статье Wired 2012 года, в которой основное внимание уделяется проблемам, которые космические лучи создают для вычислительных решений на планета Марс — то, для чего был создан марсоход Curiosity, основанный на конструкции чипа PowerPC. (Космические лучи — это лишь один из факторов, которые могут вызывать переключение битов или внесение ошибок в память компьютера.) Однако Гейст отмечает, что проблемы, с которыми сталкиваются космические роверы, также могут вызывать проблемы на земле — проблемы, смягчаемые использованием памяти с исправлением ошибок.

В некотором смысле тот факт, что такая выдающаяся фигура — парень, известный тем, что высказывает свое мнение на случайных интернет-форумах, – активно поддерживает технологию, о которой даже мало кто знает, подчеркивает ее важность в современном мире. день.

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

Linus Torvalds

Линус Торвальдс: хорош в технических аргументах, плохо в метафорах. (Викисклад)

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

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

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

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

Но он может оставить метафоры другим.

Находите это интересное чтение? Поделись с другом!

Эрни Смит

Эрни Смит только что потратил ваше время

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

Найди меня в Twitter

Нравится? Что ж, вам следует больше читать о наших материалах.

Получите больше вопросов в свой почтовый ящик

Дополнительные уловки для привлечения внимания


< /p>

Ничто не вечно

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

Мысли о Flash

Размышляя о кончине Adobe Flash из-за изменения подходов к цифровому творчеству в наши дни и о том, почему у нас может больше не быть ничего подобного.


< /p>

Tedium – это труд любви и признательности.

Странно ли говорить, что мы любим Интернет? Потому что в Tedium мы любим Интернет — как источник бесконечных исследований, сосуд для новых идей и глубокое историческое погружение. С 2015 года мы рассылаем две новостные рассылки в неделю в почтовые ящики по всему миру и насчитываем более 12 000 постоянных читателей. И мы хотели бы, чтобы это продолжалось еще некоторое время, поэтому помогите, спонсируя проблему или поддержав нас на Patreon. Но пожалуйста: никаких запросов на обратную ссылку.

Разработано на базе Craft CMS с использованием платформы Bulma.

Авторское право © 2015-2021 Tedium: скучная сторона Интернета. Все права защищены. Пожалуйста, попробуйте рыбу.

Подписаться

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

Я получаю сообщение "Проигрыватель Windows Media не может прочитать компакт-диск. Возможно, диск загрязнен или поврежден. Включите исправление ошибок и повторите попытку". во время воспроизведения компакт-диска.

НЕТ возможности включить исправление ошибок для ВОСПРОИЗВЕДЕНИЯ компакт-диска (есть параметр для записи компакт-диска с исправлением ошибок)

- когда я смотрю в дополнительных параметрах.

Итак, КАК мне включить его для ВОСПРОИЗВЕДЕНИЯ компакт-диска?

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

Сообщить о нарушении

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

Ответы (3) 

На основании информации, которую вы предоставили в своем сообщении, нам необходимо провести дополнительное расследование. Чтобы помочь вам лучше, мы хотели бы знать следующее:

  • Вы пытались воспроизвести компакт-диск в другом браузере?
  • Можно ли воспроизводить другие компакт-диски и DVD-диски в проигрывателе Windows Media?
  • Были ли какие-либо недавние изменения на вашем устройстве?
  • Вы недавно устанавливали какое-либо программное обеспечение?
  • Какие действия по устранению неполадок вы уже предприняли?

Мы будем следить за вашим ответом.

Сообщить о нарушении

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

1 человек нашел этот ответ полезным

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

  • Вы пытались воспроизвести компакт-диск в другом браузере? Да, он воспроизводится на других устройствах
  • Можно ли воспроизводить другие компакт-диски и DVD-диски в проигрывателе Windows Media? Да
  • Были ли какие-либо недавние изменения на вашем устройстве? Нет
  • Вы недавно устанавливали какое-либо программное обеспечение? нет
  • Какие действия по устранению неполадок вы уже предприняли? ВАШ форум предложил найти дополнительные параметры в раскрывающемся меню со стрелкой на вкладке «Синхронизация», но на моем компьютере там НЕТ дополнительных параметров. Я пробовал все остальные меню со стрелками в Media Player, но все еще не имел дополнительных параметров. Так где же это?

В какой-то момент я нашел Исправление ошибок, но там был только выбор при копировании или записи (я забыл, что), но ничего не было доступно в разделе «Воспроизведение компакт-диска». Я думаю, что тогда есть сбой - возможно, он не запрограммирован, чтобы быть доступным в Windows 10 для воспроизведения компакт-дисков??

Сообщить о нарушении

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

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.


Мы ценим, что вы даете нам очень полезные ответы.

Давайте устраним неполадки в проигрывателе Windows Media, щелкнув пункты "Найти и устранить проблемы с настройками проигрывателя Windows Media" и "Найти и устранить проблемы с воспроизведением DVD-дисков в проигрывателе Windows Media", которые можно найти по этой ссылке.

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

Если проблема не устранена, переустановите проигрыватель Windows Media. Вот как:

  1. Нажмите правой кнопкой мыши значок "Пуск" и выберите "Панель управления".
  2. Нажмите "Программы".
  3. Выберите «Включить или отключить функции Windows» в разделе «Программы и компоненты».
  4. Найдите и нажмите «Медиа-функции», затем снимите флажок «Проигрыватель Windows Media».
  5. Нажмите "ОК", затем нажмите "Да", если появится всплывающее окно.
  6. Перезагрузите компьютер.
  7. После перезагрузки компьютера снова установите флажок рядом с проигрывателем Windows Media, чтобы снова включить его.
  8. Нажмите "ОК".

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

Если вы по-прежнему получаете такое же сообщение об ошибке, создайте еще одну учетную запись администратора и посмотрите, будет ли возникать проблема, если вы будете использовать проигрыватель Windows Media из вновь созданной учетной записи администратора.

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

Сообщить о нарушении

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

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

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

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

Что такое коды исправления ошибок?

Во-первых, давайте определим, что такое ошибка. Для строки битов ошибка — это просто перестановка битов. Например, у нас может быть строка битов 01101. Ошибка в четвертом бите приведет к тому, что 0 станет 1, что приведет к новому сообщению 01111. Наша цель с кодами исправления ошибок — найти эти ошибки и исправить их.

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

Код повторения

Самым классическим примером исправления ошибок является повторение кода, когда каждый бит во входном сообщении дублируется несколько раз. Например, если бы у вас было сообщение 01101, мы могли бы закодировать его, используя этот метод повторения, и оно стало бы 000 111 111 000 111. В этом случае мы повторили каждый бит три раза. Если бы произошел случайный переворот бита или ошибка, мы могли бы исправить это, просто выбрав наиболее часто встречающийся бит каждого трехбитного сегмента.

Допустим, мы получили следующее сообщение 100 111 101 000 110 , содержащее несколько ошибок. Тогда мы сможем исправить ошибку и декодировать сообщение в исходное сообщение 01101. Но этот метод не очень эффективен, так как нам пришлось сделать наше сообщение в три раза длиннее, добавив два бита четности на каждый бит исходного кода. Кроме того, важно отметить, что если ошибка затрагивала более одного бита в этом трехбитном сегменте, мы больше не могли исправить ошибку.

Улучшенное обнаружение ошибок

Как мы можем улучшить код повторения? Вместо дублирования каждого бита для создания битов четности давайте сделаем наши биты четности зависимыми от нескольких входных битов. Например, рассмотрим двухбитное сообщение 11. Мы могли бы добавить бит четности, используя оператор XOR для объединения исходных битов, $1 \oplus 1 = 0$.

Теперь, добавив этот бит четности, мы получили новое закодированное сообщение 110 . Чтобы проверить, произошла ли ошибка в любом из трех битов, мы можем пересчитать этот бит четности и определить, соответствует ли полученный бит тому, что мы вычислили. Если они этого не сделают, мы скажем, что бит четности неверен. Предположим, исходное сообщение 110 содержало ошибку во втором бите, в результате чего полученное сообщение было равно 100. Если мы попытаемся пересчитать четность, мы обнаружим, что она больше не соответствует полученному биту четности, поэтому она неверна. Итак, мы знаем, что должна быть ошибка. В этом случае мы не можем исправить ошибку, но обнаружение ошибки — хорошее начало.

Расстояние Хэмминга

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

Если мы начнем с любого допустимого кодового слова, мы можем перейти к другому допустимому кодовому слову, пройдя по двум ребрам или сделав двухбитовые перевороты. Эти обходы можно рассматривать как расстояние между кодовыми словами, которое мы называем расстоянием Хэмминга. Более формально мы говорим, что расстояние Хэмминга между двумя кодовыми словами — это количество элементов с разными значениями.

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

Снова рассмотрим полученное сообщение 100 , в котором есть ошибка во втором бите. Мы не можем точно исправить это, поскольку равновероятно, что ошибка произошла в любом из трех битов. Допустимые кодовые слова 110 , 000 и 101 находятся на расстоянии Хэмминга, равном единице.

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

Оказывается, чтобы код можно было исправить, расстояние Хэмминга должно быть не меньше трех. Давайте снова рассмотрим код повторения, для которого расстояние Хэмминга равно трем. На приведенном ниже графике видно, что недопустимое кодовое слово никогда не может находиться на одинаковом расстоянии от двух допустимых кодовых слов. Это подчеркивает, почему повторный код всегда может исправить одну ошибку, поскольку всегда существует ближайшее действительное кодовое слово. Это верно для всех кодов с расстоянием Хэмминга, равным трем. В общем случае для кода с расстоянием Хэмминга $d$ мы можем исправить до $\left\lfloor>\right \rfloor$ ошибок.

Двоичный код Хэмминга

Используя идею создания битов четности с помощью оператора XOR, мы можем создать так называемый код Хэмминга$[7,4]$. Мы объединим несколько битов, чтобы создать каждый из битов четности для этого кода. Этот код примет четырехбитный ввод и закодирует его в семибитное кодовое слово. Этот процесс добавит три дополнительных бита четности. Для простоты назовем три бита четности $x_1$, $x_2$ и $x_3$, а исходные четыре бита сообщения $m_1$, $m_2$, $m_3$ и $m_4$.

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

Мы можем определить первый бит четности как $x_1=m_1 \oplus m_2 \oplus m_4$. При попытке декодирования, если мы определяем, что этот бит четности неверен, мы знаем, что ошибка должна была произойти с одним из четырех битов в уравнении: $m_1$, $m_2$, $m_4$ или $x_1$.

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

$$x_1=m_1 \oplus m_2 \oplus m_4$$

$$x_2=m_1 \oplus m_3 \oplus m_4$$

$$x_3=m_2 \oplus m_3 \oplus m_4$$

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

Исправление ошибок

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

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

< tbody>
Случай Ошибочный бит Неправильный бит четности
Случай 0 Нет ошибок Нет
Случай 1 $m_1$ $x_1$ и $x_2$
Случай 2 $m_2$ $x_1$ и $x_3$
Случай 3 $m_3$ $x_2$ и $x_3$
Случай 4 $m_4 $ $x_1$, $x_2$ и $x_3$
Случай 5 $x_1 $ $x_1$
Случай 6 $x_2$ $ x_2$
Случай 7 $x_3$ $x_3$

Исходя из этого, мы можем создать процесс декодирования, проверив эти восемь случаев, чтобы определить, где в закодированном сообщении произошла ошибка. Давайте рассмотрим быстрый пример, чтобы показать, как выглядит этот процесс. Скажем, мы хотим передать сообщение «1011». Во-первых, нам нужно вычислить биты четности:

$$x_1=1 \oplus 0 \oplus 1=0$$ $$x_2=1 \oplus 1 \oplus 1=1$$ $$x_3=0 \oplus 1 \oplus 1=0$$

Итак, наше закодированное сообщение будет 1011010 . При передаче закодированного сообщения третий бит, $m_3$, испытывает ошибку и переворачивается, что приводит к полученному сообщению 1001010.Мы можем пересчитать биты четности и найти $x_1=0$, $x_2=0$ и $x_3=1$. Используя приведенную выше таблицу, мы можем определить, что в третьем бите есть ошибка, так как биты четности $x_2$ и $x_3$ неверны.

Реализация Python будет следующей.

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

Заключение

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

С помощью кода Хэмминга$[7,4]$ мы можем исправить одну ошибку для каждого 7-битного закодированного сегмента данных. Давайте рассмотрим реальный пример с интерференцией космических лучей здесь, на Земле. Согласно публикации IBM, мы ожидаем увидеть одну ошибку в месяц на 256 мегабайт памяти из-за космических лучей. Это может показаться низким, но для медицинских устройств это может означать жизнь или смерть. Средний компьютер с Windows 10 использует около 2 ГБ ОЗУ в любой момент времени.

Исходя из приведенного выше ожидаемого количества космических лучей, мы можем рассчитать вероятность ошибки для 2 ГБ памяти в течение часа примерно до 0,0107. Если мы расширим этот временной интервал до целого дня, то получим вероятность немногим меньше одной четверти.

Ошибки — довольно частое явление, учитывая объем используемых нами данных, но они редко происходят одновременно. Это означает, что очень маловероятно, что у нас будет неисправимая ситуация. Это идеальное использование кода Хэмминга, поскольку мы можем исправить эти редкие ошибки.

Виден только для Intel — GUID: eis1413271026005

Путь к источнику: Ixiasoft

3.14. Код исправления ошибок

Функция кода исправления ошибок (ECC) обнаруживает и исправляет ошибки выходных данных. У вас есть возможность использовать конвейерные регистры для повышения производительности. Функция ECC поддерживается только при следующих условиях:

  • Блоки памяти, а не MLAB или логические ячейки
  • Простой двухпортовый режим
  • Порты одинаковой ширины
  • Функция включения байта отключена

Примечание. Если функция ECC включена, результатом RDW в конфигурации со смешанными портами всегда будет "Безразлично".

Таблица 14. Функции ECC в блоках памяти
Блок памяти Поддерживаемая ширина порта Одиночная ошибка Двойная смежная ошибка Тройная смежная ошибка
M144K До 64 бит Обнаружение и исправление Только обнаружение
M20K До 32 бит Обнаружение и исправление Обнаружение и исправление Только обнаружение
M20K (Intel® Arria® 10) Более 32 бит — достигается путем объединения 32-битных блоков M20K.

Технологии Intel могут потребовать активированного оборудования, программного обеспечения или активации службы. // Ни один продукт или компонент не может быть абсолютно безопасным. // Ваши затраты и результаты могут отличаться. // Производительность зависит от использования, конфигурации и других факторов. // См. наши полные юридические уведомления и отказ от ответственности. // Intel стремится уважать права человека и избегать соучастия в нарушениях прав человека. См. Глобальные принципы прав человека корпорации Intel. Продукты и программное обеспечение Intel предназначены для использования только в приложениях, которые не вызывают и не способствуют нарушению международно признанных прав человека.

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

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

Обнаружение ошибок

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

Computerworld
QuickStudies
Самый известный метод обнаружения ошибок называется контролем четности, когда к каждому байту данных добавляется один дополнительный бит, и ему присваивается значение 1 или 0, как правило, в зависимости от того, есть четное или нечетное количество битов «1». Принимающая система вычисляет, каким должен быть бит четности, и, если результат не совпадает, мы знаем, что по крайней мере один бит был изменен, но мы не знаем, какой бит неправильный. Также возможно, что данные полностью верны, а бит четности искажен. Однако если два бита были изменены, изменения отменяются: данные будут неправильными, но бит четности не будет сигнализировать об ошибке. (Дополнительные сведения см. в разделе Поиск 2-битной ошибки.)

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

Исправление ошибок

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

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

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

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

Читайте также: