External Profiling Agent for Processor Performance Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Monitoring processor performance is challenging as it requires execution cycles, making it difficult to track computational resources and detect anomalies like malicious code, especially when using the processor to monitor itself.

Innovation Solution

An external profiling agent is used to access the processor's performance counter, storage area, and control register, allowing it to save and read program states independently, generating a performance profile without interfering with the processor's execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the processor monitors its own performance, then performance data can be collected, but execution cycles are consumed and resources are diverted from primary functions

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidprocessor execution efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

An external profiling agent is introduced as an intermediary between the processor and the monitoring system. The agent accesses the processor's performance counter, storage area, and control register through a performance monitoring interface to collect performance data without requiring the processor to execute monitoring instructions, thus eliminating the trade-off between monitoring accuracy and execution efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The monitoring function is segmented from the processor core and implemented as a separate external profiling agent. This segmentation allows the processor to focus on its primary computational functions while the external agent independently collects and analyzes performance data through the performance monitoring interface

Inventive Principle:
Principle #1Segmentation

2Productivity

If an external profiling agent is used, then processor execution is not interfered with, but access to performance counter and control register is required

Engineering Contradiction:
Improveprocessor execution efficiencyVSAvoidmonitoring system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The performance monitoring interface is designed with multi-functionality, allowing the external profiling agent to access multiple performance counter components (counter, storage area, control register) through a single unified interface. This universal interface simplifies the monitoring system architecture while enabling comprehensive performance data collection without interfering with processor execution

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

Data Source

PatentUS20240211366A1Processor performance profiling using agents
Publication Date: 2024.06.27 AKEANA INC
  • US20240211366A1 patent drawing
  • US20240211366A1 patent drawing
  • US20240211366A1 patent drawing

AI summary

Techniques for performance profiling based on processor performance profiling using agents are disclosed. A processor core is accessed. The processor core includes a performance counter, a performance counter storage area, and a performance counter control register. The processor core includes a performance monitoring interface. The performance counter, performance counter storage area, and performance counter control register are assigned to an external profiling agent, which loads the performance counter and the performance counter control register. The loading is based on a particular event in the processor core. A program state is saved to the storage area, based on a counter event in the performance counter and an enable bit in the performance counter control register being set. The program state that is saved corresponds to code being executed on the processor core. The program state is read, from the storage area, by the external profiling agent.