Patent ID: 7721042

Claim:
An apparatus, comprising: a content-addressable memory (CAM) which has multiple banks; wherein the multiple banks have varying sizes and a priority ordering, and wherein the multiple banks have varying sizes that fall off in a predetermined pattern from highest to lowest priority, wherein in the predetermined pattern, the sizes of the banks fall off exponentially from highest to lowest priority or the sizes of the banks are constant in size and then fall off exponentially from highest to lowest priority; an insertion mechanism, wherein upon receiving an insertion request which includes a key and a body, the insertion mechanism is configured to, calculate a different hash function for each bank based on the key to produce a calculated index and tag for each bank, use the calculated index and the tag for each bank to lookup an entry in each bank, and if the lookups do not generate a hit in any bank, to store an entry for the request into a highest priority bank which does not contain a valid entry in the location accessed by the lookup.