A search engine (100) having a controller (112), a memory (114),
and a hash pointer unit (110). The memory (114) includes a database
of search data and associate content, and the controller (112) uses individual
search values to access the memory (114) to obtain individual search results.
The controller (112) includes a hash function (116) that generates
a hash value from a, typically large, search value into a, typically smaller, hash
value that may be a hash collision. The controller (112) converts the hash
value into a hash address which is communicated to the hash pointer unit (110),
which receives the hash address and provides a hash pointer that is communicated
to and used by the memory to look up respective search results. In this manner
hash collisions are avoided and the size of the memory (114) is not a function
of the degree of multi-way set-associativity used.