Agnostic Runtime Architecture JIT Conversion Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face inefficiencies in context switching, particularly when handling a large number of threads, due to the need for duplicating architecture state elements for each thread, which increases area, power consumption, and complexity, and does not effectively support fine-grain parallelism or non-threaded software code.

Innovation Solution

An agnostic runtime architecture is implemented, featuring a hardware accelerated JIT conversion layer that efficiently converts guest instructions into native instructions, allowing for dynamic sequence block-based instruction mapping and metadata creation, thereby reducing the need for context switching and enhancing execution speed across various architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hardware duplicates all architecture state elements for each supported thread, then context switch is eliminated, but area, power consumption and complexity increase

Engineering Contradiction:
Improvecontext switch timeVSAvoidhardware complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Instead of duplicating entire architecture state elements for each thread in hardware, the patent uses software-based context switching that saves and restores register states. This approach eliminates the need for complex hardware duplication while maintaining efficient context switching capability through software-managed state preservation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The hardware architecture is designed to be universal and not thread-specific. A single hardware architecture supports multiple software threads through software-based context management rather than thread-specific hardware duplication. This allows the same hardware to serve multiple purposes without requiring separate hardware states for each thread.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If hardware supports multiple context states for limited threads, then thread execution is optimized, but area and power consumption increase

Engineering Contradiction:
Improvethread execution efficiencyVSAvoidhardware area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent avoids copying entire architecture state elements for each thread. Instead, it uses a unified hardware architecture with software-based context management that only copies necessary register states during context switching, significantly reducing hardware area requirements while maintaining thread execution efficiency.

Inventive Principle:
Principle #26Copying

3Reliability

If context switch includes saving and restoring register state, then thread isolation is maintained, but execution cycles increase

Engineering Contradiction:
Improvethread isolationVSAvoidcontext switch cycles
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary actions by saving register states before context switching occurs and restoring them when needed. This proactive state management ensures thread isolation is maintained while optimizing the context switch process to minimize cycle losses through efficient state preservation and restoration mechanisms.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9823939B2System for an instruction set agnostic runtime architecture
Publication Date: 2017.11.21 INTEL CORP
  • US9823939B2 patent drawing
  • US9823939B2 patent drawing
  • US9823939B2 patent drawing

AI summary

A system for an agnostic runtime architecture. The system includes a close to bare metal JIT conversion layer, a runtime native instruction assembly component included within the conversion layer for receiving instructions from a guest virtual machine, and a runtime native instruction sequence formation component included within the conversion layer for receiving instructions from native code. The system further includes a dynamic sequence block-based instruction mapping component included within the conversion layer for code cache allocation and metadata creation, and is coupled to receive inputs from the runtime native instruction assembly component and the runtime native instruction sequence formation component, and wherein the dynamic sequence block-based instruction mapping component receives resulting processed instructions from the runtime native instruction assembly component and the runtime native instruction sequence formation component and allocates the resulting processed instructions to a processor for execution.