1394.1 overview (evolving slide set)
DESCRIPTION
1394.1 Overview (evolving slide set). December 13, 1999 Dr. David V. James, Sony [email protected] (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 - PowerPoint PPT PresentationTRANSCRIPT
1394.1 Overview1394.1 Overview(evolving slide set)(evolving slide set)
December 13, 1999December 13, 1999
Dr. David V. James, SonyDr. David V. James, [email protected]@alum.mit.edu
(contains slide animations)(contains slide animations)
Bus bridge topologiesBus bridge topologies
(selective routing between buses)(selective routing between buses)
Hierarchical bus bridgesHierarchical bus bridges
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
b.2b.4b.1
a.0 a.1 c.0 c.1
Looped bus bridgesLooped bus bridges
During initialization, disable redundant bridge Active topology forms a spanning tree
b.2b.4b.1
a.0 a.1 c.0 c.1
disabled bridge
Software route adjustmentsSoftware route adjustments
The redundant bridge can be partially activated.Shortest path routing is then enable.But, caution is necessary to avoid deadlocks.
b.2b.4b.1
a.0 a.1 c.0 c.1a/c
Assigned busID addressesAssigned busID addresses
(net refresh after bus reset)(net refresh after bus reset)
Bus reset resultsBus reset results
A bus reset does several things: a new bus number is assigned a courtesy notification is broadcast
b.2b.4b.1
a.0 a.1 d.0 d.1
(c.0) (c.1)
Why new busID assignment? 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 disconnectionSubnet disconnection
Both subbuses get new busIdsDirty “victim” subnet is “scrubbed”
e.1e.2e.1
a.0 a.1 d.0 d.1
Subnet reconnectionSubnet reconnection
New busIDs are assigned: To all merged (bus reset) nodes To unaffected victim buses (due to USED/DIRTY conflict)
f.2f.4f.1
a.0 a.1 g.0 g.1
Isochronous connectionsIsochronous connections
(one talker & multiple listeners)(one talker & multiple listeners)
Isochronous connection (A)Isochronous connection (A)
C
L
T
Connection assumptions: controller, talker, listener anywhere disconnect if any are “lost” async: channel but no bandwidth
Isochronous connection (B)Isochronous connection (B)
C’T
L’
Common connection: same talkerEui/plugID distinct controller listener nodes
(example: common listener bus)
Overlaid connectionsOverlaid connections
C
L
T C’T
L’
T C’
L’
C
L
Persistent connections (NO!)Persistent connections (NO!)
C’T
L’
T C’
L’
C
L
T C’
L’
C
L
? ?
L”
C”
C
L
T C’
L’
C
L
Source quarantineSource quarantine
(bridge-aware)(bridge-aware)
Bridge-aware quarantine Bridge-aware quarantine detection/removaldetection/removal
res
req
Quarantined requester: request accepted, response returned distinct rcode/scode identifies problemQuarantine release: FirstSwap transaction clears quarantine (sequence number possible)
res
req
Bridge-awareBridge-awarequarantine recoveryquarantine recovery
Quarantine recovery: Discard EUI-to-nodeID translations (or ignore, based on sequence number)
res
req
res
req
(discard)
Legacy source quarantineLegacy source quarantine
Legacy quarantine detectionLegacy quarantine detection
res
req
Quarantined requester (the same): request accepted (ack_complete), discarded controller’s response-frame timeout occurs
C
Legacy quarantine recoveryLegacy quarantine recovery
Quarantine recovery: FinalSwap transaction clears quarantine Consumer reactivates the talker
list
talk C
list
talk C
Net initializationNet initialization
Net refresh - assigns new busIDsNet refresh - assigns new busIDsNet restart - slowly recycles busIDsNet restart - slowly recycles busIDsNet reset - quickly recycles busIDsNet reset - quickly recycles busIDs
Initial configurationInitial configuration
net’s primary-alpha portal
bus’s secondary-alpha portal
isolating bus-bridge portal
Node attachment resultsNode attachment results(animated sequence)(animated sequence)
Net refresh messagesNet refresh messages
Bus reset (node attached)Bus reset (node attached)
Bus reset invalidates node’s busIDsReset portals becomes prime-portal candidates Cross-bridge traffic is disabled
bus reset
Primary bus acquisitionPrimary bus acquisition
Acquisition messages are sent by each portal Acquisition messages sent to “next” portalThe “next” portal is defined to be stable
Primary bus acquisitionedPrimary bus acquisitioned
Largest portalID acquisition survivesMessages “pass through” victim portalsCompletes when candidate’s message return
Adjacent bus acquistionAdjacent bus acquistion
“Breach” packets sent from current candidateReceipt of breach packets initiates breach Adjacent bus acquisition begins...
Remote bus acquisitionRemote bus acquisition
After acquisition, breach packets sentBreach packets start remote-bus acquisition
Bus acquisition completesBus acquisition completes
Breach packets avoid acquired territoryNet acquisition completes when breach returnsTentative busID/route assignments determined
Commit phase beginsCommit phase begins
Commit begins after breach packets return bridge routing tables are changed busID assignment removes barriers
Commit phase completesCommit phase completes
Commit completes when commit packets returnNormal operation is possible at this time
Refresh sequence reviewRefresh sequence review
Bus resetBus reset
AcquisitionAcquisition
CommitCommit
Node attachment resultsNode attachment results(animated sequence)(animated sequence)
Net refresh messagesNet refresh messages(animated sequence)(animated sequence)
Isochronous BW averagingIsochronous BW averaging
Peak bandwidth creditsPeak bandwidth credits
time
BW
average
maximum
credits
Event mergingEvent merging
(if local events are insufficient...)(if local events are insufficient...)
GASP event overloadGASP event overload
tgt
src
4 input with one output, so something is lost
src
srcsrc
Merged event parametersMerged event parameters
source
timeOfBirth
events
source
timeOfBirth
events
source
timeOfBirth
events
merge point OR’d
newest time