WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch    
United States Patent6185221   
Link to this pagehttp://www.wikipatents.com/6185221.html
Inventor(s)Aybay; Gunes (Sunnyvale, CA)
AbstractAn input-buffered multipoint switch having input channels and output channels includes multilevel request buffers, a data path multiplexer, and a scheduler. The switch has a distinct multilevel request buffer associated with each input channel and each request buffer has multiple request registers of a different request buffer priority. The request registers store data cell transfer requests that have been assigned quality of service (QoS) priorities, where the QoS priorities are related to packet source, destination, and/or application type. The multilevel request registers are linked in parallel to the scheduler to allow arbitration among requests of different input channels and different request buffer priority levels. The preferred arbitration process involves generating QoS priority-specific masks that reflect the output channels required by higher QoS priority requests and arbitrating among requests of the same QoS priority in QoS priority-specific multilevel schedulers. Sorting requests by QoS priority allows the switch to schedule a high throughput of packets while adhering to QoS requirements.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6185221
Method and apparatus for fair and efficient scheduling of variable-size
     data packets in an input-buffered multipoint switch - US Patent 6185221 Drawing
Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
Inventor     Aybay; Gunes (Sunnyvale, CA)
Owner/Assignee     Cabletron Systems, Inc. (Rochester, NH)
Patent assignment
All assignments
Publication Date     February 6, 2001
Application Number     09/188,431
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 9, 1998
US Classification     370/412 370/416 709/240 710/240
Int'l Classification    
Examiner     Pham; Chi H.
Assistant Examiner     Nguyen; Steven
Attorney/Law Firm     Wilson; Mark A. Law Offices of Mark A. Wilson
Address
Parent Case    
Priority Data    
USPTO Field of Search     370/411 370/412 370/413 370/414 370/415 370/416 370/419 370/428 370/429 370/397 370/399 370/461 370/462 370/465 370/395 710/39 710/40 710/44 710/49 710/50 710/111 710/112 710/113 710/119 710/120 710/241 710/242 710/243 710/244 709/240
Patent Tags     fair efficient scheduling variable-size data packets input-buffered multipoint switch
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5996019
Hauser

Nov,1999

[0 after 0 votes]
5956342
Manning

Sep,1999

[0 after 0 votes]
5923656
Duan

Jul,1999

[0 after 0 votes]
5689508
Lyles

Nov,1997

[0 after 0 votes]
5631908
Saxe

May,1997

[0 after 0 votes]
5590123
Lyles et al.

Dec,1996

[0 after 0 votes]
5561669
Lenney et al.

Oct,1996

[0 after 0 votes]
5517495
Lund et al.

May,1996

[0 after 0 votes]
5500858
McKeown

Mar,1996

[0 after 0 votes]
5471590
Melo et al.

Nov,1995

[0 after 0 votes]
5267235
Thacker

Nov,1993

[0 after 0 votes]
5255265
Eng et al.

Oct,1993

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An apparatus for scheduling packets in an input-buffered multipoint switch comprising:

a plurality of input channels;

a plurality of output channels;

multilevel request buffers, each multilevel request buffer being specific to one of said plurality of input channels, said multilevel request buffers having discrete buffer priority levels for storing requests having alternative quality of service (QoS) priorities, said requests having specific request buffer priorities that are determined by the discrete buffer priority level in which said requests are stored; and

scheduler means in communication with said multilevel request buffers for

indicating a transmission status for each of said input and output channels, said transmission status being indicative of channel availability,

arbitrating among selected requests which have an equal QoS priority and which are stored in any of said discrete buffer priority levels of said multilevel request buffers, said arbitrating being at least partially based upon a combination of said request buffer priorities and said transmission statuses of said input and output channels, and

issuing grants to said requests in a channel-by-channel sequence based upon said arbitrating among said selected requests having equal QoS priority.

2. The apparatus of claim 1 further comprising parallel links between each discrete buffer priority level of said multilevel request buffers and said scheduler means, said scheduler means being enabled to simultaneously access all of said discrete buffer priority levels of each said request buffer.

3. The apparatus of claim 2 further comprising additional parallel links between said multilevel request buffers and said scheduler means, wherein said additional parallel links carry QoS priority indicators that are related to said stored requests.

