Cycle Accurate Vector Instruction Tracing via Checkpoints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for determining the timing of vector instructions in processors are either limited in providing information about delays within the vector unit or burdensome to the system, with silicon-based measurements lacking detail and simulation-based methods offering inaccurate cycle-accurate timing.

Innovation Solution

Implementing checkpoints with circuitry such as latches or flip-flops at strategic points in the processor to capture and store bits representing key clock cycles of vector instruction execution, allowing for cycle-accurate tracing with minimal system burden, and using a trace buffer to store and compress these bits for analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If silicon-based measurement methods are used to determine instruction timing, then measurement data can be obtained, but the information about vector unit delays is limited and insufficient

Engineering Contradiction:
Improvetiming information accuracyVSAvoidvector unit delay details
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent segments the vector unit into multiple checkpoints (first checkpoint at vector instruction queue, second checkpoint at vector execution unit output) to capture timing information at different stages. This segmentation allows detailed measurement of vector instruction delays through the vector unit, resolving the information loss problem while maintaining measurement precision.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If simulation-based methods are used to determine instruction timing, then comprehensive timing information can be obtained, but the cycle-accurate timing is inaccurate

Engineering Contradiction:
Improvetiming information completenessVSAvoidcycle-accurate timing accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

Solution Approach 1:

The patent introduces cycle accurate trace circuitry as an intermediary between the processor core and measurement systems. This trace circuitry captures actual cycle-accurate timing information from the processor pipeline, providing both comprehensive timing information and accurate cycle-level precision, resolving the contradiction between information completeness and measurement accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If detailed tracing of vector instructions is implemented, then accurate timing information is obtained, but system resource burden increases

Engineering Contradiction:
Improvevector instruction timing accuracyVSAvoidsystem resource utilization
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the essential timing information (cycle accurate trace bits indicating instruction retirement) from the complex vector execution process. By focusing on capturing retirement timing at key checkpoints rather than tracing every internal vector unit operation, the system achieves accurate timing measurement while minimizing the burden on system resources.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20240338277A1Cycle accurate tracing of vector instructions
Publication Date: 2024.10.10 SIFIVE INC
  • US20240338277A1 patent drawing
  • US20240338277A1 patent drawing
  • US20240338277A1 patent drawing

AI summary

Systems and methods are disclosed for cycle accurate tracing of vector instructions. For example, a system may include a vector unit in communication with a scalar core. The vector unit may include a vector instruction queue that receives vector instructions from the scalar core. The vector unit may also include a vector execution unit that executes vector instructions from the vector instruction queue. The system may also include checkpoints in the vector unit including a first checkpoint including circuitry that sets a first bit for a first clock cycle in which a first vector instruction exits the vector instruction queue, and a second checkpoint including circuitry that sets a second bit for a second clock cycle in which a second vector instruction exits the vector execution unit.