IP Library Granted Patent US 7,167,485
Granted Patent B2
US 7,167,485 · App. 10/022,628 · Granted Jan 23, 2007

Method and apparatus for scheduling packetized data flows in a calendar-based arbitration scheme

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 7,167,485
App. No.
10/022,628
Granted
Jan 23, 2007
Kind
B2
Abstract

An arbitration unit according to an embodiment of the present invention is disclosed. The arbitration unit includes an allocation unit that assigns a first number of slots in a frame to a first flow and a second number of slots in the frame to a second flow. The arbitration unit includes a scheduling unit that assigns first slot positions to the first number of slots in the frame and second slot positions to the second number of slots in the frame using a binary distribution tree.

Claims (46)

1. An arbitration unit, comprising:

an allocation unit to assign a first number of slots in a frame to a first flow and a second number of slots in the frame to a second flow; and

a scheduling unit to assign first slot positions to the first number of slots in the frame and second slot positions to the second number of slots in the frame using a binary distribution tree, wherein the scheduling unit includes a plurality of modules, each including a divider, a module memory to identify an output previously assigned a first remainder, and an adder to add a second remainder to a number allocated to an output previously not assigned the first remainder.

2. The arbitration unit of claim 1 , wherein the first flow and the second flow are flows of discrete packets.

3. The arbitration unit of claim 1 , wherein the binary distribution tree generates a binary permission vector (BPV) for each of the first and second flows.

4. An arbitration unit comprising

an allocation unit to assign a first number of slots in a frame to a first flow and a second number of slots in the frame to a second flow; and

a scheduling unit to assign first slot positions to the first number of slots in the frame and second slot positions to the second number of slots in the frame using a binary distribution tree, wherein the scheduling unit comprises a plurality of modules, each of the plurality of module divides an allocation number by two between two outputs of the module, and assigns any remainder between one of the two outputs that had not most recently been assigned a previous remainder.

5. The arbitration unit of claim 1 , wherein the scheduling unit comprises a plurality of modules, each including:

a divider;

a module memory that is to identify an output which was previously assigned a first remainder; and

an adder that is capable to add a second remainder to a number allocated to an output that had previously not been assigned the first remainder.

6. The arbitration unit of claim 1 , wherein the divider divides a binary number by two by stripping off the lower-order bit of the binary number.

7. The arbitration unit of claim 1 , wherein the module memory comprises:

a toggle flip-flop;

a plurality of gates that perform an ANDing function; and an inverter.

8. An arbitration unit, comprising

an allocation wilt to assign a first number of slots in a frame to a first flow and a second number of slots in the frame to a second flow; and

a scheduling unit to assign first slot positions to the first number of slots in the frame and second slot positions to the second number of slots in the frame using a binary distribution tree, wherein the binary distribution tree includes P levels of modules, where 2 P is the maximum number of slots assignable to any frame.

9. The arbitration unit of claim 8 , wherein each module has two corresponding output.

10. The arbitration unit of claim 9 , wherein each module in the binary distribution tree comprises:

a divider that divides an input number evenly between outputs of a module; and a module memory that is to select which of the outputs of the module to transmit a remainder.

11. The arbitration unit of claim 10 , wherein the module memory is configured to alternate transmission of the remainder between the outputs of the module.

12. The arbitration unit of claim 8 , further comprising a vector processing unit that converts a plurality of binary permission vectors into a single integer permission vectors.

13. The arbitration unit of claim 12 , wherein the vector processing unit comprises a plurality of counter modules.

14. The arbitration unit of claim 8 , wherein a first level of scheduling module is to process an allocation number corresponding to a first flow while a second level of scheduling module is processing an allocation number corresponding to a second flow.

15. A method for generating binary permission vectors, comprising:

setting a common drift direction at bifurcation points in a binary distribution tree;

dividing allocation numbers associated with a first flow by two at the bifurcation points;

assigning quotients from the dividing of the allocation numbers associated with the first flow to branches at the bifurcation points;

assigning a remainder from the dividing of the allocation numbers associated with the first flow to a branch that corresponds to a drift direction at the bifurcation point where the remainder exists;

switching the drift direction at the bifurcation point where the remainder exists; and

reading outputs from the binary distribution tree as elements in a first binary permission vector.

16. The method of claim 15 , wherein setting the common drift direction at the bifurcation points in the binary distribution tree comprises assigning a leftward drift to scheduling modules on a scheduling unit.

17. The method of claim 15 , wherein dividing the allocation numbers associated with the first flow comprises dividing an allocation number of the first flow and dividing values generated from dividing the allocation number of the first flow.

18. The method of claim 15 , further comprising:

dividing allocation numbers associated with a second flow by two at the bifurcation points;

assigning quotients from the dividing of the allocation numbers associated with the second flow to the branches at the bifurcation points;

assigning a remainder from the dividing of the allocation numbers associated with the second flow to a branch that corresponds to a drift direction at the bifurcation point where the remainder exists;

switching the drift direction at the bifurcation point where the remainder exists; and

reading the outputs from the binary distribution tree as elements in a second binary permission vector.

19. The method of claim 18 , wherein the dividing of allocation numbers associated with the second flow is performed concurrently with the dividing of allocation numbers associated with the first flow.

20. The method of claim 18 , further comprising generating an integer permission vector from the first binary permission vector and the second binary permission vector.

21. An arbitration unit, comprising:

means for assigning a first number of slots in a frame to a first flow and a second number of slots in the frame to a second flow; and

means for assigning first slot positions to the first number of slots in the frame and second slot positions to the second number of slots in the frame using a binary distribution tree, wherein binary distribution tree includes P levels of modules, where 2 P is the maximum number of slots assignable to any frame.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 10/075,623 PREVIOUSLY RECORDED AT REEL: 034484 FRAME: 0740. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT FOR SECURITY --- PATENTS. Recorded Jun 14, 2017
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 042980/0834 →
ASSIGNMENT FOR SECURITY - - PATENTS Recorded Nov 26, 2014
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 034484/0740 →
SECURITY AGREEMENT Recorded Dec 6, 2013
From: TELLABS OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031768/0155 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2001
From: HRABIK, TERRY J.; MAGILL, ROBERT B.; CHANDRAN, RAVI; BENSON, KENT D.
To: TELLABS OPERATIONS, INC.
Reel/Frame 012405/0635 →