Claims
- 1. A method for handling interrupt requests from a first device to at least one of a second device and a third device via a system controller coupled to each of at least the first, second and third devices, said second and third devices being interruptible devices, each said device and the system controller including a processor and a memory storing instructions for execution by the respective processors, the second device being coupled to a first interrupt input queue and the third device being coupled to a second interrupt input queue, each said interrupt queue configured for accepting at least one interrupt request, the system controller being configured to store queue size information relating to respective sizes of said first and second input queues, the method including the steps of:
- (1) generating in the first device a first interrupt request with said second device as a destination device for said first interrupt request;
- (2) receiving said first interrupt request at the system controller;
- (3) based at least in part on said queue size information, determining in the system controller whether the first interrupt input queue is full, and if not, then:
- (3A) passing said first interrupt request to the second device; but if so, then:
- (3B) sending the first device a signal indicating non-acknowledgment of said first interrupt request.
- 2. The method of claim 1, further including, after step 3B, the step of resending said first interrupt request by the first device after a wait interval.
- 3. The method of claim 2, wherein the wait interval is a random time interval.
- 4. The method of claim 1 wherein said first interrupt request includes a target ID, including the step of the system controller determining the destination device of said first interrupt request from the target ID.
- 5. The method of claim 1, including the step of transmitting a data packet to the second device including information relating to the processing of said first interrupt request.
- 6. The method of claim 5, wherein the data packet includes an interrupt vector indicating an address for an interrupt service routine.
- 7. The method of claim 5, wherein the data packet includes at least one instruction to be executed by the second device.
- 8. The method of claim 5, wherein the data packet includes a relative priority level for said first interrupt request.
- 9. The method of claim 1, wherein said first interrupt input queue is configured for receiving a plurality of said interrupt requests.
- 10. The method of claim 1, wherein the second device is configured for continuing processing of ongoing operations while receiving at least one said interrupt request.
- 11. The method of claim 1, including, after step 3A, the steps of:
- determining in the second device whether it is an appropriate recipient for the interrupt request, and if so, then sending a positive interrupt acknowledgment to the system controller.
- 12. An apparatus for handling interrupt requests from first device to at least one of a second device and a third device, said second and third devices being interruptible devices, each said device including a processor and a memory storing instructions for execution by the respective processors, including:
- a first interrupt input queue coupled to the second device for receiving at least one interrupt request;
- a second interrupt input queue coupled to the third device for receiving at least one interrupt request;
- a system controller coupled to at least the first, second and third devices and configured to store queue size information relating to respective sizes of said first and second interrupt input queues, and including a third input queue for receiving at least one interrupt request from said first device, a counter for monitoring a number of interrupt requests present in the first input queue, and logic configured to pass said interrupt request which is directed to said second device only if said first input queue is not full, the determination of whether said first input queue is full being based at least in part on said queue size information.
- 13. The apparatus of claim 12, wherein the system controller is configured for sending a positive acknowledgment to said first device if a given said interrupt request directed to said second device is passed to said second device and for sending a negative acknowledgment to said first device if said given interrupt request is not passed to said second device.
- 14. The apparatus of claim 13, wherein the first device is configured to resend a said interrupt request after a wait interval receiving a negative acknowledgement from said system controller.
- 15. The apparatus of claim 14, wherein said wait interval is a random interval of time.
- 16. The apparatus of claim 12, wherein said first input queue is configured for storing a plurality of said interrupt requests.
- 17. The apparatus of claim 12, wherein said first device further includes a data input queue for receiving at least one data packet correlated with a given said interrupt request.
- 18. The apparatus of claim 12, wherein the system controller is configured for determining a target device of said interrupt requests.
- 19. The apparatus of claim 18, wherein:
- a plurality of potential interrupt handlers are coupled to said system controller;
- said system controller is configured for tracking a history of said interrupt requests sent to each of said plurality of interrupt handlers; and
- said system controller is configured for selecting a target interrupt handier to receive an incoming interrupt request based upon said history.
- 20. The apparatus of claim 12, wherein said second device is configured for determining whether it is an appropriate target for a received interrupt request, and if so for sending a positive acknowledgment to said system controller.
Parent Case Info
The present application is a CIP of application Ser. No. 08/414,875 filed Mar. 31, 1995.
US Referenced Citations (14)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0 317 481 A3 |
Nov 1987 |
EPX |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
414875 |
Mar 1995 |
|