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

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

Определения [ править ]

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

История [ править ]

Современная разработка кодов исправления ошибок приписывается Ричарду Хэммингу в 1947 году. [1] Описание кода Хэмминга появилось в « Математической теории коммуникации» Клода Шеннона [2] и было быстро обобщено Марселем Дж . Э. Голеем . [3]

Введение [ править ]

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

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

Если характеристики канала не могут быть определены или сильно варьируются, схему обнаружения ошибок можно комбинировать с системой для повторных передач ошибочных данных. Это называется автоматическим запросом на повторение (ARQ) и чаще всего используется в Интернете. Альтернативный подход к контролю ошибок - это гибридный автоматический запрос на повторение (HARQ), который представляет собой комбинацию ARQ и кодирования с исправлением ошибок.

Типы исправления ошибок [ править ]

Есть три основных типа исправления ошибок. [4]

Автоматический повторный запрос (ARQ) [ править ]

Автоматический повторный запрос (ARQ) - это метод контроля ошибок для передачи данных, который использует коды обнаружения ошибок, сообщения подтверждения и / или отрицательного подтверждения, а также тайм-ауты для достижения надежной передачи данных. Подтверждение является сообщение , отправленное приемником , чтобы указать , что он правильно получил фрейм данных .

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

Три типа протоколов ARQ являются Stop и ждать ARQ , Go-Back-N ARQ и Selective Repeat ARQ .

ARQ подходит, если пропускная способность канала связи варьируется или неизвестна , например, в случае с Интернетом. Однако ARQ требует наличия обратного канала , что приводит к возможному увеличению задержки из-за повторных передач и требует обслуживания буферов и таймеров для повторных передач, что в случае перегрузки сети может создать нагрузку на сервер и общую пропускную способность сети. [5]

Например, ARQ используется на коротковолновых линиях радиосвязи в форме ARQ-E или в сочетании с мультиплексированием как ARQ-M .

Прямое исправление ошибок [ править ]

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

Коды с исправлением ошибок обычно различают сверточные коды и блочные коды :

  • Сверточные коды обрабатываются побитно. Они особенно подходят для аппаратной реализации, а декодер Витерби обеспечивает оптимальное декодирование .
  • Блочные коды обрабатываются поблочно . Ранние примеры блочных кодов кода повторения , коды Хэмминга и многомерные проверочные коды . За ними последовал ряд эффективных кодов, наиболее заметными из которых являются коды Рида – Соломона из-за их широкого распространения в настоящее время. Турбо кода и проверки на четность коды с низкой плотностью (LDPC) являются относительно новых конструкций , которые могут обеспечить почти оптимальную эффективность .

Теорема Шеннона является важной теоремой прямого исправления ошибок и описывает максимальную скорость передачи информации, при которой возможна надежная связь по каналу, который имеет определенную вероятность ошибки или отношение сигнал / шум (SNR). Этот строгий верхний предел выражается в пропускной способности канала . Более конкретно, в теореме говорится, что существуют коды, такие, что с увеличением длины кодирования вероятность ошибки на дискретном канале без памяти может быть сколь угодно малой при условии, что скорость кода меньше, чем пропускная способность канала. Скорость коды определяются как дробь к / п из к исходным символам и п закодированные символы.

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

Гибридные схемы [ править ]

Гибридный ARQ - это комбинация ARQ и прямого исправления ошибок. Есть два основных подхода: [5]

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

Последний подход особенно привлекателен для канала стирания при использовании бесскоростного кода стирания .


Схемы обнаружения ошибок [ править ]

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

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

Кодирование минимального расстояния [ править ]

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

Коды повторения [ править ]

Код с повторением является схемой кодирования , которая повторяет биты по каналу для достижения безошибочной связи. Учитывая поток данных, которые необходимо передать, данные делятся на блоки битов. Каждый блок передается определенное количество раз. Например, чтобы отправить битовую комбинацию «1011», четырехбитовый блок можно повторить три раза, таким образом получая «1011 1011 1011». Если этот двенадцатибитовый шаблон был получен как «1010 1011 1011» - где первый блок отличается от двух других, - произошла ошибка.

Код повторения очень неэффективен и может быть подвержен проблемам, если ошибка возникает в одном и том же месте для каждой группы (например, «1010 1010 1010» в предыдущем примере будет обнаружено как правильное). Преимущество кодов повторения состоит в том, что они чрезвычайно просты и фактически используются в некоторых передачах цифровых станций . [6] [7]

