×

Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables

  • US 7,921,088 B1
  • Filed: 03/07/2007
  • Issued: 04/05/2011
  • Est. Priority Date: 07/22/2005
  • Status: Expired due to Fees
First Claim
Patent Images

1. A lookup structure comprising:

  • a plurality of stride tables that form a multi-bit Trie structure for performing lookups, wherein the stride tables are arranged into a plurality of levels;

    a lookup input for receiving an input lookup key dividable into a plurality of strides, wherein the plurality of strides correspond to the plurality of levels, wherein at least two of the strides have multiple bits each, wherein a stride is for locating an entry in a stride table at a level in the plurality of levels;

    a compressed stride table in the plurality of stride tables at an intermediate level in the plurality of levels, wherein the compressed stride table is pointed to by a table pointer in a prior-level selected entry in a prior stride table at a prior level in the plurality of levels, the prior-level selected entry being selected by a prior stride;

    a plurality of valid entries in the compressed stride table, wherein a selected valid entry in the compressed stride table is selected with compressed index bits, the compressed index bits being fewer bits than a current stride in the plurality of stride, the current stride for the compressed stride table;

    an index compressor, receiving current stride bits from the lookup input for the current stride of the input lookup key, the index compressor generating the compressed index bits; and

    pointer fields stored in the plurality of valid entries, the pointer fields containing pointers to stride tables in a next level in the plurality of levels or pointers to lookup results;

    wherein the lookup structure is embodied on a non-transitory computer-readable storage medium;

    wherein the index compressor comprises a function table and a final masker;

    wherein the function table comprises a plurality of addressable entries each storing a function-result value, wherein the current stride bits form an address into the function table to select a selected entry with an output function-result value, wherein the output function-result value is a table-defined function of the current stride bits;

    wherein the final masker comprises a selector for selecting a subset of bits in the output function-result value selected by the function table to generate the compressed index bits;

    wherein the selector selects the subset of bits in response to a final mask value stored in the plurality of valid entries in the compressed stride table,whereby the function table implements the table-defined function of the index compressor;

    wherein a compressed stride table has 2D entries locatable by D compressed stride bits that are compressed from S stride bits from the input lookup key;

    whereby function tables store function results for different table-defined functions and whereby 2S-2D entries have been removed to form the compressed stride table,whereby stride bits are compressed by table-defined functions before locating entries in compressed stride tables.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×