Entropy-Based Dataflow Analysis via Sampling Point Correlation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional dataflow analysis techniques face performance bottlenecks, behavioral issues, and loss of precision due to the need to track dataflow through all intermediate program states and statements, especially across multiple programming languages and transitioning between managed and unmanaged code, leading to usability problems and inaccurate conclusions.

Innovation Solution

A method involving selecting sampling points in a program, recording values from memory registers, and performing correlations between these values to retrieve dataflow information, which provides precision by recording unique values across multiple programming languages and reduces the overhead of traditional dataflow analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional dataflow analysis tracks dataflow through all intermediate program states and statements, then measurement precision is improved, but computational overhead increases severely

Engineering Contradiction:
Improvedataflow analysis precisionVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent segments the program execution into discrete sampling points (entry/exit points of methods, blocks, or statements) rather than continuously tracking all intermediate states. This segmentation allows the system to capture essential dataflow information at critical junctures while avoiding the computational burden of monitoring every intermediate step, thus resolving the contradiction between precision and overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the necessary dataflow information at sampling points rather than recording complete program state histories. By taking out only the essential values needed for dataflow analysis at these discrete points, the system achieves sufficient measurement precision while dramatically reducing computational overhead compared to full state tracking.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If conventional dataflow analysis tracks all intermediate execution steps, then measurement precision is improved, but loss of time increases

Engineering Contradiction:
Improvedataflow analysis precisionVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides continuous execution tracking into discrete sampling intervals at entry/exit points. This segmentation reduces the total number of tracking operations required, thereby reducing analysis time while maintaining precision through strategic sampling at critical program boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by tracking dataflow only at essential sampling points rather than all intermediate steps. This partial tracking approach provides sufficient precision for dataflow analysis while significantly reducing the time required compared to complete execution step monitoring.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If conventional dataflow analysis implements full state tracking, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvedataflow analysis accuracyVSAvoidanalysis system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex continuous state tracking problem into discrete sampling point evaluations. This segmentation simplifies the implementation by focusing on specific, manageable entry/exit points rather than implementing complex full-state tracking mechanisms, while maintaining reliability through accurate capture of dataflow at these critical points.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the essential dataflow information needed for analysis at sampling points, rather than implementing complex full state tracking. This extraction approach reduces device complexity by processing only necessary information while maintaining reliability through precise capture of dataflow semantics at key program boundaries.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If conventional dataflow analysis tracks dataflow across multiple programming languages and code transitions, then adaptability is improved, but computational overhead increases

Engineering Contradiction:
Improvemulti-language supportVSAvoidcomputational overhead
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent implements a universal dataflow analysis framework that operates across multiple programming languages and code boundaries by identifying common sampling point patterns (entry/exit points). This multi-functional approach enables adaptability to diverse languages without requiring language-specific tracking mechanisms, thereby managing computational overhead through a unified sampling strategy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10289540B2Performing entropy-based dataflow analysis
Publication Date: 2019.05.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10289540B2 patent drawing
  • US10289540B2 patent drawing
  • US10289540B2 patent drawing

AI summary

Providing dataflow analysis by selecting a plurality of sampling points from a program under examination. A set of respective values is recorded from a corresponding set of memory registers at each of the plurality of sampling points. The set of respective values comprises at least a first set of values stored in a first set of memory registers for a first sampling point of the plurality of sampling points, and a second set of values stored in a second set of memory registers for a second sampling point of the plurality of sampling points. A correlation is performed between the first set of values and the second set of values to retrieve dataflow information from the program under examination.