Cache Tag Trace Logging for Reducing Execution Trace Size

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Replayable execution traces in software debugging become excessively large due to capturing vast amounts of information, leading to increased processor utilization and storage requirements.

Innovation Solution

Implementing cache-based trace logging using tags in a higher memory tier to determine if a cache line's value has been previously captured, thereby reducing the number of cache influxes recorded into the execution trace by refraining from re-logging values that can be reconstructed from prior traces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If replayable execution traces capture vast amounts of information to enable detailed debugging, then measurement precision and reliability are improved, but the size of execution traces grows excessively large

Engineering Contradiction:
Improvedebugging precisionVSAvoidtrace size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential debugging information needed to reconstruct execution states, removing redundant data. By using cache tags to identify and log only cache influx events rather than all cache operations, the system captures sufficient debugging detail while significantly reducing trace size.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary actions by setting up cache tags and tracking mechanisms before execution tracing begins. The cache tags are pre-configured to automatically identify influx events, enabling the system to selectively log only necessary events without post-processing or analysis of unnecessary data.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If execution traces record all cache influxes to ensure complete execution history, then reliability is improved, but processor utilization increases

Engineering Contradiction:
Improvetrace reliabilityVSAvoidprocessor utilization
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts and logs only cache influx events rather than all cache operations. By using cache tags to identify influx events and selectively logging only these critical events, the system maintains reliable execution traces while minimizing the processing overhead associated with recording and storing trace data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by recording only the subset of cache events (influxes) that are essential for reliable execution tracing, rather than recording all cache operations. This selective approach maintains trace reliability while reducing processor utilization for tracing operations.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If execution traces capture detailed cache information to enable accurate replay, then measurement precision is improved, but storage requirements increase

Engineering Contradiction:
Improveexecution replay accuracyVSAvoidstorage requirements
Core Design Contradiction:
Measurement precisionVSVolume of stationary object

Solution Approach 1:

The patent extracts only the critical cache influx events needed for accurate execution replay, using cache tags to identify and log these specific events. By recording only influx events rather than all cache operations, the system maintains sufficient replay accuracy while significantly reducing storage requirements for trace data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates simplified copies of cache events by logging only the essential influx information rather than complete cache state copies. The cache tag-based approach creates a compact representation that enables accurate replay without storing full cache contents, reducing storage requirements while maintaining replay fidelity.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP4295234B1Cache-based trace logging using tags in an upper-level cache
Publication Date: 2024.11.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4295234B1 patent drawingFigure 1A
  • EP4295234B1 patent drawingFigure 1B
  • EP4295234B1 patent drawingFigure 2

AI summary

Cache-based trace logging using tags in an upper cache level. A processor influxes a cache line into a first cache level from an upper second cache level. Influxing the cache line into the first cache level includes, based on the first cache level being a recording cache, the processor reading a tag that is (i) stored in the second cache level and (ii) associated with the cache line. Based on reading the tag, the processor determines whether a first value of the cache line within the second cache level has been previously captured by a trace. The processor performs one of (i) when the first value is determined to have been previously logged, following a logged value logic path when influxing the cache line; or (ii) when the first value is determined to have not been previously logged, following a non-logged value logic path when influxing the cache line.