wraparound channels.
• A Directional Dependency Graph (DDG) is proposed by combining Dally’s CDG with Turn model. DDG is useful for deadlock representation, deadlock detection, formu- lating deadlock avoidance and showing deadlock freedom in Torus NoC.
• The applicability of our proposed Arc and DDG are shown with respect to XY-turns.
Behaviour of XY-Turns with respect to different Arcs are demonstrated in this work.
For forming a cyclic buffer dependency, the source and destination pairs for each packets involved in that dependency should be at least two hops away [2]. A cyclic path via East to West (EW) wraparound channel is shown in Fig. 5.5(a). To break that potential cycle, the immediate backward movement just after taking the EW wraparound channel is prohibited in this work. Two alternate directions either towards North or South are permitted after the EW wraparound channel. The restricted movements after the EW wraparound channel are shown in Fig. 5.5(b). The EW wraparound channel is sub-divided into EWn and EWs Arcs that are shown in Fig. 5.5(c) and Fig. 5.5(d), respectively.
EW
WE
(c)
(d)
a s b d
d b s
SN
a(b)
b d
a s
NS
(a)
a s
d b
N
W E
S
Figure 5.6: Wraparound channels: (a) NS, (b) SN, (c) EW, (d) WE
5.3.2 Classification of Wraparound Channels
The wraparound channels in a Torus NoC are classified into four categories in this thesis based on their direction. The wraparound around channels from the North to the South boundary (NS), from the South to the North boundary (SN), from the East to the West boundary (EW) and from the West to the East boundary (WE). In short from, we denote them as NS, SN, EW and WE, respectively. The obvious cyclic paths via wraparound channels NS, SN, EW and WE are presented in Fig. 5.6(a), Fig. 5.6(b), Fig. 5.6(c) and Fig. 5.6(d), respectively. For all the wraparound channels in Fig. 5.6, a possible path is s → a → b → d →s. A sequence of packets present in that path, holding and waiting on each other for the buffer, might lead to a deadlock. One possible way to avoid that possible
cyclic resource dependency is to avoid the backward moves b → d just after taking the wraparound channel. For achieving this, an Arc model is proposed in this work to design deadlock free routing algorithms for Torus NoC without using additional resources.
(c) (d)
d
(a) (b)
s
(e) d
EWs
(f) d
s
EWn
(g) s
d
(h) s
d WEn
WEs d
SNe SNw
s s
a a
a
a
a a
b
b b
b
b NSe a
b NSw s a
s
b d d b
Figure 5.7: Arc model: Eight possible Arcs in Torus NoC
5.3.3 The Proposed Arc Model
Wraparound channels are used to reach from one boundary row to another boundary row or from one boundary column to another boundary column. The backward move b→ d after taking the wraparound channel in Fig. 5.6 is restricted to avoid deadlock in the proposed Arc model. On reaching the opposite boundary row (/column) via a wraparound channels, the packet moves in the same boundary row (/column) for at least one hop. Only after that point, the packet can take a backward move if it is required. As a result the obvious deadlock prone cycle is discontinued. In the proposed Arc model, each wraparound channel is divided into two Arcs. For example, the NS wraparound channel in Fig. 5.6(a) is divided into NSe and NSw Arcs, as shown in Fig. 5.7(a) and Fig. 5.7(b), respectively. Essentially,
after taking the NS wraparound channel, the packet will move one hop either in E or W direction. In a similar way, for breaking the cycle in all the wraparound channels in Fig.
5.6, we have categorised the wraparound channels into eight Arcs. The eight possible Arcs in our proposedArc model are shown in Fig. 5.7.
NSeArc is applicable if NS wraparound channel helps to reduce hop count and the des- tination is in the South-East direction. A situation of another consecutive EW wraparound channel just after the NSe Arc does not arises due to the one hop movement towards the East in the NSe Arc. It is ensured or taken care of by the condition for the applicability of NSeArc. Similarly, NSwArc is applicable if NS wraparound channel reduces hop count and destination is in South-West direction. The condition for the applicability of NSw Arc en- sures that the immediate movement towards W after the wraparound channel does not lead to another wraparound channel WE. The conditions for the applicability of Arcs prevent all such scenarios of taking two wraparound channels consecutively.
W E
S N
NE ES
SE
NE
SE
R
s
(a)s a
b c
d e
f
(b) ( c )
b c
d f
g h
e
s a
Figure 5.8: (a) Channel-buffer combination as a vertex, (b) Dependency cycle with EWn, (c) Dependency cycle with EWn and EWs.
5.3.4 Effect of Arcs with the Permitted Turns in the Mesh Sub- network
The Arc model imposes a restriction to mitigate the immediate deadlock potential via cyclic paths through wraparound channels. Though the most potential deadlock cycle is broken, still there are chances for complicated deadlock cycle depending upon the permitted Turns in the Mesh sub-network. Such cycles are not so straight forward and they might spread across a large number of routers. Fig. 5.8(b) and Fig. 5.8(c) show two possible deadlock cycles. Arcs and Turns involved in the cycle formation are also highlighted. The Arcs are distinguished with a curved arrow. The name of the Turns involved are mentioned in the diagram. Each alphabet in the graphs represents a vertex that connects two edges in the graph. We have not separately put a small circle to represent the vertex for the sake of clarity of the diagram. A vertex represents a channel-buffer combinations as shown in Fig.
5.8(a). A dotted lines are used to represent many intermediate channel-buffer combinations in the same directions where no Turns are involved.
In Fig. 5.8(b), a sequence of packets form a resource dependency cycle across the path s → a → b → c → d → e → f → s. Each vertex in the graph is a channel-buffer combination as like CDG [2], i.e., a vertex represents a channel connected to an input port buffer in the adjacent router. For example, vertexs represents a channel from West to East coupled with the West input port buffer in the adjacent router which is shown in Fig.5.8(a).
Similarly, vertex a in Fig. 5.8(b), is another West input port channel-buffer. Dotted line between s and a indicates some more such West input port channel-buffer involved in the dependency cycle. Vertex b represents another West input port buffer coupled with a EW wraparound channel. Vertex c represents the adjacent South input port channel-buffer. A solid-line indicates adjacent channel-buffer. Whereas, a dotted-line indicates dependency across a series of channel-buffers. Vertexd is another South input port channel-buffer from where dependency cycle spread with a NE Turn. The dependency keeps on spreading in this manner and finally reaches the starting vertex s to complete the cycle.
In the second cyclic dependency example in Fig. 5.8(c), two Arcs namely EWn and
EWs and two Turns namely NE and SE are involved. For formal representation of such dependency cycles Directional Dependency Graph (DDG) is proposed in the next section.