Jenny C. Chen
†, Frank K. Hwang and Jing-Kai Luo
Department of Applied Mathematics National Chiao Tung University
Hsinchu 300, Taiwan
Abstract
In [7], Padmanbhan proposed the general shuffle-exchange network (GSEN) and an efficient tag-based routing algorithm for it. In [1], Chen, Liu and Qiu further enhanced the GSEN with bidirectional links. The bidirectional GSEN can be divided into two dependent networks, the forward network and the backward network. Since the forward network is a GSEN, Padmanbhan’s tag-based routing algorithm can be applied on it. As for the backward network, Chen et al. [1] proposed a routing algorithm which is based on the idea of inversely using the forward control tag. In this paper, we will show that the backward network has a wonderful property: for each destination i, there are two backward control tags associated with it such that every source j can get to i by using one of the two control tags. We will use this property to derive efficient algorithms for one-to-one routing and for constructing a routing table.
Keywords: Interconnection network, multistage network, shuffle-exchange network, Omega network, tag-based routing algorithm.
1 Introduction
The purpose of this paper is to derive tag-based routing algorithms for the backward network of a bidirectional general shuffle-exchange network. Throughout this paper, N0
∗This research was partially supported by the National Science Council of the Republic of China under the grant NSC93-2115-M-009-011.
†The corresponding author, e-mail: [email protected]
1
denotes the number of inputs and the number of outputs of a network. We assume that all the switch elements in a network are identical and of size k × k.
Shuffle-exchange networks have been proposed as a popular architecture for intercon-nection networks [2, 3, 6, 5, 7, 8]. The perfect shuffle operation on N0 terminals (k | N0) is the permutation π defined by
π(i) = (ki +
¹ki N0
º
) mod N0, 0 ≤ i ≤ N0− 1.
In particular, when k = 2, the perfect shuffle operation separates the top N0/2 terminals from the bottom N0/2 terminals and precisely interleaves them, with the bottom terminal still remaining at the bottom. A shuffle-exchange network is a network with N0 = kd inputs and outputs and each stage consists of the perfect shuffle on N0 terminals followed by N0/k switch elements.
In a multistage interconnection network, a path from an input to an output can be described by a sequence of labels that label the successive edges on this path. Such a sequence is called a control tag [7] (or tag [1] or path descriptor [4]). The control tag may be used as a header for routing a message: each successive node uses the first element of the sequence to route the message, and then discard it. For example, in Figure 1(a), input 2 can get to output 9 by using the control tag 11 (01011), which means input 2 can get to output 9 via sub port 0 at stage 0, sub port 1 at stage 1, sub port 0 at stage 2 and sub port 1 at stage 3 and sub port 1 at stage 4; see Figure 1(b) for an illustration of sub ports.
In a shuffle-exchange network, the number of stages may be equal to or be greater than logkN0. When the number of stages is exactly logkN0, a shuffle-exchange network is identical to the Omega network defined in [5] and its control tags depend only on the destination.
In [7], Padmanbhan proposed the general shuffle-exchange network (GSEN), which allows N0 6= kd and contains exactly dlogkN0e stages. Padmanbhan showed that the control tags of a GSEN depend on both the source and the destination when N0 is not
2
stage 0
stage 0 stage 1stage 1 stage 2stage 2 stage 3stage 3 stage 4stage 4 0
a power of k. Padmanbhan also proposed an elegant tag-based routing algorithm for the GSEN.
In [1], Chen, Liu and Qiu enhanced the GSEN with bidirectional links. Their reason for the enhancement is that although unidirectional links are widely used, bidirectional links also have many applications as suggested in [2]. A bidirectional GSEN can be divided into two dependent networks: the forward network and the backward network. The forward network is from the left-hand side of the network to the right-hand side of the network;
thus a request in it is sent from left to right. On the other hand, the backward network is from the right-hand side of the network to the left-hand side of the network; thus a request in it is sent from right to left. The control tags used in the forward (backward) network are called the forward (backward) control tags.
3
Since a forward network is a GSEN, Padmanbhan’s tag-based routing algorithm can be used in it. As for the backward network, Chen et al. [1] implemented a tag-based routing algorithm by using the forward tag inversely. More precisely, their algorithm first runs Padmanbhan’s tag-based routing algorithm to derive the forward control tag; then, their algorithm runs another procedure to convert the forward control tag to the backward control tag. If the number of stages is n + 1, then the algorithm in [1] takes O(n) time to derive the tag for a source j to get to a destination i and it takes O(N02n) to construct the routing table (a table that contains the backward control tags for routing the N0× N0 pairs of nodes in the backward network).
In this paper, we show that the backward network has a wonderful property: for each destination i, there are two backward control tags associated with it such that every source j can get to i by using one of the two tags. We show that the two tags can be derived in O(n) time. Therefore, it is possible to derive in O(n) time not only a tag for a j to get to i but also the tags for every j to get to i. So, constructing the routing table can be done in O(N0n) time. We now summarize results of the backward network of a bidirectional GSEN below.
time required to use the algorithm in [1] use our algorithm
find a tag for a j to get to i O(n) O(n)
find the tags for every j to get to i O(N0n) O(n)
construct the routing table O(N02n) O(N0n)
This paper is organized as follows. In Section 2, we formally define the bidirectional GSEN and give conventions used in this paper. In Section 3, we describe the tag-based routing algorithms in [7] and [1]. In Section 4, we describe our algorithm.
4