Debug Bus Performance Data Streaming Without Interrupts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Performance monitoring in computing systems inherently disrupts the operations being measured, known as the 'observer effect, due to the need for interrupts to retrieve performance counter data, which impacts system performance.
Innovation Solution
A method and apparatus that stream performance data to a parallel port without generating interrupts, allowing continuous execution of processor instructions while monitoring and outputting performance data, using a debug bus and a parallel port to transfer data in a continuous stream, thereby minimizing the observer effect.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If performance data is retrieved using interrupts, then performance counter data can be output and stored, but the current processor execution is interrupted and performance is impacted
Solution Approach 1:
The patent implements continuous streaming of performance data from the Performance Monitor Unit (PMU) to the External World without interrupting processor execution. The PMU continuously outputs performance data packets via a debug bus to a capture device, eliminating the interrupt-based retrieval mechanism that previously caused performance degradation. This ensures the useful action of performance monitoring continues without stopping the processor's useful work.
Solution Approach 2:
The patent introduces a debug bus as an intermediary channel between the PMU and the external world. Instead of directly interrupting the processor to retrieve data, the PMU streams data through the debug bus to a capture device (such as a logic analyzer). This intermediary pathway allows performance data to be transferred without disrupting the processor's execution flow, resolving the contradiction between reliable data retrieval and maintaining system performance.
2Loss of information
If performance monitoring is implemented, then performance data can be collected, but the observer effect disrupts the operations being measured
Solution Approach 1:
The continuous streaming mechanism ensures that performance monitoring operates continuously without interrupting the processor. By maintaining continuous data flow through the debug bus, the system minimizes the time window in which the monitoring itself could affect the measured operations, thereby reducing the observer effect while maintaining complete performance data collection.
Solution Approach 2:
The patent extracts the performance data collection function from the processor's execution flow by using a separate debug bus channel. The PMU continuously outputs data packets through this dedicated channel to external capture devices, separating the monitoring function from the executed code. This extraction eliminates the need for interrupts that would disrupt the measured operations, thereby reducing the observer effect.
3Quantity of substance
If interrupts are used to retrieve performance data, then data can be stored in memory, but time is lost during interrupt handling
Solution Approach 1:
The patent eliminates interrupt handling time by implementing continuous streaming of performance data. The PMU continuously outputs data packets through the debug bus to external capture devices without requiring processor intervention. This continuous operation removes the stop-start nature of interrupt-based retrieval, ensuring no time is lost to interrupt handling while maintaining complete data collection for storage.
Solution Approach 2:
The debug bus serves as an intermediary that directly transfers performance data from the PMU to external storage devices without requiring processor involvement. This intermediary channel handles the data transfer autonomously, eliminating the time the processor would otherwise spend in interrupt handling routines while still achieving complete data storage.
Data Source
AI summary
A device and method for providing performance information about a processing device. A stream of performance data is generated by one or more devices whose performance is reflected in the performance data. This performance data stream is then provided to a parallel port for outputting thereof.


