Control Dependency Graphs for Data Flow Conversion
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
3Loss of energy
If control flow instructions are eliminated in favor of data flow instructions, then power effectiveness improves, but conversion difficulty increases
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.
Data Source
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.


