Processor Instruction Injection for Debugging Multi-Cycle Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging multi-threaded processors is challenging due to their complex embedded nature, and existing methods require explicit entry into debug mode or exception states to inject instructions, disrupting normal execution.

Innovation Solution

A hardware configurable mechanism allows for the injection of instructions into the execution pipeline during multi-cycle instructions, enabling pause, execution, and automatic resumption of the original instruction, facilitating debugging without entering debug mode or controlling the processor's operational state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If instructions are injected into the execution pipeline during multi-cycle instructions, then debugging capability is improved, but execution continuity is disrupted

Engineering Contradiction:
Improvedebugging capabilityVSAvoidexecution continuity
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

Solution Approach 1:

The execution unit dynamically transitions between different operational states (paused and resumed) based on injection events. The multi-cycle instruction execution is made flexible by allowing temporary suspension and automatic resumption, enabling the system to adapt between debugging needs and normal execution continuity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

An injection indicator acts as an intermediary mechanism between the instruction injection mechanism and the execution unit. This indicator signals when an instruction has been injected, triggering the pause condition without requiring complex direct communication, thus enabling smooth transition to debugging mode while maintaining execution state.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If explicit debug mode entry is required for instruction injection, then execution control is simplified, but debugging efficiency deteriorates

Engineering Contradiction:
Improveexecution controlVSAvoiddebugging efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The execution unit automatically detects injection events through the injection indicator and self-manages the pause/resume sequence without external intervention. The system serves itself by automatically pausing when injection occurs and resuming when the indicator clears, eliminating the need for explicit debug mode entry while maintaining execution control.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The injection indicator provides feedback to the execution unit about injection events. This feedback mechanism enables the execution unit to automatically respond to injection conditions, creating a closed-loop system that improves debugging efficiency without sacrificing execution control simplicity.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If multi-cycle instruction execution is paused for injection, then debugging precision is improved, but execution speed deteriorates

Engineering Contradiction:
Improvedebugging precisionVSAvoidexecution speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The pause-resume mechanism operates periodically only when injection events occur, rather than continuously. The execution unit pauses briefly to allow injection, then automatically resumes, creating a periodic interrupt pattern that enables precise debugging observation without sustained execution speed reduction.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The execution pause is applied partially and temporarily only during injection events, not throughout the entire multi-cycle instruction execution. This partial action approach provides sufficient debugging precision at the moment of injection while minimizing overall impact on execution speed for the remaining instruction cycles.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11635966B2Pausing execution of a first machine code instruction with injection of a second machine code instruction in a processor
Publication Date: 2023.04.25 GRAPHCORE LTD
  • US11635966B2 patent drawing
  • US11635966B2 patent drawing
  • US11635966B2 patent drawing

AI summary

Aspects of the present disclosure provide a processor having: an execution unit configured to execute machine code instructions, at least one of the machine code instructions requiring multiple cycles for its execution; instruction memory holding instructions for execution, wherein the execution unit is configured to access the memory to fetch instructions for execution; an instruction injection mechanism configured to inject an instruction into the execution pipeline during execution of the at least one machine code instruction fetched from the memory; the execution unit configured to pause execution of the at least one machine code instruction, to execute the injected instruction to termination, to detect termination of the injected instruction and to automatically recommence execution of the at least one machine code instruction on detection of termination of the injected instruction.