×

Lookups by collisionless direct tables and CAMS

  • US 7,349,397 B2
  • Filed: 08/03/2006
  • Issued: 03/25/2008
  • Est. Priority Date: 05/13/2002
  • Status: Expired due to Term
First Claim
Patent Images

1. A method of preventing collisions between two or more binary keys wherein each binary key corresponds to an action to be taken, comprising the steps of:

  • providing a hash table having a plurality of entries, each entry associated with a binary key and indexed by a selected portion of a hash value of said associated binary key, each entry pointing to a location in a data structure for storing the non-selected portion of, or the entire hash value of, the binary key and action data corresponding to the value of the binary key, and a content addressable memory (CAM) having a plurality of entries, each configured to store a binary key, or a value unique to a binary key, and an association to a corresponding action associated therewith;

    storing in said hash table a pointer to said data structure using a selected one portion of a first hash value of a first binary key as an index into the hash table when and only when a selected one portion of the first hash value is not the selected one portion of the hash value of any other binary key, and storing in the CAM the first binary key or a value unique to the first binary key, and establishing an association between the associated CAM entry location and a location of an associated data structure, when and only when the selected portion of the first hash value of the first binary key is the same as the selected portion of the hash value of one or more other binary keys;

    presenting a second binary key for insertion into one of the hash table and the CAM;

    creating a second hash value of the second binary key;

    searching the hash table using a first portion of the second hash value;

    detecting that the hash table includes an entry indexed by the first portion of the second hash value for a third binary key;

    creating an entry in the CAM indexed by the second binary key;

    creating an entry in the CAM indexed by the third binary key; and

    deleting the entry in the hash table indexed by the first portion of the second hash value.

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