Emulated MSI Interrupt Handling via Timing-Based Vector Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently handling complex instructions and managing resources to achieve high throughput, particularly in multiprocessor systems where instructions with varying execution times and resource requirements, such as floating-point operations and data moves, can hinder overall performance.

Innovation Solution

The implementation of an emulated message-signaled interrupt (MSI) handling mechanism that utilizes timing information and multiple interrupt vectors to optimize the servicing of interrupts, allowing for improved pipeline throughput and resource management by determining the appropriate interrupt vector for servicing based on timing information and allocating specific cache lines for interrupt data, thereby reducing unnecessary resource allocation and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional interrupt handling is used in multiprocessor systems, then all processors may service the same interrupt, but this causes unnecessary context switching and reduces pipeline throughput

Engineering Contradiction:
Improvepipeline throughputVSAvoidcontext switching time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The interrupt handling is segmented by assigning different interrupt vectors to different processors based on timing information. Instead of all processors handling the same interrupt, the interrupt is divided into processor-specific segments, allowing parallel execution without context switching overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Timing information is used in advance to determine which processor should service the interrupt before the interrupt actually occurs. This preliminary assignment prevents unnecessary context switching by ensuring the correct processor is already prepared to handle the interrupt when it arrives.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple interrupt vectors are allocated for MSI interrupts, then interrupt handling can be optimized, but this increases device complexity

Engineering Contradiction:
Improveinterrupt handling efficiencyVSAvoidinterrupt controller complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system changes the parameter of interrupt vector assignment from static to dynamic based on timing information. Multiple interrupt vectors are available, but the specific vector used is determined by timing parameters, allowing optimized interrupt handling without permanently increasing hardware complexity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

Timing information acts as an intermediary between the MSI interrupt source and the interrupt vectors. Instead of directly mapping interrupts to vectors, the timing information mediates the selection process, enabling efficient interrupt handling while keeping the interrupt controller logic manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If cache lines are allocated for interrupt data, then interrupt servicing is improved, but this increases memory resource usage

Engineering Contradiction:
Improveinterrupt servicing reliabilityVSAvoidcache memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Cache lines are allocated specifically for interrupt data in particular cache sets rather than uniformly across all cache. This local allocation ensures reliable interrupt servicing for critical data while minimizing overall cache memory usage by only dedicating specific portions to interrupt handling.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10394728B2Emulated MSI interrupt handling
Publication Date: 2019.08.27 INTEL CORP
  • US10394728B2 patent drawing
  • US10394728B2 patent drawing
  • US10394728B2 patent drawing

AI summary

A processor includes a core and an interrupt controller. The interrupt controller includes logic to read interrupt data from a memory, the interrupt data including a timestamp, an allowable delay value, and at least one interrupt vector. The interrupt controller also includes a delay-comparison circuit to determine a time lapse based on the timestamp and a system clock signal and to compare the time lapse to the allowable delay value. Further, the interrupt controller includes a second logic to determine whether to invoke an interrupt handler based on the comparison of the time lapse to the allowable delay value.