System for accessing content-addressable memory in packet processor
First Claim
1. A system for accessing a content-addressable memory in a pipelined packet processing system, the memory having a plurality of locations, each associated with a value of a key and a content value, comprising:
- a register for holding a data element having a key field, the key field having a value; and
logic for deriving a value of the key responsive to
1) packet processing state data indicating state of processing of one or more packets undergoing processing by the pipelined packet processing system, and
2) the value of the key field of the data element held by the register, and presenting the derived value to the memory;
wherein the memory is configured to search for a location associated with the derived value of the key presented to it by the logic, and, if such a location is found, output the content value associated with the location, and, if such a location is not found, outputting a signal indicative of a miss condition;
wherein the packet processing state data comprises a sequence control table index.
8 Assignments
0 Petitions
Accused Products
Abstract
A system for accessing a content-addressable memory in a packet processing system is described. A register holds a data element having a key field. Logic derives a value of the key responsive to 1) packet processing state data relating to one or more packets undergoing processing by the packet processing system, and 2) the value of this key field. The derived value of the key is presented to the memory. In response, the memory searches for an entry associated with the presented key value. If found, the content value associated with the entry is output. If not found, a signal indicative of a miss condition is output.
72 Citations
22 Claims
-
1. A system for accessing a content-addressable memory in a pipelined packet processing system, the memory having a plurality of locations, each associated with a value of a key and a content value, comprising:
-
a register for holding a data element having a key field, the key field having a value; and logic for deriving a value of the key responsive to
1) packet processing state data indicating state of processing of one or more packets undergoing processing by the pipelined packet processing system, and
2) the value of the key field of the data element held by the register, and presenting the derived value to the memory;wherein the memory is configured to search for a location associated with the derived value of the key presented to it by the logic, and, if such a location is found, output the content value associated with the location, and, if such a location is not found, outputting a signal indicative of a miss condition; wherein the packet processing state data comprises a sequence control table index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for flexibly controlling bandwidth of a pipelined packet processing system comprising:
-
a content-addressable memory; at least one packet processor configured to
1) process in parallel a plurality of packets through at least one pipeline having a plurality of slots for placement of packet data, and
2) perform one or more processing sets, wherein, during each of the one or more processing sets, the at least one packet processor is configured to perform a first predetermined but programmable number of processing operations (m) on each of one or more of the packets having data stored in the slots of the pipeline, each of the processing operations including at least one access to the content-addressable memory;at least one host processor configured to direct the at least one packet processor to perform one or more host-related processing operations upon or after the completion of a second predetermined but programmable number of processing sets (r); and at least one interface through which a user can specify the first (m) and second (r) predetermined but programmable numbers; wherein m is the number of cycles of processing, and r is the number of processing sets; wherein the bandwidth of the packet processing system is flexibly controlled through suitable setting of the first (m) and second (r) programmable numbers. - View Dependent Claims (11)
-
-
12. A method of accessing a content-addressable memory in a pipelined packet processing system, the memory having a plurality of locations, each associated with a value of a key and a content value, comprising:
-
in a register, holding a data element having a field, the field having a value; deriving a value of the key responsive to packet processing state data indicating state of processing of one or more packets undergoing processing by the pipelined packet processing system and the value of the key field of the data element held by the register, and presenting that derived value to the memory; and in the memory, searching for a location associated with the derived value of the key presented to it, and, if such a location is found, outputting the content value associated with the location, and, if such a location is not found, outputting a signal indicative of a miss condition; wherein the packet processing state data comprises a sequence control table index. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method of flexibly controlling bandwidth of pipelined packet processing comprising:
-
providing a content-addressable memory; specifying first (m) and second (r) but programmable numbers through at least one user interface; processing in parallel a plurality of packets through at least one pipeline having a plurality of slots for placement of packet data; performing one or more processing sets, wherein, during each of the one or more processing sets, the first predetermined but programmable number of processing operations (m) is performed on each of one or more of the packets having data stored in the slots of the pipeline, each of the processing operations including at least one access to the content-addressable memory; and performing one or more host-related processing operations upon or after the completion of the second predetermined but programmable number of processing sets (r); wherein m is the number of cycles of processing, and r is the number of processing sets; wherein the bandwidth of the packet processing system is flexibly controlled through suitable setting of the first (m) and second (r) programmable numbers. - View Dependent Claims (19)
-
-
20. A system for accessing content-addressable memory means in a pipelined packet processing system, the memory means having a plurality of locations, each associated with a value of a key and a content value, comprising:
-
holding means for holding a data element having a key field, the key field having a value; and deriving means for deriving a value of the key responsive to
1) packet processing state data indicating state of processing of one or more packets undergoing processing by the pipelined packet processing system, and
2) the value of the key field of the data element held by the holding means, and presenting the derived value to the memory means;wherein the memory means is configured to search for a location associated with the derived value of the key presented to it by the deriving means, and, if such a location is found, output the content value associated with the location, and, if such a location is not found, output a signal indicative of a miss condition; wherein the packet processing state data comprises a sequence control table index. - View Dependent Claims (21, 22)
-
Specification