User Mode Interrupt Translation for Low Latency Delivery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for handling interrupts in modern processors require user programs to be mediated by the operating system, leading to poor performance and excessive privilege, as well as potential destructive race conditions, when user programs need direct notification from low-latency device resources.

Innovation Solution

The method involves identifying interrupts and determining the current execution mode, translating interrupt numbers for user mode execution while delivering them directly to user programs, thereby avoiding operating system mediation and maintaining proper isolation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If interrupts are mediated by the operating system for user programs, then system control and security are maintained, but performance deteriorates and latency increases

Engineering Contradiction:
Improveinterrupt handling performanceVSAvoidinterrupt latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments interrupt handling into two distinct paths: one for operating system mode (maintaining full OS mediation) and one for user mode (enabling direct interrupt delivery to user programs). This segmentation allows performance optimization for user programs without compromising OS control for system-critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the interrupt translation and delivery system) that selectively routes interrupts based on execution mode. For user mode, it acts as a bridge between hardware interrupts and user programs, enabling direct delivery while maintaining security boundaries. The system uses mode-specific interrupt number translation to mediate between hardware interrupt sources and appropriate handlers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If user programs are given operating system level privileges for interrupt processing, then direct interrupt access is enabled, but system security and isolation are compromised

Engineering Contradiction:
Improvedirect interrupt accessVSAvoidsystem isolation
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies local quality by providing different privilege levels and interrupt access mechanisms for different execution modes. User mode programs receive targeted interrupt access through translated interrupt numbers without obtaining full operating system privileges. This localized approach grants necessary access rights only where needed while maintaining strict isolation elsewhere.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the interrupt number parameter based on execution mode. Hardware interrupts are translated to different interrupt numbers depending on whether the processor is in user mode or operating system mode. This parameter transformation enables user programs to receive interrupts through a controlled interface without exposing them to operating system level privileges or internal system structures.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10684970B1User mode interrupts
Publication Date: 2020.06.16 GOOGLE LLC
  • US10684970B1 patent drawing
  • US10684970B1 patent drawing
  • US10684970B1 patent drawing

AI summary

A method includes for each processed interrupt: identifying an interrupt associated with a first interrupt number; determining that the interrupt is designated as a special interrupt, the special interrupt being an interrupt to be translated to a different interrupt number only if the hardware processor is in user mode; determining a current execution mode for the hardware processor; for each interrupt in operating system mode, delivering the interrupt as the first interrupt number; and for each interrupt in user mode: translating the first interrupt number to a second interrupt number; and delivering the interrupt as the second interrupt number, wherein the current execution mode is determined to be an operating system mode for at least one of the interrupts, and the current execution mode is determined to be a user mode for at least an additional one of the interrupts.