Debug Circuitry TLB Trace Message Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current debugging processes in data processing systems face challenges in translating virtual addresses to physical addresses in real-time, especially when dynamic memory mapping occurs, which hinders effective debugging and trace message generation.
Innovation Solution
The system generates address translation trace messages in response to modifications or invalidations in the address translation logic, such as through TLB updates, and provides these messages to an external debugger, along with program correlation messages for accurate branch history and sequence count information, while compressing fields to improve efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If virtual addresses are used for tracing, then program listings can be directly traced using compile and link information, but external debuggers cannot translate addresses to physical locations in real-time when mappings change dynamically
Solution Approach 1:
The system pre-fetches and stores address translation information (virtual-to-physical mappings) in a buffer before it is needed for debugging. When a page walk is initiated, the translations are already available, eliminating the need for real-time translation during the actual debugging operation.
Solution Approach 2:
An intermediary buffer is introduced between the address translation logic and the external debugger. This buffer captures and holds translation information, allowing the debugger to retrieve pre-translated addresses without needing to perform real-time translation operations.
2Measurement precision
If real-time address translation is performed during debugging, then current memory mappings are accurately reflected, but debugging operations are delayed when page walks are required
Solution Approach 1:
Address translations are performed and stored in advance in a buffer, so when debugging operations need to access memory mappings, the translations are already available immediately without requiring delayed page walk operations.
Solution Approach 2:
The system prepares and buffers address translation information beforehand to cushion against potential translation delays. This pre-computed translation data acts as a buffer that prevents debugging operations from being stalled when mappings need to be accessed.
3Loss of information
If complete address translation information is provided to external debuggers, then accurate program flow monitoring is achieved, but bandwidth requirements and message sizes increase
Solution Approach 1:
Only the essential and changed address translation information is extracted and sent to the external debugger, rather than transmitting complete memory mapping data. This selective extraction reduces message size while maintaining the completeness of debug-relevant information.
Solution Approach 2:
The system sends partial address translation information - specifically only the changes and relevant mappings needed for debugging - rather than transmitting excessive complete mapping data. This partial action approach maintains debug information completeness for necessary operations while reducing overall message volume.
Data Source
AI summary
A data processing system and method includes a data processor and memory that are coupled to debug circuitry that generates debug messages including address translation trace messages. A memory management unit (MMU) includes a translation lookaside buffer (TLB) for implementing address translation to translate addresses between virtual and physical forms. The debug circuitry includes message generation circuitry coupled to the MMU for receiving notice when TLB entries are modified and generating both an address translation trace message and a corresponding program correlation message containing at least one of branch history information and instruction count information. The branch history information is a history of direct branch instructions that are executed and whether, when executed, the direct branch instructions were taken. The instruction count information is a count of one or more data processing instructions executed up to a point in time when a new TLB entry is established in the TLB.


