# US 2013/0159780 A1 · Correlating traces in a computing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0159780 A1
- Document ID: US20130159780A1
- Status: Published application
- Kind: A1
- Application number: 13/328,512
- Filed: 2011-12-16
- Published: 2013-06-20
- Earliest claimed: 2011-12-16
- Assignees: Advanced Micro Devices, Inc.
- Inventors: Ryan D. Bedwell; Elizabeth M. Cooper; Eric M. Rentschler
- Web page: https://patentgrep.com/patent/US20130159780A1

## CPC

- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/3419: {by assessing time}
- G06F 11/348: {Circuit details, i.e. tracer hardware}
- G06F 2201/835: Timestamp
- G06F 2201/88: Monitoring involving counting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus, processor, and method for synchronizing trace data. A processor includes multiple cores, and each core operates at a different local clock frequency. A global clock is distributed to each core, and a timestamp is generated using the global clock and the local clock. The timestamp and a local clock saturation value are included in each trace entry, and the local clock saturation value is equal to the ratio between the local clock and the global clock. The trace entries from separate cores are time-correlated in a post-processing phase based on the timestamp and local clock saturation values.

## Claims

### Claim 1

An integrated circuit comprising a plurality of functional units, wherein each functional unit is configured to:
operate responsive to a local clock, wherein each local clock is independent of local clocks corresponding to other functional units; and
generate a plurality of trace entries, wherein each trace entry comprises trace data and synchronization data, and wherein the synchronization data enables trace entries from separate functional units to be time-correlated.

### Claim 2 (depends on 1)

The integrated circuit as recited in claim 1, wherein each functional unit is further configured to receive a global clock and a local clock, wherein the global clock is running at a lower frequency than the local clock.

### Claim 3 (depends on 2)

The integrated circuit as recited in claim 2, wherein trace entries from separate functional unit may be used to time-correlate trace data in a post-processing phase.

### Claim 4 (depends on 2)

The integrated circuit as recited in claim 2, wherein two or more of the functional units are configured to run at different local clock frequencies.

### Claim 5 (depends on 2)

The integrated circuit as recited in claim 2, wherein the synchronization data comprises a timestamp and a local clock saturation value, wherein each functional unit of the plurality of functional units is further configured to:
generate the timestamp based on the global clock and the local clock; and
generate the local clock saturation value, wherein the local clock saturation value represents a number of local clock cycles per global clock cycle.

### Claim 6 (depends on 2)

The integrated circuit as recited in claim 2, wherein the synchronization data comprises a global clock edge detection indicator.

### Claim 7 (depends on 2)

The integrated circuit as recited in claim 2, wherein at least one functional unit of the plurality of functional units is configured to:
generate a plurality of trace entries;
monitor local clock frequency changes and encode local clock frequency change indicators in respective trace entries; and
monitor disconnect and connect events and encode indicators corresponding to the disconnect and connect events in respective trace entries.

### Claim 8 (depends on 2)

The integrated circuit as recited in claim 2, wherein the processor is further configured to store trace entries in a trace capture buffer prior to conveying the trace entries to a memory.

### Claim 9 (depends on 2)

The integrated circuit as recited in claim 2, wherein each functional unit does not know a specific frequency of its local clock.

### Claim 10

An apparatus comprising a plurality of functional units, wherein each functional unit is configured to:
receive at least one of a global clock and a local clock, wherein the local clock is at a different frequency than the global clock, wherein a functional unit is operative at its respective local clock; and
generate a trace stream comprising a plurality of trace entries, wherein each trace entry comprises data reflective of a relationship between the local and global clock frequencies.

### Claim 11 (depends on 10)

The apparatus as recited in claim 10, wherein each functional unit comprises a local clock counter, and wherein the local clock counter is configured to generate a local clock saturation value.

### Claim 12 (depends on 10)

The apparatus as recited in claim 10, wherein the local clock of a given functional unit is independent of local clocks of other functional units.

### Claim 13 (depends on 10)

The apparatus as recited in claim 10, wherein each trace entry further comprises data which indicates a change to the local clock frequency has been detected.

### Claim 14 (depends on 13)

The apparatus as recited in claim 13, wherein the indicator comprises a bit which is set for two global clock periods following the change to the local clock frequency.

### Claim 15 (depends on 13)

The apparatus as recited in claim 13, wherein said data comprises a local clock saturation value which is deemed invalid in trace entries where the indicator is set.

### Claim 16

A method comprising:
receiving at least one of a global clock and a first local clock at a first functional unit;
generating a first trace entry at the first functional unit, wherein the first trace entry comprises a first timestamp and data reflective of a relationship between the first local and global clock frequencies;
receiving at least one of the global clock and a second local clock at a second functional unit; and
generating a second trace entry at the second functional unit, wherein the second trace entry comprises a second timestamp and data reflective of a relationship between the second local and global clock frequencies.

### Claim 17 (depends on 16)

The method as recited in claim 16, wherein the global clock is running at a lower frequency than the first and second local clocks, wherein the data in the first trace entry represents a ratio of the first local clock frequency to the global clock frequency, and wherein the data in the second trace entry represents a ratio of the second local clock frequency to the global clock frequency.

### Claim 18 (depends on 16)

The method as recited in claim 16, wherein each of the first and second timestamps comprises a global clock value and a local clock value.

### Claim 19 (depends on 16)

The method as recited in claim 16, further comprising:
storing the first and second trace entries in one or more trace capture buffers;
writing the first and second trace entries from the one or more trace capture buffers to a memory.

### Claim 20 (depends on 16)

The method as recited in claim 16, wherein the first local clock is running at a first frequency, wherein the second local clock is running at a second frequency, and wherein the second frequency is different than the first frequency.
