Concurrent Multi-Debugger Control for Instruction Set Simulators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging multicore integrated circuit devices is challenging due to the complexity of software debugging processes, particularly with multicore designs that require dynamic partitioning of software across cores and equal workload sharing, leading to difficult-to-reproduce and understand bugs, and existing simulation-based tools are not adapted to handle multicore systems efficiently, limiting the ability to debug multi-tasking applications and allowing only single debugger connections.

Innovation Solution

A simulation-based software development tool that enables concurrent attachment of multiple debuggers to an instruction set simulator (ISS), allowing independent control and preventing runtime interference, thereby facilitating efficient debugging of multi-tasking applications and handling multicore systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If only one debugger is connected to the ISS at a time, then the debugging process is simple and manageable, but it becomes impossible to debug multi-tasking applications and multicore systems effectively

Engineering Contradiction:
ImproveAbility to debug multi-tasking applicationsVSAvoidDebugging system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the debugging functionality by allowing multiple independent debugger instances (first debugger, second debugger, etc.) to connect to and control the single ISS simultaneously. Each debugger can independently set breakpoints, step through instructions, and control execution without interfering with others, effectively dividing the debugging control among multiple users or tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The ISS acts as an intermediary that receives control commands from multiple debuggers and manages their execution. The system architecture introduces a debugger management layer that coordinates requests from multiple debuggers, allowing them to independently control the ISS while preventing runtime interference between them.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the entire system is frozen when one processor hits a breakpoint, then debugging can be performed, but it prevents simultaneous debugging of multiple tasks and cores

Engineering Contradiction:
ImproveDebugging efficiencyVSAvoidSystem control flexibility
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system segments the control authority by allowing different debugger instances to independently freeze or continue execution of specific tasks or cores without affecting others. When one debugger hits a breakpoint, only the relevant task or core is frozen while other debuggers can continue controlling their respective targets, enabling parallel debugging operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically manages execution state by allowing multiple debugger instances to independently control the ISS execution state. Each debugger can set breakpoints and control flow independently, with the system dynamically adjusting which tasks or cores are frozen based on which debugger hits a breakpoint, rather than universally freezing everything.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If multiple debuggers are allowed to control the ISS independently, then concurrent debugging of multiple tasks becomes possible, but runtime interference between debuggers may occur

Engineering Contradiction:
ImproveConcurrent debugging capabilityVSAvoidRuntime interference prevention
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The ISS serves as an intermediary that receives and manages control commands from multiple debuggers. The system architecture includes a coordination mechanism that processes requests from multiple debuggers through the ISS, ensuring that breakpoints, step commands, and execution control from different debuggers are handled without causing runtime interference or conflicting states.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the ISS monitors and reports the execution state to all connected debuggers in real-time. This feedback loop ensures that when one debugger modifies execution state (e.g., hits a breakpoint, changes run mode), other debuggers are notified and can adjust their control accordingly, preventing runtime interference while maintaining concurrent debugging capability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8914274B1Method and system for instruction set simulation with concurrent attachment of multiple debuggers
Publication Date: 2014.12.16 MIPS HLDG INC
  • US8914274B1 patent drawing
  • US8914274B1 patent drawing
  • US8914274B1 patent drawing

AI summary

An ISS (instruction set simulator) debugging method. The method includes executing a plurality of instructions of an ISS (instruction set simulator). For each instruction, an ISS simulation state is synchronized to a simulation time when the execution of the instruction is finished. At least two debugger components are executed in conjunction with the execution of the ISS, wherein the debugger components are each coupled to control the ISS.