Бит четности [ править ]

Бит четности является бит , который добавляется к группе исходных битов , чтобы гарантировать , что количество установленных битов (то есть, биты со значением 1) в исходе четным или нечетным. Это очень простая схема, которую можно использовать для обнаружения одиночного или любого другого нечетного числа (т. Е. Трех, пяти и т. Д.) Ошибок на выходе. Четное число перевернутых битов сделает бит четности правильным, даже если данные ошибочны.

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

Контрольная сумма [ править ]

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

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

Циклический контроль избыточности [ править ]

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

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

Бит четности можно рассматривать как 1-битную CRC особого случая.

Криптографическая хеш-функция [ править ]

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

Код исправления ошибки [ править ]

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

Коды с минимальным расстоянием Хэмминга d = 2 являются вырожденными случаями кодов с исправлением ошибок и могут использоваться для обнаружения одиночных ошибок. Бит четности является примером кода обнаружения одиночной ошибки.

Приложения [ править ]

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

Приложения, в которых передатчик сразу же забывает информацию, как только она отправляется (например, большинство телекамер), не могут использовать ARQ; они должны использовать FEC, потому что при возникновении ошибки исходные данные больше не доступны.

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

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

Техника обеспечения надежности и контроля также использует теорию кодов с исправлением ошибок. [8]

Интернет [ править ]

В типичном стеке TCP / IP контроль ошибок выполняется на нескольких уровнях:

  • Каждый кадр Ethernet использует обнаружение ошибок CRC-32 . Кадры с обнаруженными ошибками отбрасываются аппаратурой приемника.
  • IPv4 - заголовок содержит контрольную сумму , защищающее содержимое заголовка. Пакеты с неверными контрольными суммами сбрасываются в сети или на приемнике.
  • Контрольная сумма была опущена в заголовке IPv6 , чтобы минимизировать затраты на обработку при сетевой маршрутизации и поскольку предполагается, что текущая технология канального уровня обеспечивает достаточное обнаружение ошибок (см. Также RFC 3819 ).
  • UDP имеет необязательную контрольную сумму, покрывающую полезную нагрузку и адресную информацию в заголовках UDP и IP. Пакеты с неверными контрольными суммами отбрасываются сетевым стеком . Контрольная сумма не является обязательной для IPv4 и требуется для IPv6. Если не указано иное, предполагается, что уровень канала передачи данных обеспечивает желаемый уровень защиты от ошибок.
  • TCP предоставляет контрольную сумму для защиты полезной нагрузки и адресной информации в заголовках TCP и IP. Пакеты с неверными контрольными суммами отбрасываются сетевым стеком и в конечном итоге повторно передаются с использованием ARQ либо явно (например, через тройное подтверждение ), либо неявно из-за тайм-аута .

Телекоммуникации в дальнем космосе [ править ]

Разработка кодов исправления ошибок была тесно связана с историей полетов в дальний космос из-за чрезмерного ослабления мощности сигнала на межпланетных расстояниях и ограниченной доступной мощности на борту космических зондов. В то время как ранние миссии отправляли свои данные в незашифрованном виде, начиная с 1968 года, цифровая коррекция ошибок была реализована в форме (субоптимально декодированных) сверточных кодов и кодов Рида – Маллера . [9] Код Рида-Мюллера хорошо подходил к шуму, которому подвергался космический корабль (приблизительно соответствуя колоколообразной кривой ), и был реализован для космического корабля Mariner и использовался в миссиях между 1969 и 1977 годами.

В Voyager 1 и Voyager 2 миссии, которая началась в 1977 году, были разработаны , чтобы обеспечить цветное изображение и научную информацию от Юпитера и Сатурна . [10] Это привело к повышенным требованиям к кодированию, и, таким образом, космический корабль поддерживался (оптимально декодированным по Витерби ) сверточными кодами, которые можно было объединить с внешним кодом Голея (24,12,8) . Корабль "Вояджер-2" дополнительно поддерживал реализацию кода Рида-Соломона . Конкатенированный код Рида-Соломона-Витерби (RSV) позволил очень мощно исправить ошибки и позволил космическому кораблю совершить длительное путешествие к Урану.и Нептун . После модернизации системы ECC в 1989 году оба корабля использовали кодирование V2 RSV.

