Silicon Debugging via Instruction Set Simulation and Dynamic Slicing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for debugging silicon-based circuitry hardware are inefficient in localizing architectural-level failures, as they rely on manual analysis and lack precise tools for identifying faulty instructions and data flow errors.

Innovation Solution

A method involving Instruction Set Simulation (ISS) and dynamic slicing techniques to re-run failing test cases, construct resource dependency graphs, and filter out instructions that affect miscomparing resources, thereby isolating the faulty instructions and reducing the search space for debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual analysis methods are used for debugging silicon-based circuitry hardware, then debugging can be performed without specialized tools, but the efficiency and precision of localizing architectural-level failures is low

Engineering Contradiction:
Improveprecision of identifying faulty instructionsVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates a software model version (copy) of the processor that mirrors the hardware version's architecture and behavior. This software model executes the same test cases and produces comparable results, allowing precise identification of divergences between hardware and expected behavior. The copying principle enables automated comparison and localization of faults without manual analysis, thereby improving both precision and efficiency simultaneously.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an intermediary comparison mechanism that systematically compares results from the hardware version against the software model version. This intermediary process automatically identifies mismatches and localizes faults to specific instructions or data storage locations, eliminating the need for manual analysis while maintaining high precision in fault identification.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If all instructions in a testcase are analyzed to localize errors, then comprehensive coverage is achieved, but the search space remains large and debugging time increases

Engineering Contradiction:
Improveaccuracy of error localizationVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the analysis process by first identifying mismatched data storage locations between hardware and software model executions, then tracing back to identify only the specific instructions that caused these mismatches. This segmentation transforms the problem from analyzing all instructions to analyzing only the relevant subset, dramatically reducing debugging time while maintaining accurate error localization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs partial analysis by focusing only on the necessary steps to identify faulty instructions rather than comprehensively analyzing every instruction's impact. By executing test cases on both versions and comparing results, the system performs just enough analysis to locate errors efficiently, avoiding the time cost of exhaustive instruction-level analysis while preserving localization accuracy.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If test cases are run multiple times with different execution paths to improve error detection, then error localization accuracy improves, but the computational resources and time required increase

Engineering Contradiction:
Improveerror detection accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent makes the software model version serve multiple functions: it acts as a reference implementation for comparison, a test case executor, and a baseline for identifying hardware divergences. This multi-functionality allows the same software model to be used across multiple test cases and execution paths without requiring separate reference implementations, reducing overall computational resource consumption while maintaining high error detection accuracy.

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

Data Source

PatentUS9251045B2Control flow error localization
Publication Date: 2016.02.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9251045B2 patent drawing
  • US9251045B2 patent drawing
  • US9251045B2 patent drawing

AI summary

Localizing errors by: (i) running a testcase on a hardware processor and saving results; (ii) running the testcase on a software model of the processor and saving results; (iii) recording control flow information during the software run; (iv) determining a set of miscompare data storage locations by comparing the results from the hardware run with those from the software run; (v) based on the set of miscompare data storage locations and/or the control flow information, generating and running a modified version of the testcase that takes a different execution path when run on the software model than did the original testcase when run on the software model; and (vii) comparing the results from the hardware run and the results obtained from the modified software run to provide an indication of similarity between execution paths taken in these respective runs.