Prefix matching structure and method for fast packet switching
Granted 26 Apr 2011 · 6 office actions
Current assignee: Broadcom · originally NETLOGIC MICROSYSTEMS, INC.
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Brian Hang Wai Yang, Frederick R. Gruner, Elango Ganesan, Christopher M. Eccles +2 · Examiner: Thuy Dao · AU 2192 · TC 2100
Life of the application
28 dated eventsAbstract
A prefix matching apparatus for directing information to a destination port includes a memory configured to store a piece of data including an address and a plurality of levels each including a plurality of memory locations, the levels each representing a unique address space. A controller is coupled to the memory and to the plurality of levels, and is configured to read the data address and to direct the data to the next level associated with a unique address space associated with the data address. In one embodiment, the controller is configured to match the data address prefix to a plurality of addresses associated with the unique address spaces. Advantages of the invention include fast switch decisions and low switch latency.
Description
7 parts›RELATED APPLICATIONS
This application claims priority to Prov. No. 60/512,121 filed Oct. 17, 2003, incorporated herein by reference.
›FIELD
The present invention relates to the field of telecommunications, and more particularly to a prefix matching structure and method for fast packet switching. In one embodiment, the invention is directed to a longest prefix matching structure and method for fast packet switching.
›BACKGROUND
Computer networking and communications are important aspects of daily life. These products and services are the infrastructure through which the Internet operates. The universal benefits of the Internet are well known, enabling immediate worldwide sharing of news and events, access to in-depth research on virtually any topic, sophisticated financial analysis available to all, the convenience of e-commerce available on virtually any product to consumers and the emerging capabilities for commercial e-commerce, and the outsourcing enabled by Application Service Providers and Storage Area Networks, to list just a few of the world-changing available uses.
This explosive growth in network traffic is further demonstrated by forecasts made by many leading networking industry experts regarding scaling specific infrastructure areas. Every aspect of these scaling estimates represents requirements for network equipment to scale to provide the necessary bandwidth.
Telecommunications switches and routing help to meet the needs of many devices to connect to a network and then for the network to communicate with other networks. The increasing demands of Internet traffic require equipment suppliers to develop faster and more efficient techniques for routing traffic. Inside the routers are switches that decode addresses associated with data packets and then direct the data packets to the proper ports. The invention is one such technique for improving switching.
›SUMMARY OF INVENTION
The invention provides a prefix matching structure and method for fast packet switching. The invention matched the address in the data to those available in a number of layers. A pipelined technique ensures that a new packet is switched to the correct port in a steady and quick manner.
A prefix matching apparatus for directing information to a destination port includes a memory configured to store a piece of data including an address and a plurality of levels each including a plurality of memory locations, the levels each representing a unique address space. A controller is coupled to the memory and to the plurality of levels, and is configured to read the data address and to direct the data to the next level associated with a unique address space associated with the data address. In one embodiment, the controller is configured to match the data address prefix to a plurality of addresses associated with the unique address spaces. In one embodiment, the invention is directed to a longest prefix matching structure and method for fast packet switching.
Advantages of the invention include fast switch decisions and low switch latency.
›BRIEF DESCRIPTION OF THE FIGURES
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 depicts an exemplary architecture according to an embodiment of the invention;
FIGS. 2A-C depicts exemplary tree structures used to describe the invention;
FIG. 3 depicts an embodiment using an external memory; and
FIG. 4 depicts an embodiment detailing memory organization.
›DETAILED DESCRIPTION · 1 of 2
The invention is described with reference to specific architectures and protocols. Those skilled in the art will recognize that the description is for illustration and to provide the best mode of practicing the invention. The description is not meant to be limiting. For example, reference is made to Ethernet Protocol but other protocols can be used in the invention. Likewise, reference is made to packets and cells, while other forms of data and addresses can be used in the invention.
A longest prefix matching method works by expanding address prefixes into specific ranges. Then, the method performs a binary search of the sorted list of numbers, which constitute the address spaces. An exemplary architecture is described and then the method if described using that architecture.
A. Architecture
FIG. 1 depicts an exemplary architecture according to an embodiment of the invention. As shown, the invention includes a number of levels Level 0 -Level 3 ( 110 a - 110 d ) and has access to external levels. There are also several slices shown as Slice 0 -Slice 4 ( 112 a - 112 e ). These slices overlay the levels to the extent that the address spaces described below overlap. A controller 140 manages the operation. In the exemplary embodiment, the controller includes a map or equation representing the index, for example, as graphically depicted in FIGS. 2A-B . By storing the index, the invention can operate deterministically in a highly efficient manner with low latency.
The invention employs a pipelined data path approach to processing the data. In each level, the data address is compared to the available address spaces and is forwarded to the slice with the matching address space. Each of the levels contains four decisions, but more or less decisions could be implemented. Consequently, the pipelined approach that enables a new output every four cycles. The pipelined architecture supports multiple searches simultaneously. The deterministic aspect of the index provides the invention to infer the next level from the index of the current level and the result of the compare operation. This avoids having to store the index in the memory, thereby reducing implementation size.
Each of the slices has a predetermined address space associated with the slice. The address space definitions can be stored locally or stored in external memory, and they are arbitrary (i.e. they don't need to be contiguous or in order). As the data proceeds through the levels, the address is compared to the address space for the next level slice and the controller directs the data based on the index. Since the exemplary embodiment employs a random access memory (RAM), the invention is more efficient than conventional prefix matching techniques that use ternary content addressable memory (TCAM). The invention can achieve a high degree of utilization with the benefits of low power and many stored addresses. In one aspect, the invention can achieve an optimal ratio of addresses to storage approaching 1:1, which is significantly better than conventional techniques.
The search is divided into multiple levels to utilize the pipeline. The number of entries in each level is calculated according to Table 1. A multiplier is chosen at each stage. This is used to tradeoff the number of routes to be supported to the number of accesses needed. For example, a multiplier of 15 means 4 internal accesses at the next level while a multiplier of 7 means 3 accesses.
When using internal memory only, the search is performed on the four slices as shown 112 a - 112 d . The database, which is a binary tree, is programmed into the four slices. Each level needs a maximum of four lookups. This allows the system to pipeline the lookups and perform the search linearly.
The fifth slice 112 e is used as a shadow copy for software to program the device. Insertions and deletions are performed by re-calculating the new database and programming it into the shadow slice. Then the original slice is replaced with the new slice. The original slice now becomes the shadow copy and may be reprogrammed or otherwise utilized as permitted by the controller 140 . The shadow slice can be reprogrammed or otherwise utilized simultaneously with operation of the active slices.
B. Operation
FIGS. 2A depicts an exemplary decision tree according to the invention. The boxes 222 and 224 a - 224 d represent levels in the tree. Each of the circles represents an address space that a new piece of data could be associated with. As the data moves down through the tree, the data is directed to matching address spaces. Likewise, FIG. 2B depicts how a level can be divided into an address space 0 A and an address space 0 B. The initial decision block 232 would cause data within the address space of 0 A (00000000-00111110) to be routed to the slice associated with reference 234 a and data within the address space of 0 B (0011111-11111111) to be routed to the slice associated with reference 234 b , which address space would cause data with the first four symbols of 1111 to be directed to the slice associated with the reference 234 b . This is how the controller directs the data to the slices in FIG. 1 . Since, the exemplary controller includes a map or equation representing the index, the controller can operate deterministically in a highly efficient manner with low latency. Note that the address spaces for references 236 a - 236 d are subsets of the address space for their respective parents. This binary tree is repeated for as many levels as desired when implementing the invention.
Referring to FIG. 2C , a flowchart with reference to FIG. 1 is useful for describing the functions. In step 252 , a piece of data having an associated address is retrieved. Step 254 performs four address matches in Level 0 ( 110 a ). Once Level 0 is finished with the data, step 256 utilizes the controller 140 to decide where to forward the data based on the data address and the address spaces associated with the next level for the appropriate slice ( 112 a - 112 e ). Step 258 , in Level 1 , then performs four additional address matches, similar to those performed in Level 0 and step 260 forwards the data to the next level for continued processing. These steps continue as shown until the data is delivered to an external device/memory in step 270 .
›DETAILED DESCRIPTION · 2 of 2
C. Memory Organization
As described above, the first four levels are performed using internal memories resident in the levels ( 110 a - 110 d ). However, there are additional techniques that can be implemented with the invention. For example, FIG. 3 depicts the processor 100 coupled to external memories 310 a - 310 b . The result of the internal search is to generate an address into the external memory. Two RLDRAMS ( 310 a - 310 b ) running at 400 MHz are used for external memory. The fifth slice in the internal memory is used as a shadow slice that can be reprogrammed on the fly for new updates or configurations. FIG. 4 depicts an embodiment detailing external memory organization. One aspect of the invention is advantageous since it provides the ability to extend the search to external memory thereby increasing the number of stored addresses.
D. Conclusion
Advantages of the invention include fast switch decisions and low switch latency.
Having disclosed exemplary embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the subject and spirit of the invention as defined by the following claims.
›Tables in the description — 1
| Level0 | Level1 | Level2 | Level3 | Level4 | Level5 | |
|---|---|---|---|---|---|---|
| Parameter | Internal | External | ||||
| Multiplier (number of accesses) | 15(4) | 15(4) | 7(3) | 7(3) | 7(3) | |
| Number of Entries | 15 | 240 | 3840 | 28672 | 229376 | 786432 |
| Cummulative Number of Worst Case | 128 | 2 K | 16 K | 128 K | 512 K | |
| Routes |
Claims as granted
18 claimsLog in to read the claims of this application.
Log in to unlockClassifications
7 codes- G06F9/44
- H04L12/56
- H04L45/00
- H04L12/28
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock