Processor Omission of Replayable Memory Access Logging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Replayable execution traces of computer programs become excessively large and consume significant processor resources due to the need to log all memory accesses, making it time-consuming and resource-intensive to identify and debug undesired software behaviors.

Innovation Solution

Identify memory addresses whose values can be reconstructed or predicted separately from memory accesses and instruct the processor to omit logging these accesses during tracing, reducing the amount of data recorded and processor workload.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If all memory accesses are logged during program tracing, then complete execution trace data is obtained, but trace file size becomes excessively large and processor resources are significantly consumed

Engineering Contradiction:
Improvetrace data completenessVSAvoidtrace file size
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential memory access information needed for debugging while omitting redundant data. By identifying and logging only significant memory accesses (those that affect program state or are not easily reconstructible), the trace file size is reduced while maintaining sufficient information for effective debugging and analysis.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of logging all memory accesses indiscriminately, the patent applies partial action by selectively logging only certain memory accesses based on their significance. The system determines which memory accesses warrant logging and which can be omitted, achieving a balance between trace completeness and file size management.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of information

If all memory accesses are logged during program tracing, then complete execution trace data is obtained, but processor overhead increases significantly

Engineering Contradiction:
Improvetrace data completenessVSAvoidprocessor overhead
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent removes the overhead of logging redundant memory accesses by extracting only the essential ones. The system identifies memory accesses that can be omitted without compromising debugging effectiveness, thereby reducing processor overhead and energy consumption during tracing operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by selectively logging memory accesses based on their significance rather than logging all accesses. This selective approach reduces the processor overhead associated with tracing while maintaining sufficient trace data completeness for effective debugging.

Inventive Principle:
Principle #16Partial or excessive action

3Use of energy by moving object

If memory values are reconstructed separately from memory accesses, then logging overhead is reduced, but trace reconstruction complexity increases

Engineering Contradiction:
Improvelogging overheadVSAvoidtrace reconstruction complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-identifying which memory accesses can be reconstructed and preparing reconstruction information in advance. This allows the system to omit logging certain memory accesses while having the necessary information ready to reconstruct their values during trace analysis, reducing logging overhead without significantly increasing reconstruction complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11960406B2Omitting processor-based logging of separately obtainable memory values during program tracing
Publication Date: 2024.04.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11960406B2 patent drawing
  • US11960406B2 patent drawing
  • US11960406B2 patent drawing

AI summary

Reducing overheads of recording a replayable execution trace of a program's execution at a computer processor by omitting logging of accesses to memory addresses whose values can be reconstructed or predicted. A computer system determines that memory values corresponding to a range of memory addresses within a memory space for a process can be obtained separately from the process' execution, and configures a data structure for instructing a processor to omit logging of memory accesses when the processor accesses an address within this range while executing the process. Correspondingly, upon detecting a memory access while executing the process, the processor determines if it has been instructed to omit logging of the access by checking the data structure. When the data structure instructs the processor to omit logging of the access, the processor omits logging the memory access while it uses a cache to process the memory access.