the CAM. In other words, if the entries are 128 bits long, in order to let one specific bit (say, the far-left one) among those be the tag bit, the table entry must obviously be shorter than 128 bits. For instance, a systems designer may want to store two different tables that contain some common subdata inside the same CAM for economy. This could occur if a systems designer wants to limit the number of components on a specific line card and consequently wants to store two different tables inside the same CAM. Figure 12.2 provides a simple example of this situation. A classification table (with a 32-bit source address, 32-bit destination address, 2-bit type of service [TOS], and 16-bit VPN number field in every entry for 82 bits total in this example) and a forwarding table based on a 32-bit destination address on every entry are stored in this example. Note that the destination address field appears in both tables. Unless there is a physical way of ensuring that the search operation is performed only against entries of the specific subtable that needs to be accessed, some unfortunate matches may be erroneously made when a miss should actually occur. Tag bits easily solve this problem. One specific bit of each entry (let us say the far-left bit for con- venience) is tacitly assigned to denote the corresponding subtable. If the tag bit is 0, it could mean that this entry belongs to the classification table. If the tag bit is 1, it could mean that the entry belongs to the forwarding table instead. During a specific search operation, the network processor loads the search key (comparand) into the CAM configuration register (or whatever this control register is exactly called in a specific CAM product) and the tag bit is set to the correct value corresponding to the subtable to be searched. This means, of course, that the software engineers in charge of develop- ing that part of the NPU software must be careful to not set the corresponding bit of the global mask register in the CAM (by issuing the incorrect formatted