Low power, hash-content addressable memory architecture
First Claim
1. A method, comprising:
- inputting an input word to a plurality of hash circuits, each hash circuit being responsive to a different portion of said input word;
outputting a hash signal from each hash circuit;
enabling portions of a CAM in response to said hash signals;
inputting said input word to said CAM;
comparing said input word in the enabled portions of said CAM; and
outputting information responsive to said comparing step.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is comprised of inputting a comparand word to a plurality of hash circuits, each hash circuit being responsive to a different portion of the comparand word. The hash circuits output a hash signal which is used to enable or precharge portions of a CAM. The comparand word is also input to the CAM. The CAM compares the comparand word in the precharged portions of the CAM and outputs information responsive to the comparing step. When used to process Internet addresses, the information output may be port information or an index from which port information may be located. A circuit is also disclosed as is a method of initializing the circuit.
78 Citations
44 Claims
-
1. A method, comprising:
-
inputting an input word to a plurality of hash circuits, each hash circuit being responsive to a different portion of said input word;
outputting a hash signal from each hash circuit;
enabling portions of a CAM in response to said hash signals;
inputting said input word to said CAM;
comparing said input word in the enabled portions of said CAM; and
outputting information responsive to said comparing step. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a CAM, comprising:
-
hashing a comparand word;
precharging certain portions of a CAM in response to said hashing step; and
inputting said comparand word to said CAM. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of operating a CAM for processing address information, comprising:
-
inputting an Internet address to a plurality of hash circuits, each hash circuit being responsive to a different portion of said address;
outputting a hash signal from each hash circuit;
using said hash signals to identify portions of a CAM;
inputting said address to said CAM;
comparing said address in only the identified portions of said CAM; and
outputting port information in response to a match being found in said CAM. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method of operating a CAM for processing address information, comprising:
-
hashing different prefixes within an Internet address;
precharging certain portions of a CAM in response to said hashing step;
comparing said Internet address in said precharged portions of the CAM; and
outputting information in response to a match being found in the CAM. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A circuit, comprising:
-
a CAM for receiving a comparand word;
a plurality of hash circuits connected in parallel, each for producing a hash signal in response to a portion of the comparand word; and
a circuit, responsive to said hash signals, for precharging portions of said CAM. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A circuit, comprising:
-
a CAM;
a plurality of hash circuits each for producing a hash signal in response to a portion of a comparand word;
a plurality of memory devices responsive to said hash circuits;
enable logic, responsive to said plurality of memory devices, for enabling portions of said CAM; and
a delay circuit for inputting the comparand word to said CAM. - View Dependent Claims (35, 36, 37, 38)
-
-
39. A method, comprising:
-
receiving routing information;
mapping destinations to ports;
hashing network addresses;
loading hash values and address prefixes into a hash table;
linking routing addresses and port information to said hash values; and
loading information from the hash table into a CAM. - View Dependent Claims (40)
-
-
41. A method of initializing hardware, comprising:
-
transferring network addresses to a CAM based on an index to a hash table;
transferring port numbers to an output memory device responsive to the CAM;
modifying bit prefix values to obtain a ternary representation;
calculating bank run length information; and
loading starting address and bank run length information into a plurality of memory devices. - View Dependent Claims (42, 43, 44)
-
Specification