Call Path Tracking Using Compression Algorithm

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing methods fail to efficiently determine the origin of a subroutine or function call, especially in cases of recursive calls, and require cooperation from developers or are time-consuming, leading to ambiguities in call paths.

Innovation Solution

A data processing apparatus and method that uses call path storage circuitry and processing circuitry to maintain and update a call path identifier using a compression algorithm, allowing efficient tracking of call paths and distinguishing between different recursive calls by altering and compressing the call path identifier.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the application stack is walked to determine the sequence of called functions, then the call path information is obtained, but the process is very time consuming

Engineering Contradiction:
Improvecall path information accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-maintaining a call path identifier register that continuously tracks the call path as functions are called. Instead of walking the stack when information is needed, the system proactively updates the call path identifier with each function call, so the information is already prepared and immediately available when needed for debugging or analysis.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If the link register is examined to determine the origin of a call, then the return address is obtained, but the information is ambiguous in recursive calls and wrapper functions

Engineering Contradiction:
Improvecall origin informationVSAvoidcall path accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

Solution Approach 1:

The patent introduces a call path identifier register as an intermediary that maintains the complete call path context. This register acts as a mediator between the complex call structure (with wrappers and recursion) and the debugging tools, providing a clear, unambiguous representation of the actual call origin without requiring interpretation of link registers or stack contents.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If an identifying handle or string is passed by all callers, then the call origin can be identified, but this requires cooperation from developers and increases code complexity

Engineering Contradiction:
Improvefunction identification accuracyVSAvoidcode complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing a call path identification system that automatically tracks and identifies call origins without requiring any modifications to the called functions or cooperation from developers. The call path identifier register is automatically updated by the processing circuitry based on the program counter, providing self-service call path tracking that works with existing code without adding complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9998889B2Apparatus and method of tracking call paths
Publication Date: 2018.06.12 ARM LTD

AI summary

A data processing apparatus is provided. Call path storage circuitry stores an identifier of a call path and processing circuitry executes a current group of instructions from a plurality of groups of instructions. The processing circuitry is responsive to a calling instruction to firstly cause the processing circuitry to start executing, in dependence on the calling instruction, a next group of instructions from the plurality of groups of instructions such that the current group of instructions is added to the call path, and to secondly cause the call path storage circuitry to update the identifier of the call path, on the basis of the call path, using a compression algorithm.