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

Контроль передач информации

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

Одиночная ошибка ведет к исчезновению единицы в одном разряде исходной числовой комбинации или появлению единицы в разряде, который первоначально содержал нуль. Это приводит к нарушению четности и может быть выявлено проверкой на четность; для этого выполняют декодирование, т.е. сложение по модулю 2 всех разрядов слова (находят «свертку»), включая контрольный разряд. Если результат свертки равен нулю, то числовая комбинация принята без ошибок, а если он равен единице, то в принятой комбинации присутствует ошибочный разряд.

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

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

Именно такой способ выявления ошибок предложил Хемминг. Он последовательно разбивал слово на два полуслова, как показано на рисунке 12.х. В результате такого разбиения получилось log2n полуслов, причем в каждом полуслове встречается один разряд, принадлежащий исключительно этому полуслову. Этот разряд и принимается в качестве контрольного. Не охваченным проверкой остался только один нулевой разряд. Его значение может быть как ошибочным, так и верным, так как он не попал ни в одно из проверяемых полуслов. Обычно этот разряд не включают в состав проверяемого слова.

Рисунок 12.х Разбиение кодовой комбинации на полуслова

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

Контроль арифметических операций

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

Пусть нужно произвести сложение двух чисел A + B = S = sn, sn-1,…,s1. Значение четности ее кодового веса

Ps = sn  sn-1  …s1

В результате сложения получим

Ps = PA  PB  PC, где

PA и PB - контрольные цифры операндов A и B, а PC – контрольная цифра числа, образованного из значений переносов. Естественно, что эти два значения Ps и Ps при отсутствии ошибки должны совпадать, а при возникновении ошибки во время операции сложения E = Ps  Ps = 1.

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

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