Virtual Machine Interrupt Handling via Safe Point Insertion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for handling interruptions in virtual machines either result in unacceptable latency or a decrease in efficiency for instruction execution, due to either frequent checking for interrupts or long response times.

Innovation Solution

The virtual machine automatically inserts interrupt handler instructions as needed by identifying safe points in the instruction sequence, replacing them with trap instructions to handle interrupts efficiently, and then resumes execution, ensuring that each possible instruction path includes a target instruction for interrupt handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If break points are placed frequently into the instructions, then interrupt responsiveness is improved, but instruction execution efficiency deteriorates

Engineering Contradiction:
Improveinterrupt response timeVSAvoidinstruction execution efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-identifying and storing safe point locations in the instruction sequence before execution. The compiler or virtual machine analyzes the instruction stream in advance, determines which instructions are safe to interrupt (safe points), and stores this information in a data structure. This pre-computation eliminates the need for frequent checking during execution, allowing the system to quickly locate the nearest safe point when an interrupt occurs, thus improving interrupt responsiveness without sacrificing instruction execution efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If break points are placed too infrequently into the code, then instruction execution efficiency is improved, but interrupt responsiveness deteriorates

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidinterrupt response time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary data structure that stores pre-computed safe point information between the instruction stream and the interrupt handling mechanism. This intermediary layer acts as a lookup table or index that quickly maps interrupt contexts to the nearest safe point locations. When an interrupt occurs, the system queries this intermediary structure rather than scanning through instructions, enabling fast interrupt response while maintaining high instruction execution efficiency between interrupts.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If safe point checking is performed frequently, then interrupt handling reliability is improved, but overhead computing costs increase

Engineering Contradiction:
Improveinterrupt handling reliabilityVSAvoidoverhead computing costs
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing safe point information during compilation or virtual machine initialization. This upfront analysis identifies all valid safe points in the instruction sequence and stores them in an optimized data structure. During runtime, the system simply queries this pre-computed information rather than performing repeated safety checks, thereby maintaining interrupt handling reliability while dramatically reducing overhead computing costs and energy consumption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10089262B2Reduced overhead safepoint mechanism using signals
Publication Date: 2018.10.02 SAP SE
  • US10089262B2 patent drawing
  • US10089262B2 patent drawing
  • US10089262B2 patent drawing

AI summary

A system and method for searching for and finding data across industrial time-series data is disclosed executing a series of instructions on a computer system. While executing a first instruction in the series of instructions, the virtual machine receives an interrupt signal. In response to receiving the interrupt signal, the virtual machine searches the series of instructions to identify a second instruction that is a safe point. The virtual machine replaces the second instruction in the series of instructions with one or more interrupt handler instructions that initiate an interrupt handler. The virtual machine resumes execution of the first instruction.