IP Library Granted Patent US 6,996,107
Granted Patent B2
US 6,996,107 · App. 09/969,809 · Granted Feb 7, 2006

Packet shaping on a fixed segment scheduler

Assignee: PMC-Sierra Ltd.
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 6,996,107
App. No.
09/969,809
Granted
Feb 7, 2006
Kind
B2
Abstract

Methods and devices for scheduling data transmission processing based on the size of the data transmission unit and a predetermined increment value. A scheduler has slots which represent specific amounts of time in which a queue of data transmission units to be processed is represented. An indicator determines which slot and thereby which queue is being examined. Each queue is assigned a specific increment value and each data transmission unit in a queue is assigned a count value based on the size of the data transmission unit. When a data transmission unit is at the head of the queue and is a candidate for processing, if the count value is greater than a predetermined value then the queue and thereby the data transmission unit at the head of the queue is rescheduled at a later time. This is effected by assigning the queue to a subsequent slot in the scheduler. The subsequent slot in the scheduler is determined based on the given increment value for that queue. The increment value is based on how many data transmission units are desired to be processed within a given amount of time.

Claims (34)

1. A method of scheduling data transmission units for processing, the method comprising:

a) providing a scheduler having a plurality of slots, each slot representing a specific amount of time, the scheduler further having an indicator which indicates which slot is being examined, the indicator sequentially moving from one slot to another when the specific amount of time has elapsed;

b) providing at least one queue of data transmission units for processing, each queue being assigned an increment value based on a desired processing rate in portions of data transmission units per second for each queue, with all portions having a single predetermined fixed size, each data transmission unit being assigned a count value based on the size of the data transmission unit;

c) assigning each queue a specific slot in the scheduler; and

d) when the indicator encounters a queue in a slot in the scheduler, executing the following steps:

d1) determining the increment value for the queue;

d2) determining the count value assigned to a data transmission unit at a head of the queue; and either

d3) if the count value of the data transmission unit is greater than a predetermined value, decrementing the count value, and reassigning the queue to another subsequent slot in the scheduler based on the count value of the data transmission unit and on the increment value for the queue; or

d4) if the count value of the data transmission unit is equal to the predetermined value, processing the data transmission unit and removing it from the queue.

2. A method as in claim 1 wherein the count value in step b) is found by determining how many portions of a fixed size a data transmission unit may be divided into and reducing a number of those portions by one such that if a data transmission unit can be divided into x portions, the count value assigned will be x−1, x being a positive integer.

3. A method as in claim 1 wherein the increment value for a queue is determined by the formula

INC

=

1

D

×

r

where

INC is the increment value;

D is the specific amount of time; and

r is the desired processing rate in portions of data transmission units per second.

4. A method of scheduling processing of data transmission elements using a scheduler having slots, each slot having a location and each slot representing a fixed amount of processing time, the method comprising:

a) choosing a slot in the scheduler;

b) determining if the slot has a data transmission unit assigned;

c) if the slot has a data transmission unit assigned, executing the following steps:

c1) retrieving a count value for the data transmission unit;

c2) if the count value is greater than a predetermined value, reassigning the data transmission unit to a subsequent slot in the scheduler and decrementing the count value, the location of the subsequent slot being determined by an increment value associated with a specific service level for the data transmission unit; and

c3) if the count value is equal to or less than the predetermined value, processing the data transmission unit;

d) choosing a next slot in the scheduler and repeating steps b)–d).

5. A method as in claim 4 wherein the location of the subsequent slot is x slots from a current slot, x being a number equal to the increment value.

6. A method as in claim 4 wherein the count value is determined by the following process:

c1-1) determining the size of the data transmission unit;

c1-2) dividing the size by a specific fixed value and rounding up a result to a nearest larger integer value; and

c1-3) subtracting one from the nearest larger integer value to arrive at the count value, wherein the specific fixed value corresponds to a desired predetermined size of data transmission unit.

Assignments (2)
CHANGE OF NAME Recorded Mar 22, 2016
From: PMC-SIERRA LTD.
To: MICROSEMI STORAGE SOLUTIONS LTD.
Reel/Frame 038401/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2003
From: JANOSKA, MARK WILLIAM
To: PMC-SIERRA LTD.
Reel/Frame 014013/0949 →
Continuity (2)
Provisional Application 6023803700 · Oct 6, 2000
Related Publication 20030072313A1 · Apr 17, 2003