To provide fast access times with very large key fields, an associative
memory utilizes a location addressable memory and lookup table to
generate from a key the address in memory storing an associated record.
The lookup tables, stored in memory, are constructed with the aid of
arithmetic data compression methods to create a near perfect hashing of
the keys. For encoding into the lookup table, keys are divided into a
string of symbols. Each valid and invalid symbol is assigned an index
value, such that the sum of valid index values for symbols of a
particular key is a unique value that is used as an address to the memory
storing the record associated with that key, and the sum of keys
containing invalid index values point to a location in memory containing
similar data. Utilizing the lookup tables set and relational operations
maybe carried out that provide a user with a maximum number of key
records resulting from a sequence of intersection, union and mask
operations.