An interrupt controller is provided for
processing interrupt requests in a
system having a plurality of
data processing units operable to service those interrupt requests, each
interrupt request having an associated priority level. The interrupt controller comprises request logic operable to receive an indication of unserviced interrupt requests, to apply predetermined criteria to determine which of said plurality of
data processing units are candidate
data processing units for servicing at least one of said unserviced interrupt requests, and to issue a request
signal to each said candidate data
processing unit. Priority encoding logic is operable to determine a highest priority unserviced
interrupt request based on the associated priority levels of the unserviced interrupt requests. Further,
handshake logic is operable to receive
acknowledgement signals associated with said candidate data
processing units replying to said request signals issued by the request logic, upon
receipt of a first
acknowledgement signal, the
handshake logic being operable to allocate to the candidate data processing unit associated with that first
acknowledgement signal the highest priority unserviced
interrupt request as indicated by the priority encoding logic. By this approach, the highest priority unserviced interrupt request will be allocated to the data processing unit whose associated acknowledgement signal is first received by the
handshake logic, and hence this increases the speed with which that highest priority interrupt request is serviced.