Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Достоверность, надежность передачи и управление потоком



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

Проверка на четность (parity check) — простейший способ обнаружения оши­бок. Здесь к каждому передаваемому элементу информации (как правило, байту или слову) добавляется бит четности (parity), дополняющий число единичных информационных битов до четного (even parity) или нечетного (odd parity). Приемник проверяет количество единичных битов, включая контрольный, на четность (или нечетность, в зависимости от соглашения) и в случае несоответ­ствия считает принятые данные искаженными. Проверка четности — самый примитивный и неэффективный вариант контроля достоверности; при замет­ных накладных расходах (обычно 1 бит на каждый байт) в ходе этой проверки не выявляются все ошибки четной кратности (искажения четного числа битов). Проверка четности применяется в последовательных интерфейсах (СОМ-порт), шине SCSI; раньше она применялась и для памяти.

Дублирование информации — еще более расточительный (но и более надежный) способ контроля, применяемый для небольших объемов информации. Здесь каж­дый информационный элемент (обычно битовое поле длиной в несколько би­тов) повторяется дважды, причем одна из копий может передаваться в инверсном виде. Несовпадение принятых копий считается ошибкой. Так, нацример, защищаются идентификаторы пакетов в USB. Развитие этой идеи — трехкрат­ное повторение блока: если из трех принятых копий две совпали, то их считают верными (это можно считать и исправлением ошибки). Данный способ приме­няется в радиоинтерфейсе Bluetooth.

Более сложный, но и более эффективный вариант контроля — вычисление цик­лического избыточного кода (Cyclic Redundant Code, CRC) и добавление его к передаваемой информации. Так, 16-битный CRC-код способен с очень высо­кой вероятностью обнаружить ошибки в блоках данных размером до 4 Кбайт. Подсчет CRC удобно выполнять при последовательной передаче данных — для этого требуются несложные аппаратные схемы (регистр сдвига с обратными связями). При параллельной передаче (и программно на процессоре общего на­значения) подсчет CRC трудоемок. Тем не менее CRC-контроль применяется и в параллельном интерфейсе IDE/ AT А, но только в режимах UltraDMA (в дру­гих режимах передачи на этой шине никак не контролируются).

Для исправления ошибок передачи применяют коды с исправлением ошибок (Error Checking and Correction, ECC). Идея заключается в подсчете нескольких проверочных битов, каждый из которых вычисляется по правилам контроля четности для определенных групп информационных битов. Специальное разде­ление на группы (они пересекаются) позволяет по принятым информационным и проверочным битам обнаруживать и даже исправлять ошибки. Число прове­рочных битов зависит от числа информационных битов и желаемой кратности (числа искаженных битов) исправляемых и обнаруживаемых ошибок. Так, для исправления однократных и обнаружения всех двукратных ошибок (и подав­ляющего большинства ошибок большей кратности) для 8 информационных би­тов требуется 4 проверочных, для 16 — 5, для 32 — 6, для 64 — 7 проверочных битов. ЕСС-коды широко применяются для контроля памяти (особенно кэш­памяти) и в ряде интерфейсов (например, PCI-X).

Под обеспечением надежности передачи понимается доведение до инициатора транзакции сведений о состоянии ее выполнения (успешно-неуспешно), что позволяет ему в случае неуспеха предпринять какие-то специальные действия (например, попытку повтора). Ряд интерфейсов (и протоколов) не обеспечива­ет надежности: так, на шине ISA возможно даже обращение к несуществующе­му устройству. При этом операции записи идут просто «в никуда», а операции чтения обычно возвращают «пустые» данные (FFh), которые инициатор не мо­жет отличить от настоящих. Шина PCI является надежной: инициатор всегда знает судьбу своих транзакций; достоверность передач проверяется (по четно­сти или ЕСС).

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

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

Управление потоком — это уведомление источника (передатчика) данных о воз­можностях их приема противоположной стороной: если приемник не успевает обрабатывать приходящие данные, он «просит» передатчик приостановить пе­редачу на определенное время или до особого разрешения.

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.