Predicate Trace Compression for Reduced Bandwidth Usage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Real-time trace bandwidth limitations in data processing machines make it inefficient to report predicate values for each execution cycle, especially in systems like the StarCore SC3900 processor, where six predicates can change during each cycle, consuming excessive bandwidth and complicating code coverage analysis.

Innovation Solution

Implementing a method to compress predicate traces by writing out predicate values only when they are updated, reducing the data transfer between temporary and history buffers, and appending updated values to the trace in a predefined order to minimize bandwidth usage and simplify interpretation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If predicate values are reported for each execution cycle, then complete predicate trace information is obtained, but trace bandwidth is excessively consumed

Engineering Contradiction:
Improvepredicate trace informationVSAvoidtrace bandwidth
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information (predicate updates) from the complete predicate trace, discarding redundant data where predicate values remain unchanged. This selective extraction reduces trace bandwidth consumption while preserving the necessary information for code coverage analysis.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of reporting all predicate values in every execution cycle, the patent applies partial action by reporting only those predicates that actually change value. This reduces the quantity of traced data while maintaining sufficient information for debugging and analysis purposes.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of information

If all predicate values are traced in every instruction group, then complete execution information is captured, but trace data volume becomes unmanageable

Engineering Contradiction:
Improveexecution informationVSAvoidtrace data volume
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the meaningful changes in predicate values rather than recording all predicate states. By filtering out redundant unchanged values, the trace data volume is reduced while the essential execution information is preserved.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial reporting by selectively tracing only those predicate values that change during instruction group execution. This partial action approach prevents trace data volume from becoming unmanageable while capturing sufficient execution information.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If predicate tracing is implemented for detailed code coverage analysis, then analysis precision is improved, but device complexity increases

Engineering Contradiction:
Improvecode coverage analysisVSAvoidtracing mechanism
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the necessary predicate update information needed for code coverage analysis, removing unnecessary tracing overhead. This selective approach improves analysis precision by focusing on relevant changes while reducing the complexity of the tracing mechanism.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If comprehensive predicate tracing is performed, then debugging capability is enhanced, but bandwidth consumption increases

Engineering Contradiction:
Improvedebugging capabilityVSAvoidbandwidth consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the critical predicate value changes needed for effective debugging, discarding redundant information. This maintains debugging capability by preserving meaningful execution flow information while significantly reducing bandwidth consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial tracing by monitoring only those predicates that actually change value during execution. This partial approach enhances debugging capability with relevant information while minimizing bandwidth consumption compared to comprehensive tracing.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9934035B2Device and method for tracing updated predicate values
Publication Date: 2018.04.03 NXP USA INC
  • US9934035B2 patent drawing
  • US9934035B2 patent drawing
  • US9934035B2 patent drawing

AI summary

A data processing device for executing a program is described. The program comprises one or more instruction groups and one or more predicates, each instruction group comprising one or more instructions. The data processing device comprises a processing unit and a trace unit connected to or integrated in the processing unit. The trace unit generates a predicate trace for tracing the values of the one or more predicates. The processing unit executes, in each of a series of execution periods, one of the instruction groups and updated the values of none, one, or more of the predicates in dependence on the respective instruction group. The trace unit appends the updated values of the none, one, or more predicates to the predicate trace and does not append any non-updated values of the predicates.A method of reporting predicate values and a data carrier are also disclosed.