Predicate Trace Compression for Reduced Bandwidth Usage
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Measurement precision
If predicate tracing is implemented for detailed code coverage analysis, then analysis precision is improved, but device complexity increases
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.
4Reliability
If comprehensive predicate tracing is performed, then debugging capability is enhanced, but bandwidth consumption increases
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.
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.
Data Source
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.


