FFF FFFFFFFF Mask 1: FFFFFFFF FFFFFFFF 00000000 FFFFFFFF Mask 0: FFFFFFFF FFFFFFFF FFFFFFFF 00000000 In this example, only the specific 32-bit part of the comparand that is allowed by the global mask register is relevant. Consequently, searches can be conducted on any one of the four tightly packed tables. A CAM can be partitioned in numerous ways. The specific design of each CAM chip enables the designer to use his or her imagination differently in each case. Judicious partitioning has been shown 4. NetLogic Microsystems Application Note, "Intradevice Configuration of Network Search Engine." Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. SEARCH ENGINES SEARCH ENGINES to enable the usability of almost close to 100 percent of an array, if the word sizes are chosen to be smaller than the default organization of the CAM. Partitioning the CAM is an interesting way of enhancing its usability. However, a systems designer must determine whether entries are valid. This is accomplished by using a special bit at each word location that indicates whether the corresponding entry is valid data. This is similar to the remarks we made earlier about CAM initialization. When the system in turned on, the internal state of the CAM is automatically initialized to unknown values; therefore, the valid-entry bits are crucial for making some decisions. We will examine a couple of interesting ideas as to how to further optimize the use of a CAM by loading tables more judiciously. For instance, NetLogic Microsystems has proposed the concept tag bits. Tag bits enable searches to be performed on subsets of stored data. The idea is that a specific bit at each entry word is arbitrarily chosen to denote that this specific entry belongs to a defined sub- set (subtable) of the overall table. It is also tacitly assumed that the entry word is smaller than the organization of 