Hybrid search memory for network processor and computer systems
First Claim
1. A search method comprising the acts of:
- a) using N bits, N being an integer, from a packet as an index into a data structure including a Direct Table with at least one entry and a tree structure operatively coupled to said one entry;
b) setting a threshold based upon a first predetermined characteristic of the tree structure;
c) using select bits from the packet to traverse said tree structure until the threshold is met;
d) storing in a Contents Address Memory (CAM) at least one entry based upon a predetermined characteristic of the packet and a second predetermined characteristic of said tree structure; and
e) using the at least one entry to access a memory location whereat action to be taken relative to the packet is stored.
4 Assignments
0 Petitions
Accused Products
Abstract
A data structure, system and method of searching the data structure are disclosed. The system includes a data structure having a Direct Table (DT), Patricia-Trees, Pointers and high speed storage systems such as Contents Address Memory (CAM). The DT has a plurality of entries with each one coupled to a Patricia Tree having multiple nodes coupled to leaves. The number of Nodes, termed a threshold, that can be traversed to obtain information in the leaves is limited to a predetermined value. Once the threshold is reached a pointer indicates the address of the CAM and the address of the leaves is stored in the CAM. By using the disclosed structure and method the latency associated with tree search is significantly reduced.
65 Citations
25 Claims
-
1. A search method comprising the acts of:
-
a) using N bits, N being an integer, from a packet as an index into a data structure including a Direct Table with at least one entry and a tree structure operatively coupled to said one entry;
b) setting a threshold based upon a first predetermined characteristic of the tree structure;
c) using select bits from the packet to traverse said tree structure until the threshold is met;
d) storing in a Contents Address Memory (CAM) at least one entry based upon a predetermined characteristic of the packet and a second predetermined characteristic of said tree structure; and
e) using the at least one entry to access a memory location whereat action to be taken relative to the packet is stored. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for correlating a search key with a database comprising the acts of:
-
a) using N bits, N≧
1, from the search key as an index into the database including entries having a Direct Table with at least one entry and a tree structure operatively coupled to said one entry;
b) setting a threshold based upon a first predetermined characteristic of the tree structure;
c) using M bits (M>
1) from the search key to access said tree structure until the threshold is met; and
d) reading from a CAM information that indicates action to be taken relative to the search key. - View Dependent Claims (9, 10, 11)
-
-
12. An apparatus comprising:
-
an embedded processor complex including a plurality of protocol processors;
a control point processor operatively coupled to the processor complex;
a plurality of hardware accelerator co-processors accessible to each protocol processor and providing high speed pattern searching, data manipulation and frame parsing;
at least one memory device, operatively coupled to the processor complex, that stores data structures including a Direct Table, nodes and leaves operatively chained together; and
a Memory location operatively coupled to the processor complex and storing a value representative of the maximum number of nodes to be accessed during a tree search routine. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A data structure comprising:
-
a Direct Table having at least two entries;
a tree structure operatively coupled to the at least two entries and having a plurality of nodes and leaves operatively chained together; and
a storage storing a threshold value indicating the maximum number of nodes to be accessed during a walk of said tree structure. - View Dependent Claims (22, 23)
-
-
24. A system comprising:
-
a processor to provide a key extracted from a data packet;
a tree walk logic responsive to use the key to walk a tree structure until a threshold is reached;
a CAM controller to use the key to search a CAM; and
a controller that uses the first available result from the tree walk logic or the CAM controller to determine an action to be taken relative to the data packet.
-
-
25. A search method comprising the acts of:
-
(a) providing a key extracted from a data packet;
(b) using said key by a tree walk logic to search a tree structure until a threshold is reached;
(c) using said key by a CAM controller to search a CAM; and
using the first result from acts (b) or (c) to determine an action to be taken relative to the data packet.
-
Specification