Консультативный комитет по системам космических данных в настоящее время рекомендует использование кодов коррекции ошибок с производительностью аналогична кодой RSV Voyager 2 как минимум. Составные коды все больше теряют популярность в космических полетах и ​​заменяются более мощными кодами, такими как турбо-коды или коды LDPC .

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

Спутниковое вещание [ править ]

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

Хранение данных [ править ]

Коды обнаружения и исправления ошибок часто используются для повышения надежности носителей данных. [11] Дорожка четности, способная обнаруживать однобитовые ошибки, присутствовала в первом хранилище данных на магнитной ленте в 1951 году. Оптимальный прямоугольный код, используемый в записывающих лентах с групповым кодированием, не только обнаруживает, но и исправляет однобитовые ошибки. Некоторые форматы файлов , особенно форматы архивов , включают контрольную сумму (чаще всего CRC32 ) для обнаружения повреждения и усечения и могут использовать файлы избыточности или четности для восстановления частей поврежденных данных. Коды Рида-Соломона используются в компакт-дисках для исправления ошибок, вызванных царапинами.

Современные жесткие диски используют коды Рида – Соломона для обнаружения исправления незначительных ошибок при чтении секторов, восстановления поврежденных данных из неисправных секторов и сохранения этих данных в резервных секторах. [12] В системах RAID используются различные методы исправления ошибок для восстановления данных при полном отказе жесткого диска. Файловые системы, такие как ZFS или Btrfs , а также некоторые реализации RAID поддерживают очистку данных и повторное обновление, что позволяет обнаруживать и (надеюсь) восстанавливать плохие блоки перед их использованием. [13] Восстановленные данные могут быть перезаписаны точно в том же физическом месте, чтобы освободить блоки в другом месте на том же оборудовании, или данные могут быть перезаписаны на заменяющее оборудование.

Память с исправлением ошибок [ править ]

Память DRAM может обеспечить более надежную защиту от программных ошибок , полагаясь на коды исправления ошибок. [14] Такая память с исправлением ошибок , известная как память с защитой ECC или EDAC , особенно желательна для критически важных приложений, таких как научные вычисления, финансы, медицина и т. Д., А также для приложений дальнего космоса из-за повышенной радиации. в космосе.

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

Чередование позволяет распределить эффект одного космического луча, потенциально нарушающего несколько физически соседних битов по нескольким словам, путем связывания соседних битов с разными словами. Пока единичное сбойное событие (SEU) не превышает пороговое значение ошибки (например, одиночная ошибка) в любом конкретном слове между доступами, оно может быть исправлено (например, с помощью однобитового кода исправления ошибок), и иллюзия безошибочной системы памяти может сохраняться. [15]

В дополнение к оборудованию, обеспечивающему функции, необходимые для работы памяти ECC, операционные системы обычно содержат соответствующие средства отчетности, которые используются для предоставления уведомлений при прозрачном восстановлении программных ошибок. Увеличение количества программных ошибок может указывать на то, что модуль DIMM нуждается в замене, и такая обратная связь не была бы легко доступна без соответствующих возможностей отчетности. Одним из примеров является Linux ядро «s EDAC подсистема (ранее известный как Bluesmoke), который собирает данные от компонентов компьютерной системы с включенной функцией проверки ошибок; Помимо сбора и отправки отчетов о событиях, связанных с памятью ECC, он также поддерживает другие ошибки контрольной суммы, в том числе обнаруженные на шине PCI . [16] [17] [18]

Некоторые системы также поддерживают очистку памяти .

См. Также [ править ]

  • Код Бергера
  • Пакетный код исправления ошибок
  • Плевать будильник
  • Память ECC , тип хранения компьютерных данных
  • Запрещенный ввод
  • Адаптация ссылки
  • Список алгоритмов обнаружения и исправления ошибок
  • Список кодов исправления ошибок
  • Список хеш-функций
  • Надежность (компьютерные сети)

Ссылки [ править ]

  1. ^ Томпсон, Томас М. (1983), От кодов с исправлением ошибок через упаковку сфер до простых групп , Математические монографии Каруса (# 21), Математическая ассоциация Америки, стр. vii, ISBN 0-88385-023-0
  2. ^ Shannon, CE (1948), "Математическая теория связи", Bell System Technical Journal , 27 (3): 379-423, DOI : 10.1002 / j.1538-7305.1948.tb01338.x , ЛВП : 10338.dmlcz / 101429 , PMID 9230594 
  3. ^ Голе, Марсель JE (1949), "Записки о Digital Coding", Proc.IRE (IEEE) , 37 : 657
  4. ^ Гупта, Викас; Верма, Чандеркант (ноябрь 2012 г.). «Обнаружение и исправление ошибок: Введение». Международный журнал перспективных исследований в области компьютерных наук и программной инженерии . 2 (11). S2CID 17499858 . 
  5. ^ a b А. Дж. Маколи, Надежная широкополосная связь с использованием кода , корректирующего стирание пакетов, ACM SIGCOMM, 1990.
  6. ^ Франк ван Гервен. «Номера (и другие загадочные) станции» . Проверено 12 марта 2012 года .
  7. ^ Гэри Cutlack (25 августа 2010). "Таинственная русская" Цифровая станция "изменила трансляцию через 20 лет" . Gizmodo . Проверено 12 марта 2012 года .
  8. Бен-Гал I .; Herer Y .; Раз Т. (2003). «Самокорректирующаяся процедура проверки при проверке ошибок» (PDF) . IIE Сделки . IIE Сделки по качеству и надежности, 34 (6), стр. 529-540. Архивировано из оригинального (PDF) 13.10.2013 . Проверено 10 января 2014 .
  9. ^ К. Эндрюс и др., Разработка кодов Turbo и LDPC для приложений дальнего космоса , Труды IEEE, Vol. 95, No. 11, ноябрь 2007 г.
  10. ^ Хаффман, Уильям Кэри; Плесс, Вера С. (2003). Основы кодов, исправляющих ошибки . Издательство Кембриджского университета . ISBN 978-0-521-78280-7.
  11. ^ Куртас, Эрозан М .; Васич, Бэйн (2018-10-03). Расширенные методы контроля ошибок для систем хранения данных . CRC Press. ISBN 978-1-4200-3649-7.[ постоянная мертвая ссылка ]
  12. ^ Скотт А. Моултон. «Мой жесткий диск умер» . Архивировано из оригинала на 2008-02-02.
  13. ^ Цяо, Чжи; Фу, песня; Чен, Синь-Бунг; Сеттлмайер, Брэдли (2019). «Создание надежных высокопроизводительных систем хранения: эмпирическое и аналитическое исследование». Международная конференция IEEE по кластерным вычислениям (CLUSTER) 2019 : 1–10. DOI : 10,1109 / CLUSTER.2019.8891006 . ISBN 978-1-7281-4734-5. S2CID  207951690 .
  14. ^ " Обзор методов повышения устойчивости DRAM к ошибкам ", Журнал системной архитектуры, 2018
  15. ^ "Использование StrongArm SA-1110 в бортовом компьютере наноспутника" . Космический центр Цинхуа, Университет Цинхуа , Пекин. Архивировано из оригинала на 2011-10-02 . Проверено 16 февраля 2009 .
  16. ^ Джефф Лейтон. «Обнаружение и исправление ошибок» . Журнал Linux . Проверено 12 августа 2014 .
  17. ^ "Проект EDAC" . bluesmoke.sourceforge.net . Проверено 12 августа 2014 .
  18. ^ "Документация / edac.txt" . Документация ядра Linux . kernel.org . 2014-06-16. Архивировано из оригинала на 2009-09-05 . Проверено 12 августа 2014 .

Дальнейшее чтение [ править ]

  • Шу Линь; Дэниел Дж. Костелло-младший (1983). Кодирование с контролем ошибок: основы и приложения . Прентис Холл . ISBN 0-13-283796-X.

Внешние ссылки [ править ]

  • Он-лайн учебник: Теория информации, логический вывод и алгоритмы обучения , написанный Дэвидом Дж. К. Маккеем , содержит главы по элементарным кодам исправления ошибок; о теоретических пределах исправления ошибок; и о последних современных кодах с исправлением ошибок, включая коды с низкой плотностью проверки четности , турбокоды и фоновые коды .
  • Вычислить параметры линейных кодов - онлайн-интерфейс для генерации и вычисления параметров (например, минимальное расстояние , радиус покрытия ) линейных кодов с исправлением ошибок .
  • Страница ECC
  • SoftECC: система проверки целостности программной памяти
  • Настраиваемая программная библиотека обнаружения и исправления ошибок DRAM для HPC
  • Обнаружение и исправление скрытых искажений данных для крупномасштабных высокопроизводительных вычислений