Scalable system interrupt structure for a multi-processing system
First Claim
1. A system for processing interrupt requests within a data processing system having a plurality of processors and a plurality of interrupt sources, wherein each of said interrupt requests is associated with a priority and each of said plurality of processors is associated with a variable priority, said system comprising:
- a software-accessible interrupt presentation layer including a plurality of queues for storing interrupt requests, wherein each of said plurality of queues is associated with a respective one of said plurality of processors, and wherein interrupt requests within each queue among said plurality of queues are only handled by a respective associated processor among said plurality of processors;
a hardware routing means for routing an interrupt request issued by a particular one of said plurality of interrupt sources to a particular queue among said plurality of queues that is associated with a particular processor among said plurality of processors; and
means for preventing priority inversion, wherein said means for preventing priority inversion removes said interrupt request from said particular queue in response to said interrupt request having a lower priority than said variable priority of said particular processor when another interrupt request having a higher priority than said variable priority of said particular processor is received by said particular queue and said particular queue is full.
0 Assignments
0 Petitions
Accused Products
Abstract
An interrupt subsystem within a data processing system is scalable from low-end uni-processor systems to high-end multi-processor (MP) systems. This interrupt subsystem provides for queueing of interrupts from many sources, and for queueing of interrupts to the best processor in a multi-processor system. The external interrupt mechanism is separated into two layers, an interrupt routing layer and an interrupt presentation layer. The interrupt routing layer routes the interrupt conditions to the appropriate instance of an interrupt management area within the interrupt presentation layer. The interrupt presentation layer communicates the interrupt source to the system software which is to service/process the interrupt. By providing two layers within the interrupt subsystem, application or system software can be written which is independent from the types or sources of interrupts. The interrupt routing layer hides the details of a particular hardware implementation from the software. The interrupt presentation layer interfaces to the system and/or application software, and provides hardware independent functionality.
-
Citations
25 Claims
-
1. A system for processing interrupt requests within a data processing system having a plurality of processors and a plurality of interrupt sources, wherein each of said interrupt requests is associated with a priority and each of said plurality of processors is associated with a variable priority, said system comprising:
-
a software-accessible interrupt presentation layer including a plurality of queues for storing interrupt requests, wherein each of said plurality of queues is associated with a respective one of said plurality of processors, and wherein interrupt requests within each queue among said plurality of queues are only handled by a respective associated processor among said plurality of processors; a hardware routing means for routing an interrupt request issued by a particular one of said plurality of interrupt sources to a particular queue among said plurality of queues that is associated with a particular processor among said plurality of processors; and means for preventing priority inversion, wherein said means for preventing priority inversion removes said interrupt request from said particular queue in response to said interrupt request having a lower priority than said variable priority of said particular processor when another interrupt request having a higher priority than said variable priority of said particular processor is received by said particular queue and said particular queue is full. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for processing interrupt requests within a data processing system having a plurality of processors and a plurality of interrupt sources, wherein each of said interrupt requests is associated with a priority and each of said plurality of processors is associated with a variable priority, said data processing system including a software-accessible interrupt presentation layer, said interrupt presentation layer includinq a plurality of queues for storing interrupt requests, wherein each of said plurality of queues is associated with a single one of said plurality of processors, said method comprising:
-
issuing a first interrupt request from a particular one of said plurality of interrupt sources; routing said first interrupt request to a particular queue within said interrupt presentation layer that is associated with a particular processor among said plurality of processors; queuing said first interrupt request within said particular queue associated with said particular processor, wherein only said particular processor handles interrupt requests within said particular queue; and thereafter, removing said first interrupt request from said particular queue in response to receipt of a second interrupt request at said particular queue when said particular queue is full, said second interrupt request having a higher priority than said variable priority of said particular processor. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification