Cache Memory Debugging via Non-Intrusive Show Instruction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data processing systems face challenges in real-time debugging due to intrusive methods that modify cache states and cause bandwidth issues when accessing cached variables, especially in systems with cache hierarchies, leading to incomplete debugging and unintended side-effects.
Innovation Solution
A method and apparatus that allow a data block from cache memory to be made visible on the system bus without modifying its state, using a 'data cache block show' instruction that determines if an effective address results in a hit or miss, and provides the data to the bus without altering cache status, allowing real-time debugging without affecting the cache's current state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If intrusive methods (load/store instructions via JTAG port) are used to access cached variables for debugging, then the debug circuitry can access variable values, but the cache state is modified and additional bandwidth is consumed
Solution Approach 1:
A special show instruction is introduced as an intermediary mechanism between the debug circuitry and the cache. This instruction acts as a mediator that allows reading cached data without modifying the cache state, thereby providing access to variable values while preserving cache integrity. The show instruction serves as a dedicated channel that decouples the debugging operation from the normal cache access protocols.
2Loss of information
If load and store instructions are executed to extract cached values, then variable values can be obtained for debugging, but message generation increases causing bandwidth issues
Solution Approach 1:
The patent extracts the data retrieval function from the normal load/store instruction set and places it in a dedicated show instruction. This extraction allows the debugging system to access cached values without triggering the full load/store message generation protocol, thereby reducing bandwidth consumption while maintaining access capability.
3Loss of information
If intrusive debugging operations are performed, then variable values can be accessed, but the debugging process may hide or alter the problem being debugged
Solution Approach 1:
The show instruction serves as a non-intrusive intermediary that allows observation of cache contents without altering the system state. By using this dedicated instruction rather than normal load/store operations, the debugging system can accurately observe variable values without introducing side effects that might mask or modify the underlying debugging problem.
Data Source
AI summary
A data processing system having debugging circuitry and a method for operating the data processing system is provided. In the system, a processor has a cache memory and is coupled to a system bus. An instruction is received which indicates an effective address. The instruction is executed and it is determined if the effective address results in a hit or a miss in the cache. If the effective address results in a hit, data associated with the effective address is provided from the cache to the system bus without modifying a state of the cache. The instruction allows real-time debugging circuits to be able to view the current value of one or more variables in memory that may be hidden from access due to cache hierarchy without modifying the value or impacting the current state of the cache.

