Stream Processor Graph Segmentation for Control Path Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Stream processors, such as hardware accelerators, often face flow control errors during compilation, leading to issues like data starvation, deadlock, and incorrect output, which are difficult to debug due to intermingled control and data path descriptions in hardware description languages.

Innovation Solution

A method to generate a modified graph that isolates control path nodes from data path nodes, allowing for separate debugging of the control path, which includes identifying and removing nodes that do not affect external flow control, enabling faster compilation and debugging by separating control and data path debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If control and data path descriptions are intermingled in hardware description languages, then the stream processor can be implemented with complete functionality, but debugging time and compilation complexity increase significantly

Engineering Contradiction:
Improvefunctional completenessVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the control path and data path into separate graphs. The control flow graph (CFG) extracts only control-related nodes and edges from the original hardware description, while the data flow graph (DFG) handles data-related operations. This segmentation allows independent debugging of control logic without processing the entire intermingled description, significantly reducing debugging time while maintaining functional completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the control path from the intermingled control and data path descriptions by identifying control nodes (e.g., conditional branches, loops, synchronization points) and separating them into a dedicated control flow graph. This extraction process removes control-related elements from the data flow graph, enabling focused debugging of control flow errors without the overhead of processing unrelated data path information.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If control and data path descriptions are intermingled in hardware description languages, then the stream processor can be implemented with complete functionality, but compilation complexity increases

Engineering Contradiction:
Improvefunctional completenessVSAvoidcompilation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The compilation process is segmented into separate passes: control flow analysis generates the CFG, data flow analysis generates the DFG, and subsequent compilation steps process each graph independently. This segmentation reduces compilation complexity by avoiding the need to parse and analyze the entire intermingled description simultaneously, while still producing a functionally complete stream processor implementation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The control path is extracted into a separate control flow graph that can be compiled and validated independently. This extraction simplifies the overall compilation process by allowing the compiler to focus on control logic validation separately from data path optimization, reducing the computational complexity of the compilation process while ensuring functional correctness.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If the complete graph including all nodes is simulated for debugging, then all potential issues can be detected, but debugging speed decreases

Engineering Contradiction:
Improveerror detection completenessVSAvoiddebugging speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The debugging process is segmented by creating a separate control flow graph that contains only control-related nodes and edges. This segmentation enables debuggers to focus exclusively on control flow errors (such as deadlocks, starvation, and incorrect synchronization) without the overhead of simulating the entire system, thereby maintaining error detection completeness for control issues while significantly improving debugging speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Control path nodes and edges are extracted from the complete system graph to form a dedicated control flow graph for debugging purposes. This extraction allows the debugging tool to analyze and simulate only the control logic, which is sufficient for detecting control flow errors, without the computational burden of including data path operations, thus enhancing debugging speed while maintaining detection effectiveness for control-related issues.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9367658B2Method and apparatus for designing and generating a stream processor
Publication Date: 2016.06.14 GROQ UK LTD
  • US9367658B2 patent drawing
  • US9367658B2 patent drawing
  • US9367658B2 patent drawing

AI summary

Embodiments of the invention provide a method and apparatus for generating programmable logic for a hardware accelerator, the method comprising: generating a graph of nodes representing the programmable logic to be implemented in hardware; identifying nodes within the graph that affect external flow control of the programmable logic; retaining the identified nodes and removing or replacing all nodes which do not affect external flow control of the programmable logic in a modified graph; and simulating the modified graph or building a corresponding circuit of the retained nodes.