Processor Branch Predictor Testing via Counter Increment and Branch Instruction Pairs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Advanced processor branch predictors are complex and require effective testing methods to validate their performance, especially in scenarios where little information is available for predicting conditional branch outcomes, necessitating innovative testing processes to ensure proper functionality.

Innovation Solution

The process involves dividing memory space into portions and generating specific sets of test instructions, including counter increment and branch instructions, which are pseudo-randomly created to test the processor's branch prediction unit and effective address table, ensuring demanding and thorough testing without infinite loops.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If branch predictors with micro architectural features (branch history table, effective address table) are implemented to enhance branch instruction performance, then processor performance is improved, but device complexity increases

Engineering Contradiction:
Improveprocessor performanceVSAvoidbranch predictor complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the complex branch predictor testing into two separate test instruction sets: one for backward branches and one for forward branches. Each set targets specific portions of the branch history table and effective address table, segmenting the validation process to manage complexity while maintaining comprehensive testing coverage

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent generates and executes test instructions before actual processor operation to pre-validate branch predictor functionality. By performing preliminary testing with controlled branch patterns, the system identifies potential issues before deployment, reducing the need for complex runtime validation mechanisms

Inventive Principle:
Principle #10Preliminary action

2Reliability

If comprehensive run-time tests are performed to validate processor functionality, then reliability is improved, but loss of time increases

Engineering Contradiction:
Improveprocessor validationVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements periodic testing by executing test instruction sets at intervals during processor operation. Rather than continuous validation, the system periodically runs backward branch tests and forward branch tests, maintaining reliability while minimizing time loss through structured,间歇性 validation cycles

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent applies partial testing by focusing on specific branch patterns (backward and forward branches) rather than testing all possible branch scenarios. This selective approach validates the critical components of the branch predictor without the time cost of exhaustive testing, achieving sufficient reliability through targeted validation

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11036507B2Processor testing using pairs of counter incrementing and branch instructions
Publication Date: 2021.06.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11036507B2 patent drawing
  • US11036507B2 patent drawing
  • US11036507B2 patent drawing

AI summary

A process for processor testing includes dividing a memory space into first and second portions and generating first and second sets of test instructions for the respective first and second portion. The first and second sets each include a plurality of counter increment/branch instruction pairs where each branch instruction of the first set branches to a backward instruction location and each branch instruction of the second set branches to a forward instruction location.