Predicate Calculation Module Single-Cycle Branch Predication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CPU architectures require multiple cycles to calculate complex predicate values for branch predication, which hampers the efficiency of processing and instruction execution, especially in demanding applications.

Innovation Solution

An integrated circuit device with a predicate calculation module that uses a result vector and conditional parameter values to calculate predicate values in a single execution cycle, leveraging multiplexing circuitry and truth tables to systematically select the appropriate result values from a pre-encoded result vector.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If complex Boolean functions are calculated using traditional CPU execution units, then the predicate values can be computed, but the calculation requires multiple execution cycles which reduces processing efficiency

Engineering Contradiction:
Improvepredicate calculation accuracyVSAvoidinstruction execution speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-calculates all possible Boolean function results and stores them in a lookup table before execution. During runtime, the predicate calculation unit simply retrieves the pre-computed result based on current operand values, avoiding multi-cycle Boolean calculations and achieving single-cycle predicate evaluation while maintaining full computational accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical Boolean calculation process (using CPU execution units to evaluate logical expressions) with a direct memory lookup operation. This substitution transforms a computationally intensive multi-cycle operation into a simple single-cycle retrieval operation, dramatically improving predicate calculation speed

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If predicate registers are moved to general purpose registers for calculation, then complex Boolean operations can be performed, but the additional move operations increase the number of cycles required

Engineering Contradiction:
ImproveBoolean operation capabilityVSAvoidpredicate calculation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent creates a dedicated predicate calculation unit that can directly operate on predicate registers without requiring movement to general-purpose registers. This specialized unit provides universal Boolean operation capability while maintaining the advantage of direct predicate register access, eliminating the time penalty of register moves

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

Solution Approach 2:

The patent introduces a lookup table as an intermediary between the predicate registers and the Boolean calculation results. The lookup table contains pre-computed results for all possible predicate register combinations, allowing the system to retrieve results directly without moving data between register types, thus eliminating unnecessary cycle overhead

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2666082B1Integrated circuit device and method for calculating a predicate value
Publication Date: 2019.03.13 NXP USA INC
  • EP2666082B1 patent drawingFigure 1~3
  • EP2666082B1 patent drawingFigure 2
  • EP2666082B1 patent drawingFigure 4~5

AI summary

An integrated circuit device (105) comprises at least one instruction processing module (100) arranged to perform branch predication. The at least one instruction processing module (100) comprises at least one predicate calculation module (150) arranged to receive as an input at least one result vector (220) for a predicate function and at least one conditional parameter value therefor (230), and output a predicate result value (240) from the at least one result vector (220) based at least partly on the at least one received conditional parameter value (230).