Claims
- 1. A method of processing interrupt requests in a system having a plurality of processors, each of the interrupt requests having at least one destination processor associated therewith for servicing the interrupt request, the method comprising the steps of:
- masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time, the step of masking including the steps of:
- applying a processor availability indicator for each of the plurality of processors to a destination mask circuit;
- utilizing the processor availability indicator to mask contents of destination registers associated with interrupt requests having an unavailable destination processor associated therewith as indicated by the processor availability indicators, and
- generating available interrupt destination indicators associated with each of the destination processors for each of the interrupt requests; and
- selecting from the remainder of the plurality of interrupt requests a particular interrupt to be delivered to an available destination processor associated with the particular interrupt request.
- 2. The method of claim 1 wherein the step of selecting from the remainder of the plurality of interrupts a particular interrupt to be delivered to an available destination register further includes the step of selecting a highest priority interrupt request from the remaining interrupt requests.
- 3. The method of claim 1 wherein the step of masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time further includes the steps of:
- applying cpu task priority identifiers for each destination processor to a task priority mask circuit for the comparison of cpu task priority;
- applying said available interrupt destination indicators to the said task priority mask circuit; and
- generating masked interrupt destination signals indicative of the availability of the destination processors for each of the interrupt requests.
- 4. A method of processing interrupt requests in a system having a plurality of processors each of the interrupt requests having at least one destination processor associated therewith for servicing the interrupt request the method comprising the steps of:
- masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time, wherein the step of masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time further includes the steps of:
- applying accepted interrupt request identifiers for each interrupt request accepted by the destination processors at a previous time to an acceptance mask circuit; and
- generating masked interrupt pending signals indicative of the interrupt requests that could be accepted by the destination processors; and
- selecting from the remainder of the plurality of interrupt requests a particular interrupt to be delivered to an available destination processor associated with the particular interrupt request.
- 5. A method of processing interrupt requests in a system having a plurality of processors, each of the interrupt requests having at least one destination processor associated therewith for servicing the interrupt request the method comprising the steps of:
- masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time, wherein the step of masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time further includes the steps of:
- masking contents of destination registers associated with interrupt requests having an unavailable destination processor associated therewith, as indicated by processor availability indicators, and as indicated by cpu task priority identifiers, and generating masked interrupt destination signals indicative of the availability of the destination processors for each of the interrupt requests, and
- masking contents of interrupt pending registers associated with interrupt requests having an unavailable destination processor associated therewith, as indicated by accepted interrupt request identifiers, and generating masked interrupt pending signals indicative of the interrupt requests that could be accepted by the destination processors; and
- selecting from the remainder of the plurality of interrupt requests a particular interrupt to be delivered to an available destination processor associated with the particular interrupt request.
- 6. The method of claim 1 further including the step of determining whether to deliver a selected interrupt request to a particular destination processor based on a comparison of a priority of the selected interrupt request with a priority of another interrupt request currently being serviced by the destination processor.
- 7. The method of claim 6 wherein the step of determining whether to deliver a selected interrupt request to a particular destination processor further includes the steps of:
- storing the selected interrupt request and its corresponding priority in an interrupt request register associated with the destination processor;
- storing a priority of an interrupt request currently being serviced by the destination processor in an in-service register associated with the destination processor;
- comparing the priority of the selected interrupt request stored in the interrupt request register with the priority of the in-service interrupt request stored in the in-service register to determine whether or not the selected interrupt request should be delivered to the particular destination processor.
- 8. An interrupt controller for processing interrupt requests in a system having a plurality of processors, each of the interrupt requests having at least one destination processor associated therewith for servicing the interrupt request, the interrupt controller comprising:
- a mask circuit for masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time, said mask circuit further includes a destination mask circuit which receives a processor availability indicator for each of the plurality of processors to a destination mask circuit, wherein the destination mask circuit utilizes the processor availability indicator to mask contents of destination registers associated with interrupt requests having an unavailable destination processor associated therewith, as indicated by the processor availability indicators, and generates available interrupt destination signals associated with each of the destination processors for each of the interrupt requests; and
- a priority comparison circuit and interrupt dispatch circuit for selecting from the remainder of the plurality of interrupt requests a particular interrupt to be delivered to an available destination processor associated with the particular interrupt request.
- 9. The interrupt controller of claim 8 wherein the priority comparison circuit selects a highest priority interrupt request from the remaining interrupt requests.
- 10. An interrupt controller for processing interrupt requests in a system having a plurality of processors, each of the interrupt requests having at least one destination processor associated therewith for servicing the interrupt request the interrupt controller comprising:
- a mask circuit for masking those of the plurality of interrupt requests for which the destination processors associated therewith are unavailable at a given time;
- a priority comparison circuit and interrupt dispatch circuit for selecting from the remainder of the plurality of interrupt requests a particular interrupt to be delivered to an available destination processor associated with the particular interrupt request; and
- an acceptance mask circuit which receives accepted interrupt request identifiers for each interrupt request accepted by the destination processors at a previous time, and generates a masked interrupt pending signal indicative of the interrupt requests that could be accepted by the destination processors.
- 11. The interrupt controller of claim 8 wherein the mask circuit further includes:
- a task priority mask circuit for receiving the said available interrupt destination signals and cpu task priority identifiers associated with the destination processors, the task priority mask circuit generating masked interrupt destination signals indicative of the availability of the destination processors for each of the interrupt requests.
- 12. The interrupt controller of claim 8 wherein the priority comparison circuit determines whether to deliver a selected interrupt request to a particular destination processor based on a comparison of a priority of the selected interrupt request with a priority of another interrupt request currently being serviced by the destination processor.
- 13. The interrupt controller of claim 12 wherein the interrupt controller further includes:
- an interrupt request register associated with the destination processor for storing the selected interrupt request and its corresponding priority;
- an in-service register associated with the destination processor for storing a priority of an interrupt request currently being serviced by the destination processor; and
- a comparator for comparing the priority of the selected interrupt request stored in the interrupt request register with the priority of the in-service interrupt request stored in the in-service register to determine whether or not the selected interrupt request should be delivered to the particular destination processor.
RELATED APPLICATION
This invention is related to U.S. patent application Ser. No. 08/822,191, entitled "Method and Apparatus for Dispatching Multiple Interrupt Requests Simultaneously," filed on even date herewith for Hong-Chich Chou, Jerng-Cherng Fan, Tsahn-Yih Chang and Po-Chuan Kang. The contents of the above-noted application is incorporated herein by reference.
US Referenced Citations (17)