(content-addressable memory, CAM)
A memory that is capable of determining whether a given datum — the search word — is contained in one of its addresses or locations. This may be accomplished by a number of mechanisms. In some cases parallel combinational logic is applied at each word in the memory and a test is made simultaneously for coincidence with the search word. In other cases the search word and all of the words in the memory are shifted serially in synchronism; a single bit of the search word is then compared to the same bit of all of the memory words using as many single-bit coincidence circuits as there are words in the memory. Amplifications of the associative memory technique allow for masking the search word or requiring only a “close” match as opposed to an exact match. Small parallel associative memories are used in cache memory and virtual memory mapping applications.
Since parallel operations on many words are expensive (in hardware), a variety of stratagems are used to approximate associative memory operation without actually carrying out the full test described here. One of these uses hashing to generate a “best guess” for a conventional address followed by a test of the contents of that address.
Some associative memories have been built to be accessed conventionally (by words in parallel) and as serial comparison associative memories; these have been called orthogonal memories. See also associative addressing, associative processor.