Automated Register Dependency Injection for Processor Test Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for verifying target processors, particularly in the context of memory access operations, are inefficient and prone to missing bugs that could lead to security vulnerabilities or malfunctions, as they often require manual intervention and are not comprehensive enough to cover all potential scenarios.

Innovation Solution

A method is introduced that involves generating tests based on abstract test scenarios by adding register dependencies not initially required, which are automatically determined and implemented, allowing for more thorough verification of processor behavior without manual effort, thereby increasing test complexity and coverage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual test generation is used for processor verification, then test generation is simple and direct, but test coverage is insufficient and bugs are missed

Engineering Contradiction:
Improveverification qualityVSAvoidtest complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of the processor architecture and test templates to automatically generate comprehensive test cases before execution. This includes pre-defining register dependencies, memory access patterns, and instruction sequences that cover edge cases and potential bug scenarios, thereby improving verification quality without requiring complex manual test design during execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The test generation system automatically analyzes processor specifications, generates appropriate test templates, and creates detailed test cases without human intervention. The system self-adjusts test parameters, selects relevant instructions, and configures execution environments, reducing the need for manual test complexity while maintaining high verification coverage

Inventive Principle:
Principle #25Self-service

2Reliability

If automatic test generation is implemented, then test coverage increases, but manual intervention is reduced

Engineering Contradiction:
Improvebug detection capabilityVSAvoidautomation level
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The system incorporates feedback mechanisms where test execution results automatically inform subsequent test case generation. The system analyzes passed and failed tests, adjusts test templates, modifies register dependency configurations, and generates new test cases that target previously undetected bug scenarios, continuously improving bug detection capability through automated learning and adaptation

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The automated test generation process is segmented into distinct modular components: template selection, parameter configuration, register dependency assignment, memory access pattern generation, and execution setup. Each module operates independently and can be selectively configured, allowing high-level automation while maintaining flexibility for targeted manual adjustments when needed

Inventive Principle:
Principle #1Segmentation

3Reliability

If simple test scenarios are used, then test execution is fast and efficient, but security vulnerabilities are not detected

Engineering Contradiction:
Improvesecurity verificationVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically changes test parameters such as register values, memory addresses, instruction sequences, and execution conditions to create diverse test scenarios from a single template. By systematically varying these parameters across multiple test iterations, the system detects security vulnerabilities like buffer overflows and register corruption without requiring proportionally longer testing time

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system applies partial automation to critical security-related test aspects while maintaining efficiency. It automatically generates test cases with specific register dependencies and memory access patterns known to expose security vulnerabilities, rather than exhaustively testing all possible scenarios, achieving effective security verification within reasonable time constraints

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11194705B2Automatically introducing register dependencies to tests
Publication Date: 2021.12.07 MIPS HLDG INC
  • US11194705B2 patent drawing
  • US11194705B2 patent drawing
  • US11194705B2 patent drawing

AI summary

Method, apparatus and product for automatically introducing register dependency into tests. A test template represents an abstract test scenario to be utilized for testing a target processor. The abstract test scenario requires that a value be assigned to a register. A test that implements the abstract test scenario is generated. The test is a set of instructions that are executable by the target processor. The generation of the test comprises: determining a memory address to retain the value in a memory that is accessible to the target processor; and adding to the test an instruction to load to the register the value from the memory address, whereby adding a register dependency to the test that is not required by the abstract test scenario. The test can be executed on the target processor or simulation thereof.