4. The apparatus of claim 1 wherein said scheduler means includes a mask generator circuit operationally connected to said multilevel request buffers to generate mask vectors that are indicative of each output channel that is requested at each of said alternative QoS priorities except the lowest QoS priority, each said mask vector being associated with one of said QoS priorities.

5. The apparatus of claim 4 wherein said scheduler means further includes QoS priority-specific mask comparator circuits operationally connected to said mask generator circuit and said multilevel request buffers to compare said mask vectors to associated requests.

6. The apparatus of claim 5 wherein said scheduler means further includes a plurality of QoS priority-specific scheduler circuits, each QoS priority-specific scheduler circuit being operationally connected to an associated output of said mask comparator circuit to generate a QoS priority-specific grant for a request having an available input channel and available requested output channels.

7. The apparatus of claim 6 wherein said scheduler means further includes QoS priority-specific priority encoder circuits operationally connected to said QoS priority-specific scheduler circuits to select a highest priority grant from all grants generated from said QoS priority-specific scheduler circuits for a specific channel and to transmit said selected highest priority grant to an input channel that corresponds to said selected highest priority request.

8. A method for scheduling transmissions of switching cells across an input-buffered network switch that connects a plurality of input channels to a plurality of output channels, each switching cell being associated with one of said plurality of input channels, said method including the steps of:

storing a first plurality of requests in a first request buffer that buffers requests related to a first input channel, each said request corresponding to one of said switching cells and having a request buffer priority and a quality of service (QoS) priority;

assigning request buffer priorities to each of said first plurality of requests ranging from highest request buffer priority to lowest request buffer priority;

storing a second plurality of requests in a second request buffer that buffers requests related to a second input channel, each said request corresponding to one of said switching cells and having a request buffer priority and a QoS priority;

assigning request buffer priorities to each of said second plurality of requests ranging from highest request buffer priority to lowest request buffer priority;

accessing each request of said first and second pluralities of requests in parallel such that requests of all said request buffer priorities are accessed simultaneously;

sorting said first and second pluralities of requests by QoS priority;

arbitrating among said accessed and QoS sorted requests based upon said request buffer priority, availability of said first and second input channels, and availability of requested output channels; and

issuing grants in response to said arbitration to said accessed and QoS sorted requests that have a highest request buffer priority and for which respective input channels and output channels are available.

9. The method of claim 8 further including a step of receiving a done signal that indicates the completion of a transmission of switching cells related to a single packet.

10. The method of claim 8 wherein said step of arbitrating includes a step of arbitrating requests one channel at a time in descending channel priority from a highest channel priority to a lowest channel priority.

11. The method of claim 8 wherein said step of arbitrating includes a sub-step of arbitrating all requests of a same QoS priority stored in a request buffer associated with a particular input channel in parallel.

12. The method of claim 11 wherein said step of arbitrating requests of the same QoS priority in parallel includes a step of executing said arbitrations in a fixed sequence with respect to said input channels.

13. The method of claim 11 wherein said step of arbitrating requests of the same QoS priority includes sub-steps of:

generating masks that represent all requests having a QoS priority that is equivalent to or higher than a designated QoS priority; and

comparing a mask for said designated QoS priority to a request having a lower QoS priority to determine availability of output channels required by said request.

14. The method of claim 11 further including the steps of:

identifying an input channel having a highest round-robin priority among said plurality of input channels for arbitration purposes; and

reserving requested output channels for a multicast request when said multicast request is associated with an input channel that has said highest round-robin priority among said plurality of input channels.

15. An apparatus for scheduling cells in an input-buffered multipoint switch having input channels and output channels, wherein said cells have been assigned a particular quality of service (QoS) priority and wherein requests identify desired output channels for corresponding cells, comprising:

a request buffer specific to each one of said input channels, each said request buffer having a plurality of register levels for storing requests of corresponding request buffer priority levels;

a QoS priority indicator buffer specific to each one of said input channels, each said QoS priority indicator buffer having a plurality of register levels that are directly related to said register levels of said request buffers for storing QoS priority indicators that correspond to said requests stored in said request buffers;

means, connected to said request buffers and said QoS priority indicator buffers, for sorting said requests by QoS priority;

means, connected to said means for sorting, for arbitrating among said sorted requests on a QoS priority basis and for issuing request grants to highest request buffer priority requests that have available input channels and available output channels;

