und, the specific address obtained as a result of the CAM lookup operation is used as a pointer to a specific address located inside some external static random access memory (SRAM) bank that is known as user data memory or, more appropriately, associated data memory. That is exactly where an IP address or a MAC address (depending on the application) will be found that satisfies the packet's destination requirements that the system was seeking when it initiated the lookup. The lookup operation described SO far is based on a binary CAM because the bit positions either match the key content or fail (0 or 1 in every bit position). Most CAM products used in current search engines offer the possibility of ternary CAM (TCAM) operations, which enable the creation of masks for every entry word using 0, 1, or don't-care values. This is required for several of the currently used search algorithms, including the LPM algorithm. If more than one match is found, the lower address is usually returned, although TCAM chips are present, which are structured with an embedded prior- ity-encoding mechanism that returns multiple matches in a certain priority. This is obviously a mech- anism that taxes the real-time performance of the search engine severely, SO it is only used when it absolutely and undoubtedly makes sense. 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. PACKET PROCESSING 54 NETWORK PROCESSORS Although we will be discussing CAMs in length later in Chapters 12 and 13, it is worth mention- ing here that the brute-force hardware lookup capabilities that CAMs provide are expensive and often require a lot of power. CAMs are attractive for the following reasons: They recognize large bit patterns (they do a lot of work per trip across the I/O pins where approaches using conventional memory typically need to make many trips as the bit pattern to be classi