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

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

Шина сбрасывается каждый раз, когда к ней в «горячем» режиме подсоединяется или от нее отсоединяется какой-либо узел. Роли изохронного администратора ресурсов и шины остаются за устройствами, определенными во время первичной инициализации (если они не входят в чис-• ло отсоединенных).

Далее процесс инициализации развивается так: после назначения изохронного администратора ресурсов те узлы, которым необходима работа в изохронном режиме, посылают ему запросы на выделение им временных интервалов. Администратор содержит ресурсы в форме каналов в своем регистре CHANNELS_AVAILABLE. Каждый источник изохронных данных запрашивает номер канала (от 0 до 63) и некоторое количество временных интервалов. Администратор ресурсов сообщает ему, свободен ли этот канал, и, если он свободен, назначает его запросившему устройству. Если же данный канал занят, устройство поочередно запрашивает другие каналы, пока не найдет свободный.

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

Разделение ресурсов шины

После того как шина сконфигурирована, а ее субъекты администрирования и изохронные ресурсы назначены, узлы вступают в фазу арбитража по доступу к шине. Состязаются не только различные узлы, но и изохронные и асинхронные данные. Решения принимает корневой узел как «ведущий циклов». Используя мультиплексное квантование времени, он выделяет конкурирующим узлам ресурсы шины систематизированным образом. Одной из ключевых функций является посылка синхронизирующего сигнала, называемого стартом цикла, через регулярные интервалы времени - обычно каждые 125 мкс.

• Первая часть цикла работы шины доступна для передачи изохронных данных. Поскольку по меньшей мере 20% цикла должны быть зарезервированы для асинхронного графика, изохронная часть цикла не должна превышать 80%, или 100 мкс (в случае длительности цикла - 125 мкс). Асинхронные данные заполняют оставшуюся часть цикла.

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

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