A search engine having a controller, a memory, and at least one hash-CAM
(H-CAM). The memory includes a database of search values and associate
content or just associate content. The controller uses search values to
access the memory to obtain the search results. The H-CAM includes at
least one set of paired hash units and CAM units and at least one logic
unit. The CAM units hold values known to cause hash collisions in the
paired hash units, and the logic unit prioritizes the hash and CAM unit
outputs to address values usable to access the memory and obtain a search
result at the controller that is not the result of a hash collision. The
H-CAM may optionally include a search data storage to store the search
values, so that they need not be stored in the memory, and a comparator
to determine and handle new search data based hash collisions. The H-CAM
may optionally also be cascaded.