Dynamic Programming for Conditional Branch Packing in DAGs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional dynamic programming algorithms are ineffective in packing conditional branch instructions for execution by dataflow processors due to their assumption of single predecessor nodes, which is not applicable to directed acyclic graphs (DAGs) with multiple predecessor nodes and non-contiguous paths.

Innovation Solution

The use of improved dynamic programming algorithms that factor in the graph structure of DAGs to construct a scoring table and perform traceback, allowing for efficient mapping and packing of conditional branch instructions by considering multiple predecessor nodes and edges, thereby optimizing instruction execution on hybrid threading fabrics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional dynamic programming algorithms are used to pack conditional branch instructions, then the algorithm simplicity is maintained, but the packing efficiency deteriorates due to inability to handle multiple predecessor nodes in DAGs

Engineering Contradiction:
Improveinstruction packing efficiencyVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the conditional branch packing problem into two distinct phases: (1) constructing a scoring table that evaluates all possible packings considering multiple predecessor nodes, and (2) performing traceback to select the optimal packing. This segmentation allows the complex problem to be solved systematically by breaking it down into manageable steps that can be implemented algorithmically.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by constructing a scoring table before final packing decisions are made. The scoring table pre-evaluates all possible instruction packings by considering the graph structure of DAGs with multiple predecessor nodes, allowing the traceback phase to efficiently select the optimal packing without re-evaluating constraints during the selection process.

Inventive Principle:
Principle #10Preliminary action

2Speed

If conditional branch instructions are not efficiently packed, then the instruction execution simplicity is maintained, but the processing speed deteriorates due to wasted instruction cycles

Engineering Contradiction:
Improveprocessing speedVSAvoidreconfigurability complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies dynamics by enabling coarse-grained reconfigurable arrays to dynamically adapt their instruction packing based on the specific conditional branch patterns encountered. The system can reconfigure the packing strategy to match the DAG structure of the current workload, optimizing for different execution patterns rather than using a fixed packing approach.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes parameters by adjusting the instruction packing configuration based on the graph structure analysis. By modifying how instructions are packed into execution slots according to the DAG's predecessor relationships and path continuity, the system optimizes execution speed for different conditional branch patterns without requiring complete reconfiguration of the hardware architecture.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If traditional packing methods are used, then the resource utilization is maintained at baseline levels, but the instruction cycle waste increases due to non-contiguous path handling limitations

Engineering Contradiction:
Improveresource utilizationVSAvoidwasted instruction cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements feedback by using the scoring table to evaluate the consequences of different packing decisions before finalizing them. The traceback process uses information from the scoring table to select packings that minimize wasted instruction cycles, creating a feedback loop where past evaluation results directly inform future packing decisions to improve resource utilization.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent substitutes the mechanical constraint-based packing approach with a graph-structure-aware algorithmic approach. Instead of relying on simple mechanical rules for instruction packing, the system uses dynamic programming algorithms that consider the DAG's graph structure, replacing rigid mechanical packing mechanisms with flexible algorithmic decision-making that adapts to the specific instruction patterns.

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

Data Source

PatentUS11829758B2Packing conditional branch operations
Publication Date: 2023.11.28 MICRON TECHNOLOGY INC
  • US11829758B2 patent drawing
  • US11829758B2 patent drawing
  • US11829758B2 patent drawing

AI summary

Disclosed in some examples, are systems, methods, devices, and machine readable mediums which use improved dynamic programming algorithms to pack conditional branch instructions. Conditional code branches may be modeled as directed acyclic graphs (DAGs) which have a topological ordering. These DAGs may be used to construct a dynamic programming table to find a partial mapping of one path onto the other path using dynamic programming algorithms.