Multiprocessor Debugging via Program Counter Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing debugging methods for multiprocessor devices require additional hardware and can disrupt normal operations, making it difficult to refer to data in real-time during periodic control debugging, and often result in delayed or incomplete data retrieval due to condition branching and additional processing operations.

Innovation Solution

A multiprocessor device design where a debugging processor synchronizes with the debugging-target processor by referencing its program counter, allowing for efficient data retrieval without dedicated hardware, by using a second processor to fetch instructions and access data from the debugging-target processor's memory, enabling synchronized debugging operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If debugging-dedicated hardware is added to debug multiprocessor devices, then debugging capability is improved, but circuit scale increases

Engineering Contradiction:
Improvedebugging capabilityVSAvoidcircuit scale
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies universality by making the debugging processor serve dual purposes: it functions as a normal processing unit during operational modes and as a debugging unit during debugging mode. The same processor resources (execution units, memory access capabilities) are reused for both regular program execution and debugging operations, eliminating the need for separate dedicated debugging hardware and thus avoiding circuit scale increase while maintaining debugging capability

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

Solution Approach 2:

The patent implements self-service by enabling a processor within the multiprocessor system to perform debugging functions for itself or other processors. The debugging processor uses its own inherent capabilities (instruction execution, memory access, program counter management) to conduct debugging operations without requiring external or dedicated debugging hardware, allowing the system to debug itself using existing resources

Inventive Principle:
Principle #25Self-service

2Loss of time

If data is referred periodically during program execution, then real-time debugging is improved, but additional processing operations due to condition branching delay data retrieval

Engineering Contradiction:
Improvedata retrieval timeVSAvoiddebugging efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent implements continuity of useful action by enabling the debugging processor to continuously access and refer to target processor data during periodic control operations without interruption. The debugging system maintains continuous monitoring capability where data can be retrieved at scheduled intervals without stopping the target program execution, ensuring uninterrupted debugging flow despite condition branching in the program logic

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent applies preliminary action by having the debugging processor prepare and position itself to access target data before it is needed. The system pre-configures the debugging processor with necessary access paths and timing information, allowing it to efficiently retrieve data at the exact moment needed during periodic control, thereby minimizing delays caused by condition branching and additional processing

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3796175B1Non intrusive multicore debugging based on PC counter
Publication Date: 2024.01.10 CANON KK
  • EP3796175B1 patent drawingFigure 1
  • EP3796175B1 patent drawingFigure 2
  • EP3796175B1 patent drawingFigure 3A~5B

AI summary

A multiprocessor device (Fig. 2) includes a first processor (100) and a second processor (200). The multiprocessor device is configured to cause, when debugging of the first processor is to be performed by using the second processor, the second processor to refer to a value of a program counter (101) of the first processor and fetch an instruction from a memory (202) by using the value referred from the program counter.