Tracing Hardware Function Call Counter Indirect Branch Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Information processing systems face significant data transfer overhead when tracing program flows, which necessitates high-speed storage and data transport infrastructure.

Innovation Solution

The implementation of tracing hardware that records executed instructions, generates packets based on these instructions, and uses a decoder with function call counters to infer indirect branch addresses, thereby reducing data transfer overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If tracing hardware records all executed instructions including indirect branch addresses, then program flow visibility is improved, but data transfer overhead increases

Engineering Contradiction:
Improveprogram flow visibilityVSAvoiddata transfer overhead
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed for program flow tracing by using function call counters to track nested call depth, rather than transferring complete indirect branch addresses for every instruction. This selective extraction reduces data transfer overhead while maintaining visibility into program flow control changes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of transferring actual indirect branch addresses, the patent uses a simplified counter-based representation that copies only the necessary control flow information. The function call counter creates a compact representation of program flow state that can be reconstructed at the decoder without requiring high-bandwidth data transfer.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If function call counters are used to infer indirect branch addresses, then data transfer overhead is reduced, but decoder complexity increases

Engineering Contradiction:
Improvedata transfer overheadVSAvoiddecoder complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The function call counter is incremented and decremented in advance during instruction execution to track nested function call depth. This preliminary action at the tracer prepares the counter state so that the decoder can infer indirect branch addresses without complex analysis, reducing decoder complexity while maintaining data transfer reduction.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If nested function calls are tracked using counters, then indirect branch address inference is improved, but counter management complexity increases

Engineering Contradiction:
Improveindirect branch address inferenceVSAvoidcounter management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The function call counter uses feedback mechanisms where the tracer monitors function call instructions and updates the counter state accordingly. This feedback loop ensures accurate tracking of nested call depth, enabling precise indirect branch address inference while keeping counter management systematic and manageable through well-defined increment/decrement operations.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250156187A1Reduction of data transfer overhead
Publication Date: 2025.05.15 QUALCOMM INC
  • US20250156187A1 patent drawing
  • US20250156187A1 patent drawing
  • US20250156187A1 patent drawing

AI summary

Aspects of the disclosure are directed to reduction of data transfer overhead. In accordance with one aspect, increment a function call counter for an executed function call; decrement the function call counter for an executed return from function call; infer the indirect branch address based on a function call counter value and when a cumulative count of received executed atoms indicates a return from function call has been executed; oversaturate the function call counter at a maximum counter value if the function call counter contains the maximum counter value and a subsequent function call is executed; and undersaturate the function call counter at a minimum counter value if the function call counter contains the minimum counter value and a subsequent return from function call is executed.