Software Emulation Signal Handler Exception Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software emulators for legacy computer systems face performance bottlenecks due to the need for extensive exception and error checking, which can be time-consuming and detract from the precise emulation of legacy hardware behavior, especially in high-performance environments like the Intel Itanium series processors.

Innovation Solution

Utilizing the host system's hardware and signal handling mechanisms to detect and manage exceptions, allowing the software emulator to bypass unnecessary checks in time-critical sections, thereby improving performance and maintaining compatibility with the legacy system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If extensive exception and error checking is performed in the software emulator, then reliability is improved, but performance deteriorates due to time-consuming checks

Engineering Contradiction:
Improveemulator reliabilityVSAvoidemulation performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the exception checking function from the software emulator code and relocates it to the host system hardware. The hardware automatically detects exceptions during instruction execution, and the operating system's signal handler processes these exceptions. This separation removes the performance burden from the emulator while maintaining reliability through hardware-level exception detection.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If extensive exception checking is performed in the software emulator, then reliability is improved, but execution time increases

Engineering Contradiction:
Improveemulator reliabilityVSAvoidexception checking time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The host system hardware performs self-service exception detection automatically during instruction execution. The hardware monitors execution and automatically generates exception signals when errors occur, eliminating the need for the software emulator to manually check for exceptions. This self-service mechanism reduces exception checking time to near zero while maintaining comprehensive error detection.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If the software emulator performs manual exception checking, then compatibility with legacy systems is maintained, but device complexity increases

Engineering Contradiction:
Improvelegacy system compatibilityVSAvoidemulator code complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The operating system's signal handler acts as an intermediary between the hardware exception detection mechanism and the emulated legacy system. The signal handler translates hardware exceptions into appropriate responses that maintain legacy system compatibility, while the emulator code itself remains simple since it relies on the hardware and OS for exception handling.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7684973B2Performance improvement for software emulation of central processor unit utilizing signal handler
Publication Date: 2010.03.23 EVIDEN USA INC
  • US7684973B2 patent drawing
  • US7684973B2 patent drawing
  • US7684973B2 patent drawing

AI summary

As fast and powerful commodity processors have been developed, it has become practical to emulate on platforms built using commodity processors the proprietary hardware systems of powerful older computers. High performance is typically a key requirement for a system even when built using emulation software. In a hardware design many special cases and conditions which may cause exceptions are detected by logic operating in parallel with the instruction execution. In software these checks can cost extra cycles of processor time during emulation of each instruction and be a significant detriment to performance. Avoiding some of these checks by relying upon the underlying hardware checks of the host system and then using a signal handler and special software to recover from these signals is a way to improve the performance and simplify the coding of the software emulation system.