Trace Generation Circuitry Branch Control Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The introduction of branch-future instructions complicates tracing execution behavior in processing circuitry, as they can turn arbitrary instructions into branches, disrupting the ability of trace streams to accurately reconstruct instruction sequences when only trace elements for predetermined instructions are produced.

Innovation Solution

Incorporating a branch control cache within the trace generation circuitry to detect branch-future instructions and generate trace elements indicating branches to target addresses, allowing the trace stream to accurately reflect instruction flow even when branch-future instructions are present.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If trace elements are only produced for predetermined instructions (e.g., branch instructions), then the volume of trace information is reduced, but the ability to accurately trace execution behavior is compromised when branch-future instructions are present

Engineering Contradiction:
Improvevolume of trace informationVSAvoidaccuracy of execution behavior tracing
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The trace generation circuitry performs preliminary action by detecting branch-future instructions and pre-generating trace elements that indicate the upcoming branch behavior. This allows the trace stream to accurately reflect execution flow changes caused by branch-future instructions without requiring full instruction tracing, thus maintaining reliability while keeping trace volume reduced.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The branch control cache acts as an intermediary mechanism between the processing circuitry and the trace generation circuitry. It stores control information about branch-future instructions and enables the trace generation circuitry to interpret and generate appropriate trace elements, resolving the contradiction between reduced trace volume and accurate tracing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If branch-future instructions are used to change arbitrary instructions into branches, then instruction flexibility is improved, but the trace stream accuracy is disrupted

Engineering Contradiction:
Improveinstruction flexibilityVSAvoidtrace stream accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The trace generation circuitry uses feedback from the processing circuitry to detect when branch-future instructions are executed. By receiving feedback about the execution of branch-future instructions and adjusting trace generation accordingly, the system maintains trace stream accuracy while preserving instruction flexibility.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the parameter of trace generation by introducing new trace element types that specifically indicate branch-future instruction execution. This allows the trace stream to accurately represent the flexible instruction behavior without requiring fundamental changes to the tracing architecture.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If a branch control cache is added to detect branch-future instructions, then tracing reliability is improved, but device complexity increases

Engineering Contradiction:
Improvetracing reliabilityVSAvoidtrace generation circuitry complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The branch control cache is designed with multi-functionality, serving both the processing circuitry's branch prediction needs and the trace generation circuitry's detection needs. This universal approach improves tracing reliability without proportionally increasing device complexity, as the same cache structure serves multiple purposes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3475828B1An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
Publication Date: 2024.12.04 ARM LTD
  • EP3475828B1 patent drawingFigure 1
  • EP3475828B1 patent drawingFigure 2
  • EP3475828B1 patent drawingFigure 3

AI summary

An apparatus and method are provided for generating and processing a trace stream indicative of instruction execution by processing circuitry. An apparatus has an input interface for receiving instruction execution information from processing circuitry indicative of a sequence of instructions executed by the processing circuitry, and trace generation circuitry for generating from the instruction execution information a trace stream comprising a plurality of trace elements indicative of execution by the processing circuitry of predetermined instructions within the sequence. The instruction sequence includes at least one branch-future instruction that effectively turns an instruction identified by the branch-future instruction into a branch, and in particular causes the processing circuitry to branch to a target address identified by the branch-future instruction when that identified instruction is encountered within the instruction sequence. A branch control cache is used to store branch control information derived from the branch-future instruction, and the trace generation circuitry is arranged to detect, based on that branch control information, when the identified instruction has been encountered by the processing circuitry, and upon such detection to then issue within the trace stream a trace element to indicate that a branch to the target address has occurred. This enables a very efficient form of trace stream to be used even in situations where the instruction sequence executed by the processing circuitry includes such branch-future instructions.