a scheduler and first parallel data links between each register level of said request buffers and said means for sorting to provide said scheduler with simultaneous access to all of said requests stored in all of said request buffers; and

second parallel data links between each register level of said QoS priority indicator buffers and said means for sorting that provide said scheduler with simultaneous access to all of said QoS priority indicators stored in all of said QoS priority indicator buffers.

16. The apparatus of claim 15 further comprising a means for generating a mask vector that represents an aggregate of requested output channels for a minimum QoS priority level, said means for generating a mask vector being operatively connected to said request buffers.

17. The apparatus of claim 16 further comprising a means for performing parallel mask comparisons between said mask vector and requests from respective QoS priority levels for a particular input channel to indicate output channel conflicts between requests, said means for performing parallel mask comparisons being operatively connected to said means for generating said mask vector.

18. The apparatus of claim 17 further comprising a means, specific to each QoS priority, for performing request buffer priority-specific scheduling between said QoS priority sorted requests from respective request buffer priority levels, available input and output channels, and a round-robin channel priority, said means for performing request buffer priority-specific scheduling having three outputs per request buffer priority level, a request buffer priority-specific request grant, an updated input channel vector, and an updated output channel vector.

19. The apparatus of claim 18 further comprising a means for selecting which request buffer priority-specific grant has a highest priority among all request buffer priority-specific grants for a single input channel and for transmitting said selected request grant from said means for selecting.

20. An apparatus for scheduling packets in an input-buffered multipoint switch comprising:

a plurality of input channels;

a plurality of output channels;

multilevel request buffers, each multilevel request buffer being specific to one of said plurality of input channels, said multilevel request buffers having discrete levels for storing requests having alternative quality of service (QoS) priorities, said requests having specific request buffer priorities that relate to said discrete levels within said multilevel request buffers; and

scheduler means in communication with said multilevel request buffers for

indicating a transmission status for each of said input and output channels, said transmission status being indicative of channel availability,

arbitrating among selected requests which have an equal QoS priority and which are stored in any of said levels of said plurality of multilevel request buffers, said arbitrating being at least partially based upon a combination of said request buffer priorities and said transmission statuses of said input and output channels, and

issuing grants to said requests in a channel-by-channel sequence based upon said arbitrating among said selected requests having equal QoS priority;

said scheduler means including a mask generator circuit operationally connected to said multilevel request buffers to generate mask vectors that are indicative of each output channel that is requested at each of said alternative QoS priorities except the lowest QoS priority, each said mask vector being associated with one of said QoS priorities.

21. The apparatus of claim 20 wherein said scheduler means further includes QoS priority-specific mask comparator circuits operationally connected to said mask generator circuit and said multilevel request buffers to compare said mask vectors to associated requests.

22. The apparatus of claim 21 wherein said scheduler means further includes a plurality of QoS priority-specific scheduler circuits, each QoS priority-specific scheduler circuit being operationally connected to an associated output of said mask comparator circuit to generate a QoS priority-specific grant for a request having an available input channel and available requested output channels.

23. The apparatus of claim 22 wherein said scheduler means further includes QoS priority-specific priority encoder circuits operationally connected to said QoS priority-specific scheduler circuits to select a highest priority grant from all grants generated from said QoS priority-specific scheduler circuits for a specific channel and to transmit said selected highest priority grant to an input channel that corresponds to said selected highest priority request.
 Description Submit all comments and votes
 


TECHNICAL FIELD

The invention relates generally to the scheduling of packets in a high-bandwidth input-buffered multipoint switch, for instance as used in gigabit ethernet networks. More particularly, the invention relates to a non-blocking scheduler that utilizes a parallel multilevel arbitration method.

BACKGROUND OF THE INVENTION

Networks are widely used to transfer voice, video, and data between various network devices such as telephones, televisions, and computers. Data transmitted through a network is typically segmented into packets, and under some network protocols data is segmented into fixed-length cells. For example, Asynchronous Transfer Mode (ATM) protocol requires 53-byte cells, with 5 bytes of each cell designated for a header and 48 bytes of each cell designated for payload. Other network protocols, such as ethernet or Internet protocol, carry data in variable-size packets.

