IP Library Granted Patent US 6,889,276
Granted Patent B2
US 6,889,276 · App. 10/626,967 · Granted May 3, 2005

Priority mechanism for scheduling isochronous and asynchronous transactions on a shared bus

Assignee: Hewlett-Packard Development Company, L.P.
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,889,276
App. No.
10/626,967
Granted
May 3, 2005
Kind
B2
Abstract

A plurality of asynchronous and isochronous transactions on a shared bus are scheduled such that asynchronous latency is minimized while providing a maximum latency for isochronous transactions. This is accomplished by splitting an allocated shared bus time into frames of equal length. When a bus request is received the technique determines whether the bus request in a current frame is for an asynchronous transaction or an isochronous transaction. If an asynchronous transaction bus request exists it is processed, otherwise an isochronous transaction bus request is processed. Bus requests for an isochronous transaction are queued if received while an asynchronous transaction is currently being processed. Asynchronous transactions are given priority until a current frame time has ended. In one embodiment, at the start of a new frame (which becomes the current frame) any queued isochronous transactions are processed before asynchronous transactions of the current frame are given priority. In another embodiment, queued isochronous transactions are only processed at the start of a new frame if they are from two frames prior to the new frame.

Claims (37)

1. A method for scheduling a plurality of primary and secondary transactions between a first device and a second device across a shared bus, comprising the steps of:

(a) splitting an allocated bus time for the shared bus into frames of equal length;

(b) receiving a bus request and determining whether the bus request in a current frame is for a primary transaction or a secondary transaction;

(c) processing a primary transaction bus request if one exists, otherwise processing a secondary transaction bus request if one exists, wherein secondary transaction bus requests are queued if received while one of the primary transaction bus requests is currently being processed;

(d) repeating steps (b) through (c) until a current frame time has ended; and

(e) processing queued secondary transaction bus requests at the start of a new frame before continuing with step (b), wherein the new frame becomes the current frame of step (b).

2. The method of claim 1 , wherein the primary transaction is an asynchronous transaction and the secondary transaction is an isochronous transaction.

3. The method of claim 1 , wherein the secondary transaction bus requests of step (c) are processed in the order in which they were received, and wherein secondary transaction bus requests from an immediately prior frame are processed before secondary transaction bus requests of the current frame.

4. The method of claim 1 , wherein the queued secondary transaction bus requests of step (e) are processed in a round-robin fashion at the start of the new frame.

5. The method of claim 1 , wherein the shared bus is an Ethernet connection.

6. The method of claim 1 , wherein the shared bus is a Universal Serial Bus.

7. The method of claim 1 , wherein the shared bus is an IEEE 1394 bus.

8. The method of claim 1 , wherein the shared bus is a PCI bus.

9. The method of claim 1 , wherein the first and second devices are workstations.

10. The method of claim 1 , wherein the first and second devices are peripherals.

11. The method of claim 1 , wherein the first and second devices are Windows-based servers.

12. The method of claim 1 , wherein the first device is a workstation and the second device is a Windows-based server.

13. A computer system having the capability of scheduling transactions across a shared bus, comprising:

a processor;

a mass storage device coupled to the processor;

transaction scheduling code stored in a processor readable medium for causing the processor to perform the steps of:

(a) splitting an allocated bus time for the shared bus into frames of equal length;

(b) receiving a bus request and determining whether the bus request in a current frame is for a primary transaction or a secondary transaction;

(c) processing a primary transaction bus request if one exists, otherwise processing a secondary transaction bus request if one exists, wherein secondary transaction bus requests are queued if received while one of the primary transaction bus requests is currently being processed;

(d) repeating steps (b) through (c) until a current frame time has ended; and

(e) processing queued secondary transaction bus requests at the start of a new frame before continuing with step (b), wherein the new frame becomes the current frame of step (b).

14. The computer system claim 13 , wherein the primary transaction is an asynchronous transaction and the secondary transaction is an isochronous transaction.

15. The computer system of claim 13 , wherein secondary transaction bus requests of step (c) are processed in the order in which they were received, and wherein secondary transaction bus requests from an immediately prior frame are processed before secondary transaction bus requests of the current frame.

16. The computer system of claim 13 , wherein the queued secondary transaction bus requests of step (e) are processed in a round-robin fashion at the start of the new frame.

17. The computer system of claim 13 , wherein the shared bus is an Ethernet connection.

18. The computer system of claim 13 , wherein the shared bus is a Universal Serial Bus.

19. The computer system of claim 13 , wherein the shared bus is an IEEE 1394 bus.

20. The computer system of claim 13 , wherein the shared bus is a PCI bus.

21. The computer system of claim 13 , wherein the processor is coupled to a workstation by the shared bus.

22. The computer system of claim 13 , wherein the processor is coupled to a peripheral by the shared bus.

23. The computer system of claim 13 , wherein the processor is coupled to a Windows-based server by the shared bus.

24. The computer system of claim 13 , wherein the computer system is a workstation that is coupled to a Windows-based server by the shared bus.

Assignments (1)
CHANGE OF NAME Recorded Dec 2, 2003
From: COMPAQ INFORMATION TECHNOLOGIES GROUP L.P.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 014177/0428 →
Continuity (2)
Continuation 0951498000 · Feb 29, 2000
Related Publication 20040019731A1 · Jan 29, 2004