1. Field of the Disclosure
This disclosure is directed to content-addressable memories (CAM), and particularly to optimization of a CAM request interface used in conjunction with a CAM.
2. Related Art
A content-addressable memory (CAM) is a hardware search engine that is suitable for some search-intensive applications. A CAM is typically composed of semiconductor memory with added comparison circuitry that enables a search operation, for example, whether a particular value is present in the memory, to complete in a single clock cycle. Two most common search-intensive tasks that use a CAM are packet forwarding and packet classification operations in Internet routers.
There are two basic forms of CAM: binary and ternary. Binary CAMs support storage and searching of binary bits, zero (0) or one (1). Ternary CAMs (TCAMs) support storing of zero (0), one (1) or a don't care bit (X). TCAMs are presently the dominant CAM in Internet routers because longest-prefix routing is the Internet standard.
Commercially available TCAM devices, such as, for example, NL6000 and NL7000 series TCAMs from Netlogic Microsystem™, deliver reasonable performance and reliability for packet forwarding and packet classification for current Internet routers. However, existing TCAMs may not deliver satisfactory performance for packet forwarding and packet classification for some applications. For example, variable key sizes (namely values to be searched in a TCAM) may not be efficiently handled by the TCAM, resulting in no operation being performed during some time periods when variable length keys are used.
Accordingly, there is a need for an increased packet forwarding speed, increased packet classification speed and/or increased capability for Internet routers.