High speed cache management unit for use in a bridge/router
DCFirst Claim
1. A method for selecting an output port eligible to be used for transmission of a frame received at a computer network device, wherein said computer network device has at least one input port and a plurality of output ports and said received frame has a source address and a received destination address, said method comprising the steps of:
- receiving said frame at one of said at least one input port of said computer network device;
parsing said received destination address from said received frame;
processing said received destination address with a code generator to generate a coded address;
comparing said coded address to a value associated with a row within a cache;
in the event of a match between said coded address and said value associated with said row, comparing said received destination address with a cached destination address associated with a first entry in said row;
in the event of a match between said received destination address and said cached destination address associated with said first entry, reading a port mask associated with said first entry to identify at least one port from said plurality of output ports which is eligible for transmission of said received frame.
7 Assignments
Litigations
1 Petition
Accused Products
Abstract
A method and cache management for a bridge or bridge/router providing high-speed, flexible address cache management. The unit maintains a network address cache and an age table, searches the cache for layer 2 and layer 3 addresses from received frame headers, and returns address search results. The unit includes an interface permitting processor manipulation of the cache and age table, and supports a 4-way set associative cache to store the network addresses. A plurality of functions implemented in hardware enables software manipulation of the associated cache. Four cache operating modes are selectable. The unit can identify and select destination ports within a Load Balanced Port Group for frame forwarding. The unit utilizes Virtual LAN identification in conjunction with a MAC address for lookup in the cache. A cyclic redundancy code for each address to be looked up in the cache is used as an index into the cache. If a cache thrash rate exceeds a predetermined threshold, CRC table values can be rewritten. Four time-sliced cache lookup units are provided, each consisting of a cache lookup controller for comparing a received network address to an address retrieved from an identified cache set.
149 Citations
26 Claims
-
1. A method for selecting an output port eligible to be used for transmission of a frame received at a computer network device, wherein said computer network device has at least one input port and a plurality of output ports and said received frame has a source address and a received destination address, said method comprising the steps of:
-
receiving said frame at one of said at least one input port of said computer network device; parsing said received destination address from said received frame; processing said received destination address with a code generator to generate a coded address; comparing said coded address to a value associated with a row within a cache; in the event of a match between said coded address and said value associated with said row, comparing said received destination address with a cached destination address associated with a first entry in said row; in the event of a match between said received destination address and said cached destination address associated with said first entry, reading a port mask associated with said first entry to identify at least one port from said plurality of output ports which is eligible for transmission of said received frame.
-
-
2. A method of forwarding a data unit through a network element having a cache comprised of plural rows, each having plural respective entries, the method comprising the steps of:
-
receiving said data unit at said network element; parsing said data unit for address information; encoding said received address information; using said received, encoded address information to identify one of said cache rows; retrieving first address information from a first entry of said identified row; comparing said retrieved first address information with said received address information; retrieving second address information from said first entry of said identified row if said comparison of said retrieved first address information and said received address information yields a first result; and using said retrieved second address information for forwarding said data unit. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
8. A cache management unit of a data unit forwarding network device, comprising:
-
an input register for receiving data unit header information including received source and destination address; a cyclic redundancy code (CRC) generator in communication with said input register for executing a CRC algorithm on each of said received source and destination addresses from said input register to form respective CRC encoded addresses; an input packetizer in communication with said CRC generator and paid input register for formatting said CRC encoded addresses and for receiving said received source and destination addresses from said input register; a cache lookup unit and an associated cache in communication with said input packetizer for searching said cache with said formatted CRC encoded addresses; an output packetizer in communication with said cache lookup unit for receiving and formatting retrieved source and destination address information from said cache; and an output register in communication with said output packetizer for receiving said formatted retrieved source and destination address information. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A network device for selectively forwarding a received data unit, comprising
a data unit header processor for receiving said data unit and for processing header data associated with said received data unit; -
a cache having plural rows, each of said rows having plural entries, wherein each of said entries has an address and is comprised of a first value and a second value; a cache management unit associated with said cache and in communication with said data unit header processor; and a data unit forwarding engine, in communication with said cache management unit and said data unit header processor, for dispatching said data unit in response to data unit characterizing information from said data unit header processor and said cache management unit, wherein said cache management unit is adapted for receiving said header data from said data unit header processor, for using said header data as said cache address to identify a cache entry, to retrieve cache data associated with said cache entry, and for providing said cache data to said data unit forwarding engine as part of said data unit characterizing information. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification