Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
409
Добавлен:
06.01.2022
Размер:
33.47 Mб
Скачать

23.2. Защита данных

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

23.2.1. КОНТРОЛЬНЫЙ РАЗРЯД ПРОВЕРКИ НА ЧЕТНОСТЬ

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

Рис. 23.4. Передача данных между схемами, находящимися под различными потенциалами. (Пригоден, например, оптрон ILQ-74 фирмы Litronix.)

Рис. 23.5. Передача данных при проверке на четность (для 8-разрядного слова).

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

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

Блок-схема для защиты. данных с помощью проверки на четность представлена на рис. 23.5. Сравнение переданного контрольного разряда с вычисленным на приемной стороне производится с помощью элемента ИСКЛЮЧАЮЩЕЕ ИЛИ. Если они различаются, вырабатывается сигнал ошибки f==1.

Реализация генератора разряда четности при проверке на четность представлена на рис. 23.6. Благодаря использованию элемента ИСКЛЮЧАЮЩЕЕ ИЛИ требуемый сигнал р=1 вырабатывается, если число единиц в информационном слове нечетное. Такие генераторы разряда четности изготовляются в интегральном виде:

8 бит: SN 74180 (ТТЛ),

9 бит: SN 74S280 (ТТЛ), 12 бит: МС 10160 (ЭСЛ), МС 14531 (КМОП).

Так как последовательность соединения элементов ИСКЛЮЧАЮЩЕЕ ИЛИ произвольная, число входов можно увеличить, объединив несколько генераторов разряда четности.

Рис. 23.6. Генератор разрядов четности при проверке на четность (на восемь входов).

Переход к проверке на нечетность можно осуществить посредством инвертирования выходных сигналов или совсем просто - подачей логической «1» на дополнительный вход. Внешний вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ, показанный на рис. 23.5, при сравнении переданных разрядов четности р' с вычисленными на приемной стороне p`` может быть введен в генератор разряда четности посредством подачи на дополнительный вход.

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

Рис. 23.7. ЗУ с проверкой на четность, (Пример для 8-разрядного слова.)

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

23.2.2. КОД ХЕММИНГА

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

На вопрос о требуемом для этой цели числе контрольных разрядов можно ответить так: используя k контрольных разрядов, можно задать 2k различных комбинаций. При m .информационных разрядах получается общая длина слова m+k. Дополнительные комбинации контрольных разрядов необходимы для определения, правилен ли полученный информационный код. Отсюда следует условие

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

Способ обнаружения ошибок с помощью контрольных разрядов поясним на примере 16-разрядного числа. Для того чтобы обеспечить защиту комбинации в 16 бит, необходимо, как следует из табл. 23.1, пять контрольных разрядов; следовательно, общая длина слова составляет 21 бит. По методу Хемминга отдельные контрольные разряды соответствуют различным частям информационного слова. В данном случае необходимо, таким образом, пять генераторов четности. Если теперь какой-либо информационный бит передан неправильно, то ошибка обнаруживается для тех контрольных разрядов, с которыми связан этот разряд. Вместо сообщения об ошибке по четности f в этом случае мы получаем 5-разрядный код ошибки, который может принимать 32 различных значения, определяющих выбор неправильного разряда. Понятно, что для единичной ошибки выбор однозначен тогда, когда каждому разряду соответствует своя комбинация. Если приемник обнаруживает различие лишь в одном контрольном разряде четности, то неправильным может быть только сам контрольный разряд честности, потому что при выбранной схеме подключения для одного неправильного информационного разряда различие должно было бы обнаружиться по меньшей мере в двух контрольных разрядах четности. Если все информационные и контрольные разряды четности переданы без искажения, то для приемника расчетные и переданные контрольные разряды четности совпадают.

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

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

При этом pi`` определяется для переданного информационного кода по той же схеме, что и для передатчика, и сравнивается с переданным рi`. Соответствующая схема представлена на рис. 23.8.

Контрольное слово F = (f4f3f2f1f0) декодируется в ПЗУ. Если обнаружена ошибка в информационном разряде, то на выходах у0... y3 появляется двоичный номер неправильного разряда и дешифратор типа «I из 1б» запускается подачей сигнала с выхода у4. Выбранный элемент ИСКЛЮЧАЮЩЕЕ ИЛИ инвертирует нарушенный бит информации, т.е. производит коррекцию.

При обнаружении ошибки в контрольном разряде на выходе y5 устанавливается единица. Двоичный номер неправильного контрольного разряда появляется на выходах у0...у3. Каждая обнаруженная ошибка вызывает появление «I» на выходе y7. Из 32 возможных кодовых комбинаций, которые может принимать контрольное слово, в рассматриваемом случае используется 22. Остальные 10 комбинаций могут возникнуть только тогда, когда нарушено не сколько бит информации.

Такая многократная ошибка обозначается единицей на исходе у6. Этот способ не позволяет ее скорректировать. Аппаратурные затраты на исправление таких ошибок, естественно, значительно больше [23.2.3]. Таблица истинности ПЗУ 23.4 для реализации описанных функций может быть непосредственно получена из таблицы 23.3.

Как видно из схемы 23.8, защита данных по Хеммингу благодаря возможности параллельной работы требует сравнительно небольших аппаратурных затрат и не приводит к большой потере скорости. По этой причине такой метод часто применяется для зашиты данных в памяти вычислительных систем. Особое преимущество его состоит в том, что возникающие в памяти ошибки могут быть зарегистрированы, несмотря на то что из-за коррекции они могли бы остаться незамеченными. Можно своевременно определить дефектную ИС и заменить ее. Таким образом, надежность вычислительных машин значительно повышается [23.4].