Multi-Core Processor Synchronization for Debug State Dumping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging dual-core processors is challenging due to uncoordinated tracer stops and restarts, leading to non-correlated state checkpoints and difficulty in reproducing core interaction-related bugs.

Innovation Solution

A dual-core processor design where one core interrupts the other to synchronize state dumping and restarting, ensuring both cores dump their states and resume execution simultaneously through an inter-core communication bus.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If each core independently performs tracer stops and restarts, then the debugging process can be simplified and parallelized, but the state checkpoints generated by different cores do not correlate in time and core interaction bugs cannot be reproduced

Engineering Contradiction:
Improvedebugging processVSAvoidstate checkpoint correlation
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent merges the independent tracer operations of multiple cores by introducing a synchronization mechanism. The tracer on each core waits for a global sync signal before dumping state, and all cores resume execution simultaneously upon receiving the same resume signal. This combining approach ensures that state checkpoints from different cores correspond to the same logical point in time, enabling reliable reproduction of core interaction bugs while maintaining parallel debugging capability.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If tracer dumps processor state at regular intervals, then debugging coverage is improved, but the memory footprint increases and the process is less efficient

Engineering Contradiction:
Improvedebugging coverageVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements preliminary action by having the tracer save state checkpoints at specific synchronization points rather than continuously. The system prepares checkpoint data in advance and only writes to memory when a sync event occurs, reducing unnecessary memory writes and lowering memory footprint while maintaining adequate debugging coverage at critical moments in the execution timeline.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If cores execute independently without coordination, then execution speed is maintained, but bugs related to core interactions cannot be detected

Engineering Contradiction:
Improveexecution speedVSAvoidbug detection capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces feedback mechanisms where each core's tracer sends signals to a synchronization controller, which in turn sends resume signals back to all cores. This feedback loop enables coordinated resumption of execution across all cores, ensuring that they restart from the same program counter values and maintain synchronized state for accurate bug detection in core interactions, while preserving high execution speed through efficient synchronization.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8495344B2Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
Publication Date: 2013.07.23 VIA TECH INC
  • US8495344B2 patent drawing
  • US8495344B2 patent drawing
  • US8495344B2 patent drawing

AI summary

A multi-core microprocessor includes first and second processing cores and a bus coupling the first and second processing cores. The bus conveys messages between the first and second processing cores. The cores are configured such that: the first core stops executing user instructions and interrupts the second core via the bus, in response to detecting a predetermined event; the second core stops executing user instructions, in response to being interrupted by the first core; each core outputs its state after it stops executing user instructions; and each core waits to begin fetching and executing user instructions until it receives a notification from the other core via the bus that the other core is ready to begin fetching and executing user instructions. In one embodiment, the predetermined event comprises detecting that the first core has retired a predetermined number of instructions. In one embodiment, microcode waits for the notification.