Processor Branch Prediction Using Multi-Table History Indices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors and analysis techniques are inadequate for efficiently processing and handling large volumes of data, such as big data from IoT devices and user interactions, due to processing requirements exceeding system capabilities, necessitating innovative hardware architectures and software techniques.

Innovation Solution

A processor-implemented method for address manipulation using indices and tags, where a first index is generated from the processor program counter to access a branch predictor bimodal table, with additional indices used to match against multiple tables of varying branch histories, and the processor address is manipulated based on the greatest length of branch prediction matches or zero hits, enabling accurate branch prediction and prefetching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional processors and analysis techniques are used for processing large volumes of data, then system capabilities are maintained at current levels, but processing requirements far outstrip the capabilities leading to intractable data processing

Engineering Contradiction:
Improvedata processing capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments data processing into multiple stages using MapReduce architecture, where Map tasks perform initial data filtering and aggregation, and Reduce tasks perform final computation. This segmentation divides the overwhelming processing burden into manageable chunks that can be distributed across multiple processors, enabling tractable processing of big data while maintaining reasonable system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a distributed computing dimension by deploying processing across multiple nodes in a cluster rather than relying on a single processor. This dimensional expansion from single-processor to multi-processor architecture enables the system to handle processing requirements that far exceed individual processor capabilities, resolving the contradiction between productivity and device complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If branch prediction is not accurately implemented, then processor simplicity is maintained, but cycles are lost due to misprediction reducing processing speed

Engineering Contradiction:
Improveprocessing speedVSAvoidbranch prediction mechanism complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements preliminary branch prediction actions by using pattern history tables to predict branch outcomes before actual execution. The system pre-computes prediction values based on historical branch patterns and stores them in lookup tables, allowing the processor to speculatively execute instructions along the predicted path without waiting for actual branch resolution, thereby maintaining high processing speed while using a relatively simple prediction mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating simplified models of branch behavior through pattern history tables that replicate common branch execution patterns. Instead of implementing complex real-time analysis of all possible branch scenarios, the system copies successful prediction patterns from history tables and applies them to current branches, achieving accurate predictions with minimal computational overhead and simple hardware structures.

Inventive Principle:
Principle #26Copying

3Measurement precision

If multiple tables of varying branch histories are used for accurate prediction, then prediction accuracy is improved, but the complexity of address manipulation increases

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidaddress manipulation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments branch history information into multiple specialized tables, each storing predictions for specific branch patterns or history lengths. This segmentation allows the system to query only the relevant table for each branch type rather than searching through a single large complex structure, improving prediction accuracy while keeping individual table structures simple and manageable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces pattern history tables as intermediary structures that mediate between the program counter and the final branch prediction. These intermediary tables pre-process and organize branch history information in a structured manner, simplifying the address manipulation required to access prediction data while improving the overall accuracy of branch predictions through systematic organization of historical patterns.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11829764B2Address manipulation using indices and tags
Publication Date: 2023.11.28 MIPS TECH INC
  • US11829764B2 patent drawing
  • US11829764B2 patent drawing
  • US11829764B2 patent drawing

AI summary

Techniques are disclosed for address manipulation using indices and tags. A first index is generated from bits of a processor program counter, where the first index is used to access a branch predictor bimodal table. A first branch prediction is provided from the bimodal table, based on the first index. The first branch prediction is matched against N tables, where the tables contain prior branch histories, and where: the branch history in table T(N) is of greater length than the branch history of table T(N-1), and the branch history in table T(N-1) is of greater length than the branch history of table T(N-2). A processor address is manipulated using a greatest length of hits of branch prediction matches from the N tables, based on one or more hits occurring. The branch predictor address is manipulated using the first branch prediction from the bimodal table, based on zero hits occurring.