Assembly Instruction Conversion Reordering for Cross-Architecture Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

JIT compiler-generated machine language for one processor architecture cannot be directly executed on another processor architecture, leading to increased clock cycles when converted, due to dependency relationships between assembly instructions.

Innovation Solution

A method to store and generate machine languages for a second assembly instruction set such that dependent instructions are not adjacent, using a FIFO buffer to reorder generation instructions and translate them into equivalent instructions for the target architecture, preventing pipeline stalls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If machine language is converted from one instruction set to another instruction set, then the execution program can operate on different processor architectures, but the number of clock cycles increases due to dependency relationships between assembly instructions

Engineering Contradiction:
Improvecross-architecture compatibilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by analyzing and reordering assembly instructions before generating the target machine language. The instruction reordering unit rearranges instructions to separate dependent instructions, preventing pipeline stalls before execution occurs. This proactive reorganization ensures that when the converted program runs on the target architecture, the instruction pipeline remains full and continuous, avoiding delays that would otherwise occur during execution.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If assembly instructions are converted between different instruction sets, then portability across processors is achieved, but pipeline stalls occur due to adjacent dependent instructions

Engineering Contradiction:
Improveinstruction set portabilityVSAvoidinstruction pipeline efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing the instruction conversion process into distinct functional units: an analysis unit that identifies dependency relationships, a reordering unit that segments and rearranges instructions to break adjacency of dependent instructions, and a generation unit that produces the target machine language. This segmented approach allows systematic optimization of instruction ordering to maintain pipeline efficiency during cross-architecture conversion.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies parameter changes by modifying the execution order parameter of assembly instructions during conversion. By changing the sequence in which instructions are arranged in the target program, the system transforms the original instruction stream into an optimized version where dependent instructions are separated, thereby changing the temporal parameters of execution to eliminate pipeline stalls while preserving functional correctness.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11321094B2Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus
Publication Date: 2022.05.03 FUJITSU LTD
  • US11321094B2 patent drawing
  • US11321094B2 patent drawing
  • US11321094B2 patent drawing

AI summary

A non-transitory computer-readable medium having stored therein a program for causing a computer to execute a process. The process includes storing a plurality of generation instructions in a storage area for each of a plurality of first assembly instructions, each generation instruction instructing the generation of a machine language of a second assembly instruction that executes processing equivalent to each first assembly instruction, and generating machine languages of a plurality of second assembly instructions so that the machine languages of the second assembly instructions having a dependency relationship do not appear adjacent to each other, according to the plurality of generation instructions in the storage area.