Control Dependency Graphs for Data Flow Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors are typically control flow processors, making it difficult to convert control flow programs into data flow programs that can execute on data flow processors without control flow instructions, which are more efficient and power-effective.

Innovation Solution

A data flow convertor uses control dependency graphs to convert control flow programs into data flow programs by assigning instructions to control dependency regions and inserting switch instructions where necessary, avoiding unnecessary data flow instructions and maintaining a compact data flow graph.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If control flow instructions are used in conventional processors, then program execution flexibility is maintained, but power consumption increases and efficiency decreases

Engineering Contradiction:
Improvepower consumptionVSAvoidprogram execution flexibility
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The patent replaces the control flow mechanism (program counter-based sequential execution) with a data flow mechanism (dependency-based execution). Control flow instructions are eliminated and substituted with data flow instructions that execute operations when their input data is ready, regardless of program counter sequence. This substitution removes the need for branch prediction, pipeline flushing, and control logic, thereby reducing power consumption while maintaining program execution flexibility through data dependency tracking.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If control flow programs are converted to data flow programs using conventional methods, then execution efficiency improves, but code duplication and graph complexity increase

Engineering Contradiction:
Improveexecution efficiencyVSAvoidgraph complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the control flow graph into control dependency regions, where each region represents a set of instructions that are control-dependent on a common parent basic block. By dividing the program into these regions and assigning each instruction to a specific region, the converter avoids creating redundant nodes for the same instruction in different control paths. This segmentation strategy maintains execution efficiency by preserving control dependencies while reducing graph complexity and avoiding code duplication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis to identify control dependency regions and assign instructions to regions before generating the data flow graph. By pre-determining the control dependency structure and instruction assignments, the converter avoids unnecessary graph modifications and redundant node creations during the conversion process. This preliminary action ensures execution efficiency is maintained while keeping the data flow graph compact and manageable.

Inventive Principle:
Principle #10Preliminary action

3Loss of energy

If control flow instructions are eliminated in favor of data flow instructions, then power effectiveness improves, but conversion difficulty increases

Engineering Contradiction:
Improvepower effectivenessVSAvoidconversion difficulty
Core Design Contradiction:
Loss of energyVSEase of manufacture

Solution Approach 1:

The patent introduces control dependency regions as an intermediary structure that bridges control flow programs and data flow programs. These regions serve as a intermediate representation that captures control dependencies in a structured form, making it easier to analyze and convert control flow instructions into data flow instructions. By using this intermediary structure, the conversion process becomes more systematic and less error-prone, reducing conversion difficulty while maintaining power effectiveness through complete elimination of control flow instructions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10318259B2Technology to use control dependency graphs to convert control flow programs into data flow programs
Publication Date: 2019.06.11 INTEL CORP
  • US10318259B2 patent drawing
  • US10318259B2 patent drawing
  • US10318259B2 patent drawing

AI summary

An apparatus for automatically converting a control flow program into a data flow program comprises a non-transitory machine-readable medium and a translator stored in the machine-readable medium. The translator, when executed by a data processing system, enables the data processing system to (a) automatically generate a control dependency graph for a control flow program, (b) automatically generate a data flow graph based at least in part on the control dependency graph, and (c) automatically generate a data flow program based at least in part on the data flow graph. In one embodiment or scenario, the translator may also automatically insert a switch instruction into the data flow program, in response to a determination that a variable of the control flow program is defined in one control dependency region and used in a different control dependency region. Other embodiments are described and claimed.