Snoop Bus Commands for Cache Debug Visibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face challenges in allowing real-time debuggers to access the latest values of variables hidden in caches or cache hierarchies without intrusive operations, which can alter the cache state, limiting debugging capabilities.

Innovation Solution

The introduction of new snoop bus commands, such as 'show line' and 'show doubleword', enables debug circuitry to access cached values without modifying the cache state, allowing visibility into cache contents by placing cached data on the system bus for capture.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional debugger access methods are used to retrieve variable values from cache, then the debugger can obtain cache contents, but the cache state is modified which affects debugging accuracy

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

Solution Approach 1:

A debug interface is introduced as an intermediary between the debugger and the cache system. This interface provides a specialized read allocation path that allows the debugger to access cache contents without triggering traditional read operations that would modify cache state. The debug interface acts as a mediator that enables observation without interference.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The cache read access path is segmented into two distinct paths: a normal read path for processor operations and a debug read path for debugger access. The debug read path is specifically designed to provide visibility into cache contents without affecting cache state, while the normal path maintains existing cache behavior. This segmentation allows simultaneous debugging and normal operation without interference.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If intrusive operations are performed to extract variable values from cache, then the debugger can access cached data, but the operation halts the processor and alters cache state

Engineering Contradiction:
Improvedebugger access capabilityVSAvoiddebugging operation complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The debug interface is designed to work seamlessly with the existing cache hierarchy without requiring external control logic or complex coordination. The cache system itself provides the debugging capability through its own debug read allocation mechanism, eliminating the need for external intervention or complex debugging infrastructure.

Inventive Principle:
Principle #25Self-service

3Speed

If a cache hierarchy exists between the processor and debugger, then data access speed is improved, but the debugger cannot access the latest variable values

Engineering Contradiction:
Improvedata access speedVSAvoidvisibility of latest values
Core Design Contradiction:
SpeedVSLoss of information

Solution Approach 1:

The debug interface is designed to work with any cache hierarchy configuration, providing universal debugging capability across different cache levels and architectures. The same debug read allocation mechanism can access contents at any level of the cache hierarchy, making the debugging system adaptable to various cache configurations without requiring modification to the fundamental approach.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8972671B2Method and apparatus for cache transactions in a data processing system
Publication Date: 2015.03.03 NXP USA INC
  • US8972671B2 patent drawing
  • US8972671B2 patent drawing
  • US8972671B2 patent drawing

AI summary

A plurality of new snoop transaction types are described. Some include address information in the requests, and others include cache entry information in the requests. Some responses include tag address information, and some do not. Some provide tag address content on the data bus lines during the data portion of the transaction. These new snoop transaction types are very helpful during debug of a data processing system.