Switches are integral parts of most networks. Switches receive packets from input channels and direct the packets to the appropriate output channels of the switch. Typical switches have three components: a physical switch fabric to provide the connections from input channels to output channels, a scheduling mechanism to direct traffic when multiple packets arrive on different input channels destined for the same output channel, and a buffering or queuing mechanism at the switch input or output to accommodate traffic fluctuations without undue packet loss. FIG. 1 is a diagram of a prior art switch 10 that has four input channels 12, 14, 16 and 18 and four output channels 20, 22, 24 and 26. The switch has a serial input queue 28, 30, 32, and 36 for each input channel, a crossbar physical switch 38, and a crossbar scheduler 40. The crossbar scheduler receives a signal, referred to as a request, from an input queue. The request dictates the output channel or channels that will receive the queued packet. The scheduler arbitrates between competing requests and sends a signal, referred to as a grant, back to the input buffers that have been selected to deliver a packet.

In switches such as the switch 10 described in reference to FIG. 1, each input queue 28-36 provides requests to the scheduler 40, one at a time, on a first-in-first-out (FIFO) basis and the scheduler arbitrates among the four requests received from the four input queues, with a goal of maximizing utilization of the input channels 12-18 and output channels 20-26 of the switch. As a grant is issued to a particular input channel to access a target output channel or channels, a new request is accessible by the scheduler in place of the granted request.

A problem known as head-of-line (HOL) blocking is created when one of the requests at the head of a queue line is a request for an output channel that is not available. HOL blocking is common when a multicast request is made, because there is a lower probability that all of the output channels for the multicast request will be available immediately. When a request from a particular input channel is forced to wait until all output channels are available, all of the packets associated with the particular input channel are also forced to wait, thereby slowing the transfer of data from that input channel.

As one remedy for solving HOL blocking problems, parallel input queues have been implemented. Parallel input queues provide a separate FIFO queue for each output channel of the switch, with each queue providing a corresponding request to the scheduler. Referring to FIG. 2, an N input channel by N output channel switch requires N input queues 46 for each input channel, for a total of N.sup.2 input queues. With an N.sup.2 scaling factor, the number of input queues connected to the crossbar scheduler 50 may be very high. For example, in a 16.times.16 switch, 256 separate queues are required. In spite of the added complexity, the advantage that the parallel design provides is that, with respect to any one of the input channels, a series of requests for available output channels is not held up by a single request for in-use output channels.

A variety of arbitration techniques can be used with parallel input channels to provide an efficient throughput through a switch. For example, maximum matching algorithms are designed in an attempt to assign output channels to input channels in such a way that a maximum number of transfers occur simultaneously. However, under heavy load conditions, maximum matching algorithms can prevent some requests from being granted, creating a new blocking problem. For example, referring to FIG. 3, input channel 1 is represented as requesting a transfer of cells from its output-distributed queue 54 to output channel 1 only, while input channel 2 is requesting a transfer of cells from its output-distributed queue 56 to output channels 1 and 2. Under a maximum matching approach, input channel 1 transmits cells to output channel 1 and input channel 2 transmits cells to output channel 2. However, input channel 2 will be blocked from transferring cells destined for output channel 1, since this would require the cell transfer from input channel 1 to output channel 1 to stop, and as a result, only output channel 1 would be utilized. As shown in FIG. 4, sending cells from input channel 2 to output channel 1 causes input channel 1 and output channel 2 to remain idle and does not achieve maximum matching.

Arbitration methods developed to optimize performance of high speed switches utilizing parallel input queues are disclosed in U.S. Pat. No. 5,500,858, entitled "Method and Apparatus for Switching Cells in an Input-Queued Switch," issued to McKeown and in U.S. Pat. No. 5,517,495, entitled "Fair Prioritized Scheduling in an Input-Buffered Switch," issued to Lund et al. Although these arbitration approaches are effective for their intended purpose, they both require that an N.times.N switch have N.sup.2 distinct FIFO input queues. Since there are N.sup.2 distinct FIFO input queues, there will also be N.sup.2 requests delivered to the scheduler. As the number of input and output channels increases, the complexity of providing N.sup.2 input queues and sending N.sup.2 requests to the scheduler becomes costly and difficult to implement.

In addition to the problem of added complexity, the output-distributed queue architecture does not easily support multicast requests, which are more common in network protocols such as ethernet than in network protocols such as ATM. For example, in order to utilize the output-distributed architecture of FIG. 2 to satisfy a multicast request, the cell that is to be multicasted must either be replicated into all of the output channel queues that are indicated by the request or a separate multicast queue must be established in addition to the N.sup.2 queues already present.

