Branch Tracing Mechanism for Microprocessor Predicated Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Advanced microprocessors with predicated and expanded instructions complicate burn-in operations and program evaluation, making it difficult to detect and correct programming errors due to unpredictable instruction execution and cascaded sub-instruction execution, which hinders effective branch tracing.

Innovation Solution

A branch tracing mechanism that includes signal processing for predicated and expanded instructions, using a state machine to control multiplexers and a FIFO memory to store address pairs, allowing clear tracking of program counter branches and sub-instruction execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If predicated instructions are used in microprocessors, then processing capability is improved, but branch tracing accuracy deteriorates because predicated instructions may not be executed

Engineering Contradiction:
Improveprocessing capabilityVSAvoidbranch tracing accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent introduces a branch trace device as an intermediary component between the microprocessor and the analysis tool. This device includes a program counter to capture instruction addresses and a trace memory to store branch trace information. The device selectively captures and records branch information, serving as a mediator that translates complex predicated instruction execution into understandable trace data, thereby resolving the contradiction between improved processing capability and maintained tracing accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If expanded instructions are used in microprocessors, then processing capability is improved, but branch tracing complexity increases due to cascaded sub-instruction execution

Engineering Contradiction:
Improveprocessing capabilityVSAvoidbranch tracing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the branch tracing function into distinct components: a program counter for capturing instruction addresses, a trace memory for storing branch information, and control logic for selective recording. This segmentation allows the system to handle expanded instructions with cascaded sub-instructions by capturing only the relevant branch points, thereby reducing tracing complexity while maintaining the ability to process complex instruction sets.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If typical branch tracing mechanisms are used, then simplicity is maintained, but error detection capability deteriorates for advanced instructions

Engineering Contradiction:
Improvetracing mechanism simplicityVSAvoidprogramming error detection capability
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements preliminary action by pre-configuring the branch trace device with program counter and trace memory structures that are specifically designed to handle both standard and advanced instructions. The device proactively captures branch information at the source before execution, preparing the trace data in advance. This preliminary preparation enables simple operation of the tracing mechanism while simultaneously improving error detection capability for predicated and expanded instructions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7404069B2Branch tracing generator device and method for a microprocessor supporting predicated instructions and expanded instructions
Publication Date: 2008.07.22 STMICROELECTRONICS FRANCE
  • US7404069B2 patent drawing
  • US7404069B2 patent drawing
  • US7404069B2 patent drawing

AI summary

A device generates an address branch trace for a microcontroller unit, a microprocessor or a data processing unit having a set of instructions including at least one predicated instruction and at least one instruction of the expanded type. The device includes: a first block to receive a first signal representative of an actually executed instruction; a second block to receive a second signal representative of an expanded instruction; a third block to receive a third signal representative of a discontinuity branch between a source address and a destination address of a program executed by the microcontroller, microprocessor or data processing unit; at least one register to store consecutive addresses pointed to by a program counter; a fourth block to process the first, second and third signals in order to determine a pair having a source address and a destination address for an address branch, when appropriate; and a storage unit to store said address pair.