Multiple channel ATM switch
AssigneeIndustrial Technology Research Insitute
InventorsMuh-Rong Yang, Gin-Kou Ma
Life of this patent
Estimating the term…
Abstract
A system and method are provided for routing received cells through a switch fabric. A plurality of output channels are organized into a plurality of channel groups, wherein each of the channels groups is associated with one or more unique output ports of a Benes network. A plurality of cells destined to one or more of the plurality of channel groups is received at plural input queues. A different output port of the Benes network is selected for one or more of the input queues that contains a cell. Then, one cell is switched from each of one or more input queues through the Benes network to the respective selected output port.
Claims23
A method for routing received cells through a switch fabric comprising:
- (a) organizing a plurality of output channels into a plurality of channel groups, wherein each of said channels groups is associated with one or more unique output ports of a Benes network,
- (b) receiving at a plurality of input queues, a plurality of cells destined to one or more of said plurality of channel groups,
- (c) each switch cycle, assigning a different output port of said Benes network to each head cell at a head of one of said input queues that contains a cell, wherein said output ports are uniquely assigned during a switch cycle so that only one of said head cells is assigned any particular output port, at least one of the assigned output ports being associated with a channel group destination of said head cell to which it is assigned.
- prior to generating routing tags and switching cells during one of said switch cycles, using an identifier uniquely and preliminarily assigned to each of said output ports, generating a routing tag for each of said head cells based on said identifier associated with said assigned output port, wherein said identifiers are preliminarily assigned to said output ports in a unique fashion so that each output port is assigned a unique identifier, the unique assignment of output ports to said head cells during one of said switch cycles before assigning routing tags and switching said head cells thereby avoiding output port contention within said Benes network prior to switching said head cells through said Benes network, and
- (d) using each of said generated routing tags, switching said head cells through said Benes network to the respective assigned output port during said switch cycle.
A multiple channel cell switch fabric comprising:
- a plurality of output channels organized into a plurality of channel groups, wherein each of said channels groups is associated with one or more unique output ports of a Benes network,
- a plurality of input port controllers comprising queues for receiving a plurality of cells destined to one or more of said plurality of channel groups, said input port controllers for, each switch cycle, assigning a different output port of a Benes network to each head cell at the head of each of said input queues that contains a cell, wherein said output ports are uniquely assigned during a switch cycle so that only one of said head cells is assigned any particular output port, at least one of the assigned output ports being associated with a channel group destination of said head cell to which it is assigned, said input port controllers also for, prior to generating routing tags and switching cells during one of said switch cycles, using an identifier uniquely and preliminarily assigned to each of said output ports, generating a routing tag for each of said head cells based on said identifier associated with the assigned output port, wherein said identifiers are preliminarily assigned to said output ports in a unique fashion so that each output port is assigned a unique identifier, the unique assignment of output ports for said head cells during one of said switch cycles before assigning routing tags and switching said head cells thereby avoiding output port contention within said Benes network prior to switching said head cells through said Benes network, and
- a Benes network comprising a plurality of .beta. elements for, using said routing tags, switching said head cells each of said one or more input queues through said Benes network to the respective assigned output port during said switch cycle.
A method for routing received cells through a switch fabric comprising:
- (a) organizing a plurality of output channels into a plurality of channel groups, wherein each of said channels groups is associated with one or more unique output ports of a Benes network,
- (b) receiving at a plurality of input queues, a plurality of cells destined to one or more of said plurality of channel groups,
- (c) selecting a different output port of said Benes network for one or more of said input queues that contains a cell, and
- (d) switching one cell from each of said one or more input queues through said Benes network to said respective selected output port, wherein said Benes network comprises an input stage and an output stage, said input and output stages each comprising a column of 2.times.2 .beta. elements which each comprise an upper input, a lower input, an upper output and a lower output, said step (d) comprising the steps of routing each signal, inputted to a particular Benes subnetwork of said Benes network, through a respective input stage .beta. element of said particular Benes subnetwork as follows:
- (d1) routing a signal q.sub.0 received at an upper input of a topmost input stage .beta. element to an upper output of said topmost input stage .beta. element and routing a signal q.sub.k, received at the same output stage .beta. element as said signal q.sub.0, to a lower output of an input stage .beta. element that receives said signal q.sub.k,
- (d2) routing a signal q.sub.1 received at a lower input of said topmost input stage .beta. element to a lower output of said topmost input stage .beta. element, and routing a signal q.sub.k', received at the same output stage .beta. element as said signal q.sub.1, to an upper output of an input stage .beta. element that receives said signal q.sub.k', and
- (d3) for at least one signal q.sub.p not routed in steps (a)-(b), choosing to route said signal q.sub.p to either the upper output or the lower output of an input stage .beta. element that receives said signal q.sub.p and routing a signal q.sub.k", received at the same output stage .beta. element as said signal q.sub.p, to an opposite output, of an input stage .beta. element that receives said signal q.sub.k", as said output chosen for said signal q.sub.p.
A multiple channel cell switch fabric comprising:
- a plurality of output channels organized into a plurality of channel groups, wherein each of said channels groups is associated with one or more unique output ports of a Benes network,
- a plurality of input queues for receiving a plurality of cells destined to one or more of said plurality of channel groups, and for selecting a different output port of a Benes network for one or more cells at the head of each of said input queues that contains a cell, and
- a Benes network comprising a plurality of .beta. elements for switching one cell from each of said one or more input queues through said Benes network to the respective selected output port,
- said Benes network comprising an input stage and an output stage, said input and output stages each comprising a column of 2.times.2 .beta. elements which each comprise an upper input, a lower input, an upper output and a lower output, said Benes network routing each signal, inputted to a particular Benes subnetwork of said Benes network, through a respective input stage .beta. element of said particular Benes subnetwork by:
- routing a signal q.sub.o received at an upper input of a topmost input stage .beta. element to an upper output of said topmost input stage .beta. element and routing a signal q.sub.k, received at the same output stage .beta. element as said signal q.sub.0, to a lower output of an input stage .beta. element that receives said signal q.sub.k,
- routing a signal q.sub.1 received at a lower input of said topmost input stage .beta. element to a lower output of said topmost input stage .beta. element, and routing a signal q.sub.k', received at the same output stage .beta. element as said signal q.sub.1, to an upper output of an input stage .beta. element that receives said signal q.sub.k', and
- for at least one signal q.sub.p not routed by said topmost input stage .beta. element, choosing to route said signal q.sub.p to either the upper output or the lower output of an input stage .beta. element that receives said signal q.sub.p and routing a signal q.sub.k", received at the same output stage .beta. element as said signal q.sub.p to an opposite output, of an input stage .beta. element that receives said signal q.sub.k", as said output chosen for said signal q.sub.p.
Dependencies are inferred from the claim text.