A third concern is that output distributed queue architectures do not readily enable a switch to provide quality of service (QoS) guarantees for packet transfers across a switch. For example, in an enterprise network, there are many different packet flows having different sources, destinations, and packet protocols. Because of user-specific needs, some packet flows are deemed more critical to the enterprise than other packet flows and can be prioritized accordingly. For example, a packet flow related to a mission-critical application (i.e., SAP, People Soft, Baan, or Custom Client/Server applications) can be assigned a different QoS priority than HTTP-based Internet traffic. A QoS priority can then be related to specific forwarding rules or transfer rate limits across the network switch to provide different levels of service. In the queue arrangements of FIGS. 1 and 2, packets, or their related requests, are not differentiated by QoS priority and, as a result, a high priority packet is forwarded through the switch in the same manner as a lower priority packet. In, for example, an enterprise network environment, non-prioritized queue arrangements may mean that packets carrying time-critical video teleconferencing data are treated the same as packets carrying non-time-critical e-mail messages, thereby causing severe degradation in the video teleconferencing performance.

As a result of the shortcomings of conventional output-distributed queue architecture, what is needed is a method and apparatus that limit the number of input queues and the complexity of sending requests to a scheduler, while maintaining fair and efficient scheduling and providing QoS functionality.

SUMMARY OF THE INVENTION

A method and an apparatus for scheduling data packets in a multipoint switch utilize request buffers having multilevel request registers linked in parallel to a scheduler that arbitrates among requests based upon the location of the requests within the multilevel request buffers and based upon a quality of service (QoS) priority assigned to the requests in order to maximize data packet transfer through the switch, while adhering to QoS requirements. To arbitrate among requests based upon request buffer location and QoS priority, the scheduler sorts all of the available requests by QoS priority and issues grants on a QoS priority basis in a channel-by-channel arbitration process. Since there can be more than one request of the same QoS priority stored in a multilevel request buffer of a single channel, the location of a request stored within a multilevel request buffer, referred to as the request buffer priority, is used to award a grant among requests having the same QoS priority. To ensure that conflicting grants are not issued for requests of different QoS priorities, a mask generation and compare process is used to block conflicting requests of lower QoS priority from entering the grant process.

The preferred multipoint switch has sixteen input channels and sixteen output channels, with each input channel having a request buffer with four request registers. The four request registers have different request buffer priorities and the requests stored in the registers are scheduled at least partially based upon their request buffer priorities. The requests also have a QoS priority that is assigned to each request based upon the source, destination, and/or application of the corresponding data packet. There are four QoS priority designations, referred to as control, high, medium, and low and the QoS priority of a packet is unrelated to the request buffer priority of the same packet.

The sixteen request buffers are connected to a data path multiplexer and a scheduler. The four request registers from each of the sixteen request buffers along with four QoS priority registers are connected in parallel to the scheduler, such that the scheduler can simultaneously access all sixty-four of the available requests and identify their respective QoS priorities. The request buffers are filled from peripheral systems and prioritized based upon the age of the requests in the buffer, with the oldest request having the highest request buffer priority and the newest request having the lowest request buffer priority. Whenever a grant is issued in response to a request, the request buffer adjusts on a FIFO basis, thereby leaving a vacant request register at the lowest request buffer priority. The vacant request register then receives a new request that takes on the lowest request buffer priority.

The scheduler of the preferred embodiment includes a mask generator unit, four QoS priority-specific request multiplexing units (RMUs), four QoS priority-specific multilevel schedulers (MLSs), a global resource manager, and a frame counter. The mask generator unit is a circuit that generates three QoS priority-specific masks that are utilized in the scheduling process to indicate which output channels are identified by requests having a QoS priority level higher than a designated minimum QoS priority level. There are only three masks since there can be no higher QoS priority level if the highest priority (i.e., control QoS priority) is the "designated minimum QoS priority level." In the preferred 16.times.16 switch, QoS priority-specific masks consist of 16-bit vectors where each bit is dedicated to one of the output channels. The three QoS priority-specific masks are generated from the control, high, and medium priority requests. Specifically, the control priority mask is a 16-bit vector that represents all outputs which are being requested by the pending control priority requests, the high priority mask is a 16-bit vector that represents all outputs that are being requested by the pending control priority requests and the pending high priority requests, and the medium priority mask is a 16-bit vector that represents all outputs that are being requested by the combination of pending control priority requests, pending high priority requests, and pending medium priority requests.

