Random Program Loop Stabilization in Processor Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for generating random program loops in processor verification face challenges such as early exit from loops due to conditional branches, exceptions, storage address changes, and complex instruction operations, which hinder effective verification of processor designs pre-silicon.

Innovation Solution

A method and apparatus that utilize a converged branch instruction stream to ensure all conditional branches converge to a main program loop, include a built-in exception handling mechanism to manage program interrupts, use mandatory read-only registers for stable storage addresses, and employ a global class restriction mechanism to avoid problematic operations, along with machine state detection and restoration to preserve storage addressability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conditional branches are used in random program loops, then program flow control is improved, but early exit from loops occurs causing verification inefficiency

Engineering Contradiction:
Improveprogram flow controlVSAvoidverification efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements feedback mechanisms that monitor branch execution outcomes and adjust subsequent branch instructions to prevent early loop exits. The system tracks whether branches cause premature termination and modifies the test program generation to maintain loop continuity, thereby preserving verification efficiency while adapting program flow control.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent dynamically changes parameters of branch instructions based on loop execution state. When early exits are detected, the system modifies branch conditions, targets, or frequencies to keep the program within the loop structure, thus maintaining both flow control adaptability and verification productivity.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If exceptions are handled in random program loops, then program robustness is improved, but loop continuity is disrupted causing verification inefficiency

Engineering Contradiction:
Improveprogram robustnessVSAvoidverification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent prepares exception handling mechanisms in advance by pre-configuring exception handlers and recovery routines that automatically restore loop state. This cushioning approach ensures that when exceptions occur, the program can recover and continue the loop without significant disruption, maintaining both robustness and verification efficiency.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The system performs preliminary actions by establishing exception handling frameworks before loop execution begins. Exception handlers are pre-loaded and configured to recognize and recover from specific exception types, enabling rapid recovery that minimizes loop disruption while ensuring program robustness.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If storage addresses are dynamically generated in random loops, then memory access flexibility is improved, but storage addressability stability deteriorates

Engineering Contradiction:
Improvememory access flexibilityVSAvoidstorage addressability
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent implements dynamic storage address generation with stability constraints. The system generates addresses dynamically to maintain flexibility while applying constraints that prevent address space exhaustion and ensure repeatable access patterns. This allows memory access flexibility while preserving storage addressability stability across multiple loop iterations.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If complex operations are included in random program loops, then processor feature coverage is improved, but loop stability deteriorates

Engineering Contradiction:
Improveprocessor feature coverageVSAvoidloop stability
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent applies local quality by selectively distributing complex operations throughout the loop structure rather than concentrating them. Different loop iterations contain different subsets of complex operations, ensuring comprehensive processor feature coverage while preventing any single operation from destabilizing the entire loop. This localized distribution maintains loop stability while achieving thorough verification.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10061672B2Implementing random content of program loops in random test generation for processor verification
Publication Date: 2018.08.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10061672B2 patent drawing
  • US10061672B2 patent drawing
  • US10061672B2 patent drawing

AI summary

A method and apparatus are provided for implementing random content of program loops in random test generation for processor verification. A converged branch instruction stream is used by a test generator to ensure that all random conditional branches converge to a main program loop. A built in exception handling mechanism of the test generator enables program interrupts to converge to the main program loop. Mandatory read only registers applied to the test generator allow all register based storage addresses to use registers that maintain a value and thus stabilize the storage address translations through subsequent iterations of the loop. A global class restriction mechanism defines specific restricted instruction classes applied to the test generator avoids inherently problematic operations for the program loops. Machine state detection and restoration mechanisms in the test generator are provided to preserve storage addressability.