EP1668924A1 - Reseaux multietage de multidiffusion apte a un reagencement de non blocage - Google Patents

Reseaux multietage de multidiffusion apte a un reagencement de non blocage

Info

Publication number
EP1668924A1
EP1668924A1 EP03755793A EP03755793A EP1668924A1 EP 1668924 A1 EP1668924 A1 EP 1668924A1 EP 03755793 A EP03755793 A EP 03755793A EP 03755793 A EP03755793 A EP 03755793A EP 1668924 A1 EP1668924 A1 EP 1668924A1
Authority
EP
European Patent Office
Prior art keywords
switches
input
links
network
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP03755793A
Other languages
German (de)
English (en)
Inventor
Venkat Konda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Teak Technologies Inc
Original Assignee
Teak Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Teak Technologies Inc filed Critical Teak Technologies Inc
Publication of EP1668924A1 publication Critical patent/EP1668924A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • H04Q3/68Grouping or interlacing selector groups or stages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13146Rerouting upon blocking/overload, rearrangement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13166Fault prevention
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13242Broadcast, diffusion, multicast, point-to-multipoint (1 : N)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1334Configuration within the switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13341Connections within the switch

Definitions

  • Appendix A includes software written in the C programming language for a prototype of a scheduling method and a rearrangement method to set up connections through a three-stage network.
  • the C code is compilable by Visual C++ compiler, version 6.0 available from Microsoft Corporation, to form an executable file for use in an IBM compatible personal computer.
  • Appendix A also includes documentation in a readme file for the C code and also instructions on how to compile and execute the C code.
  • Volume in drive D is 010925_1558 Volume Serial Number is FFC7-6B58
  • Clos switching network is a network of switches configured as a multi-stage network so that fewer switching points are necessary to implement connections between its inlet links (alsO called “inputs”) and outlet links (also called “outputs”) than would be required by a single stage (e.g. crossbar) switch having the same number of inputs and outputs.
  • Clos networks are very popularly used in digital crossconnects, switch fabrics and parallel computer systems. However Clos networks may block some of the connection requests. There are generally three types of nonblocking networks: strictly nonblocking; wide sense nonblocking; and rearrangeably nonblocking (See V.E.
  • a three-stage network is operated in rearrangeably nonblocking manner, in accordance with the invention, when the number of switches in the middle stage is greater than or equal to the sum of the number of inlet links of each switch in the input stage and the number of outlet links of each switch in the output stage.
  • each connection (unicast, multicast, or broadcast) is set up through such a three-stage network by use of at most two switches in the middle stage.
  • a three- stage network is operated in rearrangeably nonblocking manner in accordance with the invention, if the number of middle switches is greater than or equal to twice the number of inlet links in each input switch.
  • a three-stage network having more middle switches than the sum of the number of inlet links of each input switch and the number of outlet links of each output switch is operated in rearrangeably nonblocking manner even if some connections are set up using more than two middle switches as long as each connection has available links into at least two middle switches.
  • FIG. IA is a diagram of an exemplary three-stage symmetrical network with exemplary multicast connections in accordance with the invention.
  • FtG. IB is high- level flowchart of a rearrangeable scheduling method according to the invention, used to set up the multicast connections in the network 100 of FIG. IA.
  • FIG. 3 A is intermediate level flowchart of one implementation of the method 140 of FIG.
  • FIG. 3B shows an exemplary F(6,3,9) network with certain existing multicast connections
  • FIG. 3C shows the network of FIG. 3B after a new connection is set up by selecting one middle switch in the network, using the method of FIG. 3 A in one implementation
  • FIG. 3D shows the network of FIG. 3C after another new connection is set up by selecting two middle switches in the network, using the method of FIG. 3A in one implementation.
  • FIG. 4A is another intermediate level flowchart of one implementation of the act 142 of FIG. 3A.
  • FIG.4B is low-level flowchart of one variant of act 142 of the method of FIG. 4A; and
  • FIG. 4C illustrates, in a flowchart, pseudo code for one example of scheduling method of FIG. 4B.
  • FIG. 4D implements, in one embodiment, the data structures used to store and retrieve data from memory of a controller that implements the method of FIG. 4C.
  • FIG. 5 A is intermediate level flowchart of one implementation of the method 140 of FIG. IB;
  • FIG. 5B is first intermediate level flowchart of one embodiment of the rearrangement act 150 of the method of FIG. 5A;
  • FIG. 5C shows an exemplary V(6,3,9) network with certain existing multicast connections; and
  • FIG. 5D shows the network of FIG. 5C after a new multicast connection is set up by re / arranging an existing connection in the network, using the method 140 of FIG. 5 A.
  • FIG. 5E shows an example of existing multicast connections in a network where in a new multicast connection is to be set up.
  • FIG. 5F is the network of FIG. 5E after the new connection has been set up and some existing connections have been disconnected which will be set up later.
  • FIG. 6A is second intermediate level flowchart of one implementation of the method 150 of FIG. 5B;
  • FIG. 6B is low-level flowchart of one variant of act 168 of the method of FIG. 6A; and
  • FIG. 6C is low-level flowchart of one variant of act 170 of the method of FIG. 6A.
  • FIG. 7A illustrates, in a flowchart, pseudo code for one example of act 160 of the rearrangement method 150 of FIG. 6A; and FIG. 7B illustrates, in a flowchart, pseudo code for one example of act 170 of the rearrangement method 150 of FIG. 6A.
  • FIG. 8A is a diagram of an exemplary three-stage network where the middle stage switches are each three-stage networks;
  • FIG. 8B is high-level flowchart, in one embodiment, of a recursively rearrangeable scheduling method in a recursively large multi-stage network such as the network in FIG. 8A.
  • FIG. HA is a diagram of an exemplary F(6,3,4) three-stage network, with m — 2 * n middle stage switches implemented in space-space-space configuration, with certain existing multicast connections setup using the method 140 of FIG. 5 A;
  • FIG. 1 IB is the first time step of the TST implementation of the network in FIG. 1 IA;
  • FIG. 11C is the second time step of the TST implementation of the network in FIG. HA;
  • FIG. 1 ID is the third time step of the TST implementation of the network in FIG. HA.
  • the present invention is concerned with the design and operation of multi-stage switching networks for broadcast, unicast and multicast connections.
  • a transmitting device When a transmitting device simultaneously sends information to more than one receiving device, the one-to- many connection required between the transmitting device and the receiving devices is called a multicast connection.
  • a set of multicast connections is referred to as a multicast assignment.
  • the one-to-one connection required between the transmitting device and the receiving device is called unicast connection.
  • the one-to-all connection required between the transmitting device and the receiving devices is called a broadcast connection.
  • a multicast connection Is meant to be one-to-many connection, which includes unicast and broadcast connections.
  • a multicast assignment in a switching network is nonblocking if any of the available inlet links can always be connected to any of the available outlet links, hi certain multi-stage networks of the type described herein, any connection request of arbitrary fan-out, i.e. from an inlet link to an outlet link or to a set of outlet links of the network, can be satisfied without blocking if necessary by rearranging some of the previous connection requests.
  • connection requests may be satisfied even without rearranging as described in detail in U.S. Patent Application Serial No. 09/967,106 that is incorporated by reference above.
  • an exemplary symmetrical three-stage Clos network often switches for satisfying communication requests, such as setting up a telephone call or a data connection, between an input stage 110 and output stage 120 via a middle stage 130
  • input stage 110 consists of three, two by four switches ISlrIS3 and output stage 120 consists of three, four by two switches OS1-OS3, and middle stage 130 consists of four, three by three switches MS1-MS4.
  • Such a network can be operated in rearrangeably non-blocking manner, because the number of switches in the middle stage 130 (i.e. four switches) is equal to the sum of the number of links (i.e. two inlet links) of each of the switches in the input stage 110 and output stage 120.
  • the specific method used in implementing the rearrangeable non-blocking connectivity can be any of a number of different methods that will be apparent to a skilled person in view of the disclosure. One such method is described below in reference to FIG. IB.
  • each of the input switches IS1-IS3 and output switches 0S1-0S3 are crossbar switches.
  • the switching network is called single-stage switching network, crossbar switching network or more simply crossbar switch.
  • A. (N*M) crossbar switching network with N inlet links and M outlet links is composed of NM cross points. As the values of N and M get larger, the cost of making such a crossbar switching network becomes prohibitively expensive,
  • each of the input switches IS1-IS3 and output switches OS1-OS3 are shared memory switches.
  • the number of switches of input stage 110 and of output stage 120 can be denoted in general with the variable r for each stage.
  • the number of middle switches is denoted by m .
  • the size of each input switch IS1-IS3 can be denoted in general with the notation n * m and of each output switch OS1-OS3 can be denoted in general with the notation m * n .
  • the size of each middle switch MS1-MS4 can be denoted as r * r .
  • a switch as used herein can be either a crossbar switch, or a network of switches each of which in turn may be a crossbar switch or a network of switches.
  • a three-stage network can be represented with the notation V(m, n, r) , where n represents the number of inlet links to each input switch (for example the links ILl, DL2 for the input switch ISl) and m represents the number of middle switches MS1-MS4. Although it is not necessary that there be the same number of inlet links IL1-IL6 as there are outlet links OL1-OL6, in a symmetrical network they are the same.
  • Each of the rn middle switches MS1-MS4 are connected to each of r input switches through r links (hereinafter "first internal” links, for example the links FL1-FL3 connected to the middle switch MSl from each of the input switch IS1-IS3), and connected to each of the output switches through r links (hereinafter “second internal” links, for example the links SL1-SL3 connected from the middle switch MSl to each of the output switch OS1-OS3).
  • first internal links for example the links FL1-FL3 connected to the middle switch MSl from each of the input switch IS1-IS3
  • second internal links for example the links SL1-SL3 connected from the middle switch MSl to each of the output switch OS1-OS3
  • Each of the first internal links FL1-FL12 and second internal links SL1-SL12 are either available for use by a new connection or not available if currently used by an existing connection.
  • the input switches IS1-IS3 are also referred to as the network input ports.
  • the input stage 110 is often referred to as the first stage.
  • the output switches OS1-OS3 are also referred to as the network output, ports.
  • the output stage 120 is often referred to as the last stage.
  • the second stage 130 is referred to as the middle stage.
  • the middle stage switches MS1-MS4 are referred to as middle switches or middle ports.
  • the network also includes a controller coupled with each of the input stage 110, output stage 120 and middle stage 130 to form connections between an inlet link IL1-IL6 and an arbitrary number of outlet links OL1-OL6.
  • the controller maintains ir
  • middle switches e.g. MSl and MS2 in FIG IA
  • FIG. IB shows a high-level flowchart of a scheduling method 140, in one embodiment executed by the controller of FIG. IA.
  • a connection request is received in act 141.
  • a connection to satisfy the request is set up in act 148 by fanning out into at most two switches in middle stage 130 from its input switch.
  • a fan-out of four is possible to satisfy a multicast connection request if input switch is IS2, but only two middle stage switches will be used in accordance with this method.
  • a fan-out of three is possible for a multicast connection request if the input switch is IS3
  • a fan-out of two is used.
  • the specific middle switches that are chosen when selecting a fan-out of two is irrelevant to the method of FIG. IB so long as at most two middle switches are selected to ensure that the connection request is satisfied, i.e. the destination switches identified by the connection request can be reached from the middle switches that are part of the selected fan-out.
  • act 148 control is returned to act 141 so that acts 141 and 148 are executed in a loop for each connection request.
  • n middle stage switches in the network 100 of FIG. IA where the number of inlet links IL1-IL2 equals the number of outlet links OL1-OL2, both represented by the variable n for the network to be a rearrangeably nonblocking symmetrical switching network, when the scheduling method of FIG. IB is used.
  • connection request of the type described above in reference to method 140 of FIG. IB can be unicast connection request, a multicast connection request or a broadcast connection request, depending on the example.
  • a fan-out of one is used, i.e. a single middle stage switch is used to satisfy the request.
  • a limit of two has been placed on the fan-out into the middle stage switches, the limit can be greater depending on the number of middle stage switches in a network, as discussed below in reference to FIG. 2A (while maintaining the rearrangeably nonblocking nature of operation of the network).
  • any arbitrary fan-out may be used between each middle stage switch and the output stage switches, and also any arbitrary fan-out may be used within each output stage switch, to satisfy the connection request.
  • method 140 of FIG. IB has been illustrated with examples in a ten switch network 100 of FIG. IA, the method 140 can be used with any general network, of the type illustrated in FIGs. 2A and 2B.
  • Network of FIG. IA is an example of general symmetrical three-stage network shown in FIG. 2A.
  • the general symmetrical three-stage network can be operated in rearrangeably nonblocking manner if m ⁇ 2 * n (and in the example of FIG.2A, m ⁇ 2*n ⁇ wherein has n inlet links for each of r input switches IS 1 -ISr (for example the links ILl 1-ILln to the input switch ISl) and n outlet links for each of r output switches OSl-OSr (for example OLl 1-OLln to the output switch OSl).
  • Each of the m switches MSl-MSm are connected to each of the input switches through r first internal links (for example the links FLl 1-FLrl connected to the middle switch MSl from each of the input switch ISl-ISr), and connected to each of the output switches through r second internal links (for example the links SLl 1 -SLrI connected from the middle switch MSl to each of the output switch OSl-OSr).
  • first internal links for example the links FLl 1-FLrl connected to the middle switch MSl from each of the input switch ISl-ISr
  • r second internal links for example the links SLl 1 -SLrI connected from the middle switch MSl to each of the output switch OSl-OSr.
  • FIG.2A shows an equal number of first internal links and second internal links, as is the case for a symmetrical three-stage network, the present invention, however, applies even to non-symmetrical networks of the type illustrated in FIG. 2B (described next).
  • Each of the m switches MSl-MS(ni+n 2 ) are connected to each of the input switches through r x first internal links (for example the links FL 11 -FLr 11 connected to the middle switch MS 1 from each of the input switch ISl-ISrO, and connected to each of the output switches through r 2 second internal links (for example the links SLIl-SLr 2 I connected from the middle switch MSl to each of the output switch OSl-OSr 2 ).
  • Such a multi-stage switching network is denoted as a F( m, H 15 T 1 , W 2 , r 2 ) network.
  • the three-stage network is denoted as a Vim, n, r) network.
  • n x inlet links for each of r x input switches no more than W 1 + n 2 middle stage switches are necessary for the network to be rearrangeably nonblocking, again when using the scheduling method of FIG. IB.
  • the network has all connections set up such that each connection passes through at most two middle switches to be connected to all destination outlet links.
  • Every switch in the multi-stage networks discussed herein has multicast capability.
  • a network inlet link is to be connected to more than one outlet link on the same output switch, then it is only necessary for the corresponding input switch to have one path to that output switch. This follows because that path can be multicast within the output switch to as many outlet links as necessary.
  • Multicast assignments can therefore be described in terms of connections between input switches and output switches. An existing connection or a new connection from an input switch to r' output switches is said to have fan-out r 1 .
  • connection I 1 fans out in the first stage switch ISl into the middle stage switches MSl and MS2, in middle switch MSl fans out into output switch OSl, and in middle switch MS2 fans out into output switch OS2. And in both output switches OSl and OS2 it fans out once into the outlet links OLl and OL4 respectively.
  • Connection I 2 fans out in input switch ISl once into middle switch MS4, where it fans out in middle switch MS4 twice into output switches OSl and OS3, and in output switches OSl and OS3 it fans out once into the outlet links OL2 and OL5 respectively.
  • connection I 2 fans out in the input switch IS3 twice into middle switches MSl and MS3, and from middle switch MSl it fans out once into output switch OS2, from middle switch MS3 once into the output switch OS3, and in output swit ⁇ hes OS2 and OS3 fans out once into the outlet links OL3 and OL6 respectively.
  • each connection can fan out in the first stage switch into at most two middle stage switches, and in the middle switches and last stage switches it can fan out any arbitrary number of times as required by the connection request.
  • FIG. 3 A is intermediate level flowchart of one implementation of the method of FIG. IB.
  • destination switch or “destination” refers to any switch in the output stage 120 that is identified in a connection request.
  • a connection request is received in act 141.
  • the method 140 checks in act 142 if the connection can be set up through only one middle switch and if act 142 A finds a middle switch which has second internal links to all the destinations available then the connection is set up in act 142C and the control returns to act 141. If act 142A results in "no", the control goes to act 142B where the method 140 checks if the connection can be set up through only two middle switches.
  • act 142B results in "yes” act 142C sets up the connection through the two middle switches. If act 142B results in “no”, the control goes to act 150, which is the rearrangement method, illustrated later. Also it must be noted that act 148 consists of the scheduling act 142 and the rearrangement act 150. Therefore no more than two middle switches are used when attempting to satisfy the connection request.
  • act 148 consists of the scheduling act 142 and the rearrangement act 150. Therefore no more than two middle switches are used when attempting to satisfy the connection request.
  • steps 141, 142 of method 140 if act 142B results in "no" it means there are no available middle switches, at most two in number, that can be used to set up the multicast connection without the rearrangement of the existing connections.
  • existing connections are rearranged to set up the multicast connection. Any method well known in the art can be used to rearrange the existing connections to set up the multicast connection. One specific method of rearrangement is described below in reference to FIG. 5A.
  • Table 1 above shows a multicast assignment in F(6,3,9) network. This network has a total of twenty-seven inlet links and twenty-seven outlet links.
  • the multicast assignment in Table 1 shows nine multicast connections, three each from the first three input switches. Each of the nine connections has a fan-out of three.
  • the connection request I 1 has the destinations as the output switches OSl, OS2, and OS3 (referred to as 1, 2, 3 in Table 1).
  • Request I 1 only shows the output switches and does not show which outlet links are the destinations. However it can be observed that each output switch is used only three times in the multicast assignment of Table 1, using all the three outlet links in each output switch.
  • output switch 1 is used in requests I 1 , 1 4 , I 7 , so that all three outlet links of output switch 1 are in use, and a specific identification of each outlet link is irrelevant. And so when all the nine connections are set up all the twenty-seven outlet links will be in use.
  • FIG. 3B shows an initial state of the F(6,3,9) network in which the connections I 1 - 1 5 of Table 1 are previously set up.
  • the existing connections Ii , I2, 13, 1 4 , and I5 pass through the middle switches MSl, MS2, MS3, MS4, and MS5 respectively. Each of these connections is fanning out only once in the first switch and fanning out three times in each middle switch.
  • Connection Ii from input switch ISl fans out into middle switch MSl, and from middle switch MSl into output switches OSl, OS2, and OS3,
  • FIG. 3A shows the state of the network of FIG. 3B after the connection Ie of Table 1 is set up.
  • act 142 A the scheduling method of FIG.
  • connection I 6 from input switch IS2 fans out only once into middle switch MS6, and from middle switch MS6 three times into output switches OS3, OS6, and OS9 to be connected to all the destinations.
  • Method 140 next sets up a connection I 7 from input switch IS3 to output switches
  • FIG. 3D shows the state of the network of FIG. 3C after the connection I 7 of Table 1 is set up.
  • the scheduling method of FIG. 3 A could not find a single middle switch that has links to all required destinations available to set up the connection.
  • act 142B it finds two middle switches MSl and MS2 to together have links to all required destinations available for the connection and accordingly the connection I 7 is set up in act 142C.
  • connection I 7 fans out twice in the first switch IS3 into the middle switches MSl and MS2.
  • the middle switch MSl it fans out twice into output switches OS5 and OS9, and in the middle switch MS2 it fans out once into output switch OSl to be connected to all the required destinations.
  • Act 142 of FIG. 3A is implemented in one embodiment by acts 242A-242D illustrated in FIG. 4 A.
  • act 142 A is implemented by acts 242A, 242C, and 242D wherein a loop is formed to check if a middle switch has an available link td the input switch, and also has available links to all the required destination switches.
  • the same loop is also used with an additional act 242B to implement act 142B of FIG. 3A.
  • Use of the same loop as illustrated in FIG. 4A provides efficiency by eliminating repetition of the same acts, namely acts 242A, 242C, and 242D that would otherwise have been repeated if act 142B is performed independent of act 142A (FIG. 3A).
  • act 242B the method of FIG. 4A checks if another middle switch has available links to destinations that could not be reached by use of the middle switch in act 242A (described above). As illustrated in FIG. 4B, act 242B is reached when the decision in act 242A is "no". In one specific example, acts 242A-242B of FIG.4C are implemented by use of the information developed in act 242A, for an efficient implementation as discussed next.
  • FIG. 4B is a low-level flowchart of one variant of act 142 of FIG. 4A.
  • the control to act 142 comes from act 141 after a connection request is received.
  • an index variable i is set to a first middle switch 1 among the group of middle switches that form stage 130 (FIG. 2B) to initialize an outer loop (formed of acts of 142A2, 142A3, 242B, 242C and 242D) of a doubly nested loop.
  • Act 142A2 checks if the input switch of the connection has an available link to the middle switch i. If not control goes to act 242C. Else if there is an available link to middle switch i, the control goes to act 142 A3.
  • Act 142A3 checks if middle switch i has available links to all the destination switches of the multicast connection request. If so the control goes to act 142Cl and the connection is set up through middle switch i. And all the used links from middle switch i to destination output switches are marked as unavailable for future requests. Also the method returns "SUCCESS".
  • Act 242C checks if middle switch i is the last middle switch, if so the control goes to act 150 where the rearrangement of previous connections to set up the connection will be performed. If not the control goes to act 242D from act 242C where i is set to the next middle switch. And the outer loops next iteration starts.
  • act 142A3 results in "no" the control goes to act 142B, In act 142Bl another index variable j is set to middle switch 1 to initialize an inner loop (formed of acts 142B2, 142B3, 142B4 and 142B5) of the doubly nested loop. Then the control goes to act 142B, In act 142Bl another index variable j is set to middle switch 1 to initialize an inner loop (formed of acts 142B2, 142B3, 142B4 and 142B5) of the doubly nested loop. Then the control goes to act
  • act 142B3 results in "no"
  • the control goes to act 142B4.
  • act 142B4 the method 140 checks if middle switch j is last middle switch, and if so the control goes to act 142A4, if not the control goes to act 142B5 where middle switch j is set to the next middle switch. From act 142B5 the control transfers to act 142B2. And thus acts 142B2, 142B3, 142B4 and 142B5 form the inner loop stepping through all the middle switches until two middle switches are found to set up the connection. If at most two middle switches are not found through which the connection can be set up, as illustrated already the control goes from act 242C to act 150 where the rearrangement of previous connections will be tried to set up the connection.
  • FIG.4C illustrates, in a flowchart, a computer implementation of one example of the scheduling method of FIG. 4B.
  • the flowchart FIG. 4C is similar to the flowchart of FIG. 4B excepting for three differences.
  • the check for setting up the connection through one middle switch also efficiently implements the half of the check for setting up the connection through two middle switches.
  • the second difference is the loop control code.
  • the loop exit test is performed at the end of the inner and outer loops whereas in the flowchart of FIG. 4C the loop exit test is performed at the beginning of the inner loop and outer loops.
  • the third difference is in the flowchart of FIG.4B when the connection cannot be set up in the method 142 without rearranging previous connections, the control directly goes to the rearrangement method 150 whereas in the flowchart of FIG.4C the control returns "FAIL" and the rearrangement method need to be called separately to set up the connection.
  • the following method illustrates the pseudo code for one implementation of the scheduling method of FIG. 4C to set up a new multicast connection request through the network of FIG. 2B, when there are at least H 1 + n 2 middle switches in the network as discussed above.
  • Step 4 O 1 — Set of all destination switches of c having available links from i ;
  • Step 5 O k — Set of all destination switches of c having no available links from i ;
  • Step 6 if ( O t — AU the required destination switches of c) ⁇
  • Step 10 if( ⁇ fc c ⁇ 7 ) ⁇
  • Step 1 above labels the current connection request as "c”.
  • Step 2 starts an outer loop of a doubly nested loop and steps through all the middle switches. If the input switch of c has no available link to the middle switch i, next middle switch is selected to be i in the Step 3.
  • Steps 4 and 5 determine the set of destination switches of c having and not having available links from middle switch i, respectively.
  • Step 6 if middle switch i have available links to all the destination switches of connection request c, connection request c is set up through middle switch i. And all the used links of middle switch i to output switches are marked as unavailable for future requests. Also the method returns "SUCCESS".
  • Step 7 starts the inner loop to step through all the middle switches to search for the second middle switch, and if middle switch i is same as the middle switch j, Step 8 continues to select the next middle switch to be j.
  • Step 9 determines the set of all destination switches having available links from middle switch j.
  • Step 10 if all the links that are unavailable from middle switch i are available from middle switch j, connection request c is set up through middle switch i and middle switch j. All the used links from middle switch i and middle switch j to output switches are marked as unavailable and the method returns "SUCCESS". These steps are repeated for all the pairs of middle switches.
  • Step 11 if one or two middle switches are not found through which c can be set up, the method returns "FAIL". It is easy to observe that that the number of steps performed by the scheduling method is proportional to m 2 , where m is the niunber of middle switches in the network and hence the scheduling method is of time complexity O[m 2 ).
  • Table 2 shows how the steps 1-11 of the above pseudo code implement the flowchart of the method illustrated in FIG. 4C, in one particular implementation.
  • FIG. 4D illustrates, in one embodiment, the data structures used to store and retrieve data from memory 500 of a controller 580 that implements the method of FIG. 4C.
  • the fan-out of at most two in the input switch of each connection is implemented by use of two data structures (such as arrays or linked lists) to indicate the destinations that can be reached from each of two middle switches.
  • two arrays 530 arid 550 are determined for each of the two middle switches MSi and MSj that are checked for possible use in setting up the connection, for example in act 148 of the rearrangeable scheduling method 140 of FIG. IB.
  • Arrays 530 and 550 are determined as follows. Each connection request 510 is specified by an array 520 of destination switch identifiers (and also an inlet link of an input switch identifier).
  • Another array 560 of middle switches contains m elements one each for all the middle switches of the network.
  • Each element of array 560 has a pointer to one of m arrays, 570-1 to 570-m, containing a bit that indicates availability status (hereinafter availability status bit) for each output switch OSl-OSr as shown in FIG. 4D, If second internal link to an output switch is available from a middle switch, the corresponding bit in the availability status array is set to 'A' (to denote available, i.e. unused link) as shown in FIG. 4D. Otherwise the corresponding bit is set to 'U' (to denote unavailable, i.e. used link).
  • each pair of middle switches MSi, and MSj are checked to see if all the destinations of connection 510 are reachable from the pair. Specifically this condition is checked by using the availability status arrays 570-i, 570-j of two middle switches MSi and MSj, to determine the available destinations of the connection 510 from MSi and MSj in the respective arrays 530 and 550.
  • each destination is checked if it is available from any one of the middle switches MSi and MSj, and if both the middle switches MSi and MSj do not have availability for a particular destination, this particular pair of middle switches MSi and MSj cannot be used to set up the connection.
  • middle switches MSi and MSj are determined to have unavailability of a particular destination, a different pair of middle switches are checked for example the middle switches MSi and MSk.
  • middle switches MSi and MSk are checked for the availability of all the destinations of the connection 510 in the same manner as middle switches MSi and MSj. Therefore in this implementation, there is no need to use an additional array 540 of unavailable destinations from middle switch MSi (as discussed next).
  • An alternative implementation saves (see act 305 of FIG. 4C) an array 540 (see FIG. 4D) of unavailable destinations from middle switch MSi, at the time middle switch MSi is first paired with a middle switch, (e.g. MSj) other than itself when attempting to satisfy the connection request 510.
  • a middle switch e.g. MSj
  • Such saving of array 540 eliminates the need for each destination of the connection request 510 to be checked for middle switch MSi, when middle switch MSi is paired with another middle switch (e.g. MSk). If the array 540 of unavailable destinations from MSi is saved once, only these destinations (in array 540) need to be checked for availability in middle switch MSk, which improves the speed of the computation.
  • FIG. 4D An alternative implementation saves (see act 305 of FIG. 4C) an array 540 (see FIG. 4D) of unavailable destinations from middle switch MSi, at the time middle switch MSi is first paired with a middle switch, (e.g. MSj) other than itself when
  • FIG. 4D can be implemented to set up connections in a controller and memory (described above in reference to FIG. IA, FIGr. 2A, and FIG. 2B etc.).
  • FIG. 5 A is intermediate level flowchart of one implementation of the method 140 of FIG. IB.
  • a multicast connection request is received in act 141.
  • act 142AB the method 140 checks if the connection can be set up by fanning out into at most two middle stage switches from its input switch. If 142AB results in "yes", the control goes to act 142C and the connection is set up. Then control returns to act 141.
  • act 142AB results in "no"
  • the control goes to act 150 (also called “method 150") and the connection is set up by an act of changing the paths (also called a “rearranging act”) of one or more existing connections. Then the control is returned to act 141. And thus acts 141, 142 and 150 are executed in a loop for each multicast connection request. Acts 142 and 150 together form act 148.
  • FIG. 5B is an intermediate level ("also called first intermediate level”) flowchart of one embodiment of the rearrangement act 150 of FIG. 5A.
  • the control comes to act 150 when the multicast connection through at most two middle switches cannot be set up without rearranging one or more existing connections.
  • act 168 each existing connection in the input switch (of the new connection) is disconnected temporarily, to b»e reconnected later. Thereafter the new connection and the disconnected connection, in th_at order, are tried to be set up. This is repeated for each existing connection in the input switch of the new connection until both get set up.
  • connection it is to be understood that an existing connection need not be actually disconnected during the performance of act 150 of the method 140 of FIG.5A. And instead such an existing connection can be marked for disconnection in acts 168A and/or 172 A while performing the method in an alternative embodiment, and the actual disconnection is performed at the end if it is determined that the method 140 is successful in setting up the new connection by use of links freed by such disconnection.
  • act 171 the new connection is set up through two middle switches having available first internal links so that only one of these two middle switches use second internal links which are already in use by one or more existing multicast connections from other input switches (hereinafter called "incompatible existing connections").
  • act 172 the incompatible existing connections are disconnected and marked as visited. Then the control is transferred to act 169.
  • act 169 the method 150 checks if there are more new connections to be set up. If there are no new connections to be set up control goes to act 141, to receive the next multicast connection request.
  • act 169 if there are more new connections to be set up, the control goes to act 168 and acts of 168, 169, 171, and 172 are recursively performed until the method exits to act 141.
  • the control goes to act 141, it means the new connection and all the incompatible connections are set up through at most two middle switches.
  • the rearrangement method 150 of FIG. 5B can also be observed as a loop consisting of acts 168, 168 and 170.
  • act 168 each new connection is tried to be set up by rearranging existing connections in its own input switch. If act 168 results in "no", in act 170 the new connection is set up by forcibly disconnecting one or more existing connections in other input switches. And then the disconnected connections are marked as new connections and the process is repeated in a loop until the new connection and all the disconnected connections are set up.
  • FIG.5C shows the state of the network of FIG.3D after the connection I 8 of Table 1 is set up using the scheduling method 140 of FIG. 5 A.
  • Act 142AB of the scheduling method 140 of FIG. 5 A could not find a single middle switch to set up the connection. However act 142AB finds two middle switches MS4 and MS6 to be available for the connection and accordingly the connection Is is set up in act 142C. And so I 8 fans out twice in the first switch IS3 into the middle switches MS4 and MS6. Also in the middle switch MS4 it fans out twice into output switches OS2 and OS6, and in the middle switch MS6 it fans out once into output switch OS7 to be connected to all the destinations.
  • FIG. 5D shows the state of the network of FIG. 5C after the connection I9 of Table 1 is set up using the rearrangeable scheduling method 140 of FIG. 5 A.
  • act 142AB the scheduling method of FIG. 5 A could not find a single middle switch to set up the connection.
  • Act 142AB also could not find two middle switches to set up the connection because from input switch IS3 there are only two middle switches MS3 and MS5 with available links.
  • the connection I9 has destinations of OS3, OS4, and OS8. And from both the middles switches MS3 and MS5 the link to output switch OS8 is not available when performing acts of 142AB. And hence act 142 results in "no" and the control goes to rearrangement act 150.
  • each connection from the same input switch IS3 of the connection I 9 is disconnected. First it disconnects the connection I 7 and so the first internal links from input switch IS3 to middle switches MSl and MS2 are now available and the second internal links from middle switch MSl to output switches OS5 and OS9 are now available and also the second internal link from middle switch MS2 to output switch OSl is also available. Then act 168 tries to set up the connection I9 by using no more than two middle switches and it will be set up through middle switches MSl and MS2. And so, in this example, Ig fans out twice in the input switch IS3 into the middles switphes MSl and MS2. Also in the middle switch MSl it fans out twice into output switches OS4 and OS8 > and in the middle switch MS2 it fans out once into output switch OS3 to be connected to all the destinations.
  • act 169 the method 150 checks if all the new connections are set up, and since they are all set up the control goes to act 141 where it is ready to receive the next multicast connection request.
  • FIG. 5E shows a partial diagram of an exemplary three-stage network.
  • There are many existing connections (not shown in the diagram). But three existing connections Ij, Ij, and Ik are fanning out twice in their input switches. Each of these three connections fan out into middle switch MS3.
  • middle switch MS3 the connections Ij, I 1 , and Ik each fan out once into output switches OS3, OS4, and OS2 respectively.
  • OS3, OS4, and OS2 the existing connections Ij, Ij, and Ik fan out once.
  • a new connection I 1 with destinations to the output switches OSl, OS2, OS3, OS4, and OS5 is to be set up in this network using the method 140 of FIG. 5A.
  • the connection Ii cannot be set up in act 142AB.
  • act 168 cannot setup the connection by disconnecting only one of the existing connections in its input switch ISl. And the control goes to act 171.
  • act 171 it selects the two middle switches MS2 and MS3 to set up the connection. That is the new connection I 1 is tried to be fanned out into middle switches MS2 and MS3.
  • middle switch MS2 there are available links to only two destination switches OSl and OS5 out of the required five destinations.
  • middle switch MS3 all the three remaining destinations OS2, OS3, and OS4 are unavailable because the existing connections Ii, Ij, and I k from other input switches are currently using the second internal links to all the three output switches OS2, OS3, and OS4.
  • the three connections Ij, Ij, and Ik are the incompatible existing connections.
  • act 172 these three connections are disconnected and the new connection Ii is set up through the middle switches MS2 and MS3.
  • FIG. 5F shows the network of FIG. 5E after the incompatible existing connections Ij, Ij, and Ik are disconnected and the new connection Ii is set up through the middle switches MS2 and MS3.
  • connection I 1 fans out twice into the output switches OSl and OS5.
  • the middle switch MS3 it fans out thrice into the output switches OS2, OS3, and OS4.
  • act 172 the incompatible existing connections Ii, Ij, and Ik are marked as new connections to be formed, after being disconnected.
  • the control goes to act 169, where it results in "no" because there are new connections to be set up. So from act 169, control transfers to act 168.
  • act 168 the connections Ij, Ij, and I k will be tried to be set up.
  • new connections Ij, Ij, and Ik are set up by disconnecting only one connection in their respective input switches, and if necessary other existing connections may be disconnected.
  • the switch hardware cost is reduced at the expense of increasing the time required to set up connection a connection.
  • the set up time is increased in a rearrangeably nonblocking network because existing connections that are disrupted to implement rearrangement need to be themselves set up, in addition to the new connection. For this reason, it is desirable to minimize or even eliminate the need for rearrangements to existing connections when setting up a new connection.
  • that network is either wide-sense nonblocking or strictly nonblocking, depending on the number of middle switches and the scheduling method.
  • FIG. 6A is a detailed intermediate level (also called “second intermediate level”) flowchart of one implementation of the method of FIG. 5B.
  • the control comes to act 160, from act 142, when the connection through at most two middle switches cannot be set up without rearranging one or more existing connections.
  • act 167A the method 150 assigns the new connection to a group of connections called the current connection group. Another group of connections called next connection group is initialized to contain no connections. Both current connection group and next connection group contain a list of connections to be set up. Initially, i.e. when the control comes from act 142 to act 167A, the current connection group contains the new connection and the next connection group contains no connections. Also mark the new connection as visited.
  • act 161 the method 150 checks if the a next connection request in the current connection group, which is initially the new connection, can be set up by disconnecting only one of the existing connections in the same input switch of the new connection. And then act 161 checks if the disconnected connection can also be set up. If both the new connection and the disconnected connections can be set up, the control goes to act 168A. In act 168A, the existing connection chosen in act 161 is disconnected, and the new multicast request and disconnected connection, in that order, are set up. The new connection is removed from the current connection group. The control is then transferred to act 169 A.
  • act 161 for all the existing connections in the same input switch of the new connection, after disconnecting each of them if it is checked that either the new connection cannot set up or the disconnected connection cannot be set up, act 161 results in "no". In such case, act 161 makes sure the disconnected connection is set up again and the new connection is still not set up. Then the control goes to act 171.
  • the new connection is set up through two middle switches having available first internal links so that only one of these two middle switches use second internal links which are already in use by one or more existing multicast connections from other input switches (hereinafter called "incompatible existing connections"). Also the new connection is removed from the current connection group. And the control goes to act 172. In act 172, the incompatible existing connections are disconnected, marked as visited, and added to the next connection group as new connection requests that need to be set up. Then the control is transferred to act 169 A. In act 169 A, the method 150 checks if there are more connections in the current connection group. If not control goes to act 169B. In 169B, the method 150 checks if there are more connections in the next connection group.
  • control goes to act 141 and the rearrangeable scheduling method 150 will be completed, which means the new connection is set up by rearranging the existing connections and using a fan-out of no more than two in the input switch.
  • act 169B results in "yes”
  • control goes to act 169C where the next connection group is copied into the current connection group and the next connection group is cleared. And the control transfers to act 161.
  • act 169A results in "yes”
  • the control is transferred to act 161.
  • act 161 repeats the process to the next new connection request in the current connection group until the method 150 reaches act 141 which means the new connection is set up by rearranging some existing connections.
  • FIG. 6B is low-level flowchart of one variant of act 168 of the method of FIG. 6A.
  • the control comes to act 168, from act 142, when the multicast connection cannot be set up through at most two middle switches without rearranging one or more existing connections.
  • act 161 if there is an existing connection that has not been tried to be disconnected in the input switch of the multicast request, the control goes to act 162.
  • act 162 the particular existing connection is disconnected.
  • the control transfers to act 163.
  • the method 160 checks if all the destinations of the hew multicast request can be reached through at most two middle switches now. If so the control transfers to act 164.
  • act 164 the method 160 checks if all the destinations of the disconnected connection could be reached if the links needed to satisfy the new multicast connection request are already in use. If so, the control goes to act 165 where both the new multicast request and the disconnected connection are set up in that order. From act 165 control transfers to act 169. If any of acts 163 or 164 result in "no" control transfers to act 166 where the disconnected connection is set up. From act 166, the control transfers to act 161 where the process is repeated for the next untried existing connection. In act 161, if there are no more untried existing connections the control transfers to act 170. If the control goes to act 170, it means the new connection request cannot be satisfied by disconnecting only one existing connection in the same input switch.
  • FIG. 6C is lqw-level flowchart of one variant of act 170 of the method of FIG.
  • act 170 from act 161, because the next connection request cannot be set up by disconnecting only one of the existing connections in the same input switch.
  • act 171 the new connection is set up through two middle switches having available first internal links so that only one of these two middle switches use second internal links which are already in use by one or more existing multicast connections from other input switches (hereinafter called "incompatible existing connections").
  • act 172A the incompatible existing connections are disconnected. At this point the new connection has now been set up, and only the remaining task is to set up any previously existing connections that are being disconnected (to accommodate the new connection). The control then goes to act 172B.
  • act 172B the method 170 checks if any of the existing connections was marked as visited (generated by existing connections being disconnected in an attempt to rearrange) ⁇ If so for all these connections the control transfers to act 172C.
  • act 172C a different existing connection from the same input switch which itself was not marked as visited, is chosen to be disconnected so that the existing connection which is marked visited can be set up through two middle switches. The control then transfers to act 172D.
  • act 172B for all the existing connections, which were not marked visited, the control transfers to act 172D.
  • act 172D all the disconnected connections are marked as visited. From act 172D, the control goes to act 169.
  • the scheduling method of FIG. 4B returns fail, the following rearrangement method is called to set up the new connection request by rearranging one or more previously set up requests.
  • the method illustrates the pseudo code of the rearrangement method 150 to set up a new multicast connection request through the network of FIG.2B.
  • Step 10 Clear the list L current ;
  • Step 12 Set up k on any two available middle switches such that incompatibilities arise in the only one of the two middle switches ;
  • Step 13 Disconnect all the incompatible connections in the other switches
  • Step 14 For each incompatible connection ⁇
  • Step 15 If (the connection visited before) ⁇
  • Step 16 Select and disconnect another existing connection from the same input switch that was not visited such that the incompatible connection is set up; ⁇
  • Step 17 Mark all the disconnected connections as visited ;
  • Step 18 Clear the list L_next ;
  • Step 1 and Step 2 start with assigning the current multicast requests to be rearranged to the lists L_next and L_current respectively.
  • L next and L_current will contain only the new request.
  • Step 1 also marks the current multicast request as visitedi Step 3 starts the while loop. If L current contains no requests the method stops executing which means the new request is set up in the multi ⁇ stage network. Initially Step 3 results in "TRUE" and the control goes to Step 4.
  • Step 4 starts a for loop, with loop index as i, to step through all the requests in Ljcurrent.
  • L current will contain only the new request.
  • Step 5 is a loop, with loop index as j, for stepping through all the previously set up connections in the same input switch as the request i.
  • Step 6 disconnects the existing connection j.
  • Step 7 tries to set up connection i and if connection i still cannot be set up, existing connection j is set up and the loop continues to set the next existing connection as j .
  • Step 8 tries to set up the existing connection j, in case the connection i is set up in Step 7.
  • Step 9 removes the request the connection i from L next, when both the connection i and the existing connection j are set up in Step 7 and Step 8 respectively.
  • Step 10 clears L current list. If at least one of the connections cannot be set up by rearranging only one existing connection in the same input switch, L next will not be empty when Step 11 is executed.
  • Step 11 starts the loop for setting up the requests in L next list.
  • Each connection k is set up through two middle switches having available first internal links so that only one of these two middle switches use second internal links which are already in use by one or more existing multicast connections from other input switches (hereinafter called "incompatible existing connections").
  • the incompatible existing connections are disconnected.
  • each incompatible connection is checked if it is visited before, in a loop.
  • Step 15 it is checked if an incompatible connection is visited before.
  • Step 16 another existing connection is disconnected which itself was not visited before such that the incompatible connection marked as visited is set up. Then in Step 17, all the disconnected connections are marked as visited and they all are added to the list L current. Step 18 clears the L next and Step 19 copies L current into L next. The while loop of step 3 is continued until L current is empty.
  • the foregoing rearrangement method has the time complexity of ⁇ (r * n) . The method converges and finds a nonblocking schedule for any multicast assignment based on the proof of this invention discussed later.
  • FIG. 7A illustrates, in a flowchart, pseudo code for one example of act 160 of rearrangement method of FIG. 6A.
  • FIG. 7B illustrates, in a flowchart, pseudo code for one example of act 170 of rearrangement method of FIG. 6 A.
  • the flowcharts of FIG. 7A and FIG. 7B are similar to the pseudo code of the rearrangement method above excepting for one difference.
  • the flowchart expands the loop control code for all the for loops into loop initialization code, loop exit code and loop step through code.
  • Table 3 shows how the steps 1-15 of the above pseudo code implement the flowcharts of the methods illustrated in FIGr. 7A and FIG. 7B, in one particular implementation.
  • two or more existing connections can also be attempted disconnecting and so that the new connection and the disconnected existing connections can all be set up in any one of all the possible the combinations of order of set up.
  • two existing connections A and B in the same input switch can be disconnected and can be tried setting up in the following two ways: 1) the new connection, existing connection A, and existing connection B are tried setting up in that order or 2) the new connection, existing connection B, and existing connection A are tried setting up in that order.
  • any of these setting up acts if the new connection and both the connections A and B are all set up, the rearrangement method 150 will be successful and the rearrangement act 150 goes to act 141 to receive the next connection request.
  • three existing connections in the same input switch can be tried disconnecting and setting up in all the six combinations after the new connection is set up. In the same way more than three existing connections can be tried with. Also all these varieties of disconnecting one, two or more can be tried individually in each rearrangement act of 150 or can be tried by using in any arbitrary mixed ways in setting up any new connection.
  • V(m,n,r) of the invention First the proof for the rearrangeably nonblocking behavior of symmetric networks V(m,n,r) of the invention is presented. Later it will be extended for asymmetric networks V(m, W 1 , r t , n 2 , r 2 ) .
  • the V(m,n,r) Clos network is operated in rearrangeably nonblocking manner for multicast connections if the following scheduling criterion is met: Every connection request is fanned out at most twice in the input switch; Alternatively every connection request is set up through at most two middle switches.
  • Z 2 ⁇ 6,7,8,9,10 ⁇
  • I 7 ⁇ 2,7,12,17,22 ⁇
  • Z 12 ⁇ 2,8,14,20,21 ⁇
  • / 4 ⁇ 16,17,18,19,20 ⁇
  • I 9 ⁇ 4,9,14,19,24 ⁇
  • Z 14 ⁇ 4,10,11,17,23 ⁇
  • / 5 ⁇ 21,22,23,24,25 ⁇
  • Z 10 ⁇ 5,10,15,20,25 ⁇
  • Z 15 ⁇ 5,6,12,18,24 ⁇
  • Z 16 ⁇ 1, 8, 15, 17, 24 ⁇
  • Z 21 ⁇ l, 9, 12, 20, 23 ⁇
  • Z 17 ⁇ 2,9,11,18, 25 ⁇
  • Z 22 ⁇ 2, 10, 13, 16, 24 ⁇
  • Z 18 ⁇ 3, 10, 12, 19, 21 ⁇
  • Z 23 ⁇ 3, 6, 14, 17, 25 ⁇
  • Table 4 shows an exemplary multicast assignment in a V(10,5,25) network. Each request has a fan-out of five. All the outlet links are connected in this multicast assignment since each output switch is used exactly five times in the requests corresponding to five outlet links of each output switch.
  • Each row in Table 5 represents an input switch and each column represents a middle switch. And each element in the table represents the list of output switches set up through the corresponding middle switch for a connection originating from the corresponding input switch.
  • the correspondence between different connections from the same row of Table 5 and hence from the same input switch can be obtained from the multicast assignment of the Table 4.
  • the five stage network comprises input stage 110 and output stage 120, with inlet links ILl- IL 12 and outlet links OLl -OL 12 respectively, where input stage 110 consist of six, two by four switches IS1-IS6, and output stage 120 consist of six, four by two switches OSl- OS6.
  • the middle stage 130 of FIG. 8A consists of four, six by six three-stage subnetworks MS1-MS4 (wherein the term "subnetwork" has the same meaning as the term "network”).
  • Each of the four middle switches MS1-MS4 are connected to each of the input switches through six first internal links (for example the links FL1-FL6 connected to the middle switch MSl from each of the input switch IS1-IS6), and connected to each of the output switches through six second internal links (for example the links SL1-SL6 connected from the middle switch MSl to each of the output switch OS1-OS6).
  • the network also includes a controller coupled with the input stage 110, output stage 120 and middle stage subnetworks 130 to form connections between an inlet link IL1-IL6 and an arbitrary number of outlet links OL1-OL6.
  • Each of middle switches MS1-MS4 is a F(4,2,3) three-stage subnetwork.
  • the three-stage subnetwork MSl comprises input stage of three, two by four switches MIS1-MIS3 with inlet links FL1-FL6, and an output stage of three, four by two switches MOS1-MOS3 with outlet links SL1-SL6.
  • the middle stage of MSl consists of four, three by three switches MMS1-MMS4.
  • Each of the middle switches MMS1-MMS4 are connected to each of the input switches MIS1-MIS3 through three first internal links (for example the links MFL1-MFL3 connected to the middle switch MMSl from each of the input switch MIS1-MIS3), and connected to each of the output switches MOSl- MOS3 through three second internal links (for example the links MSL1-MSL3 connected from the middle switch MMSl to each of the output switch MOS1-MOS3).
  • first internal links for example the links MFL1-MFL3 connected to the middle switch MMSl from each of the input switch MIS1-MIS3
  • second internal links for example the links MSL1-MSL3 connected from the middle switch MMSl to each of the output switch MOS1-MOS3
  • the network of FIG. 8 A has the property of being operable in rearrangeably nonblocking manner as described herein with no more than 2 * » middle stage three-stage networks.
  • the middle stage requires no more than 2 * n three-stage subnetworks.
  • middle stage 130 has four middle stage three-stage subnetworks MS1-MS4.
  • each of the middle stage subnetworks MS1-MS4 require no more than K 1 +k 2 middle switches MMS1-MMS4, where k ⁇ is the number of inlet links for each middle input switch MIS1-MIS3 and k 2 is the number of outlet links for each middle output switch MOS1-MOS3.
  • one or more of the switches, in any of the first, middle and last stages can be recursively replaced by a three-stage subnetwork with no more than «, + n 2 middle stage switches where n x is the number of inlet links to each first stage switch in the subnetwork and n 2 is the number of outlet links to each last stage switch of the subnetwork for rearrangeably nonblocking operation, for multicast connections of arbitrary fan-out.
  • n x is the number of inlet links to each first stage switch in the subnetwork
  • n 2 is the number of outlet links to each last stage switch of the subnetwork for rearrangeably nonblocking operation, for multicast connections of arbitrary fan-out.
  • the methods discussed so far, are applicable to k- stage networks for k>3 by recursively using the design criteria developed on any of the switches in the network.
  • the presentation of the methods in terms of three-stage networks is only for notational convenience. That is, these methods can be generalized by recursively replacing each of a subset of switches (at least 1) in the network with a smaller three-stage network, which has the same number of total inlet links and total outlet links as the switch being replaced. For instance, in a three-stage network, one or more switches in either the input, middle or output stages can be replaced with a three- stage network to expand the network. If, for example, a five-stage network is desired, then all middle switches (or all input switches or all output switches) are replaced with a three-stage network.
  • each connection in any of the recursive three-stage networks each connection can fan out in the first stage switch into at most two middle stage subnetworks, and in the middle switches and last stage switches it can fan out any arbitrary number of times as required by the connection request.
  • connection Ij fans out in the first stage switch ISl twice into middle stage subnetworks MSl and MS3.
  • middle stage subnetwork MSl it fans out four times into output switches OSl, OS2, OS3 and OS5.
  • connection I 1 fans out twice in the input switch MISl into middle switches MMSl and MMS3 of the three-stage subnetwork of MSl.
  • connection I 1 fans out twice in middle switch MMS2 into output switches MOSl and MOS3 of three- stage subnetwork of MSl .
  • connection I 1 fans out in MMS 3 once into MOS2 and from there once into OS3.
  • the connection I 4 fans out once into three stage network once where it is fanned out three times into output switches OS2, OS4, and OS6.
  • the connection I 4 fans out once in MIS4 into MMS6 where it fans out three times into output switches M0S4, MOS5, and MOS6 of the three-stage subnetwork MS2.
  • FIG. 8B shows a high-level flowchart of a scheduling method, in one embodiment executed by the controller of FIG. 8A.
  • the method of FIG. 8B is used only for networks that have three stages each of which may be in turn composed of three-stage subnetworks, in a recursive manner as described above in reference to FIG. 8A.
  • a multicast connection request is received in act 250 (FIG. 8B).
  • a connection to satisfy the request is set up in act 260 by fanning out into at most two middle stage subnetworks from its input switch.
  • the control goes to act 270.
  • Act 270 recursively goes through each subnetwork contained in the network.
  • each subnetwork found in act 270 the control goes to act 280 and each subnetwork is treated as a network and the scheduling is performed similarly. Once all the recursive subnetworks are scheduled the control transfers from act 270 to act 250 so that each multicast connection will be scheduled in the same manner in a loop. It must be noted that even tho ⁇ gh FIG. 8A does not explicitly show the rearrangement method, when the scheduling method 260 fails to set up the connection, similar to the method of FIG. 5A, the above described rearrangement method is performed for each network, before recursively scheduling each subnetwork found in act 270.
  • each multicast connection can be fanned out into at most three middle switches and the V ⁇ m,n,r) network can be operated in rearrangeably nonblocking manner.
  • the V(m, Jt 1 ⁇ 1 , n z ,r 2 ) network is operated in rearrangeably nonblocking manner if each multicast connection is fanned out into atf most three middle switches.
  • FIG. 9 A shows the scheduling method by fanning out into at most three middle switches. Excepting for the additional act 142D of testing for three middle switches and setting up a connection through three middle switches in act 142C, the description of the method of FIG. 9B is similar to the method of FIG. 5A.
  • the just-described method of FIG. 9B can be used in conjunction with the method of FIG. 5 A, e.g. to use a fan-out of at most two in setting up some connections and fan- out of at most three in setting up other connections.
  • FIG. 1OA is similar to FIG. 2 A.
  • FIG. 1OB shows the scheduling method by fanning out into at most x middle switches. Excepting for the additional act 142X of testing for x middle switches and setting up a connection through x middle switches in act 142C, the description of the method of FIG. 1OB is similar to the method of FIG. 5A.
  • V(m,n x , r x , n 2 ,r 2 ) network is operated in rearrangeably nonblocking manner as described herein, when multicast connections are set up such that connections from a t inlet links of each input switch pass through at most X 1 middles switches, for 1 ⁇ i ⁇ p .
  • FIG. IB and any additional connections are dropped. Specifically, when — connections
  • V(m, n x , r x , n 2 , r 2 ) network embodiments described so far, in the current invention are implemented in space-space-space, also known as SSS, configuration.
  • SSS space-space-space
  • all the input switches, output switches and middle switches are implemented as separate switches, for example in one embodiment as crossbar switches.
  • the three-stage networks V(It ⁇ n 1 , ⁇ n 2 S 2 ) can also be implemented in a time-space- time, also known as TST, configuration.
  • TST configuration in the first stage and the last stage all the input switches and all the output switches are implemented as separate switches.
  • the middle stage uses number of switches where m ⁇ n +ru , with each middle switch having r, ) first internal links connected to all input switches and also having r 2 second internal links connected to all output switches.
  • the TST configuration implements the switching mechanism, in accordance with the current invention, in MIN(H 1 , n 2 ) steps in a circular fashion. So in TST configuration, the middle stage physically implements only middle switches; and they are shared in time in, MTN(W 15 W 2 ) steps, to
  • MCV(W 15 K 2 ) switch packets or timeslots from input ports to the output ports.
  • each communication link is time-division multiplexed - as an example an OC-12 SONET link consists of 336 VTl .5 channels time-division multiplexed.
  • a switch fabric in packet based switching system such as IP, each communication link is statistically time division multiplexed.
  • a crossconnect, using a Vim ⁇ r ⁇ n ⁇ r ⁇ ) network, to switch would implement a TST configuration, so that switching is also performed in time division multiplexed fashion just the same way communication in the links is performed in time division multiplexed fashion.
  • the multicast assignment is setup by fanning out each connection not more than twice in the first stage.
  • the connection I 1 fans out in the first stage switch ISl into the middle stage switch MSl, and fans out in middle switch MSl into output switch OSl.
  • the connection / also fans out in the last stage switch OSl into the outlet links OL2 and OL3.
  • connection I 2 fans out in the first stage switch ISl into the middle stage switches MS3 and MS4.
  • the connection I 2 also fans out in the last stage switches OSl, OS3, and OS4 into the outlet links OLl, OL7 and OL12 respectively.
  • the connection I 2 fans out in the middle switch MS4 once into output switch 0S2.
  • connection I 6 fans out once in the input switch IS2 into middle switch MS2 and fans out in the middle stage switch MS2 into the last stage switch OS3.
  • the connection I 6 fans out once in the output switch OS3 into outlet link OL9.
  • the connection I 12 fans out once in the input switch IS4 into middle switch MS5, fans out in the middle switch MS5 twice into output switches OS3 and OS4.
  • the connection J 12 fans out in the output switch OS3 and OS4 into outlet links OL8 and OLl 1 respectively.
  • FIG. 1 IB, FIG. 11C and FIG. 1 ID illustrate the implementation of the TST configuration of the F(6,3,4) network of FIG. 1 IA.
  • the middle stage in the TST configuration implements only 2 middle switches n each with 4 first internal links and 4 second internal links as shown in FIG. 1 IB, FIG. 11C, and FIG. 1 ID.
  • the two middle switches act as MSl and MS2 of the network of FIG. 1 IA.
  • the two middle switches act as MS3 and MS4 of the network of FIG. 1 IA and in the third time step, as shown in FIG. 1 ID the two middle switches act as MS5 and MS6 of the network of FIG. 1 IA.
  • FIG. 1 IB implements the switching functionality of middle switches MSl and MS2, and since in the network of FIG. HA, connections I 1 and I 6 are fanned out through middle switches MSl and MS2 to the output switches OSl and OS3 respectively, and so connections I 1 and I 6 are fanned out to destination outlet links
  • FIG. 11C implements the switching functionality of middle switches MS3 and MS4, and since in the network of FIG. 1 IA, connection I 2 is fanned out through middle switches MS3 and MS4 to the output switches ⁇ OS1, OS3, OS4 ⁇ and OS2 respectively, and so connection I 2 is fanned out to destination outlet links ⁇ OL1, OL7, OL12 ⁇ and ⁇ OL4, OL5, OL6 ⁇ respectively, just exactly the same way they are routed in the network of FIG. 1 IA in all the three stages.
  • FIG. 1 ID implements the switching functionality of middle switches MS5 and MS6, and since in the network of FIG. 1 IA, connections Z 11 and I n are fanned out through middle switches MS5 and MS6 to the output switches OS4 and ⁇ OS3, OS4 ⁇ respectively, and so connections I n and Z 12 are fanned out to destination outlet links OLIO and ⁇ OL8, OLl 1 ⁇ respectively, just exactly the same way they are routed in the network of FIG. 1 IA hi all the three stages.
  • the switching network such as the V(m, H 1 , r x , n 2 , r 2 ) network implemented hi TST configuration will save cost, power and space compared to a space-space-space configuration.
  • the F(Tw 5 K 1 , ⁇ , n 2 ,r 2 ) network implemented in TST configuration using the same scheduling method as in SSS configuration i.e., with each connection fanning out in the first stage switch into only one middle stage switch, and hi the middle switches and last stage switches it fans out any arbitrary number of times as required by the connection request, is operable in rearrangeably nonblocking manner with number of middle switches is equal to , where m ⁇ ri +n, .
  • one or more new connections that are in the process of being set up are dropped (disconnected permanently) if it takes longer than a predetermined amount of time to compute the rearrangement of the existing connections as described in reference to act 150 of the rearrangeable scheduling method 140 of FIG. 5 A.
  • one of the existing connections is dropped to set up the new connection so that the computation time to setup the new connection by rearrangement of the existing connections is reduced.
  • a method of the type described above is modified as follows when the number of output switches r 2 is less than or equal to four. Specifically, a three-stage network is operated ⁇ n strictly nonblocking manner when the multicast conneqtion is fanned out only once in the input stage, with m number of middle stage switches where
  • a method of the type described above is modified to set up a multirate multi-stage network as follows.
  • a multirate connection can be specified as a type of multicast connection.
  • an inlet link transmits to multiple outlet links
  • multiple inlet links transmit to a single outlet link when the rate of data transfer of all the paths in use meet the requirements of multirate connection request.
  • a multirate connection can be set up (in a method that works backwards from the output stage to the input stage), with fan-in (instead of fan-out) of not more than two in th.e output stage and arbitrary fan-ins in the input stages and middle stages.
  • a three-stage multirate network is operated in rearrangeably nonblocking manner with the exact same requirements on the number of middle stage switches as described above for certain embodiments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

La présente invention a trait à un réseau de multidiffusion apte à un réagencement de non blocage comportant un étage d'entrée (110) comprenant r1 commutateurs (IS) et n1 liens d'entrée (IL) pour chacun des r1 commutateurs, un étage de sortie (120) comprenant r2 commutateurs (OS) et n2 liens de sortie (OL) pour chacun des r2 commutateurs. Le réseau comporte également un étage intermédiaire (130) de m commutateurs (MS), et chaque commutateur intermédiaire comprend au moins un lien connecté à chaque commutateur d'entrée pour un total d'au moins r1 premiers liens internes et au moins un lien connecté à chaque commutateur de sortie pour un total d'au moins r2 deuxièmes liens internes, où m = n1 + n2. Toutes les connexions multidiffusion du réseau sont établies de sorte que chaque connexion multidiffusion traverse un maximum de deux commutateurs à être connectés aux liens de sortie de destination.
EP03755793A 2003-09-06 2003-09-06 Reseaux multietage de multidiffusion apte a un reagencement de non blocage Withdrawn EP1668924A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/027971 WO2006033650A1 (fr) 2003-09-06 2003-09-06 Reseaux multietage de multidiffusion apte a un reagencement de non blocage

Publications (1)

Publication Number Publication Date
EP1668924A1 true EP1668924A1 (fr) 2006-06-14

Family

ID=36090319

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03755793A Withdrawn EP1668924A1 (fr) 2003-09-06 2003-09-06 Reseaux multietage de multidiffusion apte a un reagencement de non blocage

Country Status (4)

Country Link
EP (1) EP1668924A1 (fr)
CA (1) CA2548540A1 (fr)
IL (1) IL174140A0 (fr)
WO (1) WO2006033650A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9106564B2 (en) * 2011-03-31 2015-08-11 Amazon Technologies, Inc. Incremental high radix network scaling
US9817933B2 (en) 2013-03-15 2017-11-14 The Regents Of The University Of California Systems and methods for switching using hierarchical networks

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023864A (en) * 1989-05-08 1991-06-11 At&T Bell Laboratories Crossover network utilizing two-dimensional arrays of nodes
US5276425A (en) * 1991-11-19 1994-01-04 At&T Bell Laboratories Method for broadcasting in Clos switching networks by limiting the number of point-to-multipoint connections
US5801641A (en) * 1993-10-19 1998-09-01 The Johns Hopkins University Controller for a non-blocking broadcast network
US5544160A (en) * 1994-12-30 1996-08-06 At&T Corp. Terabit per second packet switch

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2006033650A1 *

Also Published As

Publication number Publication date
WO2006033650A1 (fr) 2006-03-30
IL174140A0 (en) 2008-02-09
CA2548540A1 (fr) 2006-03-30

Similar Documents

Publication Publication Date Title
US20060165085A1 (en) Rearrangeably nonblocking multicast multi-stage networks
US6868084B2 (en) Strictly nonblocking multicast multi-stage networks
US7424011B2 (en) Rearrangeably nonblocking multicast multi-stage networks
US20060159078A1 (en) Strictly nonblocking multicast linear-time multi-stage networks
Marcus The theory of connecting networks and their complexity: A review
US7424010B2 (en) Strictly nonblocking multicast multi-split linear-time multi-stage networks
US20050063410A1 (en) Strictly nonblocking multicast linear-time multi-stage networks
US7154887B2 (en) Non-blocking grooming switch
US7106729B1 (en) Switching control mechanism based upon the logical partitioning of a switch element
Chen et al. Multicast routing in self-routing multistage networks
US7187672B1 (en) Connection rearrangement in communication switches
US6914902B2 (en) Distributed semi-rearrangeable non-blocking algorithm for clos networks
Kabaciński et al. Rearrangeability of wavelength-space-wavelength switching fabric architecture for elastic optical switches
WO2006033650A1 (fr) Reseaux multietage de multidiffusion apte a un reagencement de non blocage
EP1180286B1 (fr) Interconnexions de reseaux
WO2006033651A1 (fr) Réseaux multiétage de multidiffusion de non blocage strict
WO2005027390A2 (fr) Reseaux multi-etages, multidestination, multifractionnes, a temps lineaire, strictement non bloquants
Kim et al. Multirate multicast switching networks
Wan et al. Nonblocking multicast Clos networks
Tsai et al. Lower bounds for wide-sense non-blocking Clos network
Pattavina et al. Multicast nonblocking switching networks
Decina et al. Blocking performance of a three-stage multicasting network
Kabaciński Two Stage Swithching Fabrics

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060406

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

RBV Designated contracting states (corrected)

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20070403