The four QoS priority-specific RMUs are circuits that sort all of the incoming requests based on QoS priority and then compare the sorted requests to the QoS priority-specific masks. For each input channel, the priority-specific RMUs output to the MLSs as many as four requests (one for each of the four request buffer priorities). In operation, the RMU for a particular QoS priority cycles through the requests for each channel and sorts out any requests that are in the particular QoS priority. If a channel, for example channel 0, has any of the QoS priority requests active in the request buffer registers, then the requests will be forwarded through the RMU. In the case of the high, medium, and low priority RMUs, the forwarded requests are sent through mask compare units. However, in the case of the control priority RMU, mask compare units are not necessary because there are no higher priority requests that need to be masked out of the MLSs. In the mask compare process, requests from a specific QoS priority are compared to a mask that represents all requests of higher QoS priority. For example, the high priority requests are compared to the control priority mask to block high priority requests that conflict with pending control priority requests. The mask compare process prevents conflicting lower priority requests from entering the MLSs and guarantees that each input only receives a single grant in one arbitration cycle and that each output is allocated to only one input. Because the control priority is the highest QoS priority, no masking process is required in the control priority RMU. Once the mask compare process is complete within each RMU, any requests from the four request buffer priority levels that have not been masked out are forwarded to the respective QoS priority-specific MLS.

The four QoS priority-specific MLSs are arranged to receive QoS priority-sorted and masked (except for the control priority) requests from the RMUs. The MLSs utilize a strict request buffer priority scheme to arbitrate among requests of the same QoS priority and from the same channel. In addition to the strict request buffer priority scheme, the MLSs utilize a round-robin scheme to arbitrate among requests of the same QoS priority but different channels. To facilitate scheduling on a request buffer priority basis, each QoS priority-specific MLS includes four 16-stage round-robin schedulers that correspond to the four request buffer priorities. In operation, the round-robin schedulers receive request buffer prioritized requests from the RMUs for a single QoS priority and a single channel and then compare input and output vectors to the requesting channel and to the request vector to determine if a grant can be issued. Any grants issued from the round-robin schedulers for a particular QoS priority are forwarded to a QoS priority-specific priority encoder unit.

The QoS priority-specific priority encoder units within each MLS are the circuits that are responsible for implementing the request buffer priority scheme. When there are one or more possible grants transmitted to a priority encoder unit from the four round-robin schedulers within an MLS, the priority encoder unit picks the grant corresponding to the request with the highest request buffer priority and passes the QoS priority-specific grant on to the requesting channel.

In order to ensure that conflicting grants are not issued within each MLS, a local resource manager is located within each MLS. Each local resource manager receives updated input and output vectors from a global resource manager at the start of each arbitration cycle. Each time a grant is issued within a particular MLS, the input vector and output vector within the MLS are updated appropriately by the local resource manager. Upon completion of an arbitration cycle, updated QoS priority-specific input vectors and output vectors are sent from each local resource manager to the global resource manager.

The global resource manager is responsible for maintaining the status of global input and output vectors within the scheduler. As stated, the global resource manager receives updated input and output vectors from each MLS at the completion of each arbitration cycle. Upon receiving the updated QoS priority-specific input and output vectors, the global resource manager aggregates all of the priority-specific vectors to create updated global input and output vectors. The updated global input and output vectors are then fed back to the local resource managers before the next arbitration cycle.

Round-robin managers located within each of the priority-specific MLSs promote fairness between requests of the same QoS priority level but of different channels. Under the round-robin scheme, a particular channel is initially designated as having the highest round-robin priority and when the high priority channel receives a grant the high round-robin priority designation is shifted to the next channel. Note that round-robin priority is relevant to the channel priority order inside the four round-robin schedulers of each MLS and is different from the request buffer priority and the QoS priority related to each request. Round-robin priority is maintained independently by each MLS and requests are processed between channels in round-robin priority such that the requests from channels with higher round-robin priority are granted access to output channels before requests from lower round-robin priority channels.

