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

31. Асинхронные протоколы шины: транзакции, тайм-ауты.

В ряде ситуаций синхронная передача не пригодна для использования:

    • ведущий не знает, корректно ли ответил ведомый;

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

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

Асинхронная операция чтения шины Fastbus

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

Когда ведущий обнаруживает подтверждение адреса, он знает, что соединение установлено, и готов к анализу информации состояния. Присутствие адреса на ША далее не требуется, поскольку у ведомого уже имеется копия полного адреса либо нужной его части.

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

    • (+)скорость пересылки данных диктуется ведомым, поскольку ведущему для продолжения транзакции приходится ждать отклика;

    • (+)по сути является самосинхронизирующимся, поэтому шину могут совместно использовать устройства с различным быстродействием;

    • (+)шина автоматически адаптируется к требованиям устройств, обменивающихся информацией в данный момент;

    • (+)в отличие от синхронных систем для ускорения не требуется замена на шине старых медленных устройств на быстрые новые;

    • (-)некоторое увеличение сложности аппаратуры.

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

Тайм-аут

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

Восстановление состояния шины и вычислительного процесса после тайм-аута может происходить по-разному. Так, если ведущим устройством является процессор, он делает это с помощью специального вызова операционной системы, известного как «ошибка шины» (bus error).