Trace Data Synchronization Using Global Clock Timestamps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In systems with multiple functional units, synchronizing trace data from different blocks running at varying clock frequencies is challenging, especially when clock frequencies change dynamically, and some blocks may be unaware of their own clock frequency, making it difficult to time-correlate trace streams effectively.

Innovation Solution

Each functional unit generates a trace stream with synchronization information, including timestamps relative to a global clock and local clock saturation values, and a 'resume-from-halt' field to account for frequency changes, allowing for time-correlation during post-processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If timestamps are added to trace streams for synchronization, then time-correlation accuracy is improved, but data size and processing complexity increase

Engineering Contradiction:
Improvetime-correlation accuracyVSAvoiddata processing complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The timestamp is segmented into two components: a global timestamp for coarse time synchronization and a local timestamp for fine-grained time correlation within each functional unit. This segmentation allows accurate time-correlation while reducing the complexity of processing, as each component can be handled independently during post-processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A global clock signal acts as an intermediary between the local clocks of different functional units. The global clock provides a common reference for synchronization, enabling time-correlation of trace streams from multiple functional units without requiring direct coordination between each unit's local clock.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If local clock saturation values are included in trace entries, then frequency change accuracy is improved, but trace data size increases

Engineering Contradiction:
Improvefrequency change accuracyVSAvoidtrace data size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Instead of recording the complete clock frequency or continuous timing information, only the local clock saturation value (a partial representation) is included in trace entries. This partial action provides sufficient information to detect and correlate frequency changes while minimizing the increase in trace data size.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If resume-from-halt fields are added to track frequency changes, then synchronization reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidtrace entry structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each functional unit autonomously generates and manages its own resume-from-halt counter and synchronization state without external intervention. The functional units self-synchronize by comparing their local timestamps with the global clock, eliminating the need for complex centralized coordination mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8935574B2Correlating traces in a computing system
Publication Date: 2015.01.13 ADVANCED MICRO DEVICES INC
  • US8935574B2 patent drawing
  • US8935574B2 patent drawing
  • US8935574B2 patent drawing

AI summary

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.