Proxy hash table

US11080252B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11080252-B1
Application numberUS-201916271669-A
CountryUS
Kind codeB1
Filing dateFeb 8, 2019
Priority dateOct 6, 2014
Publication dateAug 3, 2021
Grant dateAug 3, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments of the invention provide novel methods for storing data in a hash-addressed memory and retrieving stored data from the hash-addressed memory. In some embodiments, the method receives a search key and a data tuple. The method then uses a first hash function to generate a first hash value from the search key, and then uses this first hash value to identify an address in the hash-addressed memory. The method also uses a second hash function to generate a second hash value, and then stores this second hash value along with the data tuple in the memory at the address specified by the first hash value. To retrieve data from the hash-addressed memory, the method of some embodiments receives a search key. The method then uses the first hash function to generate a first hash value from the search key, and then uses this first hash value to identify an address in the hash-addressed memory. At the identified address, the hash-addressed memory stores a second hash value and a data tuple. The method retrieves a second hash value from the memory at the identified address, and compares this second hash value with a third hash value that the method generates from the search key by using the second hash function. When the second and third hash values match, the method retrieves the data tuple that the memory stores at the identified address.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of accessing a data storage device, the method comprising: using first and second hash functions to generate respective first and second hash values from a search key; using the first hash value to identify an address in a hash-addressed memory that stores a third hash value and a data tuple; determining whether the second and third hash values match, wherein determining whether the second and third hash values match comprises determining whether the second hash value matches a transformed version of the third hash value; and based on the second and third hash values matching, outputting the data tuple from the data storage device, wherein the data storage device stores the third hash value and the data tuple. 2. The method of claim 1 , wherein the first and second hash values differ as the first and second hash functions differ. 3. The method of claim 1 , wherein the hash-addressed memory comprises N sub-tables of an N-way hash table. 4. The method of claim 3 , wherein the first hash value identifies N addressable locations in the N sub-tables of the N-way hash table. 5. The method of claim 1 , wherein determining whether the second and third hash values match comprises determining whether the second hash value is an inverted version of the third hash value. 6. The method of claim 1 , wherein the search key comprises a portion of a header value, the header value comprises a portion of a header of a received packet, and the header value comprises one or more of: a source IP address, destination IP address, source port, destination port, and protocol. 7. The method of claim 1 , wherein the data tuple comprises a destination IP address (DIP) of a destination node. 8. A data storage comprising: first and second hash generators to generate respective first and second hash values from a search key; a hash-addressed memory to store a plurality of data tuples with a plurality of hash values at a plurality of locations, and to output (i) a third hash value that is stored at a location identified by the first hash value at the hash-addressed memory in the data storage, and (ii) a data tuple that is stored with the third hash value at the hash-addressed memory in the data storage; and a comparator to compare the second hash value and the third hash value, and to output the data tuple from the data storage based on a match of the second and third hash values, wherein the second and third hash values match if the second hash value matches a transformed version of the third hash value. 9. The data storage of claim 8 , wherein the first and second hash values differ as first and second hash functions differ. 10. The data storage of claim 8 , wherein the hash-addressed memory comprises N sub-tables of an N-way hash table. 11. The data storage of claim 10 , wherein the first hash value identifies N addressable locations in the N sub-tables of the N-way hash table. 12. The data storage of claim 8 , wherein the second and third hash values match when the second hash value is an inverted version of the third hash value. 13. The data storage of claim 8 , wherein the search key comprises a portion of a header value, the header value comprises a portion of a header of a received packet, and the header value comprises one or more of: a source IP address, destination IP address, source port, destination port, and protocol. 14. The data storage of claim 8 , wherein the data tuple comprises a destination IP address (DIP) of a destination node.

Assignees

Inventors

Classifications

  • G06F16/137Primary

    Hash-based (content-based indexing of textual data G06F16/31) · CPC title

  • Management of blocks · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • hash tables · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11080252B1 cover?
Some embodiments of the invention provide novel methods for storing data in a hash-addressed memory and retrieving stored data from the hash-addressed memory. In some embodiments, the method receives a search key and a data tuple. The method then uses a first hash function to generate a first hash value from the search key, and then uses this first hash value to identify an address in the hash-…
Who is the assignee on this patent?
Barefoot Networks Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/137. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 03 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).