Method and system for reconfigurable parallel lookups using multiple shared memories

US9620213B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9620213-B2
Application numberUS-201314142511-A
CountryUS
Kind codeB2
Filing dateDec 27, 2013
Priority dateDec 27, 2013
Publication dateApr 11, 2017
Grant dateApr 11, 2017

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.

Embodiments of the present invention relate to multiple parallel lookups using a pool of shared memories by proper configuration of interconnection networks. The number of shared memories reserved for each lookup is reconfigurable based on the memory capacity needed by that lookup. The shared memories are grouped into homogeneous tiles. Each lookup is allocated a set of tiles based on the memory capacity needed by that lookup. The tiles allocated for each lookup do not overlap with other lookups such that all lookups can be performed in parallel without collision. Each lookup is reconfigurable to be either hash-based or direct-access. The interconnection networks are programmed based on how the tiles are allocated for each lookup.

First claim

Opening claim text (preview).

We claim: 1. A system on-chip configured to support N parallel lookups using a pool of shared memories, the system on-chip comprising: a pool of T×M shared memories are grouped into T tiles; M index converters for each of N lookup paths; a central reconfigurable interconnect fabric for connecting N input ports to the T tiles; an output reconfigurable interconnect fabric for connecting the T tiles to N output ports; and N output result collectors, wherein each of the N output result collectors is per one lookup path, wherein the system on-chip is configured to perform N parallel lookups against the pool of T×M shared memories along the N lookup paths, wherein N, T and M are positive integer values. 2. The system on-chip of claim 1 , wherein the T tiles are partitioned and allocated for the lookup paths based on memory capacity needed by each of the lookup paths. 3. The system on-chip of claim 1 , wherein a number of tiles allocated for each lookup path of the N lookup paths is a power of 2, and a tile cannot overlap among partitions. 4. The system on-chip of claim 1 , wherein each lookup path is configurable to be a hash-based lookup or a direct-access lookup. 5. The system on-chip of claim 1 , wherein index converter i of M index converters of each lookup path of the N lookup paths is used to access memory i in one of the T tiles allocated for that lookup path. 6. The system on-chip of claim 1 , wherein each of M index converters of each lookup path of the N lookup paths is configurable based on a number of tiles allocated for that lookup path of the N lookup paths. 7. The system on-chip of claim 1 , wherein the central reconfigurable interconnect fabric includes M configurable N×T networks. 8. The system on-chip of claim 1 , wherein each of the N×T networks is one of a crossbar and a configurable butterfly. 9. The system on-chip of claim 1 , wherein the output reconfigurable interconnect fabric includes T configurable 1×N de-multiplexors. 10. The system on-chip of claim 1 , wherein one of N output result collectors associated with a lookup path of the N lookup paths is configured to collect results from allocated tiles for the lookup path and is configured to select one final result from results outputted by the allocated tiles. 11. The system on-chip of claim 1 , wherein a hit result for each of the T tiles is based on key matching results between pre-programmed keys in memories of that tile and an input key of that tile. 12. A system on-chip configured to support N parallel lookups using a pool of shared memories, the system on-chip comprising: T×M shared memories are grouped into T tiles; M index converters for each lookup path; a central reconfigurable interconnect fabric for connecting N input ports to the T tiles; an output reconfigurable interconnect fabric for connecting the T tiles to N output ports; and N output result collectors, wherein each of the N output result collectors is per one lookup path, wherein each of the T tiles includes: M memories for supporting D-LEFT lookups with M ways per lookup; a matching block for comparing pre-programmed keys in the M memories with an input key; and a selection block for selecting a hit result for that tile, wherein N, T and M are positive integer values. 13. A system on-chip configured to support N parallel lookups using a pool of shared memories, the system on-chip comprising: T×M shared memories are grouped into T tiles; M index converters for each lookup path; a central reconfigurable interconnect fabric for connecting N input ports to the T tiles; an output reconfigurable interconnect fabric for connecting the T tiles to N output ports; and N output result collectors, wherein each of the N output result collectors is per one lookup path, wherein each of the shared memories has 2 m entries, wherein each of the entries contains P pairs of programmable {key, data} for supporting D-LEFT lookups with P buckets per way, wherein P, N, T and M are positive integer values. 14. A system on-chip configured to support N parallel lookups using a pool of shared memories, the system on-chip comprising: T×M shared memories are grouped into T tiles; M index converters for each lookup path; a central reconfigurable interconnect fabric for connecting N input ports to the T tiles; an output reconfigurable interconnect fabric for connecting the T tiles to N output ports; and N output result collectors, wherein each of the N output result collectors is per one lookup path, wherein each of M index converters of each lookup path further comprises: log 2 (T)+1 hash functions and log 2 (T)+1 non-hash functions, wherein outputs of the functions have bitwidths ranging from m bits to log 2 (T)+m bits; a first configurable register for selecting one of the functions; and a second configurable register for selecting a tile offset such that a lookup index points to a correct tile among allocated tiles of that lookup path, wherein the allocated tiles are selected from the T tiles, wherein m, N, T and M are positive integer values. 15. A system on-chip configured to support N parallel lookups using a pool of shared memories, the system on-chip comprising: T×M shared memories are grouped into T tiles; M index converters for each lookup path; a central reconfigurable interconnect fabric for connecting N input ports to the T tiles; an output reconfigurable interconnect fabric for connecting the T tiles to N output ports; and N output result collectors, wherein each of the N output result collectors is per one lookup path, wherein an output index of each of the M index converters has log 2 (T)+m bits, wherein the log 2 (T) most significant bits in the output index are used to point to one of the T tiles and the m last significant bits in the output index are used as a memory read address, wherein m, N, T and M are positive integer values.

Assignees

Inventors

Classifications

  • using pseudo-associative means, e.g. set-associative or hashing · CPC title

  • using hashing · CPC title

  • Improving I/O performance · CPC title

  • Plurality of storage devices · CPC title

  • G11C15/04Primary

    using semiconductor elements · 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 US9620213B2 cover?
Embodiments of the present invention relate to multiple parallel lookups using a pool of shared memories by proper configuration of interconnection networks. The number of shared memories reserved for each lookup is reconfigurable based on the memory capacity needed by that lookup. The shared memories are grouped into homogeneous tiles. Each lookup is allocated a set of tiles based on the memor…
Who is the assignee on this patent?
Cavium Inc
What technology area does this patent fall under?
Primary CPC classification G11C15/04. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).