Bus Management

There are three basic bus service nodes defined in IEEE 1394 (higher level protocols may define more): cycle master, isochronous resource manager and bus manager. These positions are contended for in and shortly after the bus reset and may all be taken by a single node. A node does not have to support being any of those but if it is bus manager capable it also has to be iso manager capable, if it is iso manager capable it also has to be cycle master capable.

The cycle master sends 8000 cycle start packets per second, which initiate an iso cycle. Without that, no isochronous transmission is possible. Only the root node is allowed to be cycle master, if it is not capable then no iso transmissions can occur (and the iso or bus manager have to select another node to become root and initiate a bus reset).

The isochronous resource manager is the central point where channel and bandwidth allocations are stored. A bit in the SelfID shows whether a node is iso manager capable or not, the iso manager capable node with the highest ID wins the position after a bus reset. Apart from containing allocation registers, this one doesn't do much. Only if there is no bus manager, it may determine a cycle master capable node to become root and initiate a bus reset.

The bus manager has more responsibilities: power management (calculate power provision and consumption on the bus and turn on disabled nodes if enough power is available), bus optimization (calculate an effective gap count, optimize the topology by selecting a better positioned node for root) and some registers relevant to topology (topology map containing the SelfIDs of the last reset and a speed map, which is obsoleted in IEEE 1394a). The bus manager capable nodes contend for the role by doing a lock transaction on the bus manager ID register in the iso manager, the first to successfully complete the transaction wins the role.