Multi-Thread Processor Loading Measurement via Idle Task Loop Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies lack the ability to measure multi-thread processor CPU loading under various use cases and data rates, and there is no tool to probe multi-thread processor CPU usage per thread or 'all-wait' status during a packet data session in wireless devices.

Innovation Solution

A method and apparatus that execute an idle task in each thread of a multi-thread processor to determine loading by counting loop executions over a predetermined time period, allowing for real-time profiling and measurement of CPU usage and idle status.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If no idle task is executed in processor threads, then processor resources are fully utilized for productive work, but processor loading and performance profiling cannot be measured

Engineering Contradiction:
Improveprocessor loading measurementVSAvoidprocessor productive work
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The processor uses its own idle resources to perform self-measurement by executing idle tasks during idle periods. The idle task counts loop executions when no other task is running, allowing the processor to profile its own loading without external measurement tools or dedicated measurement hardware.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If an idle task is executed to measure processor loading, then performance profiling is enabled, but processor performance may be degraded

Engineering Contradiction:
Improveprocessor loading measurementVSAvoidprocessor execution speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The idle task executes periodically only during idle periods when no other productive work is scheduled on the thread. The task loops and runs intermittently based on processor availability, counting executions during predetermined time periods without interfering with scheduled productive tasks.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The idle task performs minimal computation by simply counting loop executions rather than performing substantial processing. This partial action provides sufficient measurement data while consuming minimal processor resources, ensuring that the measurement overhead does not significantly impact overall processor performance.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of information

If per-thread loading measurement is implemented, then detailed performance insights are obtained, but system complexity increases

Engineering Contradiction:
Improveperformance information completenessVSAvoidmeasurement system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The measurement system is segmented by implementing separate idle tasks for each processor thread, with each thread independently counting its own loop executions. This allows per-thread loading measurement without requiring complex centralized monitoring, as each thread self-measures independently and results are aggregated for overall processor profiling.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2502146B1Methods and apparatus for measuring performance of a multi-thread processor
Publication Date: 2017.11.01 QUALCOMM INC
  • EP2502146B1 patent drawingFigure 1~2
  • EP2502146B1 patent drawingFigure 3
  • EP2502146B1 patent drawingFigure 4~5

AI summary

Disclosed are methods and apparatus for measuring performance of a multi-thread processor. The method and apparatus determine loading of a multi-thread processor through execution of an idle task in individual threads of the multi-thread processor during predetermined time periods. The idle task is configured to loop and run when no other task is running on the threads. Loop executions of the idle task on each thread are counted over each of the predetermined time periods. From these counts, loading of each of the threads of the multi-thread processor may then be determined. The loading may be used to develop a processor profile that may then be displayed in real-time.