Pooled receive and transmit queues to access a shared bus in a multi-port switch asic
First Claim
1. A multi-port switching device adapted to transfer and receive frames to and from a bus of a network switch having a plurality of ports, the switching device comprising:
- a plurality of decode logic units for decoding header information associated with the frames;
state machine circuitry configured as a plurality of resources for processing the frames; and
intermediate priority logic connecting the decode logic units and the state machine resources, the intermediate priority logic cooperating with the decode logic units and state machine resources to fairly and orderly allocate the frames among the state machine resources.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-port switching device architecture decouples decode logic circuitry of each port of a network switch from its respective state machine logic circuitry and organizes the state machine logic as pools of transmit/receive engine resources that are shared by each of the decode logic circuits. Intermediate priority logic of the switching device cooperates with the decode logic and pooled resources to allocate frames among available resources in accordance with predetermined ordering and fairness policies. These policies prevent misordering of frames from a single source while ensuring that all ports in the device are serviced fairly.
-
Citations
20 Claims
-
1. A multi-port switching device adapted to transfer and receive frames to and from a bus of a network switch having a plurality of ports, the switching device comprising:
-
a plurality of decode logic units for decoding header information associated with the frames;
state machine circuitry configured as a plurality of resources for processing the frames; and
intermediate priority logic connecting the decode logic units and the state machine resources, the intermediate priority logic cooperating with the decode logic units and state machine resources to fairly and orderly allocate the frames among the state machine resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for transferring and receiving frames to and from a bus of a network switch having a plurality of ports, the method comprising the steps of:
-
decoding header information associated with the frames using a plurality of decode logic units;
processing the frames with state machine circuitry configured as a plurality of resources; and
connecting the decode logic units and the state machine resources with intermediate priority logic, the intermediate priority logic cooperating with the decode logic units and state machine resources to fairly and orderly allocate the frames among the state machine resources. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
processing one outbound frame at a time at each receive engine; and
storing the processed frame in a memory.
-
-
16. The method of claim 15 wherein the step of organizing further comprises the steps of configuring (i) one of the pooled receive engines to receive store-and-forward frames and (ii) the remaining pooled receive engines to receive cut-through frames.
-
17. The method of claim 16 further comprising the step of, wherein the memory is a frame memory, tailoring bandwidth requirements of the pooled receive engines to a total available bandwidth of the frame memory.
-
18. The method of claim 13 further comprising the step of allocating the frames among available resources in accordance with predetermined ordering and fairness policies of the intermediate priority logic.
-
19. The method of claim 18 further comprising the steps of, wherein the ordering policy involves utilization of the resources and is source-based,
processing a first frame forwarded from a source port by a state machine resource; - and
accepting another frame from that source at another state machine resource only when the first frame is completely processed.
- and
-
20. The method of claim 18 further comprising the step of, wherein the fairness policy comprises a round-robin prioritization involving the decode logic units that is port-based, preventing a particular port from monopolizing the resources.
Specification