US 11,989,111 B2
Handling trace data for jumps in program flow
Iain Robertson, Bedford (GB)
Assigned to Siemens Industry Software Inc., Plano, TX (US)
Filed by SIEMENS INDUSTRY SOFTWARE INC., Plano, TX (US)
Filed on Jul. 10, 2020, as Appl. No. 16/925,445.
Claims priority of application No. 1909933 (GB), filed on Jul. 10, 2019.
Prior Publication US 2021/0011833 A1, Jan. 14, 2021
Int. Cl. G06F 11/34 (2006.01); G06F 9/38 (2018.01); G06F 11/30 (2006.01)
CPC G06F 11/3495 (2013.01) [G06F 9/3802 (2013.01); G06F 11/302 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A processor supervisory unit configured to monitor program flow executed by a processor, at a data bus configured to connect the processor to a memory, the processor supervisory unit being arranged to store a set of values representing locations to which the program flow is expected to return after jumps in the program flow, the processor supervisory unit being configured to:
monitor, at the data bus, the program flow for a jump in the program flow, the monitor of the program flow comprising identification of a location in the memory from which the processor requests an instruction, identification of content of the instruction passing to the processor from the memory, direct report to the processor supervisory unit when the processor has executed the instruction, or any combination thereof;
detect the jump in the monitored program flow;
when in a first mode, on the detection of the jump in the monitored program flow, store a location value representing a location to which the program flow is expected to return from the jump; and
when in a second mode, on the detection of the jump in the monitored program flow, increment a counter associated with a location value representing a location to which the program flow is expected to return from the jump,
wherein the processor supervisory unit is configured to store no more than a predetermined number of location values simultaneously by operating in the first mode,
wherein the processor supervisory unit has access to a plurality of stores, each configured to store a respective location value, and there is a counter associated with each of the stores, and
wherein the processor supervisory unit is configured to, when two successive stores of the plurality of stores store a same location value, treat bits representing counters associated with the location values as collectively representing a value in binary form.