Trace Logic Partitioning for Cycle-Accurate Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor and memory emulation technologies face challenges in accurately modeling cache-based architectures, leading to performance discrepancies and a lack of visibility into system behavior, which hinders debugging and profiling, especially with the introduction of cache-based systems and multiple CPU cores.

Innovation Solution

The solution involves cycle-accurate simulation by partitioning trace logic to free-run while functional logic is stepped, allowing for the export of trace information at a slower clock rate to capture system states, along with data compression and adaptive calibration techniques to improve data extraction and recording accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If simulation is used to model cache-based architectures, then development time is reduced, but performance accuracy deteriorates (simulated performance can be 50-100% away from actual target performance)

Engineering Contradiction:
Improvedevelopment timeVSAvoidperformance accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The system is divided into two distinct components: a simulator for rapid development and an emulator for accurate measurement. The simulator handles early development stages where speed is critical, while the emulator takes over for performance-critical stages where accuracy is paramount. This segmentation allows developers to benefit from both fast simulation and accurate emulation without compromise.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces cycle-accurate trace information as an intermediary between the simulator and emulator. This trace data captures actual system behavior and serves as a bridge, allowing the emulator to provide precise performance measurements while the simulator continues to enable rapid development. The trace information mediates between the two systems to ensure consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If emulators are introduced to provide visibility into system behavior, then measurement accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvesystem visibilityVSAvoidemulation system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a cycle-accurate copy of the target system's behavior through tracing. Instead of directly emulating the entire complex cache-based architecture, the system traces and records the actual execution cycles and events, then uses this trace data to provide visibility into system behavior. This copying approach simplifies the measurement system while maintaining accuracy.

Inventive Principle:
Principle #26Copying

3Measurement precision

If cycle-accurate tracing is implemented, then performance measurement accuracy is improved, but data processing complexity increases

Engineering Contradiction:
Improveperformance measurement accuracyVSAvoiddata processing complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the essential cycle-accurate trace information needed for performance measurement from the complex system behavior. By selectively capturing and exporting only the relevant timing and event data, the system achieves accurate performance measurement without the need to process and analyze all system details, thereby reducing data processing complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7613951B2Scaled time trace
Publication Date: 2009.11.03 TEXAS INSTRUMENTS INC
  • US7613951B2 patent drawing
  • US7613951B2 patent drawing
  • US7613951B2 patent drawing

AI summary

The trace logic are separate from the clocks that operate the system logic. This allows the chip to be placed in a special mode where the functional logic is issued one clock. One frame of trace data is generated for each functional clock issued. A valid signal may be implemented changing state when new information is generated. The trace logic, whose clock is free running, detects the change in state in the valid signal. It then processes the trace information presented to it, exporting this information to a trace recorder. When transmission of this information has created sufficient space to accept a new frame of trace information, the empty signal is generated. This causes the clock generation logic to issue another clock to the system logic.