|
System Design
With the performance of today's servers, workstations, and PCs dramatically increasing, the real limitation in using an enterprise's computers becomes the networking performance. New technologies are targeting new bandwidth-hungry, mission-critical client/server applications and increasingly faster computers. Meanwhile, internetworking has taken off. Typically, routers are used to connect widespread LANs and select a path based on the shortest distance and the traffic load of the path. Most of these networks are based on TCP/IP. IP addresses have a network portion and a host portion and most often are 4 bytes long. But the next-generation Internet Protocol, IPv6 (Internet Protocol Version 6), is now being defined, and it calls for a 6-byte address. Routers route packets between networks based on an address located in the packet header. Routers also typically use routing tables that are initially configured and may have the ability to become adjusted by the load and the current configuration of the network.
Figure 1. In the MCM69C232, data enters and exits the CAM on the MQ bus, connected to the processor. The initialization and mask functions are set up through the control port.A network node has to perform many address look-ups or address translations. Typically, nodes supporting only a few addresses are doing the address look-up using a hashing algorithm implemented by the microcontroller. But with the increasing number of ports supported and the need to support hundreds or thousands of MAC addresses, coping with the network performance requirements calls for an external content-addressable memory, or CAM. Typically, routers or switches and bridges have large blocks of memory used as program memory, buffers, and address translation/look-up tables. Depending on the number of ports, the supported protocols, and the type of Ethernet class, the controller has to handle different sizes of look-up tables. Fast external CAMs are being used to dramatically reduce the look-up time. What's a CAM? Unlike conventional memory, which uses a memory controller to provide an address for reading or writing data, a CAM is a "backwards" memory that is fed data (usually representing part of a logical address) and issues an address. The address shows where a matching entry has been found within the CAM. In its basic operating mode, a CAM, such as Motorola's MCM69C232, reads a data input word, compares it with all the entries in its CAM table, and determines whether a match is found. If a match is found, the data associated with the matching entry is output. In the case of the MCM69C232, data enters or leaves on the MQ bus connecting the CAM and the microcontroller (see Figure 1). If no match is found, the MQ bus remains in a high-impedance state to facilitate depth expansion through the cascading of multiple CAMs. But before the basic operating mode can be entered, several start-up functions must be performed. First, the output and match width must be set by writing the appropriate values into the global mask register (not shown in the figure). Second, a choice must be made between the buffered entry and fast entry modes. Next, the match/output data pairs must be loaded into the table. Depending on the entry mode chosen, the table may have to be initialized or, optionally, the "almost full" point may be set to issue a warning of an impending table overflow.
Figure 2. As networks increase in size and speed, the performance requirements for look-up tables increase exponentially.The input bits to be compared are defined by the global mask register. The mask bits that are 0 correspond to the bits used in the match operation. Typically, the bits used in matching are the high-order bits in the 64-bit CAM table entries, and the low-order bits are used as outputs. While any of the bits can be defined as match bits, the low-order 32 bits of an entry are always put on the MQ bus as output data. The choice of entry mode is a trade-off between the speed of entry and the latency before matching operations can begin. In a typical application, the fast entry mode is used to load the initial values into the CAM table, whereby the insert-value operation bypasses the entry queue and writes new table entries directly into the CAM table. Subsequently, the initialize-table operation, which takes 12 ms, must be executed to establish the required linkages and relationships among the entries. After match operations have begun, the buffered entry mode should be used to enter new values dynamically; even one addition in the fast entry mode will disable matching until the table is re-initialized. Table insertions using the buffered entry and fast entry modes actually take the same amount of time unless the entry queue is full. The capacity of the queue is 12 entries. After the entry mode is chosen, the table can be loaded. In the case of the MCM69C232 CAM, each 64-bit entry is constructed by writing a 16-bit value to each of the chip's four I/O registers. Therefore four consecutive write cycles for one table entry must be performed. If the MCM69C232 is used with a 40-MHz MPC860, a complete single table entry update, comprising four writes of data to the I/O register and one write to the operation register, takes a minimum of 250 ns. For an Ethernet application with a MAC address width of 48 bits, a write to I/O register 3 can be dropped by using the mask register for the comparison, so that a table entry can be done within 200 ns. After all the start-up entries have been loaded into the CAM table, the initialization operation will run if required. Then normal matching operations can begin. Figure 2 shows an example of when it might make sense to extend the look-up table by using larger and faster CAMs to be able to handle an average packet load at different Ethernet implementations. A server connected to a 100-Mbit/second or a 1-Gbit/second Ethernet network would handle more and larger packets over time than one connected to a 10-Mbit/second Ethernet network. From a pool of various packet sizes ranging from 64 to 1,518 bytes, an average has been selected depending on the Ethernet implementation and the kind of computer behind the network interface card. IPv6 makes changes to two specifications that will affect the use of CAMs. The first is the source and destination addresses, which will be increased to a maximum of 128 bits and will therefore extend the size of the look-up tables. The second is the size of the packets, which will be restricted to 576 bytes maximum, dramatically increasing the number of address table look-ups. Just imagine, a server that now transmits a file using IPv4 with 1,536-byte packets will have to transmit the file using IPv6 with 576-byte packets. Thus the number of address table look-ups would nearly triple. * Anton Stemmer is a field application engineer at Motorola, Inc.'s Networking and Computer Systems Group in Munich, Germany. To voice an opinion on this or any Integrated System Design article, please e-mail your message to miker@isdmag.com. integrated system design January 1998[ Articles from Integrated System Design Magazine ] [ ICs and uPs ] [ Custom ICs and Programmable Logic ] [ Vendor Guide ] [ Design and Development Tools ] [ Home ] For more information about isdmag.com e-mail cam@isdmag.com For advertising information e-mail amstjohn@mfi.com Comments on our editorial are welcome Copyright © 2000 Integrated System Design
|
||||||||||||||||
Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints| RSS|
Digital| Mobile |
| Network Websites |
|
International |
|
Network Features |
|
|
|
All materials on this site Copyright © 2009 TechInsights, a Division of United Business Media LLC All rights reserved. Privacy Statement | Terms of Service | About |