Interrupt Routing in Shared Peripheral Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor computer systems, the performance is affected by process migration and the incorrect receipt of interrupts by processors, leading to inefficiencies due to remote memory access and the need for inter-processor interrupt mechanisms.

Innovation Solution

A method for processing interrupts in multiprocessor systems that involves receiving an input/output command with a device identifier, executing the operation, identifying the recipient processor based on the identifier, and directly transmitting the interrupt to the processor that initiated the operation, thereby optimizing performance by avoiding process migration and inter-processor interrupt mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a standalone device controller is shared by multiple processors, then device utilization is improved, but interrupt routing complexity increases because the initiating processor is not always the one receiving the interrupt

Engineering Contradiction:
Improvedevice utilizationVSAvoidinterrupt routing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The device identifier is captured and stored at the moment the I/O command is received, before the interrupt is generated later. This preliminary recording of the device identifier ensures that when the interrupt occurs, the system already has the information needed to identify the correct recipient processor, eliminating the need for complex interrupt routing logic at interrupt handling time.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If process migration is implemented to handle interrupts, then interrupt delivery is improved, but system performance deteriorates due to execution context relocation and remote memory access

Engineering Contradiction:
Improveinterrupt deliveryVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invention extracts and uses the device identifier as a key piece of information that is already present in the system. By taking out this identifier and using it to directly identify the recipient processor, the invention avoids the need to migrate processes or relocate execution contexts, thereby maintaining high system performance while ensuring reliable interrupt delivery.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If inter-processor interrupt mechanisms are used to forward interrupts, then correct interrupt delivery is improved, but processing overhead increases

Engineering Contradiction:
Improveinterrupt delivery accuracyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The device controller itself performs the function of identifying the correct recipient processor using the stored device identifier. This self-service approach eliminates the need for additional inter-processor interrupt mechanisms or forwarding logic, thereby reducing processing overhead while ensuring accurate interrupt delivery.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2909729B1Method and device for processing interruptions in a multiprocessor system
Publication Date: 2019.08.14 BULL SA
  • EP2909729B1 patent drawingFigure 1~3
  • EP2909729B1 patent drawingFigure 4~5

AI summary

The invention concerns, in particular, the processing of interruptions in an autonomous peripheral controller for a multiprocessor computer system. After having received (400) a command to execute an input/output operation and an identifier of the device from which said command has been received, an input/output operation linked to said received command is executed (410). After having obtained (420) said identifier of the device from which said command has been received, a recipient of an interruption corresponding to the execution of said input/output operation linked to said received command is identified (425), said recipient being identified on the basis of said identifier obtained from the device from which said command has been received. Said interruption corresponding to the execution of said input/output operation linked to said received command is then transmitted (430) to said identified recipient.