Program Conversion Device Eliminates Conditional Branches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program conversion methods are inefficient, as they do not effectively optimize program execution by eliminating conditional branches, which hinders parallel processing and increases execution time.

Innovation Solution

A program conversion device and method that analyzes programs to detect conditional branches, calculates their execution results, and generates new programs without conditional branches, using combinations of conditional expressions and calculation portions where only one expression is true, facilitating faster execution through parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If programs include conditional branches to handle different execution paths, then program logic can be expressed flexibly, but program execution efficiency decreases and parallel processing becomes difficult

Engineering Contradiction:
Improveprogram logic flexibilityVSAvoidprogram execution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the program into multiple independent threads, each executing a specific calculation portion. The conditional branch is replaced by distributing different calculation portions to different threads, allowing parallel execution while maintaining the original conditional logic through thread selection based on condition evaluation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic thread creation and selection mechanisms where threads are created on-demand based on condition evaluation. The system dynamically determines which threads to execute based on the conditional expressions, enabling flexible adaptation to different execution scenarios while optimizing for parallel processing efficiency.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If conditional branches are used to control execution flow, then program can handle multiple scenarios, but execution time increases due to sequential processing

Engineering Contradiction:
Improveexecution scenario handlingVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the program into multiple independent calculation portions that can be executed simultaneously by different threads. Each calculation portion corresponds to a potential execution scenario, allowing all scenarios to be prepared in parallel rather than sequentially, thereby reducing execution time while maintaining comprehensive scenario coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis to identify all possible execution scenarios and pre-computes the corresponding calculation portions in parallel threads. This preliminary action allows the system to avoid sequential execution by having multiple calculation results ready simultaneously, significantly reducing the overall execution time for handling multiple scenarios.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If programs are converted to eliminate conditional branches, then parallel processing capability improves, but program complexity increases during conversion

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidprogram conversion complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary conversion layer that automatically transforms conditional branches into parallel thread structures. This intermediary mechanism handles the complexity of conversion by systematically analyzing conditional expressions and generating appropriate thread configurations, shielding the user from conversion complexity while enabling parallel processing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the fundamental execution parameters from sequential conditional branching to parallel thread-based execution. The conversion process transforms the program structure by changing execution parameters such as adding thread pools, modifying execution models, and adjusting memory access patterns, thereby enabling parallel processing while managing conversion complexity through systematic parameter transformation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240411558A1Program conversion device, program conversion method, and recording medium
Publication Date: 2024.12.12 NEC CORP
  • US20240411558A1 patent drawing
  • US20240411558A1 patent drawing
  • US20240411558A1 patent drawing

AI summary

A program conversion device analyzes a first program and detects a portion of the first program that includes a conditional branch and calculates a value according to an execution result of the conditional branch; and generates, on the basis of the analysis result, a second program including a plurality of combinations of a conditional expression and a calculation expression and using a value indicated by the calculation expression combined with the conditional expression that becomes true, wherein the calculation expression indicates the value and does not include a conditional branch and only one conditional expression from among the plurality of conditional expressions becomes true.