Шина IEEE 1394 — FireWire

Арбитраж в гибридной шине

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

В каждом B-облаке имеется один старший пограничный узел (senior border PHY): это последний узел, передающий в облако пакет самоидентификации без кода скорости. Старший пограничный узел облака, содержащего корневой узел, называется прокси-корнем. Этот узел будет работать дежурным арбитром, пока другие узлы не играют роль «босса». Если корнем является традиционный узел, то прокси-корня нет. P-порт старшего пограничного узла (если он не является прокси-корнем) всегда является DS-портом.

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

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

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

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

В гибридной шине маркер CYCLE_START может быть только в облаке, в котором находится мастер цикла. Это облако называется старшим B-облаком (senior B cloud). Такового может и не быть, поскольку мастер циклов может оказаться и в традиционном фрагменте шины. Остальные B-облака называются младшими (junior B cloud). Поскольку маркеры по традиционному фрагменту распространяться не могут, воспроизведение маркеров начала цикла в младших облаках проблематично. PHY узлов младшего облака узнают о начале изохронного периода от своего LINK-уровня. Поскольку информации о номере фазы у узлов младшего облака нет, изохронная транзакция запрашивается сигналом (символом) ISOCH_CURRENT. Этот запрос достигает старшего пограничного узла, который выполняет немедленный арбитраж в традиционном фрагменте шины. Запросы ISOCH_EVEN/ODD в младшем облаке не фигурируют.

Пограничный узел принимает традиционные запросы арбитража (сигналом TX_REQUEST) и преобразует их в символ запроса LEGACY_REQUEST, посылаемый в свой p-порт. Остальные свои порты он блокирует посылкой в них символа DATA_NULL. Если арбитраж выигран, то узел получит символ GRANT или GRANT_ISOCH; если проигран — DATA_PREFIX или DATA_NULL.

Яндекс.Метрика