The frame counter within the scheduler provides timing signals in the form of clock signals and framing pulses to the MLSs. The timing signals provided by the frame counter ensure that the four QoS priority-specific arbitration processes are synchronized.

In the operation of one arbitration cycle, the scheduler first generates three QoS priority-specific masks. Next, the sixty-four requests are sorted and processed by four QoS priority-specific request multiplexer/multilevel scheduler combinations. Each request multiplexer/multilevel scheduler combination processes the requests on a channel-by-channel basis over sixteen clocks, with each combination maintaining its own round-robin channel priority. Grants are issued from each QoS priority-specific multilevel scheduler and channel conflicts between grants are prevented by the mask compare process that is performed in the request multiplexers.

An advantage of the invention is that the sixteen request buffers with four request registers per buffer utilized in a 16.times.16 switch are significantly less complex than the 256 queues required for a 16.times.16 switch using a conventional output-distributed scheduling architecture. In addition, the multilevel request buffers eliminate the HOL blocking problem because the scheduler has simultaneous and in-parallel access to more than one request for each input channel. Further, by dividing the scheduler into QoS priority-specific scheduling modules, QoS requirements can be implemented in a high volume non-blocking switch circuit.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a prior art switch that has four input channels and four output channels.

FIG. 2 is a prior art N input channel by N output channel switch with N.sup.2 output-distributed input queues.

FIG. 3 is a depiction of the transferring of cells from output-distributed input queues to output channels where maximum matching between input and output channels is achieved using prior art techniques.

FIG. 4 is a depiction of the transferring of cells from output-distributed input queues to output channels where maximum matching between input and output channels is not achieved using the prior art techniques.

FIG. 5 is a diagram of the switch architecture in accordance with the present invention.

FIG. 6 is a diagram of a data packet and an expanded switching cell that is transmitted through the switch fabric of FIG. 5.

FIG. 7 is an expanded diagram of a channel module as shown in FIG. 5.

FIG. 8 is a depiction of the crossbar of FIG. 5 that includes a more detailed representation of the connections that are made between the channel modules, the scheduler, and the data path multiplexer in accordance with the invention.

FIG. 9 is a logic diagram of the scheduler in accordance with the invention.

FIG. 10 is an expanded logic diagram of a request multiplexing unit and a multilevel scheduler as shown in FIG. 9 in accordance with the invention.

FIG. 11A is a depiction of the preferred arbitration process for the control QoS priority in accordance with the invention.

FIG. 11B is a depiction of the preferred arbitration process for the high QoS priority in accordance with the invention.

FIG. 11C is a depiction of the preferred arbitration process for the medium QoS priority in accordance with the invention.

FIG. 11D is a depiction of the preferred arbitration process for the low QoS priority in accordance with the invention.

FIG. 12 is a depiction of a preferred method of scheduling cells in accordance with the invention.

DETAILED DESCRIPTION

FIG. 5 is a depiction of the preferred architecture of a multipoint switch that is compatible with network protocols such as ethernet and TCP/IP. Although a 16-channel switch is shown for description purposes, the switch may have a different number of channels. The preferred architecture includes data links 22, 24, 26, and 28 connected to input/output (I/O) controllers 12, 14, 16, and 18. The I/O controllers are connected to channel-specific packet processing units 82, 84, 86, and 88, which are connected to channel modules 112, 114, 116, and 118 of a switch crossbar 60. The channel modules are connected separately to a data path multiplexer 130 and a scheduler 132. The preferred embodiment of the invention provides a method and apparatus for fair and efficient scheduling of variable-size data packets in an input buffered multi-channel switch.

The data links 22-28 connected to the I/O controllers 12-18 provide the medium for transferring packets of data into and out of the switch. In a preferred embodiment, the number of data links connected to each I/O controller is based on the bandwidth capacity of the data link. For example, the single and double data links 22, 24, and 26 represent 1,000 Megabits per second (Mbps) connections and the eight data links 28 represent 10 and/or 100 Mbps connections, although these connection bandwidths can be smaller or larger. In addition, the physical makeup of the data links is preferably twisted pair wires and/or single mode optical fiber, although other data links such as coaxial cable, multi-mode optical fiber, infrared, and/or radio frequency links are possible.

The I/O controllers 12-18 connected to the data links 22-28 and the packet processing units 82-88 provide the pack