Method and apparatus for selecting a nonblocked interrupt request
First Claim
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, andgenerating 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 Assignments
0 Petitions
Accused Products
Abstract
An interrupt processing method and apparatus particularly well-suited for use in an interrupt controller of a multiprocessor system or device. Each of the interrupt requests has at least one destination processor associated therewith for servicing the interrupt request. An interrupt controller in accordance with the present invention applies latched interrupt requests to a priority compare tree which serves to prioritize received interrupt requests. A number of higher priority requests, including the highest priority request, are supplied to a destination selection circuit which includes an interrupt dispatcher which determines a processor to which the first priority interrupt request will be dispatched. Similar determinations are made for the remaining identified interrupt requests, but with the corresponding destination register contents masked to prevent processors already selected to receive a higher priority interrupt from being considered for a lower priority interrupt. The destination selection circuit attempts to determine a unique destination processor for each of the highest priority interrupt requests, such that these multiple interrupt requests can therefore be dispatched to different processors simultaneously. One or more of the interrupt requests may be "blocked" during a particular time period because all destination processors which could service the blocked requests are already processing other interrupts, performing higher priority tasks or are otherwise unavailable. These blocked interrupt requests are identified and the corresponding destination registers are masked such that the remaining non-blocked interrupt requests can be delivered to an available destination processor.
58 Citations
13 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. - View Dependent Claims (2, 3, 6, 7)
-
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.
-
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. - View Dependent Claims (9, 11, 12, 13)
-
-
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.
-
Specification