IP Library › Granted Patent US 8,976,802
Granted Patent B2
US 8,976,802 · App. 13/840,085 · Granted Mar 10, 2015

Prediction-based switch allocator

Inventors: Pranay Koka (Austin, TX); Herbert D. Schwetman, Jr. (Austin, TX); Syed Ali Raza Jafri (West Lafayette, IN)
Assignee: Oracle International Corporation
H04L47/6205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,976,802
App. No.
13/840,085
Granted
Mar 10, 2015
Kind
B2
Abstract

An arbitration technique for determining mappings for a switch is described. During a given arbitration decision cycle, an arbitration mechanism maintains, until expiration, a set of mappings from a subset of the input ports to a subset of the output ports of the switch. This set of mappings was determined during an arbitration decision cycle up to K cycles preceding the given arbitration decision cycle. Because the set of mappings are maintained, it is easier for the arbitration mechanism to determine mappings from a remainder of the input ports to the remainder of the output ports without collisions.

Claims (40)

1. An allocation circuit for a switch having N input ports and M output ports, comprising an arbitration mechanism, wherein, during a given arbitration decision cycle, the arbitration mechanism is configured to:

maintain, until expiration, a set of mappings from a subset of the N input ports to a subset of the M output ports, wherein the set of mappings were determined during an arbitration decision cycle up to K cycles preceding the given arbitration decision cycle, based on requests for the subset of the M output ports in flits associated with packets at the subset of the N input ports; and

match other flits associated with other packets at a remainder of the N input ports which include requests to a remainder of the M output ports so that the remainder of the N input ports is mapped to the remainder of the M output ports, wherein the matching involves an arbitration technique and a solution space that is smaller than the N input ports and the M output ports.

2. The allocation circuit of claim 1 , wherein K is selected from the group including: 1, 2, 4 and 8.

3. The allocation circuit of claim 1 , wherein the arbitration mechanism is implemented using a pipeline.

4. The allocation circuit of claim 1 , wherein the arbitration mechanism comprises:

a set of N input arbiters associated with the N input ports; and

a set of M output arbiters associated with the M output ports, wherein each input arbiter in the set of N input arbiters has a set of P requesting queues corresponding to the set of M output arbiters for the flit and the other flits; and

wherein, during the given arbitration decision cycle, the arbitration mechanism is configured to:

determine a single flit from a group of the P requesting queues associated with the remainder of the M output ports for each of a group of the N input arbiters associated with the remainder of the N input ports; and

select a single request from the other flits for each of a group of the M output arbiters associated with the remainder of the M output ports so that the remainder of the N input ports is mapped to the remainder of the M output ports.

5. The allocation circuit of claim 4 , wherein the single request from the other flits for each of the group of the M output arbiters is selected using a round-robin technique.

6. The allocation circuit of claim 4 , wherein the single flit from the group of the P requesting queues is determined using a round-robin technique.

7. The allocation circuit of claim 1 , wherein the arbitration mechanism includes multiple queues corresponding to the M output ports.

8. The allocation circuit of claim 1 , wherein the arbitration mechanism includes virtual output queues corresponding to the M output ports.

9. The allocation circuit of claim 1 , wherein flits associated with a given packet include requests for a given one of the M output ports.

10. The allocation circuit of claim 1 , wherein if, for a given one of the maintained mappings between a given input port and a given output port during the given arbitration decision cycle, there is not another flit at the given input port requesting the given output port, the arbitration mechanism is configured to provide an empty flit to the given output port.

11. The allocation circuit of claim 1 , wherein if, for a given one of the maintained mappings between a given input port and a given output port during the given arbitration decision cycle, there is not another flit at the given input port requesting the given output port, the arbitration mechanism is configured to remove the mapping from the given input port to the given output port from the set of mappings.

12. A switch to selectively couple input ports to output ports, comprising:

N input ports;

M output ports;

a switching mechanism configured to selectively couple the N input ports to the M output ports based on mappings provided by an arbitration mechanism; and

the arbitration mechanism, wherein, during a given arbitration decision cycle, the arbitration mechanism is configured to:

maintain, until expiration, a set of mappings from a subset of the N input ports to a subset of the M output ports, wherein the set of mappings were determined during an arbitration decision cycle up to K cycles preceding the given arbitration decision cycle, based on requests for the subset of the M output ports in flits associated with packets at the subset of the N input ports; and

match other flits associated with other packets at a remainder of the N input ports which include requests to a remainder of the M output ports so that the remainder of the N input ports is mapped to the remainder of the M output ports, wherein the matching involves an arbitration technique and a solution space that is smaller than the N input ports and the M output ports.

13. The switch of claim 12 , wherein K is selected from the group including: 1, 2, 4 and 8.

14. The switch of claim 12 , wherein the arbitration mechanism comprises:

a set of N input arbiters associated with the N input ports; and

a set of M output arbiters associated with the M output ports, wherein each input arbiter in the set of N input arbiters has a set of P requesting queues corresponding to the set of M output arbiters for the flit and the other flits; and

wherein, during the given arbitration decision cycle, the arbitration mechanism is configured to:

determine a single flit from a group of the P requesting queues associated with the remainder of the M output ports for each of a group of the N input arbiters associated with the remainder of the N input ports; and

select a single request from the other flits for each of a group of the M output arbiters associated with the remainder of the M output ports so that the remainder of the N input ports is mapped to the remainder of the M output ports.

15. The switch of claim 14 , wherein the single request from the other flits for each of the group of the M output arbiters is selected using a round-robin technique.

16. The switch of claim 14 , wherein the single flit from the group of the P requesting queues is determined using a round-robin technique.

17. The switch of claim 12 , wherein the arbitration mechanism includes one of: multiple queues corresponding to the M output ports; and virtual output queues corresponding to the M output ports.

18. The switch of claim 12 , wherein if, for a given one of the maintained mappings between a given input port and a given output port during the given arbitration decision cycle, there is not another flit at the given input port requesting the given output port, the arbitration mechanism is configured to provide an empty flit to the given output port.

19. The switch of claim 12 , wherein if, for a given one of the maintained mappings between a given input port and a given output port during the given arbitration decision cycle, there is not another flit at the given input port requesting the given output port, the arbitration mechanism is configured to remove the mapping from the given input port to the given output port from the set of mappings.

20. A method for determining mappings for a switch having N input ports and M output ports, wherein, during a given arbitration decision cycle, the method comprises:

maintaining, until expiration, a set of mappings from a subset of the N input ports to a subset of the M output ports, wherein the set of mappings were determined during an arbitration decision cycle up to K cycles preceding the given arbitration decision cycle, based on requests for the subset of the M output ports in flits associated with packets at the subset of the N input ports; and

matching other flits associated with other packets at a remainder of the N input ports which include requests to a remainder of the M output ports so that the remainder of the N input ports is mapped to the remainder of the M output ports, wherein the matching involves an arbitration technique and a solution space that is smaller than the N input ports and the M output ports.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: KOKA, PRANAY; SCHWETMAN, HERBERT D., JR.; JAFRI, SYED ALI RAZA
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 030434/0046 →
Continuity (1)
Related Publication 20140269751A1 · Sep 18, 2014