Programmable Bus Event Filters for SOC Trace Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging embedded systems with complex system-on-a-chip (SOC) designs is challenging due to the obtrusive nature of existing debugging methods, which interfere with program execution and lack flexibility in monitoring multiple components, leading to inefficiencies in capturing program and data traces in real-time.

Innovation Solution

A system-on-a-chip (SOC) with a trace unit that collects and stores trace history and statistics by monitoring qualified bus events across multiple buses, using programmable configuration registers to filter and increment counts, allowing for flexible and unobtrusive debugging without consuming excessive on-die real estate.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If large on-die trace buffers and wide trace ports are used to capture program and data traces in real-time, then measurement precision and completeness of trace information are improved, but device complexity and on-die real estate consumption increase

Engineering Contradiction:
Improvetrace information completenessVSAvoidon-die real estate
Core Design Contradiction:
Measurement precisionVSArea of stationary object

Solution Approach 1:

The patent segments the trace buffer into multiple smaller buffers (e.g., buffer 0, buffer 1, buffer 2) that can be independently managed and rotated. This allows the system to capture continuous trace information by switching between buffers when one fills up, effectively providing large buffering capacity without requiring a single large buffer that would consume excessive on-die real estate.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested buffer management structure where multiple buffers are organized in a rotational pattern. When buffer 0 is full, the system switches to buffer 1, then buffer 2, and wraps around to buffer 0. This nesting approach allows efficient utilization of limited buffer space while maintaining continuous trace capture capability.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Measurement precision

If distributed trace hardware is added across the SOC to monitor multiple buses, then measurement precision and visibility of SOC activities are improved, but device complexity and on-die real estate consumption increase

Engineering Contradiction:
ImproveSOC activity visibilityVSAvoiddebug hardware distribution
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal trace buffer system that can be shared across multiple buses and trace sources. Instead of dedicating separate buffer resources to each bus, a single set of rotatable buffers serves multiple buses sequentially, reducing overall hardware complexity while maintaining the ability to trace activities across the entire SOC.

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

Solution Approach 2:

The patent merges multiple trace buffer resources into a unified rotational buffer system. By combining the buffering functionality into a shared resource that serves multiple buses through time-multiplexed access, the system reduces the total amount of debug hardware required while maintaining comprehensive monitoring capability.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If extensive debug hardware is implemented on the SOC to provide high visibility and flexibility, then adaptability and measurement precision are improved, but device complexity and on-die real estate consumption increase

Engineering Contradiction:
Improvedebugging flexibilityVSAvoiddebug hardware amount
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic buffer allocation and rotation control that can be programmatically configured. The system allows runtime switching between different buffer configurations and trace sources, providing adaptability without requiring static dedicated hardware for each possible trace scenario. This dynamic approach reduces overall hardware complexity while maintaining flexibility.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9183147B2Programmable resources to track multiple buses
Publication Date: 2015.11.10 APPLE INC
  • US9183147B2 patent drawing
  • US9183147B2 patent drawing
  • US9183147B2 patent drawing

AI summary

A system and method for efficiently monitoring traces of multiple components in an embedded system. A system-on-a-chip (SOC) includes a trace unit for collecting and storing trace history, bus event statistics, or both. The SOC may transfer cache coherent messages across multiple buses between a shared memory and a cache coherent controller. The trace unit includes multiple bus event filters. Programmable configuration registers are used to assign the bus event filters to selected buses for monitoring associated bus traffic and determining whether qualified bus events occur. If so, the bus event filters increment an associated count for each of the qualified bus events. The values used for determining qualified bus events may be set by programmable configuration registers.