IP Library Granted Patent US 6,940,865
Granted Patent B2
US 6,940,865 · App. 09/925,978 · Granted Sep 6, 2005

System and method for interleaving frames with different priorities

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,940,865
App. No.
09/925,978
Granted
Sep 6, 2005
Kind
B2
Abstract

A method of queue management includes: adding entries having a first priority to a first software queue; adding entries having a second priority to a second software queue; reading entries from the first software queue to a physical queue; at a threshold time, flushing entries from the physical queue; after the act of flushing the physical queue, reading entries from the second software queue to the physical queue until a termination criterion is satisfied; after the termination criterion is satisfied, reading entries from the first software queue to the physical queue; and transmitting entries from the physical queue to a network.

Claims (119)

1. A method of queue management comprising:

adding entries having a first priority to a first software queue;

adding entries having a second priority to a second software queue;

reading entries from the first software queue to a physical queue;

at a threshold time, flushing entries from the physical queue;

after the act of flushing the physical queue, reading entries from the second software queue to the physical queue until a termination criterion is satisfied;

after the termination criterion is satisfied, reading entries from the first software queue to the physical queue; and

transmitting entries from the physical queue to a network.

2. A method as claimed in claim 1 , further comprising:

using a first head pointer in hardware to track a next entry of the first software queue to be read to the physical queue, the first head pointer including an address in the first software queue; and

using a second head pointer in hardware to track a next entry of the second software queue to be read to the physical queue, the second head pointer including an address in the second software queue.

3. A method as claimed in claim 2 , wherein the act of flushing the physical queue includes backing up the first head pointer and the second head pointer.

4. A method as claimed in claim 1 , further comprising: monitoring a timer to determine the threshold time.

5. A method as claimed in claim 1 , further comprising:

using a head pointer in hardware to track a next entry of the physical queue for transmission to the network; and

using a head pointer in hardware to track a next available entry of the physical queue for reading entries from the first software queue and the second software queue.

6. A method as claimed in claim 1 , wherein

the act of flushing the physical queue includes

for entries in the physical queue having the first priority, storing addresses from

the first software queue in a first backup buffer, and

for entries in the physical queue having the second priority, storing addresses

from the second software queue in a second backup buffer,

the act of reading entries from the second software queue to the physical queue includes reading addresses in the second backup queue to access entries of the second software queue; and

the act of reading entries from the first software queue to the physical queue after the termination criterion is satisfied includes reading addresses in the first backup queue to access entries of the first software queue.

7. A method as claimed in claim 6 , further comprising:

using a first head pointer in hardware to track a next entry of the first software queue to be read to the physical queue, the first head pointer including an address in the first software queue; and

using a second head pointer in hardware to track a next entry of the second software queue to be read to the physical queue, the second head pointer including an address in the second software queue, wherein the act of flushing the physical queue includes backing up the first head pointer and the second head pointer.

8. A method as claimed in claim 1 , wherein the termination criterion is satisfied when all active entries of the second software queue have been read to the physical queue.

9. A method as claimed in claim 1 , wherein the entries include frame data.

10. A method as claimed in claim 1 , further comprising: using status indicators for entries in the first software queue and the second software queue, an active status indicating that a corresponding entry is waiting to be transmitted to the network, and an inactive status indicating that a corresponding entry is not waiting to be transmitted to the network.

11. A method as claimed in claim 10 , further comprising: switching a status indicator from active status to inactive status after transmitting a corresponding entry to the network.

12. A method as claimed in claim 11 , wherein

the act of adding entries to the first software queue includes switching corresponding status indicators from inactive status to active status, and

the act of adding entries to the second software queue includes switching corresponding status indicators from inactive status to active status.

13. A method as claimed in claim 10 , wherein the termination criterion is satisfied when all entries of the second software queue have an inactive status.

14. A method as claimed in claim 1 , wherein the act of transmitting entries from the physical queue to the network includes transmitting wirelessly.

15. A system for transmitting data in a network, comprising:

a host, the host including executable instructions in software for adding entries having a first priority to a first software queue that is maintained on the host and adding entries having a second priority to a second software queue that is maintained on the host;

a network interface unit; and

a peripheral controller connecting the host and the network interface unit and effecting a transmission link therebetween, wherein the network interface unit includes executable instructions in hardware for

transmitting entries from a physical queue that is maintained on the network interface unit to a network;

reading entries from the first software queue to the physical queue;

at a threshold time, flushing the physical queue;

after the act of flushing the physical queue, reading entries from the second software queue to the physical queue until a termination criterion is satisfied; and

after the termination criterion is satisfied, reading entries from the first software queue to the physical queue.

16. A system as claimed in claim 15 , wherein the network interface unit further comprises executable instructions in hardware for:

using a first head pointer to track a next entry of the first software queue to be read to the physical queue, the first head pointer including an address in the first software queue; and

using a second head pointer to track a next entry of the second software queue to be read to the physical queue, the second head pointer including an address in the second software queue.

17. A system as claimed in claim 16 , wherein flushing the physical queue includes backing up the first head pointer and the second head pointer.

18. A system as claimed in claim 15 , wherein the network interface unit further comprises:

a timer; and

executable instructions in hardware for monitoring the timer to determine the threshold time.

19. A system as claimed in claim 15 , wherein the network interface unit further comprises executable instructions in hardware for:

using a head pointer in hardware to track a next entry of the physical queue for transmission to the network; and

using a head pointer in hardware to track a next available entry of the physical queue for reading entries from the first software queue and the second software queue.

20. A system as claimed in claim 15 , wherein

flushing the physical queue includes

for entries in the physical queue having the first priority, storing addresses from

the first software queue in a first backup buffer, and

for entries in the physical queue having the second priority, storing addresses

from the second software queue in a second backup buffer;

reading entries from the second software queue to the physical queue includes reading addresses in the second backup queue to access entries of the second software queue; and

reading entries from the first software queue to the physical queue after the termination criterion is satisfied includes reading addresses in the first backup queue to access entries of the first software queue.

21. A system as claimed in claim 20 , wherein

the network interface unit further comprises executable instructions in hardware for:

using a first head pointer to track a next entry of the first software queue to be read to the physical queue, the first head pointer including an address in the first software queue; and

using a second head pointer to track a next entry of the second software queue to be read to the physical queue, the second head pointer including an address in the second software queue; and

flushing the physical queue includes backing up the first head pointer and the second head pointer.

22. A system as claimed in claim 15 , wherein the termination criterion is satisfied when all active entries of the second software queue have been read to the physical queue.

23. A system as claimed in claim 15 , wherein the entries include frame data.

24. A system as claimed in claim 15 , wherein the host further comprises executable instructions in software for using status indicators for entries in the first software queue and the second software queue, an active status indicating that a corresponding entry is waiting to be transmitted to the network, and an inactive status indicating that a corresponding entry is not waiting to be transmitted to the network.

25. A system as claimed in claim 24 , wherein the host further comprises executable instructions in software for switching a status indicator from active status to inactive status after a corresponding entry has been transmitted to the network.

26. A system as claimed in claim 25 , wherein

adding entries to the first software queue includes switching corresponding status indicators from inactive status to active status, and

adding entries to the second software queue includes switching corresponding status indicators from inactive status to active status.

27. A system as claimed in claim 15 , wherein transmitting entries from the physical queue that is maintained on the network interface unit to the network includes transmitting wirelessly.

28. A system for transmitting data in a network, comprising:

means for maintaining a first software queue and a second software queue;

means for adding entries having a first priority to the first software queue;

means for adding entries having a second priority to the second software queue;

means for maintaining a physical queue;

means for transmitting entries from the physical queue to a network;

means for reading entries from the first software queue to the physical queue;

means for flushing the physical queue at a threshold time;

means for reading entries from the second software queue to the physical queue, after flushing the physical queue until a termination criterion is satisfied; and

means for reading entries from the first software queue to the physical queue after the termination criterion is satisfied.

29. A system as claimed in claim 28 , further comprising:

means for tracking a next entry of the first software queue to be read to the physical queue; and

means for tracking a next entry of the second software queue to be read to the physical queue.

30. A system as claimed in claim 29 , wherein the flushing means includes:

means for backing up the next-entry tracking means for the first software queue; and

means for backing up the next-entry tracking means for the second software queue.

31. A system as claimed in claim 28 , wherein the network interface unit further comprises:

means for timing; and

means for monitoring the timing means to determine the threshold time.

32. A system as claimed in claim 28 , further comprising:

means for tracking a next entry of the physical queue for transmission to the network; and

means for tracking a next available entry of the physical queue for reading entries from the first software queue and the second software queue.

33. A system as claimed in claim 28 , wherein

the flushing means includes

for entries in the physical queue having the first priority, means for storing

addresseses from the first software queue in a first backup buffer, and

for entries in the physical queue having the second priority, means for storing

addresses from the second software queue in a second backup buffer;

the means for reading entries from the second software queue to the physical queue includes means for reading addresses in the second backup queue to access entries of the second software queue; and

the means for reading entries from the first software queue to the physical queue after the termination criterion is satisfied includes means for reading addresses in the first backup queue to access entries of the first software queue.

34. A system as claimed in claim 33 , further comprising:

means for tracking a next entry of the first software queue to be read to the physical queue; and

means for tracking a next entry of the second software queue to be read to the physical queue, wherein the flushing means includes

means for backing up the next-entry tracking means for the first software queue, and

means for backing up the next-entry tracking means for the second software queue.

35. A system as claimed in claim 28 , wherein the termination criterion is satisfied when all active entries of the second software queue have been read to the physical queue.

36. A system as claimed in claim 28 , wherein the entries include frame data.

37. A system as claimed in claim 28 , further comprising: means for indicating status for entries in the first software queue and the second software queue, an active status indicating that a corresponding entry is waiting to be transmitted to the network, and an inactive status indicating that a corresponding entry is not waiting to be transmitted to the network.

38. A system as claimed in claim 37 , further comprising means for switching a status indicator from active status to inactive status after a corresponding entry has been transmitted to the network.

39. A system as claimed in claim 38 , wherein

means for adding entries to the first software queue includes means for switching corresponding status indicators from inactive status to active status, and

means for adding entries to the second software queue includes means for switching corresponding status indicators from inactive status to active status.

40. A system as claimed in claim 28 , wherein the means for transmitting entries from the physical queue to the network includes means for transmitting wirelessly.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2012
From: QUALCOMM ATHEROS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 029328/0052 →
MERGER Recorded Jul 15, 2011
From: ATHEROS COMMUNICATIONS, INC.
To: QUALCOMM ATHEROS, INC.
Reel/Frame 026599/0360 →