NC2 (No.4) 1 Undeliverable packets & solutions Deadlock: packets are unable to progress –Prevention, avoidance, recovery Livelock: packets cannot reach their destination –Minimal paths, Restricted nonminimal paths, Probabilistic avoidance Starvation: resources are never allocated –Resource assignment scheme
NC2 (No.4) 2 Deadlock prevention Deadlock is a situation that occurs when a cycle of packets are waiting for one another to release resources, and hence are blocked indefinitely. Resources (channels or buffers) are reserved before starting packet transmission so that a request never leads to a deadlock. All the variants of circuit switching, when backtracking is allowed, are classified into deadlock prevention.
NC2 (No.4) 3 Deadlock avoidance Resources are requested only when they are really needed to forward a packet. A common technique consists of establishing an ordering between resources and granting resources to each packet in decreasing order. Almost all modern networks use deadlock avoidance.
NC2 (No.4) 4 Deadlock recovery Deadlock is possible and some detection mechanism must be provided. If a deadlock is detected, some resources are deallocated and granted to other packets. This strategy is used if deadlocks are rare, otherwise the overhead of deadlock detection and recovery degrade performance considerably.
NC2 (No.4) 5 Livelock A packet may be traveling around its destination node, never reaching it because the channels required to do so are occupied by other packets. It can only occur when packets are allowed to follow nonminimal paths. It can be prevented by limiting the number of misrouting operations.
NC2 (No.4) 6 starvation A packet may be permanently stopped if traffic is intense and the resources requested by it are always granted to other packets also requesting them. A correct resource assignment solves it. –A simple demand-slotted round-robin scheme is enough to produce a fair use of resources.
NC2 (No.4) 7 Routing and selection functions A routing function supplies a set of output channels based on the current and destination nodes. The routing function determines it is deadlock-free or not. A selection function decides an output channel from the set based on the status (free or not).
NC2 (No.4) 8 Router model LC switch LC Routing and arbitration Input channels Output Channel selection Injection channel Ejection channel LC: Link Controller
NC2 (No.4) 9 Channel dependency (1/3) n0n1 n2n3 c0 c1 c2 c3 c0c1 c2c3 node channel
NC2 (No.4) 10 Channel dependency (2/3) n0n1 n2n3 ch0 ch1 ch2 ca0 ca1 ca2 ca3 Node i to j Use chi for ∀ j > i Use cai for ∀ j < i ch3
NC2 (No.4) 11 Channel dependency graph ch1 ch2 ch0 ca1 ca2ca3
NC2 (No.4) 12 definitions Routing function R is connected if it is able to establish a path between every pair of nodes in a network. A deterministic routing, restricting the routing function will disconnect the channel dependency graph because a single path is supplied for each packet. A deterministic routing function R for an interconnection network is deadlock-free if and only if there are no cycles in its channel dependency graph.
NC2 (No.4) 13 Deadlock-freedom on a ring 0 1 ch0 ca0 n ch1 ca1 dateline
NC2 (No.4) 14 Channel dependency (3/3) n0n1 n2n3 ch0 ch1 ch2 ca0 ca1 ca2 ca3 Node i to j Use chi for ∀ j > i Use cai for ∀ j ≠ i
NC2 (No.4) 15 Extended channel dependency graph ch1 ch2 ch0 Escape channel ca0ca1 ca2ca3 Escape path
NC2 (No.4) 16 Theory of deadlock avoidance A restricted routing function, that is only supplies escape channels, is referred to as routing subfunction. A connected routing function R for a network is deadlock-free if and only if there exists a routing subfunction R1 that is connected and has no cycles in its extended channel dependency graph (theorem 3.1).
NC2 (No.4) 17 Deadlock-freedom on SAF and VCT A connected routing function R for an interconnection network I = G(N,C) is deadlock-free if there exists a channel subset C1 ⊆ C such that the routing subfunction R1(x,y)=R(x,y)∩C1, ∀ x,y ⊆ N is connected and deadlock-free. N: set of nodes, C: set of channels C1= ∪ ∀ x,y ⊆ N R1(x,y)
NC2 (No.4) 18 Deadlock-freedom on wormhole (1/2) Packets usually occupy several channels when blocked. There will exist channel dependencies between nonadjacent channels. Dependencies between nonadjacent channels are not important when all the channels of the network are considered because they cannot produce cycles.
NC2 (No.4) 19 Deadlock-freedom on wormhole (2/2) Theorem 3.1 is valid for SAF, VCT, and wormhole switching under the conditions: A queue cannot contain flits belonging to different packet.
NC2 (No.4) 20 Injection limitation (1/2) If there is at least one empty packet buffer in a ring, there is no deadlock because a packet from the previous node is able to advance and soon or later, all the packets will advance. Two or more empty buffers in the local queue are required to inject new packet.
NC2 (No.4) 21 Injection limitation (2/2) PE node0node1node2node3 Node1 and 2 are not allowed to inject a new packet into the ring, because there are less than two empty buffers.
NC2 (No.4) 22 Deflection routing When the number of input channels is equal to the number of output channels, incoming packet will always find a free output channel. If it is possible, a minimal path is selected. Otherwise, the packet is misrouted. When a node is injecting a packet into the network and all the output ports are busy, one incoming packet is buffered in a local memory. The buffered packet is reinjected before injecting any new packets.
NC2 (No.4) 23 Deadlock avoidance in MINs (1/2) If a packet may not cross the network several times (recirculation), the packet is only routed from left to right. There are only dependencies between channels in a given stage to channels in the next stages. There is not any cyclic dependency between channels, thus avoiding deadlocks.
NC2 (No.4) 24 Deadlock avoidance in MINs (2/2) When the recirculation is allowed, the behavior of MINs regarding deadlocks is similar to that of direct networks. The theoretical results for the latter are valid for the former (cyclic channel dependencies cause deadlocks). We can focus on the topology connecting the switches of MINs.
NC2 (No.4) 25 Deadlock prevention in circuit switching Circuit switching reserves all the resources before they are used, so no deadlocks arise. When the probe, which sets up the whole path, cannot advance, it is allowed to backtrack ( releasing some previously reserved resources). If backtracking is not allowed, the behavior regarding deadlocks is identical to that of wormhole switching.
NC2 (No.4) 26 Deadlock probability (1/2) Routing freedom (routing options available to a packet being routed) affects the probability of deadlock. Routing freedom can be increased by adding physical/virtual channels, and increasing the adaptivity of the routing algorithm. When the rouging freedom increases, the probability of deadlock decreases.
NC2 (No.4) 27 Deadlock probability (2/2) It was shown that deadlocks can be highly improbable when sufficient routing freedom is provided and fully exploited by the routing function. Deadlock recovery-based algorithms designed primarily to maximize routing freedom. Limiting packet injection also reduce the probability of deadlock.
NC2 (No.4) 28 Detection of deadlocks (1/2) A deadlock configuration often involves several packets. Completely accurate deadlock detection mechanisms are not feasible because they require exchanging information between nodes (not always possible). Less accurate heuristic mechanisms that use only local information are preferred.
NC2 (No.4) 29 Detection of deadlocks (2/2) If a header flit is clocked for longer than a certain amount of time, is can be assumed that the corresponding packet is potentially deadlocked. A source or intermediate node has counter to measure the timeout. Heuristic deadlock mechanisms are not accurate, so it is important to minimize false-deadlock detection.
NC2 (No.4) 30 Progressive and regressive recovery (1/2) Progressive recovery deallocates resources from packets and reassign them to deadlocked packets for quick delivery. Regressive recovery deallocates resources from deadlocked packets, usually killing them (abort-and retry).
NC2 (No.4) 31 Progressive and regressive recovery (2/2) If a deadlock is detected at the source node, regressive recovery is usually used. (a packet is killed and injected again after a random delay) If a deadlock is detected at the intermediate node containing a header, both progressive and regressive mechanisms are possible.
NC2 (No.4) 32 Deadlock recovery router (Disha) LC switch LC Routing and arbitration Input channels Output channels Injection channel Ejection channel Deadlock buffer
NC2 (No.4) 33 Deadlock Recovery by Disha ejection Deadlock buffer
NC2 (No.4) 34 Sequential deadlock recovery Deadlock freedom on the deadlock buffer is essential to recovery. The number of deadlock buffer per node is limited, sequential recovery scheme was proposed. Only a packet at a time is allowed to use the deadlock buffer (restricting access with a circulating token).
NC2 (No.4) 35 Concurrent deadlock recovery An arbiter is required in each node so that simultaneous requests for the use of deadlock buffer coming from different input channels are handled. A routing subfunction, that is connected and has no cyclic dependencies between resources, is defined for the deadlock buffer (Hamiltonian paths).
NC2 (No.4) 36 Hamiltonian paths (for 4x4 mesh) 89a 6 2 b 3 fedc
NC2 (No.4) 37 Livelock avoidance By limiting misrouting, there is an upper- bound for the number of channels reserved by a packet, thus avoiding livelock. Misrouting can be limited by adding a field to a packet header to keep misrouting count. In deflection routing, misrouting cannot be limited. It has been shown that it is livelock- free in a probablistic way.
NC2 (No.4) 38 history Early work on deadlock-free interconnection networks identified the technique of enumerating network resources and traversing these resources an increasing order. Linder and Harden developed a method that makes arbitrary adaptive routing deadlock-free but at the cost of a number of virtual channels (1991). Duato’s protocol has been used in several networks such as Cray T3E and the Alpha