Branch Program Counter Array for Control Transfer Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded processors, maintaining the value of the program counter (PC) for control transfer instructions (CTIs) to determine the actual direction and target is resource-intensive, leading to increased area and power consumption due to the need for additional circuitry to store and manage multiple thread states.

Innovation Solution

A Branch Program Counter Array (BPCA) is used to store program counter values corresponding to CTIs, allowing the execution unit to retrieve and verify the actual outcome of CTIs, thereby minimizing the impact on area and power consumption by avoiding the need for multi-ported storage cells and optimizing the storage of PC values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If additional circuitry is added to store and manage multiple thread states for CTIs, then prediction accuracy is improved, but area and power consumption increase

Engineering Contradiction:
Improveprediction accuracyVSAvoidcircuit area
Core Design Contradiction:
Measurement precisionVSArea of stationary object

Solution Approach 1:

The program counter storage is segmented into multiple sectors, each containing multiple entries. This segmentation allows the system to store PC values for multiple threads efficiently without requiring a single large multi-ported storage structure, thereby reducing area while maintaining the ability to track multiple thread states for accurate prediction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The BPCA structure serves multiple functions: it stores PC values for multiple threads, enables prediction of CTI outcomes, and allows verification of actual outcomes. By making the storage structure multi-functional, the patent avoids needing separate dedicated circuits for each function, thus reducing overall area while improving prediction accuracy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If additional circuitry is added to store and manage multiple thread states for CTIs, then prediction accuracy is improved, but power consumption increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by stationary object

Solution Approach 1:

By dividing the storage into sectors and entries, the system can selectively activate and manage only the necessary storage locations for active threads, reducing the overall power consumption compared to a fully associative multi-ported storage structure that would require continuous monitoring and management of all possible thread states.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system manages PC value storage by allocating entries when needed and allowing them to be reused when no longer required. This dynamic allocation and recovery mechanism ensures that power is consumed only when actually storing and managing thread states, rather than continuously powering dedicated storage circuits for all possible threads.

Inventive Principle:
Principle #34Discarding and recovering

3Speed

If a multi-ported storage cell is used to store PC values, then retrieval speed is improved, but area and complexity increase

Engineering Contradiction:
Improveretrieval speedVSAvoidstorage area
Core Design Contradiction:
SpeedVSArea of stationary object

Solution Approach 1:

The storage structure is divided into sectors with multiple entries each, allowing parallel access to different sectors without requiring multi-ported storage cells within each sector. This segmentation enables efficient retrieval by distributing access across multiple simpler storage locations rather than requiring complex multi-ported cells, thus reducing area while maintaining retrieval speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent organizes storage in a two-dimensional structure (sectors × entries) rather than using a single-dimensional multi-ported cell approach. This dimensional change allows the system to achieve parallel access capabilities through the sector-entry hierarchy without requiring each storage cell to have multiple ports, thereby reducing cell complexity and area while maintaining retrieval performance.

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

Data Source

PatentUS10198260B2Processing instruction control transfer instructions
Publication Date: 2019.02.05 ORACLE INT CORP
  • US10198260B2 patent drawing
  • US10198260B2 patent drawing
  • US10198260B2 patent drawing

AI summary

A system that for storing program counter values is disclosed. The system may include a program counter, a first memory including a plurality of sectors, a first circuit configured to retrieve a program instruction from a location in memory dependent upon a value of the program counter, send the value of the program counter to an array for storage and determination a predicted outcome of the program instruction in response to a determination that execution of the program instruction changes a program flow. The second circuit may be configured to retrieve the value of the program counter from a given entry in a particular sector of the array, and determine an actual outcome of the program instruction dependent upon the retrieved value of the program counter.