Claims
- 1. A network switch for network communications, said network switch comprising:
a first data port interface, said first data port interface supporting a plurality of data ports transmitting and receiving data at a first data rate; a second data port interface, said second data port interface supporting a plurality of data ports transmitting and receiving data at a second data rate; a CPU interface, said CPU interface configured to communicate with a CPU; an internal memory, said internal memory communicating with said first data port interface and said at least one second data port interface; a memory management unit, said memory management unit including an external memory interface for communicating data from at least one of said first data port interface and said second data port interface and an external memory; and a communication channel, said communication channel for communicating data and messaging information between said first data port interface, said second data port interface, said internal memory, and said memory management unit, wherein said memory management unit directs data from one of said first data port and said second data port to one of said internal memory and said external memory interface according to a predetermined algorithm.
- 2. A network switch as recited in claim 1, wherein said memory management unit directs data to said internal memory and said external memory interface according to the predetermined algorithm wherein the internal memory and external memory interface results in a distributed hierarchical shared memory configuration, with a hierarchy between the internal memory and the external memory interface, and hierarchies within the internal memory.
- 3. A network switch as recited in claim 2, wherein said memory management unit dynamically allocates internal memory space to selected ports of said plurality of data ports in the first data port interface and in the second data port interface based upon traffic flow through the network switch.
- 4. A network switch as recited in claim 1, wherein said first data port interface includes a packet slicing unit for slicing variable length packets into a plurality of equal length cells, said packet slicing unit including a padding unit for including padding bits into a last cell of the plurality of equal length cells if the last cell does not include a sufficient number of bits to match a length of the equal length cells.
- 5. A network switch as recited in claim 1, wherein said communication channel comprises three communication channels.
- 6. A network switch as recited in claim 5, wherein said three communication channels include a first channel for communicating cell data between the plurality of data ports in the first data port interface, the plurality of data ports in the second data port interface, the internal memory, and the external memory interface, and a second channel, synchronously locked with the first channel, for communicating message information corresponding to the cell data on the first channel, and a third channel, independent from said first and second channel, for communicating sideband message information.
- 7. A network switch as recited in claim 1, wherein said first data port interface is an ethernet data port interface.
- 8. A network switch as recited in claim 1, wherein said second data port interface is a gigabit ethernet data port interface.
- 9. A network switch as recited in claim 1, wherein said first data port interface, said second data port interface, said CPU interface, said internal memory, said memory management unit, and said communication channel are integrated on a single application specific integrated circuit (ASIC) chip.
- 10. A network switch as recited in claim 1, wherein said internal memory is static random access memory (SRAM).
- 11. The network switch as recited in claim 1, wherein said external memory interface is configured to interface to external dynamic random access memory (DRAM).
- 12. A network switch as recited in claim 1, wherein said first data port interface, said second data port interface, said CPU interface, said internal memory, said memory management unit, and said communication channel are configured to perform layer two switching at wirespeed.
- 13. A network switch as recited in claim 1, wherein said at least one first data port interface, said at least one second data port interface, said CPU interface, said internal memory, said memory management unit, and said communication channel are configured to perform layer three switching at wirespeed.
- 14. A network switch as recited in claim 1, wherein said CPU interface is configured to provide communication between a remote CPU and the communication channel, wherein said remote CPU can program operations of the memory management unit while one of the first and second data port interfaces are receiving or transmitting data.
- 15. A network switch as recited in claim 14, wherein said CPU interface is configured to provide communication between the remote CPU and a sideband channel of the communication channel.
- 16. A network switch as recited in claim 1, said network switch including a plurality of semiconductor-implemented lookup tables therein, said plurality of lookup tables including address resolution lookup/layer three lookup, rules tables, and VLAN tables.
- 17. A network switch as recited in claim 16, wherein said first data port interface communicates table information with said second data port interface, such that incoming address information can be updated at a plurality of data port interfaces while the information is received at one data port interface.
- 18. A network switch as recited in claim 1, wherein said first data port interface includes an auto-negotiating unit for negotiating a maximum communication speed between a source data port and a destination data port.
- 19. A network switch as recited in claim 1, wherein said first data rate is a maximum of 100 Mbps.
- 20. A network switch as recited in claim 19, wherein said first data rate is a maximum of 10 Mbps.
- 21. A network switch as recited in claim 1, wherein said second data rate is a maximum of 1000 Mbps.
- 22. A network switch as recited in claim 16, wherein said first data port interface and said second data port interface share a common address lookup/layer three table, and a common VLAN table, and wherein each of the first data port interface and the second data port interface has a unique rules table associated therewith.
- 23. A network switch as recited in claim 1, further comprising a priority assignment unit for assigning a weighted priority value to untagged packets entering one of the first data port interface and the second data port interface.
- 24. A network switch as recited in claim 23, wherein said weighted priority is one of eight weighted priorities which are defined by a priority queue, said priority queue being provided in one of the first and second data port interfaces.
- 25. A network switch as recited in claim 23, wherein the priority assignment unit assigns priority based upon one of a source priority field or a destination priority field, said source priority field and said destination priority field being determined by a lookup table, said lookup table being dynamically configured based upon traffic flow.
- 26. A network switch as recited in claim 25, wherein said priority assignment unit assigns priority based upon the setting and unsetting of a priority bit in the lookup table entry for the packet.
- 27. A network switch as recited in claim 4, wherein said memory management unit includes an internal memory counting unit and an external memory counting unit, said internal memory counting unit keeping a running count of the number of cells in the internal memory, and the external memory counting unit keeping track of the number of cells sent to the external memory through the external memory interface.
- 28. A network switch as recited in claim 1, said system further comprising a priority assignment unit for assigning a weighted priority value to untagged packets entering one of the first data port interface and the second data port interface.
- 29. A network switch as recited in claim 28, wherein said weighted priority is one of eight weighted priorities which are defined by a priority queue, said priority queue being provided in one of the first and second data port interfaces.
- 30. A method of switching data in a communications network, said method comprising:
a) receiving an incoming data packet on a first data port; b) slicing said data packet into a plurality of equal length data cells; c) estimating a packet length as an estimated cell count based upon an incoming cell count and egress information; d) determining whether a cell count in an external memory is equal to zero; e) if said cell count in the external memory is equal to zero, said method further comprising determining whether the estimated cell count is greater than an admission low watermark for an internal memory; f) admitting the plurality of equal length cells representing the packet into the internal memory if the estimated cell count is below the admission low watermark, and if the estimated cell count is above the admission high watermark, the cell is sent to the external memory, and if the estimated cell count is above the admission low watermark but below the admission high watermark, performing a determination to determine whether to admit the plurality of equal length cells into internal or external memory, such that if sufficient internal memory is available, the plurality of equal length cells is admitted into the internal memory, and if sufficient memory is not available, routing the plurality of equal length cells representing the packet to the external memory; g) if it is determined in d) that the cell count external memory is not equal to zero, then the method comprises determining whether the estimated cell count is below an admission high watermark for said internal memory, and if the estimated cell count is above the admission high watermark for said internal memory, then determining whether the estimated cell count is below an external memory admission low watermark, and if so, then determining whether or not a cell count of the cells in the external memory is less than or equal to a reroute limit value; h) if the external memory cell count is less than or equal to the reroute limit value, then the estimated cell count is added to the external memory cell count, and it is then determined whether a sum of these counts is less than an estimated cell count low watermark, and if so, the plurality of equal length cells representing the packet is admitted to the internal memory, and if not, the plurality of equal length cells representing the packet is admitted to the external memory; i) if it is determined that the estimated cell count is less than the admission high watermark, the plurality of equal length cells representing the packet is admitted to the external memory; j) if it is determined that the estimated cell count is less than the external memory admission low watermark, the plurality of equal length cells representing the packet is admitted to the external memory; and k) if the cell count of the external memory is determined to be greater than the reroute limit value, admitting the plurality of equal length cells representing the packet into the external memory.
- 31. A method as recited in claim 30, said method further comprising applying a weighted priority value to untagged packets entering one of the first data port interface and the second data port interface.
- 32. A method as recited in claim 31, wherein said weighted priority is one of eight weighted priorities which are defined by a priority queue, said priority queue being provided in one of the first and second data port interfaces.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority of U.S. Provisional Patent Application Serial No. 60/092,220, filed on Jul. 8, 1998, and U.S. Provisional Application No. 60/095,972, filed on Aug. 10, 1998. The contents of these provisional applications is hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60092220 |
Jul 1998 |
US |
|
60095972 |
Aug 1998 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09343409 |
Jun 1999 |
US |
Child |
09985251 |
Nov 2001 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09985251 |
Nov 2001 |
US |
Child |
10100078 |
Mar 2002 |
US |