IP Library Granted Patent US 9,705,633
Granted Patent B2
US 9,705,633 · App. 14/518,622 · Granted Jul 11, 2017

System and method for packet scheduling

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 9,705,633
App. No.
14/518,622
Granted
Jul 11, 2017
Kind
B2
Abstract

The present disclosure is directed towards a method for scheduling data packets in a multi-channel packet processing environment. The method may include receiving one or more data packets associated with an incoming signal and inserting the one or more data packets into a queue. The method may further include monitoring a time delay associated with each of the one or more data packets, wherein the time delay indicates a difference between packet arrival and packet departure times. The method may also include sorting the time delay results based upon an increasing order of time delay and determining a total number of data packets associated with each of a plurality of channels. The method may also include scheduling a data packet for processing based upon, at least in part, at least one of the sorted time delay results and the total number of data packets associated with each channel.

Claims (34)

1. A method for non-preemptive scheduling of data packets in a multi-channel packet processing environment comprising:

receiving, at a processor, one or more data packets associated with an incoming signal, wherein the one or more data packets are associated with a periodic input stream;

inserting, via a first input thread, the one or more data packets into a queue;

monitoring, via a time update thread, a time delay associated with each of the one or more data packets, wherein the time delay indicates a difference between packet arrival and packet departure times;

sorting the time delay results based upon an increasing order of time delay;

determining a total number of data packets associated with each of a plurality of channels; and

scheduling, via a processing thread, a data packet for processing based upon, at least in part, at least one of the sorted time delay results and the total number of data packets associated with each channel, wherein scheduling includes performing a shortest job first (“SJF”) scheduling decision, wherein scheduling is based upon, at least in part, identifying a data packet that requires a minimum amount of time to process and that causes a minimum delay among the remaining data packets.

2. The method of claim 1 , wherein scheduling is based upon, at least in part, both the sorted time delay results and the total number of data packets associated with each channel.

3. The method of claim 1 , further comprising:

processing one data packet per time period for each of the plurality of channels.

4. The method of claim 1 , further comprising:

determining if a time constraint has been met prior to processing a packet on a channel.

5. The method of claim 1 , wherein scheduling a data packet for processing is non-preemptive and runs on a single thread.

6. The method of claim 1 , wherein the incoming signal is at least one of an audio signal and a video signal.

7. A system for non-preemptive scheduling of data packets in a multi-channel packet processing environment comprising:

a computing device including one or more processors configured to receive one or more data packets associated with an incoming signal, wherein the one or more data packets are associated with a periodic input stream, the one or more processors further configured to insert, via a first input thread, the one or more data packets into a queue, the one or more processors further configured to monitor, via a time update thread, a time delay associated with each of the one or more data packets, wherein the time delay indicates a difference between packet arrival and packet departure times, the one or more processors configured to sort the time delay results based upon an increasing order of time delay and determine a total number of data packets associated with each of a plurality of channels, the one or more processors further configured to schedule, via a processing thread, a data packet for processing based upon, at least in part, at least one of the sorted time delay results and the total number of data packets associated with each channel, wherein scheduling includes performing a shortest job first (“SJF”) scheduling decision, wherein scheduling is based upon, at least in part, identifying a data packet that requires a minimum amount of time to process and that causes a minimum delay among the remaining data packets.

8. The system of claim 7 , wherein scheduling is based upon, at least in part, both the sorted time delay results and the total number of data packets associated with each channel.

9. The system of claim 7 , further comprising:

processing one data packet per time period for each of the plurality of channels.

10. The system of claim 7 , further comprising:

determining if a time constraint has been met prior to processing a packet on a channel.

11. The system of claim 7 , wherein scheduling a data packet for processing is non-preemptive and runs on a single thread.

12. The system of claim 7 , wherein the incoming signal is at least one of an audio signal and a video signal.

13. A method for non-preemptive scheduling of data packets in a multi-channel packet processing environment comprising:

receiving, at a processor, one or more data packets associated with an incoming signal, wherein the one or more data packets are associated with a periodic input stream;

inserting, via a first input thread, the one or more data packets into a queue;

monitoring, via a time update thread, a time delay associated with each of the one or more data packets, wherein the time delay indicates a difference between packet arrival and packet departure times;

sorting the time delay results based upon an increasing order of time delay;

determining a total number of data packets associated with each of a plurality of channels;

scheduling, via a processing thread, a data packet for processing based upon, at least in part, at least one of the sorted time delay results and the total number of data packets associated with each channel, wherein scheduling includes performing a shortest job first (“SJF”) scheduling decision, wherein scheduling is based upon, at least in part, identifying a data packet that requires a minimum amount of time to process and that causes a minimum delay among the remaining data packets; and

simultaneously processing multiple channels of the plurality of channels.

14. The method of claim 13 , wherein each of the multiple channels includes a distinct packetization interval.

15. The method of claim 13 , wherein the received data packets are internet protocol (“IP”) data packets and the processor is further configured to output processed output IP data packets after scheduling.

16. The method of claim 13 , wherein the processing environment is configured to operate in accordance with a G.711 standard.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: NUANCE COMMUNICATIONS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065578/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: GODAVARTI, MAHESH; PILLI, SRIDHAR; PANIGRAHI, BISWARANJAN
To: NUANCE COMMUNICATIONS, INC.
Reel/Frame 034655/0283 →