Все о шине FireWire. Высокоскоростная шина, обеспечивающая передачу данных на скорости до 400 Мбит/с, страница 5

Нагрузка шины

Протокол 1394 предусматривает два режима передачи данных по шине: асинхронный и изохронный. Оба имеют дело с передачей пакетов данных различной длины. В асинхронном режиме пакеты данных посылаются по явным образом заданным адресам, и после каждого приема пакета назад возвращается подтверждение. Этот режим хорош в тех случаях, когда трафик не требует высоких скоростей или точной синхронизации, например для передачи какой-либо управляющей информации.

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

В стандарте IEEE 1394 эти данные передаются по шине, включающей три уровня вместо семи в стандартной модели Open Systems Interconnection (OSI), предложенной Международной организацией по стандартизации (International Organization for Standartization, ISO). Два уровня 1394 - физический и связной — соответствуют двум самым нижним уровням стандартной модели OSI. Третий уровень транзакций отвечает только за двухсторонний обмен асинхронными данными с регистрами управления узлов. Кроме того, 1394 содержит систему управления шиной, которая оперирует всеми последовательными слоями шины в каждом устройстве и выполняет некоторые общие функции.

Подготовка к работе

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

Во время инициализации вся информация о топологии сети в регистрах узлов стирается и генерируется заново в несколько этапов. Первым делом физический слой каждого узла проверяет статус соединения своих портов. Нулевое соединение означает, что порт изолирован, единица — что это «лист», а число более чем единица - что это «ветка».

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

Отношения между отдельными участками дерева обычно обозначаются как «родитель — ребенок». Узел называется «ребенком» смежного с ним узла, если тот расположен ближе к корневому устройству. Соответственно, узел будет «родителем» по отношению к узлу, расположенному дальше от корневого устройства, чем он сам. Если какое-либо устройство имеет только один подключенный порт, оно будет «листом» дерева и всегда останется «ребенком». После формирования дерева каждый узел получает свой физический идентификатор ID (адрес для асинхронного трафика) и идентифицирует себя шинному администратору, если таковой есть.

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

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