IP Library Granted Patent US 8,868,982
Granted Patent B2
US 8,868,982 · App. 13/352,431 · Granted Oct 21, 2014

Compact function trace based on execution length of leaf functions

Inventors: Albrecht Mayer (Deisenhofen, DE); Harry Siebert (Puchheim, DE)
Assignee: Infineon Technologies AG
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,868,982
App. No.
13/352,431
Granted
Oct 21, 2014
Kind
B2
Abstract

In accordance with one aspect of the invention, a system for generating compact function trace data for leaf functions includes a central processing unit (CPU), configured to output program flow information needed for generating a program flow trace, and a trace unit, coupled to the CPU. The trace unit is configured to receive the program flow information from the CPU for generating compact function trace data. The trace unit further comprises a first output mode and a second output mode and is further configured to select either the first output mode or the second output mode for generating compact function trace data.

Claims (46)

1. A system for generating compact function trace data, comprising:

a central processing unit (CPU) configured to output program flow information needed for generating a program flow trace; and

a trace unit coupled to the CPU and configured to receive the program flow information from the CPU for generating compact function trace data, the trace unit comprising at least a first output mode and a second output mode, and further configured to select either the first output mode or the second output mode for generating the compact function trace data, wherein the first output mode is selected for very short leaf functions in which case no trace data is generated by the trace unit.

2. The system of claim 1 , wherein the compact function trace data is generated for leaf functions.

3. The system of claim 1 , wherein the second output mode is selected for short leaf functions, and wherein in the second output mode the compact function trace data is generated by the trace unit only for a CALL instruction.

4. The system of claim 1 , further comprising a trace buffer coupled to the trace unit, the trace buffer comprising a trace buffer fill level, and wherein the trace unit is further configured to select either the first output mode or the second output mode for outputting the compact function trace data in accordance with the trace buffer fill level.

5. The system of claim 1 , further comprising a trace buffer coupled to the trace unit, the trace buffer comprising a trace buffer fill level, and wherein the trace unit is further configured to change a threshold for short leaf functions or for very short leaf functions, or for both, in accordance with the trace buffer fill level.

6. The system of claim 1 , wherein the compact function trace data includes a time stamp.

7. A method comprising:

comparing, via a trace unit coupled to a processor, an execution length of a leaf function to a first function execution length threshold; and

generating trace data for the leaf function in response to the execution length of the leaf function exceeding the first function execution length threshold.

8. The method of claim 7 , wherein the trace data is not generated in response to the execution length of the leaf function not exceeding the first function execution length threshold.

9. The method of claim 7 , further comprising:

comparing the execution length of the leaf function to a second function execution length threshold; and

generating compact function trace data for the leaf function in response to the execution length of the leaf function not exceeding the second function execution length threshold,

wherein the first and second function execution length thresholds are different.

10. The method of claim 9 , wherein only the trace data for a CALL instruction is generated in response to the execution length of the leaf function not exceeding the second function execution length threshold.

11. The method of claim 7 , further comprising:

evaluating a fill level of a trace buffer:

comparing the fill level of the trace buffer with a trace buffer fill level threshold; and

generating trace data for the leaf function in response to the fill level of the trace buffer not exceeding the trace buffer fill level threshold.

12. The method of claim 7 , further comprising:

evaluating a fill level of a trace buffer:

comparing the fill level of the trace buffer with a trace buffer fill level threshold; and

adapting the trace buffer fill level threshold for short leaf functions or very short leaf functions, or both, depending on the fill level of the trace buffer.

13. A system for generating compact function trace data, comprising:

a trace message generator configured to generate the compact function trace data for a leaf function; and

an output mode selector, coupled to the trace message generator, configured to evaluate an execution length of the leaf function and determine the compact function trace data to be generated by the trace message generator based on the execution length of the leaf function.

14. The system of claim 13 , wherein the output mode selector is further configured to evaluate the execution length of the leaf function and a function execution length threshold to generate the compact function trace data.

15. The system of claim 14 , wherein the function execution length threshold comprises a very short leaf function threshold and wherein the output mode selector is further configured to compare the execution length of the leaf function with the very short leaf function threshold and a short leaf function threshold.

16. The system of claim 15 , wherein no program flow trace data is output for a very short leaf function.

17. The system of claim 15 , wherein program flow trace data is generated only for a CALL instruction for a short leaf function.

18. The system of claim 13 , wherein the trace unit is configured to output a source address for a RET instruction for the leaf function.

19. The system of claim 13 , further comprising a buffer coupled to the trace message generator, the buffer comprising a buffer fill level, wherein the output mode selector is configured to generate compact function trace data in accordance with the trace buffer fill level.

20. A system for generating program flow trace data for leaf functions, comprising:

a central processing unit (CPU) comprising a stack configured to store instruction addresses of a program, the CPU configured to generate the program flow trace data for the leaf functions; and

a trace unit coupled to the CPU, the trace unit configured to output the program flow trace data for the leaf functions in accordance with an output mode;

a trace unit mode selector coupled to the trace unit, the trace unit mode selector comprising at least a first output mode and a second output mode and configured to select either the first output mode or the second output mode as the output mode for outputting the program flow trace data; and

a trace buffer comprising a trace buffer fill level, coupled to the trace unit, wherein a threshold for short leaf functions or very short leaf functions, or both, is changed in accordance with a trace buffer fill level of the trace buffer.

21. The system of claim 20 , further comprising a trace buffer coupled to the trace unit wherein the trace unit mode selector is configured to select either the first output mode or the second output mode for outputting the program flow trace data in accordance with a trace buffer fill level.

22. A system for generating compact function trace data for a leaf function, comprising:

a central processing unit (CPU) configured to transfer program flow information needed for generating a program flow trace; and

a trace unit coupled to the CPU and configured to receive the program flow information from the CPU for generating compact function trace data, the trace unit comprising at least a first output mode and a second output mode, and further configured to select either the first output mode or the second output mode for generating the compact function trace data,

wherein the first output mode is for very short leaf functions in which case no trace data is generated by the trace unit, and

wherein the second output mode is for short leaf functions in which case the compact function trace data is generated only for a CALL instruction.

23. The system of claim 22 , further comprising a trace buffer coupled to the trace unit, the trace buffer comprising a trace buffer fill level, wherein the trace unit is further configured to select either the first output mode or the second output mode for outputting the compact function trace data in accordance with the trace buffer fill level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2012
From: MAYER, ALBRECHT, DR.; SIEBERT, HARRY
To: INFINEON TECHNOLOGIES AG
Reel/Frame 027709/0040 →
Continuity (1)
Related Publication 20130185601A1 · Jul 18, 2013