Program Energy Analysis Using Control Flow Graph Scoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development lacks tools for analyzing and comparing the energy consumption of programs executing algorithms, particularly for making informed decisions on algorithm implementations based on energy efficiency, and there is no method for a priori estimation of energy consumption.

Innovation Solution

A method and system that convert source code into an intermediate representation using a control flow graph, map instructions to energy consumption scores, and calculate total energy consumption scores for comparative benchmarking across different implementations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If software optimization focuses on higher performance, then execution speed is improved, but energy consumption increases

Engineering Contradiction:
Improveexecution speedVSAvoidenergy consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The invention changes the optimization parameter from purely temporal (execution speed) to include energetic (energy consumption). By introducing energy consumption scores as a measurable parameter alongside execution time, the system enables simultaneous optimization of both performance and energy efficiency, allowing developers to make informed trade-off decisions between speed and energy usage.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The invention implements feedback mechanisms through energy consumption scoring and analysis tools that provide real-time information about energy usage patterns. This feedback enables developers to identify energy-intensive code sections and optimize them, creating a iterative process of improvement that balances performance and energy consumption.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If algorithms are measured separately for each input, then measurement accuracy is improved, but analysis time and complexity increase

Engineering Contradiction:
Improvemeasurement accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The invention performs preliminary analysis by measuring and scoring energy consumption for different algorithms across various input types beforehand. This preliminary action creates a database of energy consumption profiles that can be used for rapid comparison and selection without requiring time-consuming real-time measurements for each specific input case.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention creates abstract representations (copies) of energy consumption characteristics through standardized scoring mechanisms. Instead of measuring every possible input scenario directly, the system creates representative energy consumption models that capture the essential energy behavior patterns, enabling efficient comparison and selection without exhaustive measurement.

Inventive Principle:
Principle #26Copying

3Device complexity

If only system-level energy measurements are performed, then measurement simplicity is improved, but algorithm-level comparison capability is lost

Engineering Contradiction:
Improvemeasurement system complexityVSAvoidalgorithm-level energy information
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The invention segments the system-level energy measurement into algorithm-level components by introducing controlled measurement points at the algorithm level. This segmentation allows energy consumption to be attributed to specific algorithms and code sections while maintaining the simplicity of the overall measurement system through standardized interfaces and abstraction layers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention introduces an intermediary layer of energy scoring and analysis tools that bridge the gap between simple system-level measurements and detailed algorithm-level analysis. This intermediary layer processes and interprets energy data, providing algorithm-specific information without requiring complex direct measurement hardware at the algorithm level.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If no a priori estimation tools are available, then measurement accuracy is improved, but development efficiency decreases

Engineering Contradiction:
Improveenergy consumption accuracyVSAvoiddevelopment efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The invention enables preliminary estimation of energy consumption before algorithm selection or optimization. By providing tools that can predict energy consumption based on algorithm characteristics and input data properties, developers can make informed decisions during the design phase without requiring actual execution measurements, thereby improving development efficiency while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4600830A1Method for performing an energy consumption analysis of a program, system and software development tool
Publication Date: 2025.08.13 SIEMENS AG
  • EP4600830A1 patent drawingFigure 1~2
  • EP4600830A1 patent drawingFigure 3
  • EP4600830A1 patent drawing

AI summary

The present invention relates to a method for performing an energy consumption analysis of a program executing an algorithm, comprising: converting a source code of the program into an intermediate representation formed by control flow graph comprising basic blocks each including a sequence of consecutive instructions; mapping the instructions of the basic blocks of the control flow graph to corresponding instruction energy consumption scores using an energy model; calculating a block energy consumption score for each basic block of the control flow graph based on the instruction energy consumption scores of the instructions of the respective basic block; and calculating a total energy consumption score of the program based on the block energy consumption scores of the basic blocks of the control flow graph. The present invention further relates to a system and a software development tool.