← Back to Patent Explorer
US5386413A Expired / Lapsed US ⏱️ 0.0 years remaining

Fast multilevel hierarchical routing table lookup using content addressable memory

Assignee: National Starch and Chemical Investment Holding Corp
•
Filing: 1993-03-19
•
Granted: 1995-01-31
•
Expires: 2013-03-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A switch memory 100 for implementing a multilevel hierarchical routing table in a switch is disclosed. The switch memory 100 includes a plurality of mask circuits 120, 121 and 122, which each correspond to one level of the multilevel hierarchy. Each mask circuit 120, 121 and 122 receives a destination address of an incoming call or packet and masks out portions of the received destination address which do not correspond to the level of the hierarchy with which the mask circuit 120, 121 or 122 is associated. A memory array 130, 131 or 132 corresponding to each mask circuit 120, 121 or 122, is provided which is capable of storing a table of entries including an output port entry and a corresponding destination address of one level of the multilevel hierarchy of destination addresses. Additionally, each memory array 130, 131 or 132 is capable of comparing, in parallel, non-masked portions of the masked destination address outputted from the corresponding mask circuit 120, 121 or 122 with corresponding portions of each destination address of each table entry stored therein. Finally, the switch memory 100 includes a prioritizer 150 for enabling the output of an output port entry of a matched table entry from the memory array 130, 131 or 132, storing destination addresses of the lowest level in the hierarchy, in which a match occurred.

Inventors

  • 👤 Anthony J. McAuley
  • 👤 Paul F. Tsuchiya
  • 👤 Daniel V. Wilson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 06:28
CPC Classifications
H; H04; H04L; H04L45/00; H04L45/02; H04L45/04; H04Q; H04Q3/00; H04Q3/0016

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 218 words
A memory for use in a switch in a communications network for implementing a multilevel hierarchical routing table comprising: an input for receiving a destination address of a call or packet, an output for outputting an output port entry indicating a particular output port of said switch for said call or packet, a plurality of content addressable memories, each content addressable memory associated with one level of said multilevel hierarchical routing table and comprising: a mask circuit for producing a masked destination address by masking out portions of said destination address of said call or packet received at said input which do not correspond to said one level of said routing table, and a memory array for storing routing table entries comprising destination addresses and corresponding output port entries for said one level of said multiple hierarchical routing table and for outputting, when each non-masked portion of said masked destination address matches corresponding portions of a destination address of a routing table entry stored in said memory array, an output port entry contained in the matched routing table entry, and a prioritizer for prioritizing said content addressable memories by selecting, for output from said output, the output port entry outputted from the content addressable memory associated with the lowest level in said hierarchy, in which a match occurred.
Claim 2
Dependent Claim 218 words
A memory for use in a switch in a communications network for implementing a multilevel hierarchical routing table comprising: an input for receiving a destination address of a call or packet, an output for outputting an output port entry indicating a particular output port of said switch for said call or packet, a plurality of content addressable memories, each content addressable memory associated with one level of said multilevel hierarchical routing table and comprising: a mask circuit for producing a masked destination address by masking out portions of said destination address of said call or packet received at said input which do not correspond to said one level of said routing table, and a memory array for storing routing table entries comprising destination addresses and corresponding output port entries for said one level of said multiple hierarchical routing table and for outputting, when each non-masked portion of said masked destination address matches corresponding portions of a destination address of a routing table entry stored in said memory array, an output port entry contained in the matched routing table entry, and a prioritizer for prioritizing said content addressable memories by selecting, for output from said output, the output port entry outputted from the content addressable memory associated with the lowest level in said hierarchy, in which a match occurred.
Claim 3
Dependent Claim 40 words
The memory of claim 1, wherein each memory array is capable of comparing, in parallel, said non-masked portions of said masked destination address to corresponding portions of each destination address of each routing table entry stored in said memory array.
Claim 4
Dependent Claim 27 words
The memory of claim 1 wherein said portions masked by said mask circuits correspond to wild card digits of said destination addresses stored in said memory array.
Claim 5
Dependent Claim 89 words
The memory of claim 1, wherein each content addressable memory outputs a signal to said prioritizer indicating that a match occurred therein, when said non-masked portions of said masked destination address match corresponding portions of a destination address of a routing table entry stored in said memory array, and wherein said prioritizer, in response to said signals outputted by the addressable memories, selects the output port entry outputted from the content addressable memory associated with the lowest level in the multilevel hierarchy which outputted a signal to said prioritizer.
Claim 6
Dependent Claim 71 words
The memory of claim 1 further comprising a plurality of output enable circuits, including one output enable circuit corresponding to each content addressable memory, for receiving an output port entry from said memory array of said corresponding content addressable memory and an output enable control signal from said prioritizer, and for outputting said output port entry from said output in response to said output enable signal received from said prioritizer circuit.
Claim 7
Independent Claim 180 words
A method for routing a call or packet received in a switch in a communications network comprising the steps of: in each of a plurality of mask circuits, each of said plurality of mask circuits corresponding to one level of a multilevel hierarchical routing table, masking out portions of a destination address of said call or packet, which portions depend on said one level of the hierarchy to which a mask circuit corresponds, from each of a plurality of memory arrays, with each memory array being associated with one of said mask circuits and storing routing table entries of said corresponding one level in the hierarchy comprising destination addresses and corresponding output port entries, outputting an output port entry of a routing table entry which comprises a destination address having portions which match each corresponding non-masked portion of the masked destination address, and routing said call or packet onto an output port indicated by an output port entry outputted from the memory array, corresponding to the lowest level in the hierarchy, of said memory arrays which output output port entries.
Claim 8
Independent Claim 180 words
A method for routing a call or packet received in a switch in a communications network comprising the steps of: in each of a plurality of mask circuits, each of said plurality of mask circuits corresponding to one level of a multilevel hierarchical routing table, masking out portions of a destination address of said call or packet, which portions depend on said one level of the hierarchy to which a mask circuit corresponds, from each of a plurality of memory arrays, with each memory array being associated with one of said mask circuits and storing routing table entries of said corresponding one level in the hierarchy comprising destination addresses and corresponding output port entries, outputting an output port entry of a routing table entry which comprises a destination address having portions which match each corresponding non-masked portion of the masked destination address, and routing said call or packet onto an output port indicated by an output port entry outputted from the memory array, corresponding to the lowest level in the hierarchy, of said memory arrays which output output port entries.
Claim 9
Dependent Claim 43 words
The method of claim 6 further comprising the step of comparing in each memory array, in parallel, each non-masked portion of the masked destination address with a corresponding portion of each destination address of each routing table entry stored in said memory array.
Claim 10
Dependent Claim 84 words
The method of claim 6 further comprising the steps of: from each memory array, if said non-masked portions of the masked destination address match corresponding portions of a destination address of a routing table entry stored in said memory array, outputting an indication signal and said output port entry of the matched routing table entry, and of said memory arrays which output an indication signal, selecting only the output port entry outputted from the memory array corresponding to the lowest level in the hierarchy.
Claim 11
Dependent Claim 26 words
The method of claim 6 wherein each routing table entry stored in each memory array comprises an additional address for addressing a further bloc of data.
Claim 12
Dependent Claim 115 words
A memory for use in a central office switch for implementing a multilevel hierarchical routing table comprising a plurality of content addressable memory means, each associated with one level of said multilevel hierarchical routing table and each comprising mask circuit means for masking out portions of a destination address of a call or packet which do not correspond to said one level of said routing table, and memory array means for storing routing table entries comprising destination addresses and corresponding output port entries for said one level of said routing table and for comparing non-masked portions of the masked destination address to corresponding portions of each destination address of each routing table entry stored therein.
Claim 13
Dependent Claim 115 words
A memory for use in a central office switch for implementing a multilevel hierarchical routing table comprising a plurality of content addressable memory means, each associated with one level of said multilevel hierarchical routing table and each comprising mask circuit means for masking out portions of a destination address of a call or packet which do not correspond to said one level of said routing table, and memory array means for storing routing table entries comprising destination addresses and corresponding output port entries for said one level of said routing table and for comparing non-masked portions of the masked destination address to corresponding portions of each destination address of each routing table entry stored therein.
Claim 14
Dependent Claim 55 words
The memory of claim 10 wherein the memory array means of each of the content addressable memory means outputs an indication when there is a match between the non-masked portions of said destination address of said call or packet and the corresponding portions of a destination address of a particular routing table entry stored therein.
Claim 15
Dependent Claim 38 words
The memory of claim 11 wherein said memory further comprises a prioritizer for, in response to said indications, giving priority to the content addressable memory means of the lowest level of the hierarchy in which a match occurred.
Claim 16
Dependent Claim 30 words
The memory of claim 11 wherein one or more of said content addressable memory means are logical content addressable memories implemented as part of a multiple logical content addressable memory.

References Cited (Backward Citations)

US4723224A Cited
US5200953A Cited
US5329618A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-01-30 1998-08-01 1999-01-31 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-01-30 2002-08-01 2003-01-31 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-01-30 2006-08-01 2007-01-31 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag