410 likes | 546 Views
1394.1 Overview (evolving slide set). December 13, 1999 Dr. David V. James, Sony dvj@alum.mit.edu (contains slide animations). Bus bridge topologies. (selective routing between buses). Hierarchical bus bridges. b.1. b.4. b.2. a.0. a.1. c.0. c.1. Two portals, one on each bus
E N D
1394.1 Overview(evolving slide set) December 13, 1999 Dr. David V. James, Sonydvj@alum.mit.edu (contains slide animations)
Bus bridge topologies (selective routing between buses)
Hierarchical bus bridges b.1 b.4 b.2 a.0 a.1 c.0 c.1 Two portals, one on each bus forwards async by destinationID async routing tables are stable forwards isoch by channel number isoch routing entries are dynamic
Looped bus bridges b.1 b.4 b.2 a.0 a.1 c.0 c.1 disabled bridge During initialization, disable redundant bridge Active topology forms a spanning tree
Software route adjustments b.1 b.4 b.2 a.0 a.1 c.0 c.1 a/c The redundant bridge can be partially activated.Shortest path routing is then enable.But, caution is necessary to avoid deadlocks.
Assigned busID addresses (net refresh after bus reset)
Bus reset results b.1 b.4 b.2 a.0 a.1 d.0 d.1 (c.0) (c.1) A bus reset does several things: a new bus number is assigned a courtesy notification is broadcast
Why new busID assignment? Primary objectives: correctness & simplicity secondary objective: efficient reset recoveryExisting (remapped) virtualIDs can be unsafeDirect local-node addressing (no alpha agent) more efficient; no caching concernsNo source_ID/destination_ID substitutionsNo localID accounts (DIRTY,FREE,...)Single bus rediscovery can be efficient
Subnet disconnection e.1 e.2 e.1 a.0 a.1 d.0 d.1 Both subbuses get new busIdsDirty “victim” subnet is “scrubbed”
Subnet reconnection f.1 f.4 f.2 a.0 a.1 g.0 g.1 New busIDs are assigned: To all merged (bus reset) nodes To unaffected victim buses (due to USED/DIRTY conflict)
Isochronous connections (one talker & multiple listeners)
Isochronous connection (A) L T C Connection assumptions: controller, talker, listener anywhere disconnect if any are “lost” async: channel but no bandwidth
Isochronous connection (B) L’ T C’ Common connection: same talkerEui/plugID distinct controller listener nodes (example: common listener bus)
Overlaid connections L’ L T C’ T C L’ L T C’ C
Persistent connections (NO!) L’ L L’ L C” T C’ C T C’ L” C ? ? L’ L L’ L T T C’ C C’ C
Source quarantine (bridge-aware)
Bridge-aware quarantine detection/removal res res req req Quarantined requester: request accepted, response returned distinct rcode/scode identifies problem Quarantine release: FirstSwap transaction clears quarantine (sequence number possible)
Bridge-awarequarantine recovery res res req req (discard) Quarantine recovery: Discard EUI-to-nodeID translations (or ignore, based on sequence number)
Legacy quarantine detection res req C Quarantined requester (the same): request accepted (ack_complete), discarded controller’s response-frame timeout occurs
Legacy quarantine recovery list list talk talk C C Quarantine recovery: FinalSwap transaction clears quarantine Consumer reactivates the talker
Net initialization Net refresh - assigns new busIDsNet restart - slowly recycles busIDsNet reset - quickly recycles busIDs
Initial configuration net’s primary-alpha portal bus’s secondary-alpha portal isolating bus-bridge portal
Bus reset (node attached) bus reset Bus reset invalidates node’s busIDs Reset portals becomes prime-portal candidates Cross-bridge traffic is disabled
Primary bus acquisition Acquisition messages are sent by each portal Acquisition messages sent to “next” portalThe “next” portal is defined to be stable
Primary bus acquisitioned Largest portalID acquisition survivesMessages “pass through” victim portals Completes when candidate’s message return
Adjacent bus acquistion “Breach” packets sent from current candidate Receipt of breach packets initiates breach Adjacent bus acquisition begins...
Remote bus acquisition After acquisition, breach packets sentBreach packets start remote-bus acquisition
Bus acquisition completes Breach packets avoid acquired territoryNet acquisition completes when breach returnsTentative busID/route assignments determined
Commit phase begins Commit begins after breach packets return bridge routing tables are changed busID assignment removes barriers
Commit phase completes Commit completes when commit packets returnNormal operation is possible at this time
Refresh sequence review Bus reset Acquisition Commit
Peak bandwidth credits BW maximum average time credits
Event merging (if local events are insufficient...)
GASP event overload src src src src tgt 4 input with one output, so something is lost
Merged event parameters merge point OR’d source events timeOfBirth source events timeOfBirth source events timeOfBirth newest time