logo
Shpory gosy

116. Контроль информации при последовательной передаче двоичного кода. Методы контроля. Контроль передачи информации при обмене словами (байтами). Методы.

Различают контроль передачи информации и контроль преобразования информации. При передаче основная задача контроля – выявить верно ли принят код и если событие истинно мы принимаем следующий код. Если же при приеме информации выявлена ошибка, то передачу данного слова следует повторить. И повторять мы будем пока не будет ошибки. В ЭВМ чтобы исключить неопределенность использую отсчет числа повторов. Устанавливают порог например 9 или 11 раз. И если нам не удалось правильно передать за это число раз, выставляем сообщение о неготовности (невозможности передачи). При этом некоторые помехоустойчивые коды допускают восстановление принятых разрядов. Т.к. мы передаем двоичный код (1 и 0), то восстановление сводится к инверсии неправильного разряда. А для инверсии мы используем схему, сумма по модулю два. При контроле передачи используют различные подходы.

Традиционно известный (сумма по модулю два). К передаваемому слову добавляется контрольный разряд (специальный разряд), так чтобы число единиц перед этим байтом вместе с кодом было нечетное. Принимается так и сравнивается. Если да – без ошибки, если нет – ошибка.

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

Р азвитие этого метода – контрольная сумма. Но контрольная сумма применяется уже не для передачи одного слова, а для передачи файла содержащего 64 слова. Источник последовательно передает слова и приемник всякий раз приняв очередное слово, формирует текущую контрольную сумму. С приходом последнего слова файла формируется последняя контрольная сумма, которая должна сравниваться с последней посылкой в файле – это не код числа, а сама контрольная сумма отправляемая источником. Стоит измениться хотя бы одному разряду в передаваемом файле и контрольная сумма меняется. Получаем ошибку. На сегодня метод контрольной суммы модифицирован и уже применяется контрольная сумма в остатках. Такой метод называется с применением CRC-кода.

Передаваемая информация содержится в файле фиксированной длины, за которым следует небольшое число разрядов CRC – кода. CRC код – это остаток от деления в целых числах значения передаваемого файла на некий полином – число которое известно источнику и приемнику. Если разделить число передаваемого файла на полином получим целую часть и остаток. Целая часть отбрасывается, а остаток прицепляется к передаваемому файлу. Приемник получает файл, затем делит данное число на полином и выделяет остаток от деления. Сравнивает остаток с вновь полученным (восстановленным). При совпадении – верно, иначе – ошибка. Здесь на лицо повторная передача – передается файл информации и передается остаток. Но остаток это отражение самого файла. CRC – код на сегодня используется при обмене по USB интерфейсу, по шине PCI. В целом это коды которые выявляют ошибку, но ее не восстанавливают. В вычислительной технике используются и помехоустойчивые коды позволяющие восстанавливать принятую информацию. Самым распространенным примером является код Хэмминга. Код Хэмминга формируется для передаваемого слова. Например: нужно передать 4-разряда. К 4-разрядам при передаче добавляем еще 3-дополнительных бита полученных из передаваемых разрядов т.е. мы дублируем передаваемое слово. Если мы передаем вместо 4-разрядов, 7-разрядный код можно рассматривать его как самостоятельный двоичный код, но из всех возможных 127 комбинаций мы оставляем лишь 16. Это позволяет увеличить кодовое расстояние для оставшихся 16-комбинаций до 3 и более. И когда мы принимаем 7-разрядный код в котором какой-то из разрядов кувыркнулся, мы смотрим ближайшую комбинацию из разрешенных 16. В теории для характеристики возможной ошибки используется термин синдром. Это код – это признак ошибки. Для ошибки в каждом конкретном разряде имеется свой фиксированный синдром у кодов Хэмминга. Зная синдром можно восстановить прежний код т.е. сформировать уровень инвертирующий нужный принятый разряд. Суть кодов Хэмминга в том, что передаваемая информация дублируется неоднократно, за счет свертки по модулю два, что позволяет приемнику определить ошибку. Коды Хэмминга используются при параллельных пересылках между памятью и CPU. Повторов здесь нет, а исправления возможны.

Контроль преобразования информации. Цифровая вычислительная техника допускает и контроль преобразования информации.

Основной метод – дублирование. При этом можно использовать как программные методы так и аппаратные. Программный – это повторный счет в две – три руки. Однако чаще применяются аппаратные методы. Из аппаратных – метод дублирования горячего резерва. В вычислителях такой метод называют горячим резервом. Одну операцию над операндом проводят два одинаковых блока. Результат сравнивается. Недостаток: оборудование. Такой подход применяется в ситуациях, когда необходимо жестко отвечать за результат преобразования.

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

Также для контроля преобразования применяются вычисления в прямых и дополнительных кодах. Двоичная арифметика должна дать одинаковые результаты. Считают параллельно, на одном блоке прямые коды, на другом – дополнительные. Все методы применяют для параллельных кодов. При контроле последовательности в одном разряде используют специальные небольшие устройства, называемые сигнатурный анализатор. Который представляет из себя регистр сдвига с цепью обратной связи в которой стоят сумматоры по модулю два. К регистру подключены индикаторы. На индикаторе формируется сигнатура – код. Сменилась последовательность 0 и 1, то сменилась и сигнатура. Если знать эталон сигнатуры мы можем контролировать правильность цифровой последовательности.