Patent US5377182A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5377182A Expired / Lapsed US ⏱️ 0.0 years remaining

Non-blocking crossbar permutation engine with constant routing latency

Assignee: National Aeronautics and Space Administration
•
Filing: 1993-08-18
•
Granted: 1994-12-27
•
Expires: 2013-08-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention is embodied in an N×N crossbar for routing packets from a set of N input ports to a set of N output ports, each packet having a header identifying one of the output ports as its destination, including a plurality of individual links which carry individual packets, each link having a link input end and a link output end, a plurality of switches, each of the switches having at least top and bottom switch inputs connected to a corresponding pair of the link output ends and top and bottom switch outputs connected to a corresponding pair of link input ends, whereby each switch is connected to four different links, each of the switches having an exchange state which routes packets from the top and bottom switch inputs to the bottom and top switch outputs, respectively, and a bypass state which routes packets from the top and bottom switch inputs to the top and bottom switch outputs, respectively, a plurality of individual controller devices governing respective ones of the switches for sensing from a header of a packet at each switch input the identity of the destination output port of the packet and selecting one of the exchange and bypass states in accordance with the identity of the destination output port and in accordance with the location of the corresponding switch relative to the destination output port.

Inventors

  • 👤 Steve P. Monacos

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 11:46
CPC Classifications
H; H04; H04Q; H04Q11/00; H04Q11/0001; H04Q11/0005; H04L; H04L49/00; H04L49/35; H04L49/356; H04L49/357; H04L49/10; H04L49/101; H04L49/25; H04L49/253; H04L49/254; H04L49/40; H04Q11/0062; H04Q11/0066; H04Q2011/0007; H04Q2011/0011; H04Q2011/0015; H04Q2011/002; H04Q2011/0024; H04Q2011/0052

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 250 words
An N×N crossbar for routing packets from a set of N input ports to a set of N output ports, each packet having a header identifying one of said output ports as its destination, comprising: a plurality of individual links which carry individual packets, each link having a link input end and a link output end; a plurality of switches, each of said switches having at least top and bottom switch inputs connected to a corresponding pair of said link output ends and top and bottom switch outputs connected to a corresponding pair of link input ends, wherein each switch is connected to four different links and wherein different outputs of each one of at least some of said switches are connected through respective links to inputs of different switches, each of said switches having an exchange state which routes packets from said top and bottom switch inputs to said bottom and top switch outputs, respectively, and a bypass state which routes packets from said top and bottom switch inputs to said top and bottom switch outputs, respectively; and a plurality of individual controller means governing respective ones of said switches for sensing from a header of a packet at each switch input the identity of the destination output port of the packet and selecting one of said exchange and bypass states as a function of the identity of said destination output port and as a function of the location of the corresponding switch relative to said destination output port.
Claim 2
Dependent Claim 250 words
An N×N crossbar for routing packets from a set of N input ports to a set of N output ports, each packet having a header identifying one of said output ports as its destination, comprising: a plurality of individual links which carry individual packets, each link having a link input end and a link output end; a plurality of switches, each of said switches having at least top and bottom switch inputs connected to a corresponding pair of said link output ends and top and bottom switch outputs connected to a corresponding pair of link input ends, wherein each switch is connected to four different links and wherein different outputs of each one of at least some of said switches are connected through respective links to inputs of different switches, each of said switches having an exchange state which routes packets from said top and bottom switch inputs to said bottom and top switch outputs, respectively, and a bypass state which routes packets from said top and bottom switch inputs to said top and bottom switch outputs, respectively; and a plurality of individual controller means governing respective ones of said switches for sensing from a header of a packet at each switch input the identity of the destination output port of the packet and selecting one of said exchange and bypass states as a function of the identity of said destination output port and as a function of the location of the corresponding switch relative to said destination output port.
Claim 3
Dependent Claim 31 words
The crossbar of claim 1 wherein said plurality of individual links are connected between nearest neighbors of said switches, and wherein none of said links overlaps any others of said links.
Claim 4
Dependent Claim 41 words
The crossbar of claim 1 wherein said controller means comprises means for selecting an exchange state whenever the packets at the switch inputs would not be precluded from reaching their destination output ports by setting the switch to said exchange state.
Claim 5
Dependent Claim 51 words
The crossbar of claim 3 wherein said N input ports are those of said link input ends not connected to switches and constituting one end of said crossbar and said N output ports are those of said link output ends not connected to switches and constituting another end of said crossbar.
Claim 6
Dependent Claim 166 words
The crossbar of claim 4 wherein said controller means comprises: means for associating said output ports with a set of consecutive numbers; means for associating each of said links with the number of the output port in the direct path thereof as a link label; means for determining a first value equal to the absolute value of the difference between the link label corresponding to the top switch output and the number of the destination output port of a particular packet at an input port of the switch, and a second value equal to the absolute value of the difference between the link label corresponding to the bottom switch output and said number of said destination output port of said particular packet; first routing means for routing said particular packet to said top switch output if said first value is less than said second value and for routing said particular packet to said bottom switch output if said second value is less than said first value.
Claim 7
Dependent Claim 77 words
The crossbar of claim 5 wherein said controller means further comprises: second routing means for forbidding a switch bypass state if the packet is at the bottom switch input and said destination number is greater than the link label corresponding to the bottom switch output and for forbidding a switch bypass state if the packet is at the top switch input and said destination number is less than the link label corresponding to the top switch input.
Claim 8
Dependent Claim 47 words
The crossbar of claim 6 wherein said means for selecting further comprises means for forbidding the exchange state of said switch if packets at said top and bottom switch inputs cause said first and second routing means to select the same switch output for both packets contemporaneously.
Claim 9
Dependent Claim 77 words
The crossbar of claim 7 wherein said controller means comprises means for comparing said destination output port number of a packet at each of said top and bottom switch inputs with a predetermined set of numbers prescribed for the particular switch and for generating an up signal upon a match and a down signal otherwise for each of said packets and means for selecting said exchange state unless there are two up signals or two down signals.
Claim 10
Dependent Claim 34 words
The crossbar of claim 8 further comprising means for holding each of said switches in one of said exchange and bypass states selected by the controller means thereof while a packet traverses said crossbar.
Claim 11
Dependent Claim 27 words
The crossbar of claim 1 wherein said links are characterized by a delay along the lengths thereof and wherein said switches are characterized by a delay therethrough.
Claim 12
Dependent Claim 53 words
The crossbar of claim 10 wherein said plurality of links form a planar mesh having top and bottom edges, said crossbar further comprising delay elements each having the same delay as said switches, each delay element connecting a link input end to a link output end at a corresponding edge of said mesh.
Claim 13
Dependent Claim 32 words
The crossbar of claim 11 wherein each of said links lies along a diagonal path and wherein said switches and said delay elements lie at points of intersection of different diagonal paths.
Claim 14
Dependent Claim 16 words
The crossbar of claim 1 wherein said plurality of links correspond to a cylindrical wrap-around topology.
Claim 15
Dependent Claim 294 words
A non-blocking crossbar, comprising at least a pair of cascaded permutation engines, each of said permutation engines comprising an N×N crossbar for routing packets from a set of N input ports to a set of N output ports, each packet having a header identifying one of said output ports as its destination, comprising: a plurality of individual links which carry individual packets, each link having a link input end and a link output end; a plurality of switches, each of said switches having at least top and bottom switch inputs connected to a corresponding pair of said link output ends and top and bottom switch outputs connected to a corresponding pair of link input ends, wherein each switch is connected to four different links and wherein different outputs of each one of at least some of said switches are connected through respective links to inputs of different switches, each of said switches having an exchange state which routes packets from said top and bottom switch inputs to said bottom and top switch outputs, respectively, and a bypass state which routes packets from said top and bottom switch inputs to said top and bottom switch outputs, respectively; and a plurality of individual controller means governing respective ones of said switches for sensing from a header of a packet at each switch input the identity of the destination output port of the packet and selecting one of said exchange and bypass states as a function of the identity of said destination output port and as a function of the location of the corresponding switch relative to said destination output port, wherein the output ports of one of said permutation engines is connected to respective ones of the input ports of the other of said permutation engines.
Claim 16
Dependent Claim 294 words
A non-blocking crossbar, comprising at least a pair of cascaded permutation engines, each of said permutation engines comprising an N×N crossbar for routing packets from a set of N input ports to a set of N output ports, each packet having a header identifying one of said output ports as its destination, comprising: a plurality of individual links which carry individual packets, each link having a link input end and a link output end; a plurality of switches, each of said switches having at least top and bottom switch inputs connected to a corresponding pair of said link output ends and top and bottom switch outputs connected to a corresponding pair of link input ends, wherein each switch is connected to four different links and wherein different outputs of each one of at least some of said switches are connected through respective links to inputs of different switches, each of said switches having an exchange state which routes packets from said top and bottom switch inputs to said bottom and top switch outputs, respectively, and a bypass state which routes packets from said top and bottom switch inputs to said top and bottom switch outputs, respectively; and a plurality of individual controller means governing respective ones of said switches for sensing from a header of a packet at each switch input the identity of the destination output port of the packet and selecting one of said exchange and bypass states as a function of the identity of said destination output port and as a function of the location of the corresponding switch relative to said destination output port, wherein the output ports of one of said permutation engines is connected to respective ones of the input ports of the other of said permutation engines.
Claim 17
Dependent Claim 32 words
The non-blocking crossbar of claim 14 wherein said plurality of individual links are connected between nearest neighbors of said switches, and wherein none of said links overlaps any others of said links.
Claim 18
Dependent Claim 42 words
The non-blocking crossbar of claim 14 wherein said controller means comprises means for selecting an exchange state whenever the packets at the switch inputs would not be precluded from reaching their destination output ports by setting the switch to said exchange state.
Claim 19
Dependent Claim 52 words
The non-blocking crossbar of claim 16 wherein said N input ports are those of said link input ends not connected to switches and constituting one end of said crossbar and said N output ports are those of said link output ends not connected to switches and constituting another end of said crossbar.
Claim 20
Dependent Claim 167 words
The non-blocking crossbar of claim 17 wherein said controller means comprises: means for associating said output ports with a set of consecutive numbers; means for associating each of said links with the number of the output port in the direct path thereof as a link label; means for determining a first value equal to the absolute value of the difference between the link label corresponding to the top switch output and the number of the destination output port of a particular packet at an input port of the switch, and a second value equal to the absolute value of the difference between the link label corresponding to the bottom switch output and said number of said destination output port of said particular packet; first routing means for routing said particular packet to said top switch output if said first value is less than said second value and for routing said particular packet to said bottom switch output if said second value is less than said first value.
Claim 21
Dependent Claim 47 words
The non-blocking crossbar of claim 18 wherein one of said permutation engines is inverted with respect to the other wherein said top and bottom switch inputs of one are reversed relative to the other and the numbering of said output ports is reversed relative to the other.
Claim 22
Dependent Claim 78 words
The non-blocking crossbar of claim 18 wherein said controller means further comprises: second routing means for forbidding a switch bypass state if the packet is at the bottom switch input and said destination number is greater than the link label corresponding to the bottom switch output and for forbidding a switch bypass state if the packet is at the top switch input and said destination number is less than the link label corresponding to the top switch input.
Claim 23
Dependent Claim 47 words
The non-blocking crossbar of claim 20 wherein said controller means further comprises means for forbidding the exchange state of said switch if packets at said top and bottom switch inputs cause said first and second routing means to select the same switch output for both packets contemporaneously.
Claim 24
Dependent Claim 78 words
The non-blocking crossbar of claim 21 wherein said controller means comprises means for comparing said destination output port number of a packet at each of said top and bottom switch inputs with a predetermined set of numbers prescribed for the particular switch and for generating an up signal upon a match and a down signal otherwise for each of said packets and means for selecting said exchange state unless there are two up signals or two down signals.
Claim 25
Dependent Claim 34 words
The crossbar of claim 22 further comprising means for holding each of said switches in one of said exchange and bypass states selected by the controller means thereof while a packet traverses said crossbar.
Claim 26
Dependent Claim 30 words
The non-blocking crossbar of claim 14 wherein said links are characterized by a uniform delay along the lengths thereof and wherein said switches are characterized by a uniform delay therethrough.
Claim 27
Dependent Claim 54 words
The non-blocking crossbar of claim 24 wherein said plurality of links form a planar mesh having top and bottom edges, said crossbar further comprising delay elements each having the same delay as said switches, each delay element connecting a link input end to a link output end at a corresponding edge of said mesh.
Claim 28
Dependent Claim 33 words
The non-blocking crossbar of claim 25 wherein each of said links lies along a diagonal path and wherein said switches and said delay elements lie at points of intersection of different diagonal paths.
Claim 29
Dependent Claim 13 words
The non-blocking crossbar of claim 14 wherein said links form a wrap-around topology.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-12-26 1998-06-27 1998-12-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-12-26 2002-06-27 2002-12-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-12-26 2006-06-27 2006-12-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag