Real-Time Instruction Tracing via Fixed-Length Packet Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for real-time instruction tracing in processors face challenges in efficiently capturing and transmitting trace information without impacting processor performance, particularly in supporting complex instruction sets and data parallelism operations like SIMD instructions.

Innovation Solution

The implementation of a real-time instruction tracing system that uses a combination of address comparison logic, packet generation, and compression techniques to generate fixed-length internal packets from variable-length software-visible packets, allowing for real-time observation of program flow without significant performance degradation, and includes a reorder buffer and execution clusters for handling complex instruction sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If real-time instruction tracing is implemented in a processor, then program flow observation capability is improved, but processor performance is degraded

Engineering Contradiction:
Improveprogram flow observation capabilityVSAvoidprocessor performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent introduces a trace buffer as an intermediary component that captures trace information from the processor without directly interfering with the processor's execution pipeline. The trace buffer receives trace data asynchronously and allows the processor to continue operating at full speed while trace information is collected and processed separately, thereby maintaining processor performance while enabling detailed program flow observation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If trace information is captured at full processor speed, then tracing accuracy is improved, but trace buffer overflow occurs

Engineering Contradiction:
Improvetracing accuracyVSAvoidtrace buffer capacity
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent segments the trace information into different types (e.g., branch trace information, instruction trace information) and uses separate buffers or handling mechanisms for different trace categories. This segmentation allows the system to manage trace data more efficiently, prioritizing critical trace information while preventing any single type of trace data from causing buffer overflow, thereby maintaining tracing accuracy within available buffer capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic adjustment of trace buffering parameters such as buffer size allocation, trace sampling rates, and trace information retention policies based on processor workload and buffer utilization. When the trace buffer approaches capacity, the system can adjust these parameters to prevent overflow while maintaining adequate tracing accuracy for analysis purposes.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If compression is applied to trace packets, then transmission efficiency is improved, but processing complexity is increased

Engineering Contradiction:
Improvetransmission efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple trace information elements into consolidated trace packets that represent groups of related processor events. By combining multiple pieces of trace data into single compressed packets with structured formats, the system achieves efficient transmission and storage while managing processing complexity through standardized packet templates that simplify compression and decompression operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2836906B1System and method for real time instruction tracing
Publication Date: 2019.11.20 INTEL CORP
  • EP2836906B1 patent drawingFigure 1A~1B
  • EP2836906B1 patent drawingFigure 2
  • EP2836906B1 patent drawingFigure 3

AI summary

An apparatus and method are described for real time instruction tracing. For example, a method according to one embodiment comprises: recording user specified address ranges for which tracing is required; monitoring a next linear instruction pointer (5 NLIP) values and/or branch linear instruction pointer (BLIP) values to determine if address range has been entered; when the range is entered, compressing the NLIP and/or BLIP values and constructing fixed length packets containing the tracing data; and transferring the fixed length packets to a memory execution cluster.