Code Block Ordering via Execution Frequency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software optimization mechanisms fail to accurately account for the frequency of code block execution, leading to suboptimal placement in memory and inefficient execution due to greedy algorithms and inaccuracies in arc counts, which can result in less than optimal code block ordering and increased execution time.

Innovation Solution

A method that creates code block chains based on execution counts, ordering them to optimize placement in system memory by prioritizing non-zero count blocks and minimizing after set violations, thereby improving execution efficiency by grouping frequently executed code blocks together and reducing memory overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If code blocks are placed in memory based on source code arrangement, then compilation is simple, but execution efficiency deteriorates due to frequent jumps between non-contiguous memory locations

Engineering Contradiction:
Improvecompilation simplicityVSAvoidexecution efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent performs preliminary analysis of block execution frequencies before final code arrangement. By预先 determining which code blocks are executed frequently and their execution order, the system can arrange them in optimal memory locations before execution, thus improving runtime performance without complicating the compilation process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the arrangement parameter from static source code order to dynamic execution frequency-based ordering. By using execution frequency metrics and predicted execution order as new arrangement parameters, the system optimizes memory placement to minimize jumps between non-contiguous locations, thereby improving execution efficiency.

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If greedy algorithms are used to order code blocks based on local execution frequencies, then local optimization is improved, but overall code efficiency deteriorates due to lack of global perspective

Engineering Contradiction:
Improvelocal optimization accuracyVSAvoidoverall code efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent creates a multi-functional system that both analyzes local execution frequencies and determines global execution order. The same mechanism serves to identify frequently executed blocks locally and to arrange them globally in optimal sequence, avoiding the limitations of purely local greedy algorithms while maintaining precision in local optimization.

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

Solution Approach 2:

The patent uses feedback from execution frequency analysis and branch prediction to continuously refine code block ordering. By monitoring actual execution patterns and using this feedback to adjust the arrangement, the system achieves both local precision and global efficiency, overcoming the myopia of greedy algorithms that lack global perspective.

Inventive Principle:
Principle #23Feedback

3Device complexity

If arc counts are used to determine code block frequency, then execution frequency measurement is simplified, but accuracy deteriorates due to inability to accurately represent actual arc execution

Engineering Contradiction:
Improvemeasurement complexityVSAvoidarc execution accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent introduces an intermediary mechanism - predicted execution order based on branch prediction - between the simple arc count measurement and the final accuracy requirement. This intermediary translates basic frequency data into more accurate execution order predictions, enabling precise measurement without requiring complex direct monitoring of all possible execution paths.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8677336B2Block count based procedure layout and splitting
Publication Date: 2014.03.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8677336B2 patent drawing
  • US8677336B2 patent drawing
  • US8677336B2 patent drawing

AI summary

The present invention extends to methods, systems, and computer program products for block count based procedure layout and splitting. Embodiments of the invention utilize code block counts to provide a total ordering of code blocks that improves execution time of generated procedure code by minimizing branches along more frequently executed paths. The total ordering is optimized using prioritized precedence relationships. For example, the total ordering is optimized to maximize the appropriate placement of code block chains after other code block chains. The total ordering is also optimized to place zero count (untouched) code blocks after any non-zero (touched) code blocks.