Debug Trace Data Throttling with Gap Markers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current debug technologies face challenges in efficiently managing and transmitting large amounts of debug trace data, such as program counter tracing, cycle accurate profiling, and load/store data logging, due to bandwidth limitations, especially as CPU clock rates increase, leading to potential data loss and excessive bandwidth consumption.
Innovation Solution
A method is introduced to inject a 'data gap' marker into the trace stream with an accompanying count value to indicate data loss, along with throttling mechanisms like Dead-Window and Real-Time Throttling to control trace data, ensuring that only necessary data is transmitted, and implementing a 10-bit encoding scheme to optimize bandwidth utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If high frequency pins are supplied to view all debug data, then visibility into program operation is improved, but cost and practicality worsen
Solution Approach 1:
The patent combines multiple debug data types (PC trace, data log, timing information) into a single encoded transmission stream using a unified instruction set. This merging allows all debug information to be transmitted through the same pins at the same frequency, eliminating the need for separate high-frequency pins for each data type while maintaining complete visibility into program operation.
Solution Approach 2:
The patent applies encoding schemes that transform debug data into compressed representations, changing the parameter of data density. By encoding multiple bits of debug information into fewer transmission cycles, the system achieves high measurement precision with reduced pin frequency requirements, making the solution both technically effective and cost-efficient.
2Speed
If CPU clock rates increase, then processing speed is improved, but bandwidth requirements worsen
Solution Approach 1:
The patent employs compression encoding that dynamically adapts to CPU clock rates. As CPU speed increases and generates more debug data, the encoding scheme consolidates multiple data points into fewer transmission cycles, changing the effective bandwidth consumption parameter to maintain proportionality rather than linear growth.
Solution Approach 2:
The transmission format uses periodic synchronization and structured instruction sets that organize debug data into efficient transmission batches. This periodic structure allows the system to handle higher CPU clock rates by aggregating and compressing data over time intervals, reducing instantaneous bandwidth requirements while maintaining data integrity.
3Quantity of substance
If compression encoding is applied to reduce bandwidth, then bandwidth utilization is improved, but device complexity worsens
Solution Approach 1:
The patent implements a universal instruction set that handles multiple debug data types (PC tracing, data logging, timing information) through a single encoding mechanism. This multi-functional approach consolidates what would otherwise require separate encoding hardware for each data type, improving bandwidth utilization while limiting the growth of device complexity through functional integration.
4Loss of information
If more debug information is transmitted, then diagnostic capability is improved, but transmission time worsens
Solution Approach 1:
The encoding scheme changes the information density parameter by representing multiple debug events within single transmission cycles. By packing PC trace, data log, and timing information into compressed encoded formats, the system transmits complete diagnostic information faster, reducing transmission time while maintaining information completeness.
Data Source
AI summary
A method of managing a debug trace data stream by detecting conditions where the trace data generated exceeds the available transmission bandwidth, and throttling the trace data stream to ensure that the bandwidth available for the trace data stream is not exceeded. A trace data gap is inserted into the data stream to indicate the amount and type of data discarded during the throttling process.

