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

Custom circuitry for adaptive hardware routing engine

Assignee: Nokia of America Corp
•
Filing: 1997-11-05
•
Granted: 2000-05-09
•
Expires: 2017-11-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Custom circuitry for an adaptive, RAM-based, hardware routing engine conforms bit selection dynamically to information made available by a self-optimizing data hashing algorithm. Circuitry includes a staggered multiplexor array for selecting bits from only the most distinctive bit positions of an inbound identifier to effectuate associative comparisons at approximately CAM speeds under perfect or near perfect hash conditions. The custom circuitry includes means for monitoring routing performance and instructing a processing element to correct the hashing algorithm when performance has sufficiently deteriorated. The custom circuitry also has an extended recursive look-up capability.

Inventors

  • 👤 James A. Hitzelberger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 20:05
CPC Classifications
H; H04; H04L; H04L45/00; H04L45/74; H04L45/745; H04L45/7453

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 157 words
Custom circuitry for reducing an L-bit data unit into an N-bit data unit selectable to include any combination of bits from the L-bit data unit, where L is an integer greater than two, N is an integer greater than one and L is greater than N, comprising: N successive multiplexors, each multiplexor receiving as inputs bits from M bit positions within the L-bit data unit including all but the first bit received as an input by the immediately preceding multiplexor, if any, and all but the last bit received as an input by the immediately succeeding multiplexor, if any, and wherein M is an integer sufficiently great such that each bit within the L-bit data unit is received as an input by at least one of the N successive multiplexors; and means for instructing each multiplexor to select for transmission as an output a single bit, if any, from the bits received as inputs by the multiplexor.
Claim 2
Dependent Claim 157 words
Custom circuitry for reducing an L-bit data unit into an N-bit data unit selectable to include any combination of bits from the L-bit data unit, where L is an integer greater than two, N is an integer greater than one and L is greater than N, comprising: N successive multiplexors, each multiplexor receiving as inputs bits from M bit positions within the L-bit data unit including all but the first bit received as an input by the immediately preceding multiplexor, if any, and all but the last bit received as an input by the immediately succeeding multiplexor, if any, and wherein M is an integer sufficiently great such that each bit within the L-bit data unit is received as an input by at least one of the N successive multiplexors; and means for instructing each multiplexor to select for transmission as an output a single bit, if any, from the bits received as inputs by the multiplexor.
Claim 3
Dependent Claim 41 words
The custom circuitry according to claim 1, wherein the instructing means includes means for transmitting to each multiplexor a command identifying a single bit position, if any, from which the multiplexor is to select a bit for transmission as an output.
Claim 4
Dependent Claim 65 words
The custom circuitry according to claim 1, wherein the instructing means includes means for transmitting to the N successive multiplexors commands which in the aggregate identify the up to N bit positions within the L-bit data unit, which are the most distinctive according to the most recent calculation made by a hashing algorithm, from which the multiplexors are to select bits for transmission as outputs.
Claim 5
Dependent Claim 19 words
The custom circuitry according to claim 2, wherein the command is stored in and retrieved from a memory element.
Claim 6
Dependent Claim 21 words
The custom circuitry according to claim 3, wherein the commands are stored in and retrieved from one or more memory elements.
Claim 7
Dependent Claim 152 words
In a hardware routing engine, custom circuitry for implementing a dynamic data hashing algorithm, comprising: means for selecting an identifier from an identifier set; means for reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; means for adding an offset, if required, to the value to create an initial pointer to the first RAM entry in a linked list of one or more RAM entries; and means for using the initial pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed.
Claim 8
Dependent Claim 152 words
In a hardware routing engine, custom circuitry for implementing a dynamic data hashing algorithm, comprising: means for selecting an identifier from an identifier set; means for reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; means for adding an offset, if required, to the value to create an initial pointer to the first RAM entry in a linked list of one or more RAM entries; and means for using the initial pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed.
Claim 9
Dependent Claim 54 words
The custom circuitry according to claim 6, further comprising: means for tracking the number of comparisons for which a match is not found; and means for instructing the hashing algorithm to recalculate the most distinctive bit positions if the number of comparisons for which a match is not found has exceeded a configurable number.
Claim 10
Dependent Claim 75 words
The custom circuitry according to claim 6, further comprising: means for tracking the number of comparisons for which a match is not found; means for tracking the number of linked lists for which a configurable number of comparisons for which a match is not found has exceeded a configurable number; and means for instructing the hashing algorithm to recalculate the most distinctive bit positions if the number of linked lists has exceeded a configurable number.
Claim 11
Dependent Claim 203 words
In a hardware routing engine, custom circuitry for implementing a dynamic data hashing algorithm, comprising: means for selecting a look-up mode based on the most recent look-up mode information; means for selecting an identifier from an identifier set based on the selected look-up mode; means for reducing the identifier to value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; means for adding an offset, if any, to the value to generate an initial pointer to the first RAM entry in a linked list of one or more RAM entries; means for using the initial pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed; means for retrieving any subsequent look-up mode information from the RAM entry for which a match is found; and means for transmitting any subsequent look-up mode information to the look-up mode selecting means.
Claim 12
Dependent Claim 203 words
In a hardware routing engine, custom circuitry for implementing a dynamic data hashing algorithm, comprising: means for selecting a look-up mode based on the most recent look-up mode information; means for selecting an identifier from an identifier set based on the selected look-up mode; means for reducing the identifier to value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; means for adding an offset, if any, to the value to generate an initial pointer to the first RAM entry in a linked list of one or more RAM entries; means for using the initial pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed; means for retrieving any subsequent look-up mode information from the RAM entry for which a match is found; and means for transmitting any subsequent look-up mode information to the look-up mode selecting means.
Claim 13
Dependent Claim 48 words
The custom circuitry according to claim 9, further comprising: means for determining the number of RAM entries accessed in the linked list; and means for instructing the hashing algorithm to recalculate the most distinctive bit positions if the accessed number of RAM entries has exceeded a configurable number.
Claim 14
Independent Claim 135 words
A method for reducing a first data unit into a second data unit selectable to include any combination of bits from the first data unit, comprising: inputting to each multiplexor within an array of multiplexors a plurality of bits from the first data unit including all but the first bit received as an input by an immediately preceding multiplexor in the array, if any, and all but the last bit received as an input by an immediately succeeding multiplexor in the array, if any, and wherein the number of bits is sufficiently great such that each bit within the first data unit is received as an input by at least one of the multiplexors within the array; and outputting from each multiplexor a single bit, if any, from the plurality of bits received as inputs.
Claim 15
Independent Claim 135 words
A method for reducing a first data unit into a second data unit selectable to include any combination of bits from the first data unit, comprising: inputting to each multiplexor within an array of multiplexors a plurality of bits from the first data unit including all but the first bit received as an input by an immediately preceding multiplexor in the array, if any, and all but the last bit received as an input by an immediately succeeding multiplexor in the array, if any, and wherein the number of bits is sufficiently great such that each bit within the first data unit is received as an input by at least one of the multiplexors within the array; and outputting from each multiplexor a single bit, if any, from the plurality of bits received as inputs.
Claim 16
Independent Claim 137 words
A method for implementing a dynamic data hashing algorithm, comprising: selecting an identifier from an identifier set; reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; adding an offset, if required, to the value to create a pointer to the first RAM entry in a linked list of one or more RAM entries; and using the pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed.
Claim 17
Independent Claim 137 words
A method for implementing a dynamic data hashing algorithm, comprising: selecting an identifier from an identifier set; reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; adding an offset, if required, to the value to create a pointer to the first RAM entry in a linked list of one or more RAM entries; and using the pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed.
Claim 18
Independent Claim 183 words
A method for implementing a dynamic data hashing algorithm, comprising: selecting a look-up mode based on the most recent look-up mode information; selecting an identifier from an identifier set based on the selected look-up mode; reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; adding an offset, if any, to the value to generate a pointer to the first RAM entry in a linked list of one or more RAM entries; using the pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed; retrieving any subsequent look-up mode information from the RAM entry for which a match is found; and applying any subsequent look-up mode information in a subsequent look-up mode selection.
Claim 19
Independent Claim 183 words
A method for implementing a dynamic data hashing algorithm, comprising: selecting a look-up mode based on the most recent look-up mode information; selecting an identifier from an identifier set based on the selected look-up mode; reducing the identifier to a value, the value including bits from the bit positions within the identifier which are the most distinctive according to the most recent calculation made by a hashing algorithm; adding an offset, if any, to the value to generate a pointer to the first RAM entry in a linked list of one or more RAM entries; using the pointer, and any subsequent pointer retrieved from any accessed RAM entry in the linked list, to access the first and any subsequent RAM entry, respectively, and retrieve match information for comparison with a match identifier associated with the identifier set, until either a match is found or all RAM entries in the linked list have been accessed; retrieving any subsequent look-up mode information from the RAM entry for which a match is found; and applying any subsequent look-up mode information in a subsequent look-up mode selection.

References Cited (Backward Citations)

US5027350A Cited
US5490252A Cited
US5546390A Cited
US5930257A Cited
US5845091A Cited
US5854899A Cited
US5959968A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-05-09 2003-11-08 2004-05-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-05-09 2007-11-08 2008-05-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-05-09 2011-11-08 2012-05-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag