Cache Memory Debugging via Non-Intrusive Show Instruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveaccess to variable valuesVSAvoidcache state integrity
Core Design Contradiction:
Loss of informationVSReliability

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveaccess to variable valuesVSAvoidbandwidth consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improveaccess to variable valuesVSAvoiddebugging accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUSRE49305E1Data processing system having cache memory debugging support and method therefor
Publication Date: 2022.11.22 RAMBUS INC
  • USRE49305E1 patent drawing
  • USRE49305E1 patent drawing

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.