PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Шина IEEE 1394 — FireWire

Асинхронные транзакции

Асинхронные транзакции на шине IEEE 1394 реализуют подмножество операций
протокола запросов-ответов, соответствующего стандарту архитектуры регистров управления и состояния CSR (Control and Status Register) для микропроцессорных шин. Асинхронные передачи обеспечивают три типа транзакций:

  • чтение (Read);
  • запись (Write);
  • блокированные операции «чтение-модификация-запись» (Lock).

В каждой асинхронной транзакции участвуют два устройства: запросчик (requester) и ответчик (responder). Протокол запросов-ответов для этих типов транзакций иллюстрирует рисунок. Каждая асинхронная транзакция состоит из двух субакций (subaction) — шагов исполнения:

  • запрос (request) — передается тип, адрес транзакции и, возможно, данные;
  • ответ (response) — передается состояние выполнения (успех-неуспех) транзакции и, возможно, данные.

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