Runtime Code Reordering to Eliminate Processor Interlocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing methods fail to optimize code execution on target processors, particularly when code is compiled for earlier generation processors or is platform-independent, leading to sub-optimal performance due to processor-dependent interlocks.

Innovation Solution

A method that analyzes and reorders code sequences in real-time to remove interlocks by loading the code into a volatile data store, identifying and rearranging it based on the target processor's properties, and executing the reordered code to improve execution efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If code is compiled for earlier generation processors or uses platform-independent code, then code portability and compatibility are improved, but execution performance deteriorates due to processor-dependent interlocks

Engineering Contradiction:
Improvecode portabilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system performs preliminary analysis of the code sequence to identify interlocks before execution, and reorders the code in advance to eliminate these interlocks. This preliminary optimization allows the code to execute efficiently on the target processor without requiring recompilation, thus maintaining portability while improving performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The code reordering is performed dynamically at runtime based on the specific target processor's properties. The system adapts the code sequence to match the characteristics of the executing processor, allowing the same portable code to be optimized for different processor architectures without recompilation.

Inventive Principle:
Principle #15Dynamics

2Productivity

If code is reordered to optimize for a specific processor, then execution performance is improved, but code complexity increases due to runtime analysis and reordering operations

Engineering Contradiction:
Improveexecution performanceVSAvoidcode reordering complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs self-optimization by automatically analyzing its own code sequence and reordering it without external intervention. The runtime system identifies interlocks and reorders instructions autonomously, eliminating the need for complex external optimization tools or manual code modification.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the execution parameters of the code by reordering instructions based on processor-specific properties. By dynamically adjusting the code sequence parameters to match the target processor's characteristics, the system achieves performance optimization without adding permanent structural complexity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If code is analyzed and reordered at runtime, then performance optimization for the target processor is achieved, but processing time increases due to analysis overhead

Engineering Contradiction:
Improveexecution efficiencyVSAvoidcode analysis time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs partial optimization by focusing only on identifying and removing interlocks in the code sequence, rather than进行全面 optimization. This selective approach reduces the analysis overhead while still achieving significant performance improvements by eliminating the most critical execution stalls.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7698534B2Reordering application code to improve processing performance
Publication Date: 2010.04.13 ARM LTD
  • US7698534B2 patent drawing
  • US7698534B2 patent drawing
  • US7698534B2 patent drawing

AI summary

A method of reordering a sequence of code for processing by a target data processor in order to reduce an execution time for said code on said target data processor is disclosed. The method comprises the steps of: in response to a request to execute said sequence of code, loading said sequence of code into a volatile data store associated with said target data processor; analyzing said sequence of code in relation to properties of said target data processor; identifying interlocks within said sequence of code when executing on said target data processor, in which a portion of code would be stalled while waiting for an earlier portion to complete; reordering said sequence of code to remove at least some of said interlocks; and executing said reordered sequence of code; wherein said steps of analyzing, identifying, reordering and executing are performed by said target data processor.