USRE38134EExpiredUtility

System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally

66
Assignee: SILICON GRAPHICS INCPriority: Feb 24, 1997Filed: Oct 3, 2000Granted: Jun 3, 2003
Est. expiryFeb 24, 2017(expired)· nominal 20-yr term from priority
H04L 47/2416G06F 9/5011H04L 47/245H04L 47/52H04L 49/101H04L 49/205H04L 49/254H04L 49/351G06F 9/5022H04L 47/50
66
PatentIndex Score
10
Cited by
12
References
24
Claims

Abstract

The present invention comprises a method and system for implementing prioritized communications in a computer system. The present invention is implemented on a computer system having a microprocessor and a plurality of peripheral devices coupled to the computer system. The system of the present invention determines a first priority level and determines a second priority level. The system of the present invention receives a bandwidth allocation request from a software process to transfer data at the first priority level between two or more peripheral devices. The system subsequently allocates a first priority data transfer bandwidth between the devices in response to the request and performs a first data transfer between the devices using the first priority data transfer bandwidth. In addition, the system of the present invention performs a second data transfer between other devices using a second priority data transfer bandwidth. The second data transfer occurs at a second priority level. Thus, the system of the present invention ensures the first data transfer at the first priority level is not disturbed by the second data transfer. In this manner, the system of the present invention guarantees the first priority data transfer bandwidth for the software process.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. In a computer system having a microprocessor and a plurality of peripheral devices, a computer implemented method for implementing prioritized peer to peer communications, the method comprising the computer implemented steps of: 
       a) determining a first priority level;  
       b) determining a second priority level;  
       c) receiving a bandwidth allocation request from a software process to transfer data at said first priority level between a first plurality of devices coupled to a computer system;  
       d) allocating a first priority data transfer bandwidth between said first plurality of devices responsive to said bandwidth allocation request;  
       e) performing a first data transfer between said first plurality of devices using said first priority data transfer bandwidth;  
       f) performing a second data transfer between a second plurality of devices using a second priority data transfer bandwidth such that said second data transfer occurs at said second priority level;  
       g) ensuring said first data transfer is not disturbed by said second data transfer such that said first priority data transfer bandwidth for said software process is guaranteed; and  
       h) removing said first priority data transfer bandwidth allocation when said software process terminates abnormally.  
     
     
       2. The method of  claim 1  further including the step of prioritizing a queue for a device driver in at least one of said first plurality of devices such that a first sequence for access at said first priority level in said queue is serviced before a second request for access at said second priority level. 
     
     
       3. The method of  claim 1  further including the step of removing said first priority data transfer bandwidth allocation when said software process is complete. 
     
     
       4. The method of  claim 1  wherein step d) further includes the steps of: 
       locking said first priority data transfer bandwidth allocation; and  
       rejecting a subsequent bandwidth allocation request from a subsequent software process.  
     
     
       5. The method of  claim 4  further including the step of registering an exit call back function to remove said first priority data transfer bandwidth allocation lock when said software process terminates abnormally without removing said first priority data transfer bandwidth allocation lock. 
     
     
       6. The method of  claim 1  further including the step of notifying said software process when said first priority bandwidth allocation cannot be completed. 
     
     
       7. The method of  claim 1  wherein step c) further includes receiving an application programming interface call from said software process in a kernel bandwidth allocator to transfer said data at said first priority level. 
     
     
       8. The method of  claim 7  further including the step of maintaining an internal table to track said first priority data transfer bandwidth in said kernel bandwidth allocator. 
     
     
       9. In a computer system having a microprocessor and a plurality of peripheral devices, a computer implemented method for implementing prioritized communications, the method comprising the computer implemented steps of: 
       a) determining a first priority level;  
       b) determining a second priority level;  
       c) receiving a first request from a first software process for service from a peripheral device coupled to a computer system, said first request at said first priority level;  
       d) receiving a second request from a second software process for service from said peripheral device, said second request at said second priority level;  
       e) prioritizing a queue storing said first request and said second request in response to receiving said first request at said first priority level;  
       f) satisfying said first request in said peripheral device before satisfying said second request in said peripheral device such that said first software process receives service from said peripheral device before said second software process; and  
       g) removing said first priority data transfer bandwidth allocation when said first software process terminates abnormally.  
     
     
       10. The method of  claim 9  further including the steps of: 
       g) receiving a bandwidth allocation request from said first software process to transfer data at said first priority level between a first plurality of peripheral devices coupled to said computer system;  
       h) allocating a first priority data transfer bandwidth between said first plurality of peripheral devices responsive to said bandwidth allocation request;  
       i) performing a first data transfer between said first plurality of peripheral devices using said first priority data transfer bandwidth;  
       j) performing a second data transfer between a second plurality of peripheral devices using a second priority data transfer bandwidth such that said second data transfer occurs at said second plurality level; and  
       k) ensuring said first data transfer is not disturbed by said second data transfer such that said first priority data transfer bandwidth for said first software process is guaranteed.  
     
     
       11. The method of  claim 10  further including the step of removing said first priority data transfer bandwidth allocation when said first software process is complete. 
     
     
       12. The method of  claim 10  wherein step h) further includes the steps of: 
       locking said first priority data transfer bandwidth allocation; and  
       rejecting a subsequent bandwidth allocation request from a subsequent software process.  
     
     
       13. The method of  claim 12  further including the step of registering an exit call back function to remove said first priority data transfer bandwidth allocation lock when said first software process terminates abnormally without removing said first priority data transfer bandwidth allocation lock. 
     
     
       14. The method of  claim 10  further including the step of notifying said first software process when said first priority bandwidth allocation cannot be completed. 
     
     
       15. The method of  claim 10  wherein step c) further includes receiving an application programming interface call from said first software process in a kernel bandwidth allocator to transfer said data at said first priority level. 
     
     
       16. The method of  claim 15  further including the step of maintaining an internal table to track said first priority data transfer bandwidth in said kernel bandwidth allocator. 
     
     
       17. In a computer system having a microprocessor and a memory coupled to a packet switched router, a computer implemented method for implementing a priority data transfer, the method comprising the computer implemented steps of: 
       a) determining a first priority level;  
       b) determining a second priority level;  
       c) receiving a bandwidth allocation request from a software process to transfer data at said first priority level between a first plurality of devices coupled to a computer system;  
       d) allocating a first priority data transfer bandwidth between said first plurality of devices responsive to said bandwidths allocation request;  
       e) performing a first data transfer between said first plurality of devices using said first priority data transfer bandwidth;  
       f) performing a second data transfer between a second plurality of devices using a second priority data transfer bandwidth such that said second data transfer occurs at said second priority level;  
       g) ensuring said first data transfer is not disturbed by said second data transfer such that said first priority data transfer bandwidth for said software process is guaranteed; and  
       h) removing said first priority data transfer bandwidth allocation when said first software process terminates abnormally.  
     
     
       18. The computer implemented method of  claim 17  further including the steps of: 
       receiving a first request from said software process for service from one of said plurality of devices coupled to said computer system, said first request at said first priority level;  
       receiving a second request for service from said one of said plurality of devices, said second request at said second priority level;  
       prioritizing a queue storing said first request and said second request in response to receiving said first request at said first priority level; and  
       satisfying said first request in said one of said plurality of devices before satisfying said second request in said peripheral device.  
     
     
       19. The computer implemented method of  claim 17  further including the step of removing said first priority data transfer bandwidth allocation when said software process is complete. 
     
     
       20. The computer implemented method of  claim 17  wherein step d) further includes the steps of: 
       locking said first priority data transfer bandwidth allocation; and  
       rejecting a subsequent bandwidth allocation request from a subsequent software process.  
     
     
       21. The computer implemented method of  claim 20  further including the step of registering an exit call back function to remove said first priority data transfer bandwidth allocation lock when said software process terminates abnormally without removing said first priority data transfer bandwidth allocation lock. 
     
     
       22. The computer implemented method of  claim 17  further including the step of notifying said software process when said first priority bandwidth allocation cannot be completed. 
     
     
       23. The computer implemented method of  claim 17  wherein step c) further includes receiving an application programming interface call from said software process in a kernel bandwidth allocator to transfer said data at said first priority level. 
     
     
       24. The computer implemented method of  claim 23  further including the step of maintaining an internal table to track said first priority data transfer bandwidth in said kernel bandwidth allocator.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.