Instruction-Level Trace Data Logging With Dynamic Priority Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging procedures face challenges in efficiently logging trace data generated during program code execution, particularly due to bursts of high-volume trace data that can overwhelm processors and compromise data integrity.

Innovation Solution

The method involves adjusting processor speeds, suspending logging temporarily, and prioritizing urgent trace data for immediate logging while delaying non-urgent data based on available processing resources, thereby maintaining data integrity and reducing the burden on processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If trace data is logged at an instruction level during program code execution, then debugging precision is improved, but processor overload occurs when bursts of high-volume trace data are generated

Engineering Contradiction:
Improvedebugging precisionVSAvoidprocessor performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments trace data into different priority levels (urgent and non-urgent) based on whether the data can be deferred. Urgent trace data is logged immediately to maintain debugging precision, while non-urgent trace data is deferred to avoid processor overload, thus resolving the contradiction between measurement precision and processor productivity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If trace data is logged immediately when generated, then data integrity is improved, but processor overload occurs during high-volume trace data bursts

Engineering Contradiction:
Improvedata integrityVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent dynamically adjusts the logging strategy based on processor load conditions. When processor overload is detected during high-volume trace data bursts, the system dynamically switches from immediate logging of all trace data to selective logging, prioritizing urgent data while deferring non-urgent data. This dynamic adaptation maintains data integrity for critical information while preserving processor performance.

Inventive Principle:
Principle #15Dynamics

3Productivity

If processor speed is reduced to manage trace data logging rate, then processor overload is prevented, but execution speed of program code decreases

Engineering Contradiction:
Improveprocessor performanceVSAvoidexecution speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the trace data logging process into priority-based batches. Instead of uniformly reducing processor speed, the system segments trace data into urgent and non-urgent categories, logging urgent data at normal processor speeds while deferring non-urgent data. This selective segmentation maintains execution speed for critical debugging information while managing overall logging volume to prevent processor overload.

Inventive Principle:
Principle #1Segmentation

4Loss of information

If all trace data is logged without prioritization, then completeness of debug information is improved, but processing time increases during high-volume bursts

Engineering Contradiction:
Improvecompleteness of debug informationVSAvoidprocessing time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent segments trace data into urgent and non-urgent categories based on whether the data can be deferred without compromising debugging effectiveness. Urgent trace data is logged immediately to maintain information completeness, while non-urgent data is deferred to reduce processing time during high-volume bursts. This segmentation approach preserves critical debug information while minimizing time loss during processor overload conditions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10445211B2Logging trace data for program code execution at an instruction level
Publication Date: 2019.10.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10445211B2 patent drawing
  • US10445211B2 patent drawing
  • US10445211B2 patent drawing

AI summary

Methods and systems are disclosed for logging trace data generated by executing program code at an instruction level. In aspects, high volumes of trace data are generated during certain time periods, e.g., immediately following a start of the tracing. Processors operating at normal speeds are often unable to log such high volumes of trace data. The issue of such high volumes of trace data may be addressed by selectively and dynamically controlling logging of outstanding trace data. For example, a rate of generating the trace may be reduced by slowing processor speeds, logging of outstanding trace data may be suspended for a period, and logging of non-urgent trace data may be selectively delayed.