Multicore Thread Debugging via Hardware Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging in multicore architectures is challenging due to the Heisenberg bug (probe effect), where debug code alters thread timing, masking bugs and affecting performance measurements, and existing solutions lack portability and reusability.

Innovation Solution

A method and apparatus for monitoring thread execution within a multicore processor architecture that compares thread parameter indicators with predefined criteria, enabling thread-level debugging without additional code, using a thread-level software debug controller with monitor logic for thread allocation and execution monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If debug code is added to monitor thread execution, then debugging capability is improved, but thread timing is altered causing the probe effect that masks bugs

Engineering Contradiction:
Improvedebugging capabilityVSAvoidthread timing accuracy
Core Design Contradiction:
Difficulty of detecting and measuringVSReliability

Solution Approach 1:

The patent extracts the monitoring function from software debug code and implements it in hardware within the processor element. The monitoring logic is separated into dedicated hardware circuits that observe thread execution without inserting executable instructions, thereby eliminating the probe effect while maintaining debugging capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces hardware monitoring logic as an intermediary between the thread execution units and the debug interface. This intermediary captures thread execution information through hardware signals and state observations rather than through software instrumentation, preventing timing alterations while enabling comprehensive debugging.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If extensive debug code is present in the build, then system diagnostics are enhanced, but performance measurements are affected due to cache and bus performance degradation

Engineering Contradiction:
Improvesystem diagnosticsVSAvoidperformance measurement accuracy
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The patent extracts diagnostic functionality from software debug code and implements it in hardware. The monitoring logic observes cache and bus operations through hardware signals, eliminating the need for extensive debug code that would otherwise degrade performance measurements while second-order effects.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If thread level monitoring is implemented without additional code, then probe effect is reduced, but monitoring capability must be built into the processor architecture

Engineering Contradiction:
Improvethread timing accuracyVSAvoidprocessor architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the monitoring logic with the existing processor element structure. The monitoring circuits are integrated into the processor element's existing control and data paths, sharing hardware resources with the execution units rather than adding completely separate monitoring subsystems.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent designs the monitoring logic to serve multiple functions: thread execution monitoring, performance measurement, and debugging. The same hardware circuits that track thread state for timing accuracy also capture performance data, reducing the need for separate specialized hardware while maintaining reliability.

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

Data Source

PatentUS9038070B2Debug in a multicore architecture
Publication Date: 2015.05.19 FUJITSU SEMICON LTD
  • US9038070B2 patent drawing
  • US9038070B2 patent drawing
  • US9038070B2 patent drawing

AI summary

According to a first aspect of the present invention, there is provided a method of monitoring thread execution within a multicore processor architecture which comprises a plurality of interconnected processor elements for processing the threads, the method comprising receiving a plurality of thread parameter indicators indicative of one or more parameters relating to the function and/or identity of a thread or threads comparing at least some of the thread parameter indicators with a first plurality of predefined criteria each representative of an indicator of interest and generating an output consequential upon thread parameter indicators which have been identified to be of interest as a result of the said comparison.