Processor Validation Instruction Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing random instruction test (RIT) method for validating processor functionality is inefficient in detecting bugs, requiring significant manual effort, and can miss errors due to complex instruction dependencies and propagation of incorrect values, leading to undetected bugs.

Innovation Solution

The proposed solution involves generating an instruction stream that includes validation instructions and data backup instructions to store register values in primary memory, allowing for accurate comparison with a reference processor to identify bugs, thereby reducing manual effort and improving detection accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If random instruction test is used to validate processor functionality, then processor functionality can be verified, but the method is inefficient in detecting bugs and requires significant manual effort

Engineering Contradiction:
Improveprocessor functionality verificationVSAvoidbug detection efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by generating and inserting data backup instructions into the instruction stream before execution. These instructions store register values in memory in advance, creating a baseline for later comparison with the processor's actual output, thereby enabling automated bug detection without manual intervention.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by comparing the processor's output against pre-stored register values from the data backup instructions. This comparison mechanism provides immediate feedback on whether the processor executed instructions correctly, automatically identifying bugs through mismatch detection between expected and actual results.

Inventive Principle:
Principle #23Feedback

2Reliability

If random instruction stream is generated and executed by processor, then functionality validation is carried out, but errors are missed due to complex instruction dependencies and propagation of incorrect values

Engineering Contradiction:
Improvefunctionality validationVSAvoiderror detection accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent applies segmentation by dividing the validation process into distinct segments: data backup instructions that store expected values, validation instructions that execute processor operations, and comparison operations that check results. This segmentation isolates specific instruction outcomes for individual verification, preventing error propagation and enabling precise detection of where bugs occur in the instruction stream.

Inventive Principle:
Principle #1Segmentation

3Reliability

If manual comparison of outcomes is performed, then bugs can be detected, but significant manual effort is required

Engineering Contradiction:
Improvebug detectionVSAvoidmanual effort time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-service by designing a validation system that automatically performs the comparison function. The processor itself executes data backup instructions to store expected values, then automatically compares its own output against these stored values through the validation mechanism, eliminating the need for external manual comparison and significantly reducing the time and effort required for bug detection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11099958B2Instruction generation for validation of processor functionality
Publication Date: 2021.08.24 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11099958B2 patent drawing
  • US11099958B2 patent drawing
  • US11099958B2 patent drawing

AI summary

Examples of instruction generation for validation of processor functionality are described. In an example, a validation instruction to be inserted in an instruction stream is selected. The validation instruction being generated based on an instruction set architecture of a processor-under-test (PUT). It is identified whether a hardware register of the PUT, is available for storing an outcome of execution of the validation instruction by the PUT. The validation instruction is inserted in the instruction stream, in response to identifying that the hardware register is available for storing the outcome. A set of data backup instructions is inserted in the instruction stream, in response to identifying that the hardware register is unavailable for storing the outcome. The set of data backup instructions is to store respective register values of each of the plurality of hardware registers in a primary memory.