Programmable Bus Event Filters for SOC Trace Monitoring
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


