Indexed Trace Messages for Debug Bandwidth Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing debugging technologies face challenges in efficiently communicating instruction flow history information between a data processor and an external debugger, particularly with indirect branch instructions, due to the need for large amounts of data that increase bandwidth requirements.
Innovation Solution
The implementation of indexed trace messages, where the destination address information is transmitted without valid IFFB flags, and instead includes an index identifying a specific flag location in the IFFB, allowing the external debugger to correlate the address information with the corresponding branch instruction, and the use of trace history messages to transmit full IFFB content when filled, reducing the amount of data needed for transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If full IFFB flags are transmitted with each trace message to identify branch instructions, then the external debugger can accurately correlate destination addresses with branch instructions, but the bandwidth required for debug information transmission increases significantly
Solution Approach 1:
The patent extracts only the essential identifying information (index value) from the full IFFB flags and transmits it separately in trace history messages. The destination address messages contain compact references (indexes) that point to the actual flag information stored in the IFFB, thereby reducing the data transmission volume while maintaining debugging accuracy.
Solution Approach 2:
The patent pre-transmits the IFFB flag information in trace history messages before or independently of the destination address messages. This preliminary action allows the external debugger to have the reference information ready, so that when destination addresses are transmitted later, they can be quickly correlated with the pre-loaded flag data without requiring simultaneous transmission of all information.
2Quantity of substance
If indexed trace messages are used to reduce data transmission, then bandwidth requirements are reduced, but the device complexity increases due to the need to manage IFFB flags and indexes
Solution Approach 1:
The debug module automatically generates and manages the IFFB flags and their corresponding indexes without requiring manual intervention. The system self-maintains the mapping between destination addresses and branch instruction identifiers, and automatically transmits this information in the appropriate message formats, reducing the operational complexity despite the increased structural complexity.
3Quantity of substance
If trace history messages are used to transmit full IFFB content when filled, then bandwidth is reduced for individual trace messages, but the loss of time increases due to buffer management overhead
Solution Approach 1:
The patent implements periodic transmission of IFFB content based on buffer fullness conditions. Instead of continuous transmission, the system transmits batched IFFB data periodically when the buffer reaches certain thresholds, and transmits destination address messages as events occur. This periodic batching reduces overall transmission volume while the event-driven nature minimizes waiting time for critical address information.
Data Source
AI summary
A method and information processing system provide trace compression for trace messages. In response to a branch of a conditional branch instruction having not been taken or having been taken, a flag of a history buffer is set or cleared. A trace address message is generated in response to a conditional indirect branch instruction being taken, wherein the trace address message includes address information indicating the destination address of the taken branch, and an index value indicating a corresponding flag of the history buffer. In response to a return from interrupt or return from exception instruction, a predicted return address is compared to an actual return address. A trace address message is generated in response to the predicted and actual return addresses not matching. A trace address message is not generated in response to the predicted and actual return addresses matching.


