Title: Deadlock Recovery
1Deadlock Recovery
- Interconnection Networks
- ??ts??? Ge?????? ?.?.-113
- ???e??d?? Te?d?s??? ?.?.-99
2??sa????
- ?? te?????? a???aµ??? ap? ad????da de? ep??e?????
t??? a??????µ??? d??µ?????s?? - ?p?t??peta? ? s??µat?sµ?? ad?e??d??
- ?ta? a????e?te? ad????d? ??a ? pe??ss?te?a pa??ta
ape?e??e?????? t??? p????? p?? ?at????? - ?? te?????? a?t?? ???s?µ?p?????ta? µ??? ?ta? ta
ad????da e??a? sp???a - ???? t?? ?t? t? wormhole switching e??a?
pe??ss?te?? ep???ep?? se ad????da ?a as???????µe
µe a?t?
3Deadlock Probability (?)
- ?a?????te? p?? ep??e????? t?? p??a??t?ta
s??µat?sµ?? ad?e??d?? - Routing freedom
- ?????? t?? packet routing options
- ?????? blocked packets
- ?????? resource dependency cycles
- ??e? ap?de???e? ?t? ?a??? a??????µe t??? p?????
?a? t? routing freedom ? p??a??t?ta s??µat?sµ??
ad?e??d?? µe???eta? e??et???
4Deadlock Probability (??)
- channel wait-for graph (CWG)
- ????es? p???? st? s?st?µa ?a? e???eµ?? a?t?µ?t??
se ??p??a ??????? st??µ? - Knot S????? ??µß?? st??? ?p????? ?s??e? p?? ap?
?p????d?p?te ??µß? µp????µe ?a µetaß??µe se
?p????d?p?te ???? t?? ?d??? s?????? - Deadlocks
- deadlock set
- ?? s????? pa??t?? p?? ??e? ?ata??ße? virtual
channels se ??a knot - resource set
- ?? s????? t?? virtual channels p?? ?????
?ata??f?e? ap? t? deadlock set - knot cycle density
- ?????? ?????? p?? pe??????ta? st? knot
5CWG Example (I)
Deadlock set m1 . . .m8 Resource set
vc0 . . . vc15 Knot cycle density 24
6CWG Example (II)
- Increased routing freedom
- ?p??e? ?a ?d???se? se fa???µe?? livelock
- ?? t? fa???µe?? a?t? ???eta? µe a???µ?????
???µ??? ?ste ta pa??ta ?a µ?? p???aßa????? ?a
?ata?a?????ta? ????µe µe??µ??? throughput ?a?
a???µ??? latency
7Deadlock Probability (???)
- ?? µe??st?p????e? t? routing freedom e?att??eta?
? p??a??t?ta eµf???s?? ad?e??d?? - ?? deadlock-recovery-based routing a??????µ?? p??
ep?t???????? t? pa?ap??? p??t?µ???ta? ap? t???
deadlock-avoidance-based ???? ?a??te??? ap?d?s?? - ??a??a?t??? µ???d?? µe??s?? p??a??t?ta? eµf???s??
ad?e??d?? - ?e?????sµ?? t?? a???µ?? ???? pa??t?? p??
e?s?????ta? st? s?st?µa - ?.?. ??? pa??t? µp??e? ?a e?sa??e? st? s?st?µa
µ??? ?ta? ? a???µ?? t?? e?e??e??? ?a?a???? e??a?
µe?a??te??? ap? ??p??? threshold
8Detection of Potential Deadlocks
- ?e? ?p?????? ap???ta a???ße?? µ??a??sµ??
a????e?s?? ad?e??d?? ??at? a?t? ?a apa?t??se
a?ta??a?? extra p????f????? - ???s?µ?p?????ta? e???st???? a??????µ?? µe t?p???
p????f???a - ? µ??a??sµ?? a????e?s?? µp??e? ?a ???s?µ?p????e?
e?te st?? p??? e?te se e?d??µes? ??µß? - ???? ???s?µ?p?????ta? time-outs ?a? ??????t?s?
µe ??a threshold ???s? ep?p??s?et?? a???µ??
dummy flits ?s?? µe t? µ???st? ap?stas? - ??d??µes?? ??µß?? timeout-counter, comparator se
???e virtual channel
9Detection of Potential Deadlocks
- ?p??e? ?a ???e? ?a??asµ??? a????e?s? deadlock
(????? t?µ? st? time-out) - St? ?e???te?? pe??pt?s? p????? ??µß?? a????e????
?a??asµ??a deadlock ?a? ?????? kill ta pa??ta p??
ß??s???ta? st??? buffers - ? t?µ? t?? time-out p??pe? ?a e??a? a?????? t??
µ????? t?? pa??t??
10Progressive and Regressive Recovery Techniques (?)
- Progressive
- ??a??t??? p????? p?? e??a? ?ate???µµ???? ap? µ?
µp???a??sµ??a pa??ta se µp???a??sµ??a, ??a
??????? a???aµ?? ap? ad????d? - Regressive
- ?????? kill ta µp???a??sµ??a pa??ta ?a? ???eta?
epa?e?p?µp?
11Progressive and Regressive Recovery Techniques
(??)
- ?????e?s? ap? t?? p???
- Control signal p?? ape?e??e???e? t??? buffers
(compressionless routing) - ?pa?e?p?µp? µet? ap? t??a?? ?????
- ?pa?te?ta? buffering st? injection port
- ???ß??µa
- Se pe??pt?s? ?a??asµ???? a????e?s??, ??e???eta?
buffer st?? destination d??t? a? f??se? control
signal p??pe? ta flits p?? ?f?asa? µ???? t?te ?a
?????? kill ?ste ?a ??f?e? t? pa??t? epa?e?p?µp?? - ? ?pa??? buffer st?? p?????sµ? p??apa?te? t??
s?st? p???a????sµ? t?? µe?????? t?? pa??t??
12Progressive and Regressive Recovery Techniques
(???)
- ?????e?s? se e?d??µes? ??µß?
- Regressive
- Kill t?? µp???a??sµ???? pa??t?? µe d??d?s?
backward control signal p?? ape?e??e???e? t?
µ???p?t? - Progressive
- ????es? p???? ap? µ? µp???a??sµ??a pa??ta se
µp???a??sµ??a - ?f?? ???e? t? ad????d? ?? p???? ep?st??f??ta? sta
pa??ta p?? t??? ?ate??a? p??? - Progressive ap?te?esµat???te?? ap? Regressive
-
13Progressive Recovery Disha (I)
14Progressive Recovery Disha (II)
- ???sßas? st? deadlock buffer ???? t?? ??µß?? t??
µ???pat??? µe ep?ßa???µe?? control signal - S??????? ?? buffers s??µat????? µ?a deadlock
free d??d? p??? t?? p?????sµ?. - ?ta? a????e??e? ad????d? t? µp???a??sµ??? pa??t?
e?t??peta? st? deadlock buffer - ?ta? ??p??? flit µp???a??sµ???? pa??t??
???s?µ?p???se? f?s??? ?a???? e??d??, ep?ß???eta?
control signal st?? aµ?s?? ep?µe?? ??µß? ??a ?a
t? e?t???e? ape??e?a? st? deadlock buffer
15?a??de??µa ?d?e??d??
16????aµ?? st? Disha (I)
?????? ?at?stas? (pa??t? P1)
17????aµ?? st? Disha (I?)
????aµ?? ad?e??d?? (pa??t? P1)
18????aµ?? st? Disha (I??)
- ??????
- ?? ?p?????? ? ?????? ???e f??? p?? eµfa???eta?
ad????d? sp?e? ??a? - ??a ?-1 ??????
- ?pa?????? s?µpe?a????µe ?t? ?p???e? asfa???
a???aµ?? ap? ??a ta ad????da - ?? ??a deadlocked pa??t? ???e? ?a ???s?µ?p???se?
?a???? p?? ?at??e? ???? pa??t?, t? ?ata?aµß??e?
p??s????? ?a? ?ta? te?e??se? t? ep?st??fe? st??
p????t??? - ??t? de d?µ?????e? ?d?a?te?? p??ß??µa d??t? ta
ad????da ?p???t??µe ?t? eµfa?????ta? sp???a ?a?
ta flits t?? pa??t?? p?? µetad?d??ta?
ap????e???ta?. ?ts? a? ?a?e? t? ?a????
p??s????? de? ?????ta?
19????aµ?? st? Disha (VI)
- Deadlock buffers are dedicated
- Restricted access (Disha sequential)
- Structured access
- Channels are not
- ???s?µ?p?????ta? ?a?????? ap? ??a ta pa??ta
- ???s?µ?p?????ta? ??a deadlock freedom µ??? st??
pe??pt?s? p?? eµfa??ste? ad????d? - ????e?µ???? ?a ?e?t?????se? ap?te?esµat??? de?
p??pe? ?a µp??e? ?a eµfa??ste? ad????d? st???
deadlock buffers - ??asfa???eta? ? deadlock freedom epe?d? ta
deadlock buffers ??s?ast??? d?µ???????? µ?a
routing subfunction ? ?p??a e??a? connected ?a?
de? ??e? ???????? e?a?t?se?? µeta?? t?? p????
20Deadlock freedom in Disha (?)
- Disha sequential
- ???? ??a pa??t? µp??e? ?a ???s?µ?p??e? t???
deadlock buffers ???e f??? - ?p???e? circulating token p?? a?a??te? t??
p??sßas? - ???ß??µa
- Circulating token single point of failure!
- ? a???aµ?? ???eta? se???a?? ?p?te µp??e? ?a
ep??easte? ? ap?d?s? a? s?ss??e?t??? ad????da se
µ???? ??????? d??st?µa
21Deadlock freedom in Disha (??)
- G?a ta?t?????? a???aµ??
- ?e? ??e???eta? token
- ?p??e? ?a ???s?µ?p????e? d?a?t?t?? ? ?p???? ?a
d?a?e????eta? ta?t?????a a?t?µata ???s?? t??
deadlock buffer ap? d?af??et???? e?s?d??? - ?p??e? ?a apa?te?ta? ? ?pa??? pe??ss?t???? ap?
e??? deadlock buffer a??e? ?a µ?? ?pe?ßa????? t?
minimum p?? apa?te?ta? - Ge???? µp??e? ?a ep?te???e? se ?p??ad?p?te
t?p?????a µe Hamiltonian µ???p?t?a (? spanning
trees) ???s?µ?p????ta? 2 deadlock buffers a??
??µß? - ?? ??µß?? a???µ???ta? s?µf??a µe t? ??s? t??? st?
Hamiltonian path - ?ta? t? destination label e??a? µe?a??te?? ap?
a?t? t?? t?????ta ??µß?? ???s?µ?p??e?ta? t? ??a
set ap? buffers - ?? e??a? µ????te?? ???s?µ?p??e?ta? t? ???? set
22??a??a?t???? a???te?t??????
- ???s?µ?p????? ??? ?e?t?????? buffers, a??? a?t???
t?? ?a?a???? - Deadlock buffers p??st??e?ta? st?? e?s?d? t??
?a?a???? - Ta p??pe? ?a pe??????? st???e?a crossbar
reconfiguration ?a? ?????? ? ?p??a ?a ??µ?ta? t??
?at?stas? t?? crossbar p??? t?? eµf???s? t??
ad?e??d??
23Livelock Avoidance (?)
- ? ap???ste??? t??p?? ??a ap?f??? livelock e??a?
t? misrouting - ?? minimal routing algorithms e??a? e?d???
pe??pt?s? limited misrouting ?p?? de? ep?t??peta?
misrouting - ?? p????? t?? ?a?a???? p?? ?at??e? ??a pa??t?
e??a? upper bounded ap? t? d??µet?? - ?? minimal routing a??????µ?? e??a? p?????
ap?d?t???? ?ta? ???s?µ?p??e?ta? wormhole
switching ??at? ta pa??ta ?ata?aµß????? t?
e????st? d??at? bandwidth ?a?a????
24Livelock Avoidance (??)
- ??a? ????? ??a ???s? misrouting e??a? ?
d??µ?????s? µeta?? ??µß?? p?? ? s??des? t??? ??e?
?p?ste? ??p??a ?atast??f? - ?? ep?t??p??ta? µ??? e????sta µ???p?t?a ?a? ?
s??des? µeta?? t?????t?? ?a? ??µß?? pa?a??pt?
??e? ?p?ste? ß??ß? t? pa??t? de? µp??e? ?a
s??e??se? - ??e? ap?de???e? p?? d????ta? ??a µ???st? a???µ?
ap? ß??ße? st? d??t??, p?? de? t? ap?s??d????, t?
limited misrouting e??a? a??et? ?a f??s??µe se
????? t??? d??at??? p?????sµ??? - ?p?s?? µe t? limited routing ????µe ??a µ???st?
a???µ? ?a?a???? p?? µp????? ?a ?at????ta? ap? ??a
pa??t?, ?p?te ap?fe??eta? t? livelock - G?a ?a ?????et?s??µe t? misrouting p??pe? e?te ?a
d?µ??????s??µe ?at???????? a??????µ???
d??µ?????s??, e?te ?a ??at?µe t?? p????f???a t??
ep?t?ep?µe??? a???µ?? µ???pat??? a?? pa??t? st?
header t?? pa??t??
25Livelock Avoidance (???)
- ? µ??? pe??pt?s? st?? ?p??a t? misrouting de?
µp??e? ?a ?????et??e? ????? d?µ??????a deadlock
e??a? st? deflection routing - ??t? ? te????? ap?t??pe? ta deadlock ep?t??p??ta?
t? ???s? ?p????d?p?te e?e??e??? ?a?a???? ??a t??
p?????s? t?? pa??t?? - ??e? ap?de???e? p?? t? deflection routing e??a?
livelock-free - ?p???t??ta? p?? d??eta? p??te?a??t?ta sta ?a????a
p?? ????? µ????te?? µ????, ? p??a??t?ta e??es??
???? t?? e????st?? µ???pat??? ?a e??a?
apas????µ??a µe???eta? ?s? a????eta? ? a???µ??
t?? p??spa?e??? - ?ts? ta pa??ta ?a f??s??? st?? p?????sµ? t???
a??? ? ??????a - St?? p???? ??e? ap?de???e? p?? p??? ???e?
?e?t?????e? misrouting ??e?????ta? ?at? µ?s? ???
?ta? ???s?µ?p??e?